]> git.openstreetmap.org Git - rails.git/commitdiff
Merge pull request #4218 from AntonKhorev/no-user-id-renames
authorAndy Allan <git@gravitystorm.co.uk>
Thu, 18 Jan 2024 10:47:17 +0000 (10:47 +0000)
committerGitHub <noreply@github.com>
Thu, 18 Jan 2024 10:47:17 +0000 (10:47 +0000)
Disallow username changes to user_n if n isn't their id

266 files changed:
.github/workflows/lint.yml
.github/workflows/tests.yml
.rubocop.yml
.rubocop_todo.yml
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/cycleway.png [deleted file]
app/assets/images/key/cyclemap/footway.svg [deleted file]
app/assets/images/key/cyclemap/motorway12.png [deleted file]
app/assets/images/key/cyclemap/pedestrian.svg [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/secondary12.png [deleted file]
app/assets/images/key/cyclemap/track.png [deleted file]
app/assets/images/key/cyclemap/trunk12.png [deleted file]
app/assets/images/key/mapnik/bridge.svg [deleted file]
app/assets/images/key/mapnik/bridleway.png [deleted file]
app/assets/images/key/mapnik/building15.svg [deleted file]
app/assets/images/key/mapnik/building16.svg [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/city4.svg [new file with mode: 0644]
app/assets/images/key/mapnik/city6.svg [new file with mode: 0644]
app/assets/images/key/mapnik/cycleway.png [deleted file]
app/assets/images/key/mapnik/footway.png [deleted file]
app/assets/images/key/mapnik/glacier10.svg [deleted file]
app/assets/images/key/mapnik/glacier5.svg [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/mainroad8.png [deleted file]
app/assets/images/key/mapnik/mainroad8.svg [new file with mode: 0644]
app/assets/images/key/mapnik/mainroad9.svg [new file with mode: 0644]
app/assets/images/key/mapnik/motorway.png [deleted file]
app/assets/images/key/mapnik/rail12.svg [deleted file]
app/assets/images/key/mapnik/rail18.svg [deleted file]
app/assets/images/key/mapnik/track.png [deleted file]
app/assets/images/key/mapnik/tram15.svg [deleted file]
app/assets/images/key/mapnik/tunnel.svg [deleted file]
app/assets/images/key/mapnik/unclassified.png [deleted file]
app/assets/images/key/mapnik/unclassified13.png [deleted file]
app/assets/images/key/opnvkarte/main_road11.svg [deleted file]
app/assets/images/key/opnvkarte/main_road13.svg [deleted file]
app/assets/images/key/opnvkarte/main_road15.svg [deleted file]
app/assets/images/key/opnvkarte/main_road17.svg [deleted file]
app/assets/images/key/opnvkarte/motorway13.svg [deleted file]
app/assets/images/key/opnvkarte/motorway15.svg [deleted file]
app/assets/images/key/opnvkarte/motorway17.svg [deleted file]
app/assets/images/key/opnvkarte/motorway8.svg [deleted file]
app/assets/images/key/opnvkarte/rail11.svg [deleted file]
app/assets/images/key/opnvkarte/rail15.svg [deleted file]
app/assets/images/sprite.svg
app/assets/javascripts/index.js
app/assets/javascripts/index/note.js
app/assets/javascripts/messages.js
app/assets/stylesheets/common.scss
app/controllers/diary_entries_controller.rb
app/controllers/site_controller.rb
app/controllers/user_blocks_controller.rb
app/controllers/users_controller.rb
app/helpers/authorization_helper.rb [new file with mode: 0644]
app/helpers/browse_tags_helper.rb
app/helpers/svg_helper.rb
app/mailers/user_mailer.rb
app/models/language.rb
app/models/user.rb
app/validators/normalized_uniqueness_validator.rb [new file with mode: 0644]
app/views/diary_entries/index.html.erb
app/views/issues/_comments.html.erb
app/views/issues/_reports.html.erb
app/views/issues/show.html.erb
app/views/layouts/map.html.erb
app/views/messages/_inbox_count.html.erb [moved from app/views/messages/_message_count.html.erb with 91% similarity]
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
app/views/messages/outbox.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/shared/_markdown_help.html.erb
app/views/site/key.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/gpx_success.html.erb
app/views/users/show.html.erb
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/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/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/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/zh-CN.yml
config/locales/zh-HK.yml
config/locales/zh-TW.yml
config/openlayers.cfg [deleted file]
config/routes.rb
db/migrate/20231213182102_add_canonical_user_index.rb [new file with mode: 0644]
db/structure.sql
lib/oauth.rb
test/application_system_test_case.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/notes_controller_test.rb
test/controllers/user_blocks_controller_test.rb
test/factories/notes.rb
test/helpers/browse_tags_helper_test.rb
test/helpers/svg_helper_test.rb [new file with mode: 0644]
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/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/report_test.rb
test/models/request_token_test.rb
test/models/trace_test.rb
test/models/tracepoint_test.rb
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/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
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 0608b699bdfdcc56bb6f3f10087762b3546e3140..9fc1320141d9f50d0ac19a5940bc48fdbe9dd87f 100644 (file)
@@ -50,7 +50,7 @@ jobs:
         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') }}
index f2fa6763aa55a03af02acbfc6dc0f7fd42a3ca24..bfe456076df761798ec9a1e15e6674691b9f0e06 100644 (file)
@@ -26,7 +26,7 @@ jobs:
         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 97bb72e0ac03fee0bc94c89280bdb14d400f4ee1..ddfb63cae0610942a1ac6f107267e2c283ea2b50 100644 (file)
@@ -37,9 +37,6 @@ Metrics/ClassLength:
 Metrics/ModuleLength:
   Max: 150
 
-Minitest/MultipleAssertions:
-  Enabled: false
-
 Naming/FileName:
   Exclude:
     - 'script/deliver-message'
@@ -71,6 +68,9 @@ Rails/SkipsModelValidations:
     - 'db/migrate/*.rb'
     - 'app/controllers/users_controller.rb'
 
+Style/ArgumentsForwarding:
+  Enabled: false
+
 Style/Documentation:
   Enabled: false
 
index d80653712bf255eb7e8cc288e2b42ed151ae1c47..9874aa3793a18cb1e65b2e9f7374ce6eabeeaeee 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.
@@ -66,7 +71,7 @@ Metrics/ClassLength:
 # 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 29ad5ed310d2e53f25672c4c7709e9dfdd9413e2..e0ffd49be5fd7c8c66e766a3a69961b856ee1196 100644 (file)
@@ -3,35 +3,36 @@ GEM
   specs:
     aasm (5.5.0)
       concurrent-ruby (~> 1.0)
-    actioncable (7.1.2)
-      actionpack (= 7.1.2)
-      activesupport (= 7.1.2)
+    abbrev (0.1.2)
+    actioncable (7.1.3)
+      actionpack (= 7.1.3)
+      activesupport (= 7.1.3)
       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)
+      actionpack (= 7.1.3)
+      activejob (= 7.1.3)
+      activerecord (= 7.1.3)
+      activestorage (= 7.1.3)
+      activesupport (= 7.1.3)
       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)
+      actionpack (= 7.1.3)
+      actionview (= 7.1.3)
+      activejob (= 7.1.3)
+      activesupport (= 7.1.3)
       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)
+      actionview (= 7.1.3)
+      activesupport (= 7.1.3)
       nokogiri (>= 1.8.5)
       racc
       rack (>= 2.2.4)
@@ -41,39 +42,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)
+      actionpack (= 7.1.3)
+      activerecord (= 7.1.3)
+      activestorage (= 7.1.3)
+      activesupport (= 7.1.3)
       globalid (>= 0.6.0)
       nokogiri (>= 1.8.5)
-    actionview (7.1.2)
-      activesupport (= 7.1.2)
+    actionview (7.1.3)
+      activesupport (= 7.1.3)
       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)
+      activesupport (= 7.1.3)
       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)
+      activesupport (= 7.1.3)
+    activerecord (7.1.3)
+      activemodel (= 7.1.3)
+      activesupport (= 7.1.3)
       timeout (>= 0.4.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)
+      actionpack (= 7.1.3)
+      activejob (= 7.1.3)
+      activerecord (= 7.1.3)
+      activesupport (= 7.1.3)
       marcel (~> 1.0)
-    activesupport (7.1.2)
+    activesupport (7.1.3)
       base64
       bigdecimal
       concurrent-ruby (~> 1.0, >= 1.0.2)
@@ -95,16 +96,16 @@ GEM
     autoprefixer-rails (10.4.16.0)
       execjs (~> 2)
     aws-eventstream (1.3.0)
-    aws-partitions (1.869.0)
-    aws-sdk-core (3.190.0)
+    aws-partitions (1.880.0)
+    aws-sdk-core (3.190.2)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
       aws-sigv4 (~> 1.8)
       jmespath (~> 1, >= 1.6.1)
-    aws-sdk-kms (1.75.0)
+    aws-sdk-kms (1.76.0)
       aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.141.0)
+    aws-sdk-s3 (1.142.0)
       aws-sdk-core (~> 3, >= 3.189.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.8)
@@ -125,7 +126,7 @@ GEM
     bigdecimal (3.1.5)
     binding_of_caller (1.0.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.17.0)
+    bootsnap (1.17.1)
       msgpack (~> 1.2)
     bootstrap (5.3.2)
       autoprefixer-rails (>= 9.1.0)
@@ -133,7 +134,8 @@ GEM
     bootstrap_form (5.4.0)
       actionpack (>= 6.1)
       activemodel (>= 6.1)
-    brakeman (6.1.0)
+    brakeman (6.1.1)
+      racc
     brotli (0.4.0)
     browser (5.3.1)
     builder (3.2.4)
@@ -151,7 +153,7 @@ GEM
       rack-test (>= 0.6.3)
       regexp_parser (>= 1.5, < 3.0)
       xpath (~> 3.2)
-    concurrent-ruby (1.2.2)
+    concurrent-ruby (1.2.3)
     config (5.1.0)
       deep_merge (~> 1.2, >= 1.2.1)
       dry-validation (~> 1.0, >= 1.0.0)
@@ -206,7 +208,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,16 +231,15 @@ GEM
     erubi (1.12.0)
     execjs (2.9.1)
     exifr (1.4.0)
-    factory_bot (6.4.2)
+    factory_bot (6.4.5)
       activesupport (>= 5.0.0)
-    factory_bot_rails (6.4.2)
+    factory_bot_rails (6.4.3)
       factory_bot (~> 6.4)
       railties (>= 5.0.0)
-    faraday (2.7.12)
-      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)
@@ -252,10 +254,11 @@ GEM
       ffi (>= 1.0.0)
     globalid (1.2.1)
       activesupport (>= 6.1)
-    google-protobuf (3.25.1)
+    google-protobuf (3.25.2)
     hashdiff (1.1.0)
     hashie (5.0.0)
-    highline (2.1.0)
+    highline (3.0.0)
+      abbrev
     htmlentities (4.3.4)
     http_accept_language (2.1.1)
     i18n (1.14.1)
@@ -286,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.7.1)
-    irb (1.10.1)
+    irb (1.11.1)
       rdoc
-      reline (>= 0.3.8)
+      reline (>= 0.4.2)
     jbuilder (2.11.5)
       actionview (>= 5.0.0)
       activesupport (>= 5.0.0)
@@ -307,7 +310,7 @@ GEM
       rexml
     language_server-protocol (3.17.0.3)
     libv8-node (18.16.0.0)
-    libxml-ruby (4.1.2)
+    libxml-ruby (5.0.2)
     listen (3.8.0)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
@@ -330,22 +333,24 @@ GEM
     mini_portile2 (2.8.5)
     mini_racer (0.8.0)
       libv8-node (~> 18.16.0.0)
-    minitest (5.20.0)
+    minitest (5.21.1)
     msgpack (1.7.2)
     multi_json (1.15.0)
     multi_xml (0.6.0)
     mutex_m (0.2.0)
-    net-imap (0.4.8)
+    net-http (0.4.1)
+      uri
+    net-imap (0.4.9.1)
       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.7.0)
-    nokogiri (1.15.5)
+    nokogiri (1.16.0)
       mini_portile2 (~> 2.8.2)
       racc (~> 1.4)
     oauth (0.4.7)
@@ -378,7 +383,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)
@@ -395,7 +401,7 @@ GEM
       omniauth (~> 2.0)
     openstreetmap-deadlock_retry (1.3.1)
     parallel (1.24.0)
-    parser (3.2.2.4)
+    parser (3.3.0.4)
       ast (~> 2.4.1)
       racc
     pg (1.5.4)
@@ -404,7 +410,7 @@ GEM
     psych (5.1.2)
       stringio
     public_suffix (5.0.4)
-    puma (5.6.7)
+    puma (5.6.8)
       nio4r (~> 2.0)
     quad_tile (1.0.1)
     racc (1.7.3)
@@ -414,7 +420,8 @@ GEM
     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.2)
       rack (< 3)
@@ -424,20 +431,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)
+      actioncable (= 7.1.3)
+      actionmailbox (= 7.1.3)
+      actionmailer (= 7.1.3)
+      actionpack (= 7.1.3)
+      actiontext (= 7.1.3)
+      actionview (= 7.1.3)
+      activejob (= 7.1.3)
+      activemodel (= 7.1.3)
+      activerecord (= 7.1.3)
+      activestorage (= 7.1.3)
+      activesupport (= 7.1.3)
       bundler (>= 1.15.0)
-      railties (= 7.1.2)
+      railties (= 7.1.3)
     rails-controller-testing (1.0.5)
       actionpack (>= 5.0.1.rc1)
       actionview (>= 5.0.1.rc1)
@@ -452,9 +459,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)
+      actionpack (= 7.1.3)
+      activesupport (= 7.1.3)
       irb
       rackup (>= 1.0.0)
       rake (>= 12.2)
@@ -467,8 +474,8 @@ GEM
       ffi (~> 1.0)
     rdoc (6.6.2)
       psych (>= 4.0.0)
-    regexp_parser (2.8.3)
-    reline (0.4.1)
+    regexp_parser (2.9.0)
+    reline (0.4.2)
       io-console (~> 0.5)
     request_store (1.5.1)
       rack (>= 1.4)
@@ -478,11 +485,11 @@ GEM
     rouge (4.2.0)
     rtlcss (0.2.1)
       mini_racer (>= 0.6.3)
-    rubocop (1.59.0)
+    rubocop (1.60.0)
       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)
@@ -491,17 +498,17 @@ GEM
       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.34.1)
+    rubocop-minitest (0.34.4)
       rubocop (>= 1.39, < 2.0)
       rubocop-ast (>= 1.30.0, < 2.0)
-    rubocop-performance (1.20.0)
+    rubocop-performance (1.20.2)
       rubocop (>= 1.48.1, < 2.0)
       rubocop-ast (>= 1.30.0, < 2.0)
-    rubocop-rails (2.23.0)
+    rubocop-rails (2.23.1)
       activesupport (>= 4.2.0)
       rack (>= 1.1)
       rubocop (>= 1.33.0, < 2.0)
@@ -547,7 +554,7 @@ GEM
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
     stringio (3.1.0)
-    strong_migrations (1.6.4)
+    strong_migrations (1.7.0)
       activerecord (>= 5.2)
     terminal-table (3.0.2)
       unicode-display_width (>= 1.1.1, < 3)
@@ -559,6 +566,7 @@ 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)
index ec219b504a2002ac7bd9cd8891baeb4ec793798f..63aad6f1a267bd1a60c82f47fbd7e7e768ddcdfc 100644 (file)
@@ -23,7 +23,7 @@ of packages required before you can get the various gems installed.
 ## Minimum requirements
 
 * Ruby 3.0+
-* PostgreSQL 12+
+* 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 b9da5d08ac596166124884cc2864eb31155be342..c7080595c7b8d010f88a834dfa1b9862684b8ec3 100644 (file)
@@ -25,12 +25,6 @@ class Ability
       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?
@@ -61,7 +55,7 @@ class Ability
           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 4876380d0dd272e708f0180be8b3df13d3d9c88a..0eae46f824294aab6a703987cc80a3d2091c9768 100644 (file)
@@ -5,7 +5,6 @@ class ApiAbility
 
   def initialize(user)
     can :show, :capability
-    can :index, :change
     can :index, :map
     can :show, :permission
     can :show, :version
@@ -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
+      if user&.active?
         can [:comment, :close, :reopen], Note
-        can [:new, :create], Report
         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/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/footway.svg b/app/assets/images/key/cyclemap/footway.svg
deleted file mode 100644 (file)
index ecad174..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='50' height='3'>
-<line x1='-2' x2='52' y1='1.5' y2='1.5' stroke='#bd6d6e' stroke-width='1.5' stroke-dasharray='6 2' />
-</svg>
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/pedestrian.svg b/app/assets/images/key/cyclemap/pedestrian.svg
deleted file mode 100644 (file)
index af8fce1..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='50' height='4'>
-<rect x='-.5' y='.5' width='51' height='3' fill='#e2e3e2' stroke='#9a9a9a' />
-</svg>
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/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/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/bridge.svg b/app/assets/images/key/mapnik/bridge.svg
deleted file mode 100644 (file)
index 4096e81..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='30' height='5' stroke='black'>
-<line y1='0.5' y2='0.5' x2='30' />
-<line y1='4.5' y2='4.5' x2='30' />
-</svg>
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/building15.svg b/app/assets/images/key/mapnik/building15.svg
deleted file mode 100644 (file)
index cc05073..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10'>
-<rect x='.5' y='.5' width='9' height='9' fill='#b9a99c' stroke='#a99a8d' />
-</svg>
diff --git a/app/assets/images/key/mapnik/building16.svg b/app/assets/images/key/mapnik/building16.svg
deleted file mode 100644 (file)
index 6ff2210..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10'>
-<rect x='.5' y='.5' width='9' height='9' fill='#c4b6ab' stroke='#a99a8d' />
-</svg>
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/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/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/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/glacier10.svg b/app/assets/images/key/mapnik/glacier10.svg
deleted file mode 100644 (file)
index be79f23..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='26' height='10'>
-<rect x='.5' y='.5' width='25' height='9' fill='#ddecec' stroke='#9cf' stroke-dasharray='4 2' />
-</svg>
diff --git a/app/assets/images/key/mapnik/glacier5.svg b/app/assets/images/key/mapnik/glacier5.svg
deleted file mode 100644 (file)
index 8e6d368..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='26' height='10'>
-<rect x='.5' y='.5' width='25' height='9' fill='#ddecec' stroke='#9cf' />
-</svg>
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/mainroad8.png b/app/assets/images/key/mapnik/mainroad8.png
deleted file mode 100644 (file)
index 05b4dac..0000000
Binary files a/app/assets/images/key/mapnik/mainroad8.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.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/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/rail12.svg b/app/assets/images/key/mapnik/rail12.svg
deleted file mode 100644 (file)
index 45c76a4..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='3'>
-<rect width='100%' height='100%' fill='#707070' />
-<line x2='100%' y1='50%' y2='50%' stroke='white' stroke-dasharray='8' stroke-dashoffset='2' />
-</svg>
diff --git a/app/assets/images/key/mapnik/rail18.svg b/app/assets/images/key/mapnik/rail18.svg
deleted file mode 100644 (file)
index 5094baf..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='4'>
-<rect width='100%' height='100%' fill='#707070' />
-<line x2='100%' y1='50%' y2='50%' stroke='white' stroke-dasharray='8' stroke-dashoffset='2' stroke-width='2' />
-</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/tram15.svg b/app/assets/images/key/mapnik/tram15.svg
deleted file mode 100644 (file)
index 8f873f7..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='3'>
-<line x2='100%' y1='50%' y2='50%' stroke='#6e6e6e' stroke-width='1.5' />
-</svg>
diff --git a/app/assets/images/key/mapnik/tunnel.svg b/app/assets/images/key/mapnik/tunnel.svg
deleted file mode 100644 (file)
index 05cd7e7..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='30' height='5' stroke='grey' stroke-dasharray='4 2' stroke-dashoffset='-1'>
-<line y1='0.5' y2='0.5' x2='30' />
-<line y1='4.5' y2='4.5' x2='30' />
-</svg>
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/opnvkarte/main_road11.svg b/app/assets/images/key/opnvkarte/main_road11.svg
deleted file mode 100644 (file)
index b03c744..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='4'>
-<rect x='-.5' y='.5' width='53' height='3' fill='#dddddd' stroke='#a1968b' />
-</svg>
diff --git a/app/assets/images/key/opnvkarte/main_road13.svg b/app/assets/images/key/opnvkarte/main_road13.svg
deleted file mode 100644 (file)
index 2d59022..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='8'>
-<rect x='-.5' y='.5' width='53' height='7' fill='#dddddd' stroke='#a1968b' />
-</svg>
diff --git a/app/assets/images/key/opnvkarte/main_road15.svg b/app/assets/images/key/opnvkarte/main_road15.svg
deleted file mode 100644 (file)
index cb53916..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='13'>
-<rect x='-.5' y='.5' width='53' height='12' fill='#dddddd' stroke='#a1968b' />
-</svg>
diff --git a/app/assets/images/key/opnvkarte/main_road17.svg b/app/assets/images/key/opnvkarte/main_road17.svg
deleted file mode 100644 (file)
index de7db0f..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='17'>
-<rect x='-.5' y='.5' width='53' height='16' fill='#dddddd' stroke='#a1968b' />
-</svg>
diff --git a/app/assets/images/key/opnvkarte/motorway13.svg b/app/assets/images/key/opnvkarte/motorway13.svg
deleted file mode 100644 (file)
index c44e777..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='8'>
-<rect x='-.5' y='.5' width='53' height='7' fill='#dddddd' stroke='#6d6d6d' />
-</svg>
diff --git a/app/assets/images/key/opnvkarte/motorway15.svg b/app/assets/images/key/opnvkarte/motorway15.svg
deleted file mode 100644 (file)
index c217bb2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='13'>
-<rect x='-.5' y='.5' width='53' height='12' fill='#dddddd' stroke='#6d6d6d' />
-<line x1='-4' x2='60' y1='6.5' y2='6.5' stroke='#ffffff' stroke-dasharray='12' />
-</svg>
diff --git a/app/assets/images/key/opnvkarte/motorway17.svg b/app/assets/images/key/opnvkarte/motorway17.svg
deleted file mode 100644 (file)
index 36b37db..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='17'>
-<rect x='-1' y='1' width='54' height='15' fill='#dddddd' stroke='#6d6d6d' stroke-width='2' />
-<line x1='-4' x2='60' y1='8.5' y2='8.5' stroke='#ffffff' stroke-dasharray='12' />
-</svg>
diff --git a/app/assets/images/key/opnvkarte/motorway8.svg b/app/assets/images/key/opnvkarte/motorway8.svg
deleted file mode 100644 (file)
index 21f006c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='4'>
-<rect x='-.5' y='.5' width='53' height='3' fill='#dddddd' stroke='#6d6d6d' />
-</svg>
diff --git a/app/assets/images/key/opnvkarte/rail11.svg b/app/assets/images/key/opnvkarte/rail11.svg
deleted file mode 100644 (file)
index 849f5cf..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='3'>
-<rect width='100%' height='100%' fill='#868686' />
-<line x2='100%' y1='50%' y2='50%' stroke='#eeeeee' stroke-dasharray='10 10' stroke-dashoffset='9' />
-</svg>
diff --git a/app/assets/images/key/opnvkarte/rail15.svg b/app/assets/images/key/opnvkarte/rail15.svg
deleted file mode 100644 (file)
index efe7792..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns='http://www.w3.org/2000/svg' width='52' height='4'>
-<rect width='100%' height='100%' fill='#868686' />
-<line x2='100%' y1='50%' y2='50%' stroke='#eeeeee' stroke-dasharray='10 10' stroke-dashoffset='9' stroke-width='2' />
-</svg>
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 e45d28321c859c52ff06a50a2893cec8e35f0920..706647ef51ff4415694c1f035cc58febaec42f6a 100644 (file)
@@ -346,10 +346,6 @@ $(document).ready(function () {
           });
         }
       });
-
-      $(".colour-preview-box").each(function () {
-        $(this).css("background-color", $(this).data("colour"));
-      });
     }
 
     page.unload = function () {
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 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 d598d10e3aa996bc198569d3c8bd37e810056ce5..f0746117d7b53dcd29010e509c1d2225b363835c 100644 (file)
@@ -645,12 +645,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 {
index 6db32797adffe5c582a381f8000781ae4090e97e..1f9574b9cbab8313e7cc0e9b7540c85ae5d9f3fe 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
index 862148b9223548bf1d1aa5a074b37dd21533bcca..3d830c63f7fab352aa47b893a7c3fdfa0d9a9e07 100644 (file)
@@ -50,6 +50,9 @@ class SiteController < ApplicationController
     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
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
index 961be4024657a5eb80d206440461035f780a33af..ab13f93bed402541f31e6d470419128b6b29e6d5 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
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 1bda7dcb7ac8cd08c3f760e132a9faad3c3eb05a..04d9a6c2083a5ed265c77ed0fed7c5c424c8f2a6 100644 (file)
@@ -34,7 +34,11 @@ 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(";", -1).map { |x| linkify(h(x)) }, ";")
     end
index abb512f0d3c60cba5eae288cf03d1b4a77fce1bc..a40fa7086fdf0d1db0a752b99896f8e71f63e7b4 100644 (file)
@@ -1,7 +1,37 @@
 module SvgHelper
-  def solid_svg_tag(width, height, fill, **options)
-    tag.svg :width => width, :height => height, **options do
-      tag.rect :width => "100%", :height => "100%", :fill => fill
+  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
+
+  def stroke_attrs(attrs, prefix)
+    attrs.select { |key| key.start_with?(prefix) }.transform_keys { |key| key.delete_prefix(prefix).prepend("stroke") }
   end
 end
index 8ca186aad92141dcc235c9d7f1b634b3e93c7c1d..d1ad60b2cad9c1d9aa2aa6ce150bd77999edc3ce 100644 (file)
@@ -44,11 +44,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")
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 d0993f7ee2c2e287399a369d0230532de1a01f17..7ca7b7a3b5294a220a201034121987432f76ae92 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_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)
 #
 
 class User < ApplicationRecord
@@ -95,7 +96,7 @@ 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 }
@@ -120,7 +121,6 @@ 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
@@ -140,7 +140,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
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
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 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 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 %>
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>
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 db807d2dfc732fd744335abf2234eb29ccd13dff..4d6be787b93fa5866404c8fc5721afe505382a12 100644 (file)
@@ -4,7 +4,7 @@
 
 <%= render :partial => "heading", :locals => { :active_link_path => inbox_messages_path } %>
 
-<h4><%= render :partial => "message_count" %></h4>
+<%= render :partial => "inbox_count" %>
 
 <% if current_user.messages.size > 0 %>
   <%= render :partial => "messages_table", :locals => { :columns => %w[from subject date], :messages => current_user.messages, :inner_partial => "message_summary" } %>
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 40c74e915762cb918a76233ff6faec6943528cdd..8e97abc7f2ff701d4cd9f67d266856cf7d36bc49 100644 (file)
@@ -4,6 +4,6 @@
 
 <%= render :partial => "heading", :locals => { :active_link_path => muted_messages_path } %>
 
-<h4><%= t ".messages", :count => current_user.muted_messages.size %></h4>
+<%= render :partial => "muted_count" %>
 
 <%= render :partial => "messages_table", :locals => { :columns => %w[from subject date], :messages => current_user.muted_messages, :inner_partial => "message_summary" } %>
index ae8a899c484850b7ab6ec52cc3425dc57a38be9e..65fbaf3261c818aa79613e6b6a3c6b546b69a9b3 100644 (file)
@@ -4,7 +4,7 @@
 
 <%= render :partial => "heading", :locals => { :active_link_path => outbox_messages_path } %>
 
-<h4><%= t ".messages", :count => current_user.sent_messages.size %></h4>
+<%= render :partial => "outbox_count" %>
 
 <% if current_user.sent_messages.size > 0 %>
   <%= render :partial => "messages_table", :locals => { :columns => %w[to subject date], :messages => current_user.sent_messages, :inner_partial => "sent_message_summary" } %>
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..28d048c4a098a727d7f289aec84c61ebce69cd6e 100644 (file)
@@ -5,7 +5,7 @@
   <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>
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 8b61b92bfa5077d8ab726db9ab361876c261761c..82105097e7b409eaffc16f7e1a9bb8f5e25f2784 100644 (file)
@@ -4,14 +4,14 @@
       <% 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["width"] && entry["height"] && entry["fill"] %>
-              <%= solid_svg_tag entry["width"], entry["height"], entry["fill"], :class => "d-block mx-auto" %>
-            <% else %>
+            <% 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>
-            <%= Array(t(".table.entry.#{entry['name']}")).to_sentence %>
+            <%= entry["name"].map { |feature_name| t ".table.entry.#{feature_name}" }.join(" · ") %>
           </td>
         <% end %>
       <% end %>
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 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>
index 0c803ebb03cf3492919d24210c0c6ed4716502c2..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) %>
index 266279f19c526043884bcab34a75ff636c57e229..a78dbb282b482a28db3f4fd81fea6ec9430c3612 100644 (file)
@@ -1,45 +1,57 @@
 mapnik:
   # transportation: roads.mss
-  - { min_zoom:  6, name: motorway, image: motorway.png }
-  - { min_zoom:  6, name: main_road, image: mainroad.png }
-  - { min_zoom:  8, name: main_road, image: mainroad8.png }
-  - { min_zoom: 12, name: main_road, image: mainroad12.png }
-  - { min_zoom: 13, name: track, image: track.png }
-  - { min_zoom: 13, name: bridleway, image: bridleway.png }
-  - { min_zoom: 13, name: cycleway, image: cycleway.png }
-  - { min_zoom: 13, name: footway, image: footway.png }
+  - { 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, image: rail12.svg }
-  - { min_zoom: 18, name: rail, image: rail18.svg }
+  - { 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_only, width: 52, height: 1, fill: "#6e6e6eaa" }
-  - { min_zoom: 14, name: tram_only, width: 52, height: 1, fill: "#6e6e6e" }
-  - { min_zoom: 15, name: tram_only, image: tram15.svg }
-  - { min_zoom: 17, name: tram_only, width: 52, height: 2, fill: "#6e6e6e" }
-  - { min_zoom: 12, name: cable, image: cable.png }
-  - { min_zoom: 11, name: runway, image: runway11.svg }
-  - { min_zoom: 12, name: runway, image: runway12.svg }
-  - { min_zoom: 13, name: runway, image: runway13.svg }
-  - { min_zoom: 14, name: runway, image: runway14.svg }
-  - { min_zoom: 11, name: apron_only, width: 26, height: 10, fill: "#dadae0" } # landcover.mss
+  - { 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, width: 26, height: 10, fill: "#aad3df" }
+  - { name: [lake, reservoir], width: 26, height: 10, fill: "#aad3df" }
   - { name: intermittent_water, image: intermittent_water.svg }
-  - { min_zoom:  5, name: glacier, image: glacier5.svg }
-  - { min_zoom: 10, name: glacier, image: glacier10.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, width: 26, height: 10, fill: "#bddab1" }
-  - { min_zoom: 12, name: forest, width: 26, height: 10, fill: "#add19e" }
-  - { min_zoom:  5, name: orchard, width: 26, height: 10, fill: "#bee5b5" }
-  - { min_zoom: 12, name: orchard, width: 26, height: 10, fill: "#aedfa3" }
-  - { min_zoom:  5, name: grass, width: 26, height: 10, fill: "#d7efc0" }
-  - { min_zoom: 12, name: grass, width: 26, height: 10, fill: "#cdebb0" }
+  - { 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" }
@@ -71,54 +83,81 @@ mapnik:
   - { 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, image: school.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, image: building15.svg }
-  - { min_zoom: 16, name: building, image: building16.svg }
+  - { 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, image: summit.svg } # amenity-points.mss
-  - { min_zoom: 13, name: tunnel, image: tunnel.svg } # roads.mss
-  - { min_zoom: 13, name: bridge, image: bridge.svg } # roads.mss
+  - { 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:  5, name: motorway, width: 50, height: 3, fill: "#9a9ab1" }
-  - { min_zoom: 12, name: motorway, image: motorway12.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, image: trunk12.png }
+  - { 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, image: primary12.png }
+  - { 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, image: secondary12.png }
-  - { min_zoom: 15, name: pedestrian, image: pedestrian.svg }
-  - { min_zoom: 13, name: track, image: track.png }
-  - { min_zoom:  8, name: cycleway, image: cycleway.png }
-  - { min_zoom:  5, name: cycleway_national, width: 50, height: 2, fill: "#fe0000" }
-  - { min_zoom: 13, name: cycleway_national, width: 50, height: 4, fill: "#ffb3b3" }
-  - { min_zoom:  7, name: cycleway_regional, width: 50, height: 2, fill: "#b638fb" }
-  - { min_zoom: 13, name: cycleway_regional, width: 50, height: 4, fill: "#ddb5d9" }
+  - { 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: 13, name: cycleway_local, width: 50, height: 4, fill: "#b2b2ff" }
-  - { min_zoom: 13, name: footway, image: footway.svg }
-  - { min_zoom:  7, name: rail, image: rail.png }
-  - { min_zoom: 14, name: rail, image: rail14.png }
-  - { min_zoom:  9, name: forest, width: 26, height: 10, fill: "#b3d6a4" }
-  - { min_zoom: 10, name: common, width: 26, height: 10, fill: "#c0de9c" }
-  - { min_zoom:  1, name: lake, width: 26, height: 10, fill: "#addeff" }
+  - { 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: 14, name: bicycle_parking, image: bicycle_parking.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, image: rail11.svg }
-  - { min_zoom: 15, name: rail, image: rail15.svg }
+  - { 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" }
@@ -129,10 +168,10 @@ opnvkarte:
   - { 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_only, width: 52, height:  3, fill: "#3333fe" }
-  - { min_zoom: 12, name: tram_only, width: 52, height:  4, fill: "#3333fe" }
-  - { min_zoom: 14, name: tram_only, width: 52, height:  8, fill: "#3333fe" }
-  - { min_zoom: 16, name: tram_only, width: 52, height: 10, fill: "#3333fe" }
+  - { 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" }
@@ -152,19 +191,19 @@ opnvkarte:
   - { 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, image: motorway8.svg }
-  - { min_zoom: 13, name: motorway, image: motorway13.svg }
-  - { min_zoom: 15, name: motorway, image: motorway15.svg }
-  - { min_zoom: 17, name: motorway, image: motorway17.svg }
-  - { min_zoom:  8, name: main_road, width: 52, height: 1, fill: "#5c6d6d88" }
-  - { min_zoom: 11, name: main_road, image: main_road11.svg }
-  - { min_zoom: 13, name: main_road, image: main_road13.svg }
-  - { min_zoom: 15, name: main_road, image: main_road15.svg }
-  - { min_zoom: 17, name: main_road, image: main_road17.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, width: 26, height: 10, fill: "#a1cbea" }
-  - { min_zoom:  8, name: lake, width: 26, height: 10, fill: "#bfd3ef" }
-  - { min_zoom:  4, name: forest, width: 26, height: 10, fill: "#b9c5a3" }
+  - { 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, width: 26, height: 10, fill: "#c2d89a" } # also allotments
+  - { min_zoom: 12, name: [park, allotments], width: 26, height: 10, fill: "#c2d89a" }
index b3254f882f643d27e596399b1ac8039a0f6482b2..8e46d6266467d259323545b24f92191c4bd8a9f7 100644 (file)
@@ -1306,9 +1306,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
@@ -1478,14 +1478,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
@@ -1502,11 +1502,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
@@ -1518,6 +1513,9 @@ 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
@@ -1721,30 +1719,24 @@ af:
           footway: Voetpad
           rail: Spoorweg
           subway: Ondergrondse spoorweg
-          cable:
-          - Sweefspoor
-          - stoelhyser
-          runway:
-          - Aanloopbaan
-          - vliegtuigrybaan
-          apron_only: Lughaweplatform
+          cable_car: Sweefspoor
+          chair_lift: stoelhyser
+          runway: Aanloopbaan
+          taxiway: vliegtuigrybaan
+          apron: Lughaweplatform
           admin: Administratiewe grens
-          forest:
-          - Woud
-          - Bos
+          forest: Woud
+          wood: Bos
           golf: Gholfbaan
           park: Park
-          common:
-          - Gemeen
-          - weiland
+          common: Gemeen
           resident: Woongebied
           retail: Kleinhandel-gebied
           industrial: Nywerheidsgebied
           commercial: Handelsgebied
           heathland: Heide
-          lake:
-          - Meer
-          - reservoir
+          lake: Meer
+          reservoir: reservoir
           farm: Plaas
           brownfield: Braakveldterrein
           cemetery: Begraafplaas
@@ -1753,14 +1745,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
index f698e2cce41ca001bde000c3c31b0b6fd44773d2..8d6ff74d6350af3eda4dc204fd3950631f83664e 100644 (file)
@@ -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,6 +766,8 @@ 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
@@ -912,30 +912,24 @@ aln:
           footway: Këmbësore
           rail: Hekurudhor
           subway: Metro
-          cable:
-          - teleferik
-          - heqë karrige
-          runway:
-          - Aeroporti i pistës
-          - taxiway
-          apron_only: aeroportit Aeroporti
+          cable_car: teleferik
+          chair_lift: heqë karrige
+          runway: Aeroporti i pistës
+          taxiway: taxiway
+          apron: aeroportit Aeroporti
           admin: kufitare administrative
-          forest:
-          - Pyll
-          - Druri
+          forest: Pyll
+          wood: Druri
           golf: fushë e golfit
           park: Park
-          common:
-          - I përbashkët
-          - livadh
+          common: I përbashkët
           resident: Zonë Rezidenciale
           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ë
@@ -944,14 +938,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
index 52f258f89048c6e78fdd15e80a8bfb0f6bfc40c5..ec6693043492e1d5e92006326ffa024ca48874a6 100644 (file)
@@ -1481,9 +1481,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: إعادة فتح
@@ -1751,8 +1751,6 @@ ar:
   messages:
     inbox:
       title: الوارد
-      my_inbox: الوارد
-      my_outbox: صندوق الصادر الخاص بي
       messages: لديك %{new_messages} و%{old_messages}
       new_messages:
         one: '%{count} رسالة جديدة'
@@ -1760,11 +1758,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: التعليم كمقروءة
@@ -1784,17 +1785,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}' ولكن الرسالة التي طلبت الرد
         عليها لم تكن مرسلة لذلك المستخدم؛ يُرجَى تسجيل الدخول كمستخدم صحيح للرد."
@@ -1808,9 +1807,14 @@ ar:
         لم تكن من أو إلى ذلك المستخدم؛ يُرجَى تسجيل الدخول كمستخدم صحيح للرد."
     sent_message_summary:
       destroy_button: حذف
+    heading:
+      my_inbox: الوارد
+      my_outbox: صندوق الصادر الخاص بي
     mark:
       as_read: عُلِّمت الرسالة كمقروءة
       as_unread: عُلِّمت الرسالة كغير مقروءة
+    unmute:
+      error: لم يتم نقل الرسالة إلى صندوق البريد
     destroy:
       destroyed: حُذِفت الرسالة
   passwords:
@@ -2207,31 +2211,24 @@ ar:
           footway: طريق مشاة
           rail: سكة حديدية
           subway: قطار الأنفاق
-          cable:
-          - عربة أسلاك
-          - تلفريك
-          runway:
-          - مدرج مطار
-          - مدرج مطار لمناورات الطائرات
-          apron_only: ساحة مطار
+          cable_car: عربة أسلاك
+          chair_lift: تلفريك
+          runway: مدرج مطار
+          taxiway: مدرج مطار لمناورات الطائرات
+          apron: ساحة مطار
           admin: حدود إدارية
-          forest:
-          - غابة
-          - غابة
+          forest: غابة
+          wood: غابة
           golf: ملعب غولف
           park: منتزه
-          common:
-          - شائع
-          - مرج
-          - حديقة
+          common: شائع
           resident: منطقة سكنية
           retail: منطقة بيع بالمفرق
           industrial: منطقة صناعية
           commercial: منطقة تجارية
           heathland: أرض بور
-          lake:
-          - بحيرة
-          - خزان
+          lake: بحيرة
+          reservoir: خزان
           farm: مزرعة
           brownfield: موقع مخلفات
           cemetery: مقبرة
@@ -2240,14 +2237,12 @@ ar:
           centre: مركز رياضي
           reserve: محمية طبيعية
           military: منطقة عسكرية
-          school:
-          - مدرسة
-          - جامعة
+          school: مدرسة
+          university: جامعة
           building: مبنى كبير
           station: محطة قطار
-          summit:
-          - قمة
-          - ذروة
+          summit: قمة
+          peak: ذروة
           tunnel: غطاء متقطع = نفق
           bridge: غطاء أسود = جسر
           private: وصول خصوصي
@@ -2702,6 +2697,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}
index 13da35bcec0f9ea4efd08fce4ccd11218a97f7b6..26ac7d1cd23ac826768b8e0f0a6682e66fac444d 100644 (file)
@@ -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,6 +687,8 @@ arz:
       unread_button: علّم كغير مقروءة
     sent_message_summary:
       destroy_button: احذف
+    heading:
+      my_inbox: الوارد
     mark:
       as_read: عُلّمت الرساله مقروءة
       as_unread: عُلّمت الرساله كغير مقروءة
@@ -780,26 +780,21 @@ arz:
           footway: طريق مشاة
           rail: سكه حديدية
           subway: قطار الأنفاق
-          runway:
-          - مدرج مطار للإقلاع/الهبوط
-          - مدرج مطار لمناورات الطائرات
-          apron_only: ساحه مطار
+          runway: مدرج مطار للإقلاع/الهبوط
+          taxiway: مدرج مطار لمناورات الطائرات
+          apron: ساحه مطار
           admin: حدود إدارية
-          forest:
-          - غابة
-          - غابة
+          forest: غابة
+          wood: غابة
           golf: ملعب غولف
           park: منتزه
-          common:
-          - شائع
-          - مرج
+          common: شائع
           resident: منطقه سكنية
           retail: منطقه بيع بالمفرق
           industrial: منطقه صناعية
           commercial: منطقه تجارية
-          lake:
-          - بحيرة
-          - خزان
+          lake: بحيرة
+          reservoir: خزان
           farm: أرض زراعية
           cemetery: مقبرة
           allotments: حصص سكنية
@@ -807,14 +802,12 @@ arz:
           centre: مركز رياضي
           reserve: محميه طبيعية
           military: منطقه عسكرية
-          school:
-          - مدرسة
-          - جامعة
+          school: مدرسة
+          university: جامعة
           building: مبنى كبير
           station: محطه قطار
-          summit:
-          - قمة
-          - ذروة
+          summit: قمة
+          peak: ذروة
           private: استخدام خصوصي
           construction: الطرق تحت الإنشاء
   traces:
index 572d8f05db30edbb0ff4414fb2312806b90d2b33..199bddf7550cb8721dd1af49fd79e5ccd5510a02 100644 (file)
@@ -1136,9 +1136,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
@@ -1359,7 +1359,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'
@@ -1367,12 +1366,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
@@ -1395,9 +1396,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
@@ -1414,6 +1412,8 @@ 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
@@ -1706,30 +1706,24 @@ ast:
           footway: Camín peatonal
           rail: Ferrocarril
           subway: Metro
-          cable:
-          - Teleféricu
-          - telesilla
-          runway:
-          - Pista d'aeropuertu
-          - cai de rodaxe
-          apron_only: Aparcamientu d'aviones
+          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
-          - Viesca
+          forest: Área forestal
+          wood: Viesca
           golf: Campu de golf
           park: Parque
-          common:
-          - Espaciu comunal
-          - prau
+          common: Espaciu comunal
           resident: Área residencial
           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
@@ -1738,14 +1732,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
index f7c3ce4b7cd98067bd945d9a2b9b4ee4fa2477b7..97f9e0f31c8979386b070164b205837e0e613523 100644 (file)
@@ -841,7 +841,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'
@@ -849,12 +848,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ə
@@ -874,9 +875,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
@@ -884,6 +882,8 @@ 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
@@ -986,34 +986,27 @@ az:
           footway: Piyada yolu
           rail: Dəmir yolu
           subway: Metro
-          runway:
-          - Aeroport uçuş-enmə zolağı
+          runway: Aeroport uçuş-enmə zolağı
           admin: Administrativ sərhəd
-          forest:
-          - Meşə
+          forest: Meşə
           park: Park
-          common:
-            1: çəmənlik
           resident: Yaşayış sahəsi
           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:
index d8514017419bc5178318a7db5bdc0622cd486797..16cd8d6243ac441fd82415d124f443361d7b4540 100644 (file)
@@ -961,7 +961,6 @@ be-Tarask:
   messages:
     inbox:
       title: Уваходзячыя
-      my_inbox: Мае ўваходзячыя
       messages: Вы маеце %{new_messages} і %{old_messages}
       new_messages:
         one: '%{count} новае паведамленьне'
@@ -971,12 +970,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: Пазначыць як прачытанае
@@ -1000,9 +1001,6 @@ be-Tarask:
         one: Вы маеце %{count} дасланае паведамленьне
         few: Вы маеце %{count} дасланыя паведамленьні
         other: Вы маеце %{count} дасланых паведамленьняў
-      to: Да
-      subject: Тэма
-      date: Дата
       no_sent_messages_html: Вы яшчэ не даслалі паведамленьне. Чаму б не зьвязацца
         з %{people_mapping_nearby_link}?
       people_mapping_nearby: людзьмі, якія жывуць каля Вас
@@ -1019,6 +1017,8 @@ be-Tarask:
         як карыстальнік, адпаведна запыту, каб прачытаць.
     sent_message_summary:
       destroy_button: Выдаліць
+    heading:
+      my_inbox: Мае ўваходзячыя
     mark:
       as_read: Паведамленьне пазначанае як прачытанае
       as_unread: Паведамленьне пазначанае як непрачытанае
@@ -1169,30 +1169,24 @@ be-Tarask:
           footway: Пешаходная дарога
           rail: Чыгунка
           subway: Мэтро
-          cable:
-          - Канатная дарога
-          - крэславы пад’ёмнік
-          runway:
-          - Узьлётная паласа
-          - рулёжная дарога
-          apron_only: Пэрон аэрапорта
+          cable_car: Канатная дарога
+          chair_lift: крэславы пад’ёмнік
+          runway: Узьлётная паласа
+          taxiway: рулёжная дарога
+          apron: Пэрон аэрапорта
           admin: Адміністрацыйная мяжа
-          forest:
-          - Лес
-          - Пушча
+          forest: Лес
+          wood: Пушча
           golf: Поле для гольфу
           park: Парк
-          common:
-          - Грамадзкая зямля
-          - луг
+          common: Грамадзкая зямля
           resident: Жылы раён
           retail: Гандлёвы раён
           industrial: Прамысловы раён
           commercial: Камэрцыйны раён
           heathland: Пусташ
-          lake:
-          - Возера
-          - вадасховішча
+          lake: Возера
+          reservoir: вадасховішча
           farm: Фэрма
           brownfield: Закінутая тэрыторыя
           cemetery: Могілкі
@@ -1201,14 +1195,12 @@ be-Tarask:
           centre: Спартовы цэнтар
           reserve: Запаведнік
           military: Вайсковая тэрыторыя
-          school:
-          - Школа
-          - унівэрсытэт
+          school: Школа
+          university: унівэрсытэт
           building: Значны будынак
           station: Чыгуначная станцыя
-          summit:
-          - Вяршыня
-          - пік
+          summit: Вяршыня
+          peak: пік
           tunnel: Пункцір = тунэль
           bridge: Чорная лінія = мост
           private: Прыватны доступ
index 5f4b64934cb1d38049afc50ca4a28ebfee3299db..ad37e3ec355f91eb35395a975518a58a2d570836 100644 (file)
@@ -1155,9 +1155,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: Пераадчыніць
@@ -1380,7 +1380,6 @@ be:
   messages:
     inbox:
       title: Уваходныя
-      my_inbox: Мае уваходныя
       messages: У вас %{new_messages} і %{old_messages}
       new_messages:
         one: '%{count} новае паведамленне'
@@ -1388,12 +1387,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: Адзначыць як прачытанае
@@ -1416,9 +1417,6 @@ be:
       messages:
         one: Вы адаслалі %{count} паведамленне
         other: Вы адаслалі %{count} паведамленняў
-      to: Каму
-      subject: Тэма
-      date: Дата
       no_sent_messages_html: У вас пакуль няма дасланых паведамленняў. Чаму б не зкаардынавацца
         з %{people_mapping_nearby_link}?
       people_mapping_nearby: людзьмі, што жывуць непадалёку
@@ -1437,6 +1435,8 @@ be:
         як карыстальнік, адпаведна запыту, каб прачытаць.
     sent_message_summary:
       destroy_button: Выдаліць
+    heading:
+      my_inbox: Мае уваходныя
     mark:
       as_read: Паведамленне адмечана прачытаным
       as_unread: Паведамленне адмечана нечытаным
@@ -1724,30 +1724,24 @@ be:
           subway: Метро
           trolleybus: Тралейбус
           bus: Аўтобус
-          cable:
-          - Канатная дарога
-          - Крэсельны пад'ёмнік
-          runway:
-          - Узлетна-пасадачная паласа
-          - рулёжная дарожка
-          apron_only: Перон аэрапорта
+          cable_car: Канатная дарога
+          chair_lift: Крэсельны пад'ёмнік
+          runway: Узлетна-пасадачная паласа
+          taxiway: рулёжная дарожка
+          apron: Перон аэрапорта
           admin: Адміністрацыйная мяжа
-          forest:
-          - Лес
-          - пушча
+          forest: Лес
+          wood: пушча
           golf: Поле для гольфа
           park: Парк
-          common:
-          - Агульныя
-          - луг
+          common: Агульныя
           resident: Жылы раён
           retail: Гандлевая плошча
           industrial: Прамысловая зона
           commercial: Камерцыйная зона
           heathland: Пустка
-          lake:
-          - Возера
-          - вадасховішча
+          lake: Возера
+          reservoir: вадасховішча
           glacier: Ляднік
           farm: Ферма
           brownfield: Ачышчаная пляцоўка для забудовы
@@ -1757,14 +1751,12 @@ be:
           centre: Спартыўны цэнтр
           reserve: Запаведнік
           military: Ваенная зона
-          school:
-          - Школа
-          - універсітэт
+          school: Школа
+          university: універсітэт
           building: Значны будынак
           station: Чыгуначны вакзал
-          summit:
-          - Вяршыня
-          - пік
+          summit: Вяршыня
+          peak: пік
           tunnel: Тунэль (пункцірам)
           bridge: Мост (суцэльная лінія)
           private: Прыватны доступ
index cfc70cad6bd6c8f819a14f799e1a1d7185a713c6..ff1229ca89bed23956008754cc752501364d64e4 100644 (file)
@@ -205,7 +205,7 @@ bg:
       description: iD (браузърен редактор)
     remote:
       name: дистанционно управление
-      description: Ð\94истанционно управление (JOSM, Potlatch или Merkaartor)
+      description: Ð´истанционно управление (JOSM, Potlatch или Merkaartor)
   auth:
     providers:
       none: Нищо
@@ -261,6 +261,8 @@ bg:
         retain_changeset_discussions: Обсъжданията на списъци от промени, ако има
           такива, ще бъдат запазени.
         retain_email: Вашият имейл адрес ще бъде запазен.
+        recent_editing_html: Тъй като сте редактирали наскоро, Вашият акаунт в момента
+          не може да бъде изтрит. Изтриването ще бъде възможно след %{time}.
         confirm_delete: Сигурни ли сте?
         cancel: Отказ
   accounts:
@@ -296,6 +298,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: анонимен
@@ -704,7 +708,7 @@ bg:
           winery: Винарна
           "yes": Работилница
         emergency:
-          access_point: Тчока за достъп
+          access_point: Точка за достъп
           ambulance_station: Станция за линейки
           defibrillator: Дефибрилатор
           fire_extinguisher: Пожарогасител
@@ -1129,9 +1133,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: Отново отвори
@@ -1316,8 +1320,6 @@ bg:
   messages:
     inbox:
       title: Входящи
-      my_inbox: Входяща кутия
-      my_outbox: Изходяща кутия
       messages: Имате %{new_messages} и %{old_messages}
       new_messages:
         one: '%{count} ново съобщение'
@@ -1325,12 +1327,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: Отбелязване като прочетено
@@ -1348,14 +1353,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: картографи в близост
@@ -1371,6 +1372,9 @@ bg:
       back: Назад
     sent_message_summary:
       destroy_button: Изтриване
+    heading:
+      my_inbox: Входяща кутия
+      my_outbox: Изходяща кутия
     mark:
       as_read: Съобщението е отбелязано като прочетено
       as_unread: Съобщението е отбелязано като непрочетено
@@ -1404,6 +1408,7 @@ bg:
       cancel: Отказ
   profiles:
     edit:
+      title: Редактиране на профила
       cancel: Отказ
       image: Изображение
       gravatar:
@@ -1497,6 +1502,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}: Вие сте свободни да я използвате
@@ -1659,30 +1665,24 @@ bg:
           footway: Пътека
           rail: Железен път
           subway: Метро
-          cable:
-          - Кабинков лифт
-          - седалков лифт
-          runway:
-          - Летищна писта
-          - път за рулиране
-          apron_only: Летищен перон
+          cable_car: Кабинков лифт
+          chair_lift: седалков лифт
+          runway: Летищна писта
+          taxiway: път за рулиране
+          apron: Летищен перон
           admin: Административна граница
-          forest:
-          - Гора
-          - Дървета
+          forest: Гора
+          wood: Дървета
           golf: Игрище за голф
           park: Парк
-          common:
-          - Обща
-          - ливада
+          common: Обща
           resident: Жилищна зона
           retail: Търговска зона
           industrial: Промишлена зона
           commercial: Търговска зона
           heathland: Пустош
-          lake:
-          - Езеро
-          - язовир
+          lake: Езеро
+          reservoir: язовир
           farm: Ферма
           brownfield: Място за строеж
           cemetery: Гробище
@@ -1691,14 +1691,12 @@ bg:
           centre: Спортен център
           reserve: Природен резерват
           military: Военна зона
-          school:
-          - Училище
-          - университет
+          school: Училище
+          university: Университет
           building: Значима сграда
           station: Железопътна гара
-          summit:
-          - Било
-          - връх
+          summit: Било
+          peak: връх
           tunnel: Тунел (пунктирана линия)
           bridge: Мост (плътна линия)
           private: Частен достъп
@@ -1855,7 +1853,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} достъп до вашия профил.
@@ -1928,6 +1926,8 @@ bg:
       my_preferences: Предпочитания
       blocks on me: Блокирани от мен
       blocks by me: Блокирани от мен
+      create_mute: Заглушаване на потребителя
+      edit_profile: Редактиране на профила
       send message: Изпратете съобщение
       diary: Дневник
       edits: Промени
@@ -1984,6 +1984,8 @@ bg:
     edit:
       title: Промяна на блокирането на %{name}
       heading_html: Промяна на блокирането на %{name}
+    filter:
+      block_expired: Блокирането вече е изтекло и не може да се редактира.
     revoke:
       revoke: Анулиране!
     helper:
@@ -2023,6 +2025,11 @@ bg:
       showing_page: Страница %{page}
       next: Следваща »
       previous: « Предишна
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: Действия
   notes:
     index:
       title: Бележки създадени или с коментар от %{user}
@@ -2133,6 +2140,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: Разстояние
index f033732c19c09efd90c985abb8a9c35d01172911..8217c7ad2502cf37785f944d8e2e98d3e0af3359 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}টি সম্পর্ক'
@@ -549,7 +550,7 @@ bn:
       login_to_leave_a_comment_html: মন্তব্য করতে %{login_link} করুন
       login: প্রবেশ
     no_such_entry:
-      title: এমন কোন দিনলিপির ভুক্তি নেই
+      title: এমন কোন দিনলিপির ভুক্তি নেই
       heading: '%{id} এই আইডি থেকে কোনও ভুক্তি নেই'
       body: দুঃখিত, %{id} এই আইডি থেকে কোনও দিনলিপির ভুক্তি অথবা মন্তব্য নেই। দয়া
         করে আপনার বানান যাচাই করুন, অথবা হতে পারে আপনি যে লিংকটিতে ক্লিক করেছেন তা
@@ -615,7 +616,7 @@ bn:
       title: নিষিদ্ধ
     internal_server_error:
       title: অ্যাপ্লিকেশন ত্রুটি
-      description: ওপেনস্ট্রিটম্যাপ সার্ভার কোন অপ্রত্যাশিত অবস্থার সম্মুখীন হয়েছে
+      description: ওপেনস্ট্রিটম্যাপ সার্ভার কোন অপ্রত্যাশিত অবস্থার সম্মুখীন হয়েছে
         যার ফলে অনুরোধ পূরণ করা যাচ্ছে না (HTTP ৫০০)
     not_found:
       title: ফাইল পাওয়া যায়নি
@@ -1445,8 +1446,6 @@ bn:
   messages:
     inbox:
       title: ইনবক্স
-      my_inbox: আমার ইনবক্স
-      my_outbox: আমার আউটবক্স
       messages: আপনার %{new_messages} ও %{old_messages} রয়েছে
       new_messages:
         one: '%{count}টি নতুন বার্তা'
@@ -1454,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: বার্তা পড়ুন
@@ -1496,6 +1493,9 @@ bn:
       back: পিছনে
     sent_message_summary:
       destroy_button: অপসারণ
+    heading:
+      my_inbox: আমার ইনবক্স
+      my_outbox: আমার আউটবক্স
     mark:
       as_read: বার্তা পঠিত হিসেবে চিহ্নিত করুন
       as_unread: বার্তা অপঠিত হিসেবে চিহ্নিত করুন
@@ -1585,6 +1585,7 @@ bn:
       image: ছবি
       alt: বিকল্প পাঠ্য
       url: ইউআরএল
+      codeblock: কোড ব্লক
     richtext_field:
       edit: সম্পাদনা
       preview: প্রাকদর্শন
@@ -1657,7 +1658,7 @@ bn:
       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: ওএসএম জগৎ
@@ -1741,41 +1742,35 @@ bn:
           train: রেলগাড়ি
           subway: ভূগর্ভস্থ পথ
           ferry: ফেরি
-          tram_only: ট্রাম
+          tram: ট্রাম
           bus: বাস
-          cable:
-          - ক্যাবল কার
+          cable_car: ক্যাবল কার
           admin: প্রশাসনিক সীমানা
-          orchard:
-          - ফলবাগিচা
-          forest:
-          - অরণ্য
-          - কাঠ
+          orchard: ফলবাগিচা
+          vineyard: আঙুর খেত
+          forest: অরণ্য
+          wood: কাঠ
           farmland: কৃষিজমি
-          grass:
-            1: তৃণভূমি
+          meadow: তৃণভূমি
           sand: বালু
           golf: গল্ফ মাঠ
           park: উদ্যান
-          common:
-          - সাধারণ
+          common: সাধারণ
           resident: আবাসিক এলাকা
           industrial: শিল্পাঞ্চল
           commercial: বাণিজ্যিক এলাকা
-          lake:
-          - হ্রদ
-          - জলাধার
+          lake: হ্রদ
+          reservoir: জলাধার
           glacier: হিমবাহ
           farm: খামার
           cemetery: কবরস্থান
           centre: ক্রীড়া কেন্দ্র
           military: সামরিক এলাকা
-          school:
-          বিদ্যালয়
-          - বিশ্ববিদ্যালয়
+          school: বিদ্যালয়
+          university: বিশ্ববিদ্যালয়
+          hospital: হাসপাতাল
           station: রেল স্টেশন
-          summit:
-            1: শৃঙ্গ
+          peak: শৃঙ্গ
           bus_stop: বাস স্টপ
           stop: স্টপ
           bicycle_shop: সাইকেলের দোকান
@@ -1934,9 +1929,9 @@ bn:
         সিদ্ধান্ত নিয়েছেন। আরও তথ্যের জন্য, অনুগ্রহ করে %{terms_declined_link} দেখুন।
       terms_declined_link: এই উইকি পাতা
     no_such_user:
-      title: এরকম কোন ব্যবহারকারী নেই
+      title: এরকম কোন ব্যবহারকারী নেই
       heading: ব্যবহারকারী %{user} বিদ্যমান নয়
-      body: দুঃখিত, %{user} নামের কোন ব্যবহারকারী নেই। অনুগ্রহ করে আপনার বানান পরীক্ষা
+      body: দুঃখিত, %{user} নামের কোন ব্যবহারকারী নেই। অনুগ্রহ করে আপনার বানান পরীক্ষা
         করুন, অথবা হয়ত আপনি যে সংযোগটিতে টোকা দিয়েছেন সেটি ভুল।
       deleted: অপসারিত
     show:
@@ -1990,7 +1985,7 @@ bn:
       summary_no_ip_html: '%{date}-এ %{name} তৈরি হয়েছে'
       confirm: নির্বাচিত ব্যবহারকারীদের নিশ্চিত করুন
       hide: নির্বাচিত ব্যবহারকারীদের লুকান
-      empty: কোন সাদৃশ্যপূর্ণ ব্যবহারকারী পাওয়া যায়নি
+      empty: কোন সাদৃশ্যপূর্ণ ব্যবহারকারী পাওয়া যায়নি
     suspended:
       title: অ্যাকাউন্ট স্থগিত করা হয়েছে
       heading: অ্যাকাউন্ট স্থগিত করা হয়েছে
@@ -2011,7 +2006,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: বর্তমান ব্যবহারকারীর থেকে প্রশাসকের ভূমিকা প্রত্যাহার
@@ -2040,6 +2035,8 @@ bn:
     revoke:
       revoke: প্রত্যাহার!
       flash: এই অবরোধ প্রত্যাহার করা হয়েছে।
+    revoke_all:
+      revoke: প্রত্যাহার!
     helper:
       block_duration:
         hours:
@@ -2059,6 +2056,11 @@ bn:
       display_name: বাধাপ্রাপ্ত ব্যবহারকারী
       next: পরবর্তী »
       previous: « পূর্ববর্তী
+  user_mutes:
+    index:
+      table:
+        tbody:
+          send_message: বার্তা পাঠান
   notes:
     show:
       title: 'টীকা: %{id}'
index a31fddd8a6cfc6b7fc16f21a486314c4e6e7e9f5..6292a37ec77a7d45127a872da0a03ec15592cb67 100644 (file)
@@ -57,6 +57,12 @@ br:
       messages:
         invalid_email_address: ne ziskouez ket bezañ ur chomlec'h postel mat
         email_address_not_routable: n'haller ket routañ
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: a zo bet kuzhet dija
     models:
       acl: Listenn kontroll moned
       changeset: Hollad cheñchamantoù
@@ -1479,9 +1485,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ñ
@@ -1753,8 +1759,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'
@@ -1762,17 +1766,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}
@@ -1787,17 +1795,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
@@ -1813,9 +1819,16 @@ 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:
@@ -1837,6 +1850,7 @@ br:
       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ù
@@ -2069,6 +2083,7 @@ 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:
@@ -2226,41 +2241,36 @@ br:
           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
           ferry: Karrlistri
           light_rail: Metro skañv
-          tram_only: Tramgarr
+          tram: Tramgarr
           trolleybus: Trollebus
           bus: Karr-boutin
-          cable:
-          - Teleferik
-          - fungador
-          runway:
-          - Roudenn evit an taksioù
-          - Roudenn evit an taksioù
-          apron_only: Roudenn aerborzh
+          cable_car: Teleferik
+          chair_lift: Fungador
+          runway: Roudenn evit an taksioù
+          taxiway: Hent evit an taksioù
+          apron: Roudenn aerborzh
           admin: Bevenn velestradurel
-          orchard:
-          - Gwerje
-          - gwinieg
-          forest:
-          - Koad
-          - koad
+          capital: Kêr-benn
+          city: Kêr
+          orchard: Gwerje
+          vineyard: Gwinieg
+          forest: Koad
+          wood: Koad
           farmland: Tachenn labour-douar
-          grass:
-          - Geot
-          - prad
+          grass: Geot
+          meadow: Prad
           bare_rock: Roc'h noazh
           sand: Traezh
           golf: Tachenn golf
           park: Park
-          common:
-          - prad
-          - prad
-          - liorzh
+          common: prad
           built_up: Takad savet
           resident: Takad annez
           retail: Takad kenwerzh
@@ -2268,9 +2278,8 @@ br:
           commercial: Takad kenwerzhel
           heathland: Lanneier
           scrubland: Strouezheg
-          lake:
-          - Lenn
-          - mirlec'h
+          lake: Lenn
+          reservoir: Mirlenn
           glacier: Skorneg
           reef: Karreg
           wetland: Takad gleborek
@@ -2282,15 +2291,13 @@ br:
           centre: Kreizenn sport
           reserve: Gwarezva natur
           military: Takad milourel
-          school:
-          - Skol
-          - skol-veur
-          - ospital
+          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
@@ -2338,6 +2345,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
@@ -2481,6 +2489,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
@@ -2587,6 +2596,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:
@@ -2599,6 +2609,7 @@ br:
       application: Sevenidigezh
       permissions: Aotreoù
       no_applications_html: N'ho peus ket aotreet goulenn %{oauth2} ebet c'hoazh.
+      oauth_2: OAuth 2
     application:
       revoke: Nullañ ar moned
       confirm_revoke: Nullañ ar moned evit ar goulenn-mañ?
@@ -2654,18 +2665,19 @@ 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ñ
       edit_profile: Aozañ ar profil
       send message: Kas ur gemennadenn
       diary: deizlevr
@@ -2690,9 +2702,11 @@ br:
         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ù
@@ -2805,6 +2819,8 @@ br:
       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.
@@ -2878,6 +2894,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}
index d4c1f28f3b3f16923ed13ed9c2f0fb5b81f54536..bf3d2e0a46e6cd4869221afebb107612bfcbc414 100644 (file)
@@ -955,7 +955,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'
@@ -963,12 +962,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
@@ -991,9 +992,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
@@ -1011,6 +1009,8 @@ 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
@@ -1196,30 +1196,24 @@ bs:
           footway: Pješačka staza
           rail: Željeznica
           subway: Podzemna željeznica
-          cable:
-          - Kabinska žičara
-          - Uspinjača sa naslonjačem
-          runway:
-          - Aerodromska pista
-          - Aerodromska rulna staza
-          apron_only: Parking za avione
+          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)
-          - Šume (prirodne, neodržavane)
+          forest: Šume (održavane, od šumarije)
+          wood: Šume (prirodne, neodržavane)
           golf: Golf teren
           park: Park
-          common:
-          - Travnjaci
-          - Livada
+          common: Travnjaci
           resident: Stambeno područje
           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
@@ -1228,14 +1222,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
index 08e59e4bd90af3bb4eaf70d757db6e4dc5e1a53b..9588360d3f64b7611736bbacc61b0d00995ca617 100644 (file)
@@ -1474,9 +1474,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
@@ -1760,8 +1760,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'
@@ -1769,16 +1767,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}
@@ -1793,17 +1795,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
@@ -1819,9 +1819,16 @@ 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:
@@ -2065,6 +2072,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».'
@@ -2281,6 +2291,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
@@ -2289,32 +2300,44 @@ ca:
           cycleway_local: Carril bici local
           footway: Via de vianants
           rail: Ferrocarril
+          train: Tren
           subway: Metro
-          cable:
-          - Telefèric
-          - telecadira
-          runway:
-          - Pista d'aeroport
-          - carrer de rodatge
-          apron_only: Estacionament d'avions
+          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
-          forest:
-          - Bosc
-          - Fusta
+          orchard: Hort
+          vineyard: Vinya
+          forest: Bosc
+          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
-          - prat
-          - jardí
+          common: Àrea comunal
+          built_up: Zona edificada
           resident: Zona residencial
           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
@@ -2323,19 +2346,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
index b8f68465f2b769595306c283906a486dbfa92bfd..072456454c64eb07f6c5a1333d612b0d77dc0c3d 100644 (file)
@@ -738,7 +738,9 @@ ce:
   messages:
     inbox:
       title: ЧуйогӀурш
+    messages_table:
       from: Хьаьнгара
+      to: Хьаьнга
       subject: Тема
       date: Терахь
     message_summary:
@@ -748,9 +750,6 @@ ce:
       back_to_inbox: ЧубогӀучаьрга йуханехьа
     outbox:
       title: ДӀайохьуьйтурш
-      to: Хьаьнга
-      subject: Тема
-      date: Терахь
     show:
       title: Хаамашка хьажар
       reply_button: Жоп ло
index 6207523811a25f522b88efd2bb494e0eda1b3f87..40f2bc433dabae8187afd65fdca67083c481c1d9 100644 (file)
@@ -1542,9 +1542,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
@@ -1827,8 +1827,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'
@@ -1838,12 +1836,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é
@@ -1863,15 +1863,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íž
@@ -1890,6 +1885,9 @@ 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á
@@ -2395,31 +2393,24 @@ cs:
           footway: Pěší cesta
           rail: Železnice
           subway: Metro
-          cable:
-          - Lanovka
-          - sedačková lanovka
-          runway:
-          - Vzletová a přistávací dráha
-          - pojezdová dráha
-          apron_only: Letištní odbavovací plocha
+          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
-          - Les
+          forest: Les
+          wood: Les
           golf: Golfové hřiště
           park: Park
-          common:
-          - Pastvina
-          - louka
-          - zahrada
+          common: Pastvina
           resident: Obytná oblast
           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
@@ -2428,14 +2419,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
index 16052c304b68ed482c9d04acce1599ad6b838d45..f3b5fa772dc286078a64564385f81d9049c127d1 100644 (file)
@@ -44,6 +44,11 @@ cy:
       messages:
         invalid_email_address: nid yw'n ymddangos ei fod yn gyfeiriad e-bost dilys
         email_address_not_routable: nid yw'n gyrchadwy
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
     models:
       acl: Rhestr Rheoli Mynediad
       changeset: Grŵp newid
@@ -819,11 +824,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ŷ
@@ -831,11 +840,13 @@ 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
           shed: Sied
           stable: Stabl
@@ -1387,14 +1398,16 @@ 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
       read_reports: Darllen Adroddiadau
       new_reports: Adroddiadau Newydd
+    comments:
+      comment_from_html: Sylw gan %{user_link} ar %{comment_created_at}
     reports:
       reported_by_html: Adroddwyd fel %{category} gan %{user} ar %{updated_at}
     helper:
@@ -1524,12 +1537,15 @@ cy:
       hi: Helo %{to_user},
       greeting: Helo,
       commented:
+        subject_own: '[OpenStreetMap] Gwnaeth %{commenter} sylw 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
   confirmations:
     confirm:
       heading: Gwiriwch eich e-byst!
+      introduction_1: Rydym wedi anfon e-bost cadarnhau atoch.
       button: Cadarnhau
       click_here: cliciwch yma
     confirm_resend:
@@ -1542,8 +1558,6 @@ cy:
   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'
@@ -1559,15 +1573,19 @@ cy:
         few: '%{count} hen neges'
         many: '%{count} hen neges'
         other: '%{count} hen neges'
+      people_mapping_nearby: person 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}
@@ -1582,14 +1600,10 @@ 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
       people_mapping_nearby: pobl yn mapio gerllaw
     show:
       title: Darllen neges
@@ -1599,6 +1613,9 @@ cy:
       back: Yn ôl
     sent_message_summary:
       destroy_button: Dileu
+    heading:
+      my_inbox: Fy Mewnflwch
+      my_outbox: Fy Mlwch Allan
     mark:
       as_read: Nodwyd fod y neges wedi ei ddarllen
       as_unread: Nodwyd nad yw'r neges wedi ei ddarllen
@@ -1712,6 +1729,7 @@ cy:
       image: Delwedd
       alt: Testun amgen
       url: URL
+      codeblock: Bloc cod
     richtext_field:
       edit: Golygu
       preview: Rhagolwg
@@ -1926,32 +1944,45 @@ cy:
           cycleway_local: Llwybr beiciau lleol
           footway: Troedffordd
           rail: Rheilffordd
+          train: Trên
           subway: Trenau tanddaear
-          cable:
-          - Car cebl
-          - lifft cadair
-          runway:
-          - Llwybr glanio
-          - thacsiffordd maes awyr
-          apron_only: Llain
+          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
-          forest:
-          - Coedwig
-          - Coedlan
+          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
-          - gwaun
-          - gardd
+          common: Comin
+          built_up: Ardal Adeiledig
           resident: Ardal breswyl
           retail: Ardal adwerthu
           industrial: Ardal ddiwydiannol
           commercial: Ardal fasnachol
           heathland: Rhos
-          lake:
-          - Llyn
-          - chronfa ddŵr
+          scrubland: Prysgoed
+          lake: Llyn
+          reservoir: Cronfa Ddŵr
+          glacier: Rhewlif
+          reef: Riff
+          wetland: Gwlyptir
           farm: Fferm
           brownfield: Safle tir llwyd
           cemetery: Mynwent
@@ -1960,19 +1991,20 @@ cy:
           centre: Canolfan chwaraeon
           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: Copa
+          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
@@ -2144,6 +2176,7 @@ cy:
       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:
@@ -2196,6 +2229,7 @@ cy:
     index:
       application: Ap
       permissions: Caniatadau
+      oauth_2: OAuth 2
   users:
     new:
       title: Cofrestru
@@ -2204,6 +2238,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!
@@ -2242,6 +2277,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
@@ -2262,6 +2299,15 @@ 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
       comments: Sylwadau
@@ -2383,6 +2429,15 @@ cy:
       showing_page: Tudalen %{page}
       next: Nesaf »
       previous: « Blaenorol
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: Gweithredoedd
+        tbody:
+          send_message: Anfon neges
+    create:
+      notice: Rydych chi wedi anwybyddu %{name}.
   notes:
     index:
       heading: Nodiadau %{user}
@@ -2450,6 +2505,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:
index b4aab0c729e2ea3e08a190ade36e7e010828fb25..929a7e0af3e595238d04db10b3065e4e532cf787 100644 (file)
@@ -74,6 +74,9 @@ da:
       messages:
         invalid_email_address: ser ikke ud til at være en gyldig e-mailadresse
         email_address_not_routable: kan ikke rutes
+      models:
+        user_mute:
+          is_already_muted: er allerede gjort stille
     models:
       acl: Adgangskontrolliste
       changeset: Ændringssæt
@@ -1490,9 +1493,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
@@ -1773,8 +1776,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'
@@ -1782,17 +1783,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}
@@ -1807,17 +1812,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
@@ -1833,9 +1839,16 @@ 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:
@@ -1963,6 +1976,7 @@ da:
       image: Billede
       alt: Alt-tekst
       url: URL
+      codeblock: Kodeblok
     richtext_field:
       edit: Rediger
       preview: Forhåndsvisning
@@ -2100,6 +2114,10 @@ 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_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
@@ -2333,41 +2351,36 @@ da:
           cycleway_national: National cykelsti
           cycleway_regional: Regional cykelsti
           cycleway_local: Lokal cykelsti
+          cycleway_mtb: Mountainbikerute
           footway: Gangsti
           rail: Jernbane
           train: Tog
           subway: Undergrundsbane
           ferry: Færge
           light_rail: Letbane
-          tram_only: Sporvogn
+          tram: Sporvogn
           trolleybus: Trolleybus
           bus: Bus
-          cable:
-          - Kabelvogn
-          - stolelift
-          runway:
-          - Landingsbane
-          - taxibane
-          apron_only: Lufthavnsforplads
+          cable_car: Kabelvogn
+          chair_lift: Stolelift
+          runway: Landingsbane
+          taxiway: Rullevej
+          apron: Lufthavnsforplads
           admin: Administrativ grænse
-          orchard:
-          - Plantage
-          - vingård
-          forest:
-          - Skov
-          - t
+          capital: Hovedstad
+          city: By
+          orchard: Plantage
+          vineyard: Vingård
+          forest: Skov
+          wood: T
           farmland: Landbrugsjord
-          grass:
-          - Græs
-          - eng
+          grass: Græs
+          meadow: Eng
           bare_rock: Blottet klippe
           sand: Sand
           golf: Golfbane
           park: Park
-          common:
-          - Fælled
-          - eng
-          - have
+          common: Fælled
           built_up: Bebygget område
           resident: Boligområde
           retail: Detailhandelsområde
@@ -2375,9 +2388,8 @@ da:
           commercial: Erhvervsområde
           heathland: Hede
           scrubland: Buskads
-          lake:
-          - Sø
-          - reservoir
+          lake: Sø
+          reservoir: Reservoir
           intermittent_water: Periodisk vandmasse
           glacier: Gletsjer
           reef: Rev
@@ -2390,15 +2402,13 @@ da:
           centre: Sportscenter
           reserve: Naturreservat
           military: Militært område
-          school:
-          - Skole
-          - universitet
-          - sygehus
+          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
@@ -2450,6 +2460,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
@@ -2607,6 +2618,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
@@ -2643,6 +2655,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:
@@ -2814,6 +2827,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
@@ -2834,14 +2849,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
@@ -2954,6 +2973,16 @@ da:
       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å.
@@ -3012,6 +3041,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}
@@ -3048,6 +3100,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
index 25943af1aab8044f29ef3f5387c276ede88d0741..ab879429d350658fd5fa210ef31fe3011cdff556 100644 (file)
@@ -16,6 +16,7 @@
 # Author: Bxalber
 # Author: Campmaster
 # Author: Candid Dauth
+# Author: Caro
 # Author: CarstenG
 # Author: ChrisiPK
 # Author: ChristianSW
@@ -98,6 +99,7 @@
 # Author: Thomas Bohn
 # Author: Til
 # Author: Timonade
+# Author: Twistqj
 # Author: Umherirrender
 # Author: Unkn0wnCat
 # Author: Vrifox
@@ -144,6 +146,9 @@ de:
       messages:
         invalid_email_address: scheint keine gültige E-Mail-Adresse zu sein
         email_address_not_routable: ist nicht routingfähig
+      models:
+        user_mute:
+          is_already_muted: ist bereits stummgeschaltet
     models:
       acl: Zugriffssteuerungsliste
       changeset: Änderungssatz
@@ -1557,9 +1562,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
@@ -1851,8 +1856,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'
@@ -1860,12 +1863,14 @@ 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
     message_summary:
       unread_button: Als ungelesen markieren
       read_button: Als gelesen markieren
@@ -1885,14 +1890,9 @@ de:
       body: Leider gibt es keine Nachricht mit dieser ID.
     outbox:
       title: Gesendet
-      my_inbox: Mein Posteingang
-      my_outbox: Mein Postausgang
       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
@@ -1911,6 +1911,9 @@ de:
         Lesen mit dem richtigen Benutzer an.
     sent_message_summary:
       destroy_button: Löschen
+    heading:
+      my_inbox: Posteingang
+      my_outbox: Mein Postausgang
     mark:
       as_read: Nachricht als gelesen markiert
       as_unread: Nachricht als ungelesen markiert
@@ -2403,6 +2406,7 @@ de:
           primary: Bundesstraße
           secondary: Landes-, Kreisstraße
           unclassified: Straße
+          pedestrian: Fußgängerzone
           track: Wald-, Feldweg
           bridleway: Reitweg
           cycleway: Radweg
@@ -2412,31 +2416,25 @@ de:
           footway: Fußweg
           rail: Eisenbahn
           subway: U-Bahn
-          cable:
-          - Seilbahn
-          - Sessellift
-          runway:
-          - Start- und Landebahn
-          - Rollbahn
-          apron_only: Flughafenvorfeld
+          cable_car: Seilbahn
+          chair_lift: Sessellift
+          runway: Start- und Landebahn
+          taxiway: Rollbahn
+          apron: Flughafenvorfeld
           admin: Landesgrenzen, sonstige Grenzen
-          forest:
-          - Wald
-          - Wald
+          forest: Wald
+          wood: Wald
           golf: Golfplatz
           park: Park
-          common:
-          - öffentliche Grünfläche (brit.)
-          - Wiese
-          - Garten
+          common: öffentliche Grünfläche (brit.)
           resident: Wohngebiet
           retail: Einkaufszentrum
           industrial: Industriegebiet
           commercial: Gewerbegebiet
           heathland: Heide
-          lake:
-          - See
-          - Stausee
+          lake: See
+          reservoir: Stausee
+          intermittent_water: Intermittierender Gewässer
           farm: Landwirtschaft
           brownfield: Brachfläche
           cemetery: Friedhof
@@ -2445,14 +2443,12 @@ de:
           centre: Sportzentrum
           reserve: Naturschutzgebiet
           military: Militärgebiet
-          school:
-          - Schule
-          - Universität
+          school: Schule, Universität
+          university: Universität
           building: Bedeutendes Gebäude
           station: Bahnhof
-          summit:
-          - Gipfel
-          - Bergspitze
+          summit: Gipfel
+          peak: Bergspitze
           tunnel: Gestrichelter Rand = Tunnel
           bridge: Schwarzer Rand = Brücke
           private: Privater Zugang
index 1cc685d29d73a23dec8f8a30335933bdc0be107d..7a1c18359558a55c0a9e469ca5a57da3006b4395 100644 (file)
@@ -805,8 +805,9 @@ diq:
   messages:
     inbox:
       title: Ameyan
-      my_inbox: Amayenê mı
+    messages_table:
       from: Rıştoğ
+      to: Gırewtoğ
       subject: Mewzu
       date: Tarix
     message_summary:
@@ -816,9 +817,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
@@ -826,6 +824,8 @@ diq:
       back: Peyser
     sent_message_summary:
       destroy_button: Bestere
+    heading:
+      my_inbox: Amayenê mı
   passwords:
     new:
       title: Parolaya vınibyayi
@@ -910,24 +910,19 @@ diq:
           track: Raya Herın
           bridleway: Raya Ancınıştan
           cycleway: Raya Bisiklet
-          forest:
-          - Mêşe
-          - Meşe
+          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:
index a21067b81d17c936787cce1164c7d5fff565f9fc..ae5ed0f7bc96c8a863b9d02b0683a6a19866a037 100644 (file)
@@ -990,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'
@@ -1002,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ś
@@ -1032,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
@@ -1052,6 +1050,8 @@ 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
@@ -1267,30 +1267,24 @@ dsb:
           footway: Drožka
           rail: Zeleznica
           subway: Pódzemska
-          cable:
-          - Kablowa elektriska
-          - sedłowy lift
-          runway:
-          - Pśizemjeńska cera
-          - lětadłowa cera
-          apron_only: Pśedpólo lětanišća
+          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
-          - Lěs
+          forest: Góla
+          wood: Lěs
           golf: Golfowišćo
           park: Park
-          common:
-          - Powšykny
-          - łuka
+          common: Powšykny
           resident: Bydleński wobcerk
           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
@@ -1299,14 +1293,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
index cb6dbda5b6a4af29d9e6e3199e65e5f8afc3fd7a..5dff1525a5a2a7d283b7ef6612715cc5966c8d73 100644 (file)
@@ -80,6 +80,12 @@ el:
       messages:
         invalid_email_address: δεν φαίνεται να είναι έγκυρη διεύθυνση ηλ. ταχυδρομείου
         email_address_not_routable: δεν είναι δρομολογητέο
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: είναι ήδη σε σίγαση
     models:
       acl: Λίστα ελέγχου πρόσβασης
       changeset: Ομάδα αλλαγών
@@ -1514,9 +1520,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: Ξανάνοιγμα
@@ -1807,8 +1814,6 @@ el:
   messages:
     inbox:
       title: Εισερχόμενα
-      my_inbox: Τα εισερχόμενα μου
-      my_outbox: Τα εξερχόμενα μου
       messages: Έχετε %{new_messages} και %{old_messages}
       new_messages:
         one: '%{count} νέο μήνυμα'
@@ -1816,17 +1821,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}
@@ -1841,17 +1850,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}» αλλά το μήνυμα που ζητάτε να απαντήσετε
         δεν έχει σταλεί σε αυτόν το χρήστη. Παρακαλούμε συνδεθείτε με το σωστό όνομα
@@ -1867,9 +1877,16 @@ el:
         χρήστη ώστε να μπορέσετε να το διαβάσετε.
     sent_message_summary:
       destroy_button: Διαγραφή
+    heading:
+      my_inbox: Τα εισερχόμενα μου
+      my_outbox: Τα εξερχόμενα μου
+      muted_messages: Μηνύματα σε Σίγαση
     mark:
       as_read: Το μήνυμα σημειώθηκε ως αναγνωσμένο
       as_unread: Το μήνυμα σημειώθηκε ως μη αναγνωσμένο
+    unmute:
+      notice: Το μήνυμα μετακινήθηκε στα Εισερχόμενα
+      error: Δεν ήταν δυνατή η μετακίνηση του μηνύματος στα Εισερχόμενα.
     destroy:
       destroyed: Το μήνυμα διαγράφηκε
   passwords:
@@ -1893,6 +1910,7 @@ el:
       flash token bad: Δεν βρήκατε αυτό το κομμάτι, μήπως πρέπει να ελέγξετε το URL;
     update:
       flash changed: Το συνθηματικό σας άλλαξε!
+      flash token bad: Δεν βρέθηκε αυτό το token, ελέγξτε ίσως τη διεύθυνση URL;
   preferences:
     show:
       title: Οι προτιμήσεις μου
@@ -1998,6 +2016,7 @@ el:
       image: Εικόνα
       alt: Εναλ. κείμενο
       url: URL
+      codeblock: Μπλοκ κώδικα
     richtext_field:
       edit: Επεξεργασία
       preview: Προεπισκόπηση
@@ -2042,6 +2061,8 @@ el:
         Παρακαλούμε %{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:
@@ -2066,6 +2087,8 @@ el:
         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
@@ -2149,6 +2172,9 @@ el:
           %{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, παρέχει
@@ -2165,6 +2191,10 @@ el:
         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
@@ -2331,40 +2361,51 @@ el:
           primary: Κύρια Οδός
           secondary: Δευτερεύουσα Οδός
           unclassified: Αταξινόμητη Οδός
+          pedestrian: Πεζόδρομος
           track: Αγροτικός / Δασικός δρόμος
           bridleway: Μονοπάτι για Άλογα
           cycleway: Ποδηλατόδρομος
           cycleway_national: Εθνικός ποδηλατόδρομος
           cycleway_regional: Περιφερειακός ποδηλατόδρομος
           cycleway_local: Τοπικός ποδηλατόδρομος
+          cycleway_mtb: Ορεινή ποδηλατική διαδρομή
           footway: Μονοπάτι
           rail: Σιδηρόδρομος
+          train: Τρένο
           subway: Υπόγειος Σιδηρόδρομος
-          cable:
-          - Τελεφερίκ
-          - τελεφερίκ με καθίσματα
-          runway:
-          - Διάδρομος Αεροδρομίου
-          - τροχόδρομος
-          apron_only: Πίστα προσγείωσης αεροδρομίου
+          ferry: Πορθμείο
+          light_rail: Ελαφρύς σιδηρόδρομος
+          tram: Τραμ
+          trolleybus: Τρόλεϊ
+          bus: Λεωφορείο
+          cable_car: Τελεφερίκ
+          chair_lift: Αναβατήρας
+          runway: Διάδρομος Αεροδρομίου
+          taxiway: Τροχόδρομος
+          apron: Πίστα προσγείωσης αεροδρομίου
           admin: Διοικητικό όριο
-          forest:
-          - Δάσος
-          - Φυσικό δάσος
+          capital: Πρωτεύουσα
+          city: Πόλη
+          vineyard: Αμπελώνας
+          forest: Δάσος
+          wood: Φυσικό δάσος
+          grass: Γρασίδι
+          meadow: Λιβάδι
+          bare_rock: Γυμνός βράχος
+          sand: Άμμος
           golf: Γήπεδο γκολφ
           park: Πάρκο
-          common:
-          - Κοινόχρηστο
-          - λιβάδι
-          - κήπος
+          common: Κοινόχρηστο
+          built_up: Δομημένη περιοχή
           resident: Κατοικημένη περιοχή
           retail: Περιοχή λιανικού εμπορίου
           industrial: Βιομηχανική περιοχή
           commercial: Εμπορική περιοχή
           heathland: Φρυγανότοπος
-          lake:
-          - Λίμνη
-          - ταμιευτήρας
+          lake: Λίμνη
+          reservoir: Ταμιευτήρας
+          glacier: Παγετώνας
+          reef: Ύφαλος
           farm: Αγρόκτημα
           brownfield: Πρώην βιομηχανική περιοχή
           cemetery: Κοιμητήριο
@@ -2373,19 +2414,20 @@ el:
           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: Τουαλέτες
@@ -2433,6 +2475,7 @@ el:
         imports: Εισαγωγές
         automated_edits: Αυτοματοποιημένες Επεξεργασίες
       start_mapping: Ξεκινήστε τη Χαρτογράφηση
+      continue_authorization: Συνέχιση Εξουσιοδότησης
       add_a_note:
         title: Δεν έχετε χρόνο για χαρτογράφηση; Προσθέστε μια σημείωση!
         para_1: Εάν θέλετε κάτι μικρό να διορθωθεί και δεν έχετε χρόνο να εγγραφείτε
@@ -2591,6 +2634,7 @@ el:
       oauth1_settings: Ρυθμίσεις OAuth 1
       oauth2_applications: Εφαρμογές OAuth 2
       oauth2_authorizations: Εξουσιοδοτήσεις OAuth 2
+      muted_users: Χρήστες σε Σίγαση
   oauth:
     authorize:
       title: Επιτρέψτε την πρόσβαση στο λογαριασμό σας
@@ -2630,6 +2674,7 @@ el:
       read_gpx: Ανάγνωση προσωπικών ιχνών GPS
       write_gpx: Μεταφόρτωση ιχνών GPS
       write_notes: Τροποποίηση σημειώσεων
+      write_redactions: Αφαίρεση και απόκρυψη δεδομένων χάρτη
       read_email: Διαβάζει τη διεύθυνση email χρήστη
       skip_authorization: Αυτόματη έγκριση εφαρμογής
   oauth_clients:
@@ -2719,6 +2764,7 @@ el:
       application: Εφαρμογή
       permissions: Άδειες
       no_applications_html: Δεν έχετε εξουσιοδοτήσει ακόμη %{oauth2} εφαρμογές.
+      oauth_2: OAuth 2
     application:
       revoke: Ανάκληση πρόσβασης
       confirm_revoke: Ανάκληση πρόσβασης για αυτήν την εφαρμογή;
@@ -2805,6 +2851,8 @@ el:
       my_dashboard: Το ταμπλό μου
       blocks on me: Φραγές σε Εμένα
       blocks by me: Φραγές από Εμένα
+      create_mute: Σίγαση αυτού του χρήστη
+      destroy_mute: Κατάργηση σίγασης αυτού του χρήστη
       edit_profile: Επεξεργασία προφίλ
       send message: Αποστολή Μηνύματος
       diary: Ημερολόγιο
@@ -2836,6 +2884,7 @@ el:
           importer: Ανάκληση πρόσβασης εισαγωγέα
       block_history: Ενεργές Φραγές
       moderator_history: Φραγές που Επιβλήθηκαν
+      revoke_all_blocks: Ανάκληση όλων των φραγών
       comments: Σχόλια
       create_block: Φραγή αυτού του Χρήστη
       activate_user: Ενεργοποίηση αυτού του λογαριασμού Χρήστη
@@ -2949,6 +2998,16 @@ el:
       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: Ενεργό έως ότου ο χρήστης συνδεθεί.
@@ -3007,6 +3066,31 @@ 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}
@@ -3043,6 +3127,7 @@ el:
       reactivate: Επανενεργοποίηση
       comment_and_resolve: Σχολιάστε και Επιλύστε
       comment: Σχολιάζω
+      log_in_to_comment: Συνδεθείτε για να σχολιάσετε σε αυτή την σημείωση
       report_link_html: Εάν αυτή η σημείωση περιέχει ευαίσθητες πληροφορίες που πρέπει
         να αφαιρεθούν, μπορείτε %{link}.
       other_problems_resolve: Για όλα τα άλλα προβλήματα με τη σημείωση, επιλύστε
index 406cf67525a6ed7d5b80317ef1845bb7b0a05d8d..5eefc686ff0ae2d0a1158e44a223fa3af50e0f8a 100644 (file)
@@ -1274,7 +1274,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'
@@ -1282,12 +1281,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
@@ -1310,9 +1311,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
@@ -1331,6 +1329,8 @@ 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
@@ -1595,30 +1595,24 @@ en-GB:
           footway: Footway
           rail: Railway
           subway: Subway
-          cable:
-          - Cable car
-          - chairlift
-          runway:
-          - Airport Runway
-          - taxiway
-          apron_only: Airport apron
+          cable_car: Cable car
+          chair_lift: chairlift
+          runway: Airport Runway
+          taxiway: taxiway
+          apron: Airport apron
           admin: Administrative boundary
-          forest:
-          - Forest
-          - Wood
+          forest: Forest
+          wood: Wood
           golf: Golf course
           park: Park
-          common:
-          - Common
-          - meadow
+          common: Common
           resident: Residential area
           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
@@ -1627,14 +1621,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
index b266a87d66166d659bfe40784e370b48231b7e59..ca22de9bde23f9c723608dabf6feb4b02ad679c3 100644 (file)
@@ -1440,9 +1440,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
@@ -1591,6 +1591,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"
@@ -1871,6 +1872,7 @@ en:
       image: Image
       alt: Alt text
       url: URL
+      codeblock: Code block
     richtext_field:
       edit: Edit
       preview: Preview
@@ -2306,41 +2308,36 @@ en:
           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"
           ferry: "Ferry"
           light_rail: "Light rail"
-          tram_only: "Tram"
+          tram: "Tram"
           trolleybus: "Trolleybus"
           bus: "Bus"
-          cable:
-            - Cable car
-            - chair lift
-          runway:
-            - Airport Runway
-            - taxiway
-          apron_only: "Airport apron"
+          cable_car: "Cable car"
+          chair_lift: "Chair lift"
+          runway: "Airport Runway"
+          taxiway: "Taxiway"
+          apron: "Airport apron"
           admin: "Administrative boundary"
-          orchard:
-            - Orchard
-            - vineyard
-          forest:
-            - Forest
-            - wood
+          capital: "Capital"
+          city: "City"
+          orchard: "Orchard"
+          vineyard: "Vineyard"
+          forest: "Forest"
+          wood: "Wood"
           farmland: "Farmland"
-          grass:
-            - Grass
-            - meadow
+          grass: "Grass"
+          meadow: "Meadow"
           bare_rock: "Bare rock"
           sand: "Sand"
           golf: "Golf course"
           park: "Park"
-          common:
-            - Common
-            - meadow
-            - garden
+          common: "Common"
           built_up: "Built-up area"
           resident: "Residential area"
           retail: "Retail area"
@@ -2348,9 +2345,8 @@ en:
           commercial: "Commercial area"
           heathland: "Heathland"
           scrubland: "Scrubland"
-          lake:
-            - Lake
-            - reservoir
+          lake: "Lake"
+          reservoir: "Reservoir"
           intermittent_water: "Intermittent waterbody"
           glacier: "Glacier"
           reef: "Reef"
@@ -2361,17 +2357,16 @@ en:
           allotments: "Allotments"
           pitch: "Sports pitch"
           centre: "Sports centre"
+          beach: "Beach"
           reserve: "Nature reserve"
           military: "Military area"
-          school:
-            - School
-            - university
-            - hospital
+          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"
@@ -2380,7 +2375,9 @@ en:
           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!
@@ -2610,6 +2607,7 @@ 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:
@@ -2694,6 +2692,7 @@ en:
       application: "Application"
       permissions: "Permissions"
       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?"
@@ -2796,6 +2795,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"
@@ -2898,6 +2898,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."
@@ -3014,6 +3024,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."
index fb92079a5f230d2845adff128cdc042f4ee66db7..7f0c698a3af5554ed9b1775bcc0ab633f06399d0 100644 (file)
@@ -65,6 +65,12 @@ eo:
       messages:
         invalid_email_address: ŝajnas ne estas ĝusta retpoŝta adreso
         email_address_not_routable: ne estas enkursigebla
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: jam estas silentigita
     models:
       acl: Listo de kontrolo de akiroj
       changeset: Ŝanĝaro
@@ -918,7 +924,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
@@ -1477,9 +1483,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
@@ -1636,6 +1642,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'
@@ -1745,8 +1752,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'
@@ -1754,17 +1759,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}
@@ -1778,18 +1787,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
@@ -1805,9 +1815,16 @@ 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:
@@ -1934,6 +1951,7 @@ eo:
       image: Bildo
       alt: Kromteksto
       url: Retadreso
+      codeblock: Bloko de kodo
     richtext_field:
       edit: Redakti
       preview: Antaŭvidi
@@ -2302,44 +2320,39 @@ eo:
           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
           ferry: Pramo
           light_rail: Malpeza vagonaro
-          tram_only: Tramo
+          tram: Tramo
           trolleybus: Trolebuso
           bus: Aŭtobuso
-          cable:
-          - Kablovojo
-          - seĝtelfero
-          runway:
-          - Avia dromo
-          - aŭtokur-strato
-          apron_only: Aviadil-parkumejo
+          cable_car: Kablovojo
+          chair_lift: Telfero seĝa
+          runway: Avia dromo
+          taxiway: Aŭtokur-strato
+          apron: Aviadil-parkumejo
           admin: Administra limo
-          orchard:
-          - Fruktoĝardeno
-          - vinberĝardeno
-          forest:
-          - Kultiv-arbaro
-          - arbaro
+          capital: Ĉefurbo
+          city: Urbo
+          orchard: Fruktoĝardeno
+          vineyard: Vinberĝardeno
+          forest: Kultiv-arbaro
+          wood: Arbaro
           farmland: Agrokultura tereno
-          grass:
-          - Herbotapiŝo
-          - herbejo
+          grass: Herbotapiŝo
+          meadow: Herbejo
           bare_rock: Roka areo
           sand: Sabla tereno
           golf: Golfejo
           park: Parko
-          common:
-          - Publika ripoza tereno
-          - herbejo
-          - ĝardeno
+          common: Publika ripoza tereno
           built_up: Konstruaĵ-kovrita tereno
           resident: Privatdoma tereno
           retail: Komercejo
@@ -2347,9 +2360,8 @@ eo:
           commercial: Oficeja tereno
           heathland: Erikejo
           scrubland: Arbustaro
-          lake:
-          - Lago
-          - akvorezervujo
+          lake: Lago
+          reservoir: Lago artefarita
           intermittent_water: Sezona akvujo
           glacier: Glacirivero
           reef: Rifo
@@ -2362,15 +2374,13 @@ eo:
           centre: Sporta centro
           reserve: Naturrezervejo
           military: Armea tereno
-          school:
-          - Lernejo
-          - universitato
-          - malsanulejo
+          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
@@ -2510,8 +2520,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:
@@ -2578,6 +2588,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
@@ -2614,6 +2625,7 @@ 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:
@@ -2703,6 +2715,7 @@ eo:
       application: Aplikaĵo
       permissions: Permesoj
       no_applications_html: Vi ankoraŭ rajtigis neniun aplikaĵon %{oauth2}.
+      oauth_2: OAuth 2
     application:
       revoke: Senrajtigi aliron
       confirm_revoke: Ĉu senrajtigi tiun ĉi aplikaĵon?
@@ -2784,8 +2797,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
@@ -2817,6 +2832,7 @@ eo:
           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
@@ -2922,6 +2938,14 @@ eo:
       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.
@@ -2979,6 +3003,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}
@@ -3016,6 +3064,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
index f7895e0306f38c9e1f7abb6b7ca317a375ba87ea..95bafbdcb5a643d48ba73b933de6ee74e38d3cc8 100644 (file)
@@ -47,6 +47,7 @@
 # Author: Javiersanp
 # Author: Jelou
 # Author: Jlrb+
+# Author: Jmabel
 # Author: Joanmp17
 # Author: Johnarupire
 # Author: Josuert
@@ -133,6 +134,12 @@ es:
       messages:
         invalid_email_address: no parece ser una dirección de correo electrónico válida
         email_address_not_routable: no es enrutable
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: ya esta silenciado
     models:
       acl: Lista de control de acceso
       changeset: Conjunto de cambios
@@ -1564,9 +1571,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
@@ -1849,8 +1856,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'
@@ -1858,17 +1863,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}
@@ -1883,17 +1892,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
@@ -1909,9 +1919,16 @@ 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:
@@ -1937,6 +1954,8 @@ es:
         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?
   preferences:
     show:
       title: Mis preferencias
@@ -2427,40 +2446,56 @@ 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
-          cable:
-          - Telecabina
-          - Telesilla
-          runway:
-          - Pista de aeropuerto
-          - Calle de rodaje
-          apron_only: Rampa aeroportuaria
+          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
-          forest:
-          - Bosque
-          - Bosque
+          capital: Capital
+          city: Ciudad
+          orchard: Huerta
+          vineyard: Viñedo
+          forest: 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
-          - pradera
-          - jardín
+          common: Común
+          built_up: Área construida
           resident: Zona residencial
           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
@@ -2469,19 +2504,20 @@ es:
           centre: Centro deportivo
           reserve: Reserva natural
           military: Área militar
-          school:
-          - Escuela
-          - universidad
+          school: 'Escuela: universidad'
+          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_parking: Estacionamiento de bicicletas
           toilets: Baños
@@ -2693,6 +2729,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
@@ -2819,6 +2856,7 @@ es:
       application: Solicitudes
       permissions: Permisos
       no_applications_html: Aún no has autorizado aplicaciones a %{oauth2}.
+      oauth_2: OAuth 2
     application:
       revoke: Revocar el acceso
       confirm_revoke: ¿Revocar el acceso a esta aplicación?
@@ -2904,6 +2942,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
@@ -2935,6 +2975,7 @@ es:
           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
@@ -3049,6 +3090,16 @@ es:
       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.
@@ -3108,6 +3159,29 @@ 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}.
   notes:
     index:
       title: Notas creadas o comentadas por %{user}
@@ -3144,6 +3218,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
index 03b14cb181a64fb773edb98fa9cd93945d3dce8e..73ead41cce04f4311ab31c4aefdb15726a003e16 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
@@ -387,9 +387,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
@@ -1260,8 +1260,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'
@@ -1269,17 +1267,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}
@@ -1294,17 +1296,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.
@@ -1319,9 +1322,16 @@ 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:
@@ -1440,6 +1450,7 @@ et:
       text: Tekst
       image: Pilt
       alt: Asendustekst
+      codeblock: Koodiplokk
     richtext_field:
       edit: Muuda
       preview: Eelvaade
@@ -1807,30 +1818,24 @@ et:
           footway: Jalgtee
           rail: Raudtee
           subway: Metroo
-          cable:
-          - Köisraudtee
-          - toolilift
-          runway:
-          - Lennurada
-          - ruleerimistee
-          apron_only: Lennujaama perroon
+          cable_car: Köisraudtee
+          chair_lift: Toolilift
+          runway: Lennurada
+          taxiway: Ruleerimistee
+          apron: Lennujaama perroon
           admin: Halduspiir
-          forest:
-          - Tulundusmets
-          - Mets
+          forest: Tulundusmets
+          wood: Mets
           golf: Golfiväljak
           park: Park
-          common:
-          - Heinamaa
-          - luht
+          common: Heinamaa
           resident: Elamurajoon
           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
@@ -1839,14 +1844,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
@@ -2050,6 +2053,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:
@@ -2200,6 +2204,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
@@ -2385,6 +2391,30 @@ 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
@@ -2545,30 +2575,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 14c672e47eddf85d9b71a4c3d72281bbd987bf21..d1eb73e47d469bafca073aa051354b309593c8c4 100644 (file)
@@ -1446,9 +1446,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
@@ -1728,8 +1728,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}'
@@ -1737,12 +1735,14 @@ 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
     message_summary:
       unread_button: Markatu irakurri gabekotzat
       read_button: Markatu irakurritzat
@@ -1762,14 +1762,9 @@ eu:
       body: Barkatu baina id horrekin ez dago mezurik.
     outbox:
       title: Irteerako ontzia
-      my_inbox: Nire sarrera-ontzia
-      my_outbox: Nire Irteera-Ontzia
       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
@@ -1788,6 +1783,9 @@ eu:
         zuzenarekin irakurtzeko.'
     sent_message_summary:
       destroy_button: Ezabatu
+    heading:
+      my_inbox: Nire sarrera-ontzia
+      my_outbox: Nire Irteera-Ontzia
     mark:
       as_read: Mezua irakurrita gisa markatu da
       as_unread: Mezua irakurri gabe gisa markatu da
@@ -2208,31 +2206,24 @@ eu:
           footway: Oinezkoen bidea
           rail: Trenbidea
           subway: Metroa
-          cable:
-          - Funikularra
-          - teleaulkia
-          runway:
-          - Aireportuko Pista
-          - taxi bidea
-          apron_only: Aireportu plataforma
+          cable_car: Funikularra
+          chair_lift: teleaulkia
+          runway: Aireportuko Pista
+          taxiway: taxi bidea
+          apron: Aireportu plataforma
           admin: Muga administratiboa
-          forest:
-          - Baso
-          - Basoa
+          forest: Baso
+          wood: Basoa
           golf: Golf-zelai
           park: Parke
-          common:
-          - Arrunta
-          - belardia
-          - lorategia
+          common: Arrunta
           resident: Etxebizitza ingurua
           retail: Txikizkako azalera
           industrial: Industrialdea
           commercial: Merkataritza eremua
           heathland: Txilardia
-          lake:
-          - Aintzira
-          - urtegia
+          lake: Aintzira
+          reservoir: urtegia
           farm: Baserria
           brownfield: Landarik gabeko gunea
           cemetery: Hilerri
@@ -2241,14 +2232,12 @@ eu:
           centre: Kiroldegi
           reserve: Natura-erreserba
           military: Eremu militarra
-          school:
-          - Eskola
-          - unibertsitate
+          school: Eskola
+          university: unibertsitate
           building: Eraikin garrantzitsua
           station: Tren geltokia
-          summit:
-          - Tontorra
-          - gailurra
+          summit: Tontorra
+          peak: gailurra
           tunnel: Marratxodun estalkia = tunela
           bridge: Estalki beltza = zubia
           private: Sarbide pribatua
index 42169f006969d3673598e516a5291dc705e80927..94925f9afc458c65e35a6d9b4d9255b1f047c115 100644 (file)
@@ -1398,9 +1398,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: بازگشایی
@@ -1696,8 +1696,6 @@ fa:
   messages:
     inbox:
       title: صندوق دریافت
-      my_inbox: صندوق دریافت
-      my_outbox: صندوق ارسال
       messages: '%{new_messages} و %{old_messages} دارید'
       new_messages:
         one: '%{count} پیام تازه'
@@ -1705,12 +1703,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: نشان بزن که خواندم
@@ -1730,14 +1730,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: کسانی که نزدیک شما نقشه می‌کشند
@@ -1756,6 +1751,9 @@ fa:
         وارد سامانه شوید تا بتوانید آن را بخوانید.
     sent_message_summary:
       destroy_button: حذف
+    heading:
+      my_inbox: صندوق دریافت
+      my_outbox: صندوق ارسال
     mark:
       as_read: پیام به‌عنوان خوانده علامت‌گذاری شد
       as_unread: پیام به عنوان نخوانده علامت‌گذاری شد
@@ -1814,6 +1812,7 @@ fa:
       no home location: شما محل خانهٔ خودتان را وارد نکرده‌اید.
       update home location on click: وقتی روی نقشه کلیک می‌کنم موقعیت خانه روزآمد
         شود.
+      delete: حذف
     update:
       success: نمایه ذخیره شد.
       failure: ذخیره‌سازی نمایه انجام نشد.
@@ -2098,30 +2097,24 @@ fa:
           footway: راه پیاده
           rail: راه‌آهن
           subway: مترو
-          cable:
-          - تله‌فریک
-          - صندلی بالابر
-          runway:
-          - باند فرودگاه
-          - خزش‌راه
-          apron_only: پیشگاه فرودگاه
+          cable_car: تله‌فریک
+          chair_lift: صندلی بالابر
+          runway: باند فرودگاه
+          taxiway: خزش‌راه
+          apron: پیشگاه فرودگاه
           admin: مرز اداری
-          forest:
-          - جنگل
-          - چوب
+          forest: جنگل
+          wood: چوب
           golf: زمین گلف
           park: پارک
-          common:
-          - مشاع
-          - علفزار
+          common: مشاع
           resident: منطقهٔ مسکونی
           retail: منطقه خرده فروشی
           industrial: منطقه صنعتی
           commercial: منطقه تجاری
           heathland: Heathland
-          lake:
-          - دریاچه
-          - مخزن
+          lake: دریاچه
+          reservoir: مخزن
           farm: مزرعه
           brownfield: سایت قهوه‌ای
           cemetery: گورستان
@@ -2130,14 +2123,12 @@ fa:
           centre: مرکز ورزشی
           reserve: طبیعت حفاظت شده
           military: منطقه نظامی
-          school:
-          - مدرسه
-          - دانشگاه
+          school: مدرسه
+          university: دانشگاه
           building: ساختمان مهم
           station: ایستگاه راه آهن
-          summit:
-          - چکاد
-          - قله
+          summit: چکاد
+          peak: قله
           tunnel: لبهٔ خط‌چین‌دار = تونل
           bridge: لبهٔ سیاه = پل
           private: دسترسی شخصی
index 0609411e641f969b1c965a5a49ef288f7aec0898..06a0b697c3a8e0c1c66e72805e6087d808d587f3 100644 (file)
@@ -1450,9 +1450,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
@@ -1709,8 +1709,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'
@@ -1718,11 +1716,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
@@ -1742,14 +1742,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
@@ -1768,6 +1763,9 @@ 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.
@@ -2207,31 +2205,24 @@ fi:
           footway: Jalkakäytävä
           rail: Junarata
           subway: Metro
-          cable:
-          - Köysirata
-          - tuolihissi
-          runway:
-          - Lentokentän kiitotie
-          - rullaustie
-          apron_only: Lentokentän asemataso
+          cable_car: Köysirata
+          chair_lift: tuolihissi
+          runway: Lentokentän kiitotie
+          taxiway: rullaustie
+          apron: Lentokentän asemataso
           admin: Hallinnollinen raja
-          forest:
-          - Talousmetsä
-          - Metsä
+          forest: Talousmetsä
+          wood: Metsä
           golf: Golfkenttä
           park: Puisto
-          common:
-          - Niitty
-          - keto
-          - puutarha
+          common: Niitty
           resident: Asuinalue
           retail: Kaupallinen alue
           industrial: Teollisuusalue
           commercial: Toimistoalue
           heathland: Kanervikko
-          lake:
-          - Järvi
-          - tekojärvi
+          lake: Järvi
+          reservoir: tekojärvi
           farm: Maatila
           brownfield: Purettujen rakennusten alue
           cemetery: Hautausmaa
@@ -2240,14 +2231,12 @@ fi:
           centre: Urheilukeskus
           reserve: Luonnonsuojelualue
           military: Sotilasalue
-          school:
-          - Koulu
-          - yliopisto
+          school: Koulu
+          university: yliopisto
           building: Merkittävä rakennus
           station: Rautatieasema
-          summit:
-          - Vuorenhuippu
-          - huippu
+          summit: Vuorenhuippu
+          peak: huippu
           tunnel: Katkoviivallinen kehys = tunneli
           bridge: Musta kehys = silta
           private: Yksityinen
index 3a023d23fd959cb6ea10ed24bb3bc20e27b7edc4..ac3f176687e655d5412e45ff4d1ab357d160f66e 100644 (file)
@@ -521,9 +521,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
@@ -636,7 +636,6 @@ fit:
   messages:
     inbox:
       title: Saapuneet
-      my_inbox: Saapuneet
       messages: Kansiossa oon %{new_messages} ja %{old_messages}.
       new_messages:
         one: '%{count} lukematon viesti'
@@ -644,11 +643,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
@@ -670,9 +671,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
@@ -688,6 +686,8 @@ 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.
@@ -830,8 +830,7 @@ fit:
     key:
       table:
         entry:
-          school:
-            1: yniversiteetti
+          university: yniversiteetti
     welcome:
       title: Tervetuloa!
       add_a_note:
index 87376d3dec45453d86f5fe7680f8d26d07b1eaff..44ceda85ac7d4e4eed048754cd745f1aa5a7ed1d 100644 (file)
@@ -2,6 +2,7 @@
 # Exported from translatewiki.net
 # Export driver: phpyaml
 # Author: 0x010C
+# Author: 2NumForIce
 # Author: Adriendelucca
 # Author: Ajeje Brazorf
 # Author: Alno
 # 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
@@ -137,6 +140,12 @@ fr:
       messages:
         invalid_email_address: ne semble pas être une adresse de courriel valide
         email_address_not_routable: n’est pas routable
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: est déjà en sourdine
     models:
       acl: Liste de contrôle d’accès
       changeset: Groupe de modifications
@@ -783,7 +792,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
@@ -1583,9 +1592,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
@@ -1874,8 +1883,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
@@ -1885,17 +1892,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}
@@ -1910,17 +1921,15 @@ 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
     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
@@ -1936,9 +1945,16 @@ 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:
@@ -2069,6 +2085,7 @@ fr:
       image: Image
       alt: Texte alternatif
       url: URL
+      codeblock: Bloc de code
     richtext_field:
       edit: Modifier
       preview: Aperçu
@@ -2478,41 +2495,36 @@ fr:
           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
           ferry: Ferry
           light_rail: Voie ferrée légère
-          tram_only: Tramway
+          tram: Tramway
           trolleybus: Trolleybus
           bus: Bus
-          cable:
-          - Téléphérique
-          - télésiège
-          runway:
-          - Piste d’aéroport
-          - piste de circulation d’un aéroport
-          apron_only: Stationnement d’avions
+          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
-          orchard:
-          - Verger
-          - vignoble
-          forest:
-          - Forêt
-          - bois
+          capital: Capitale
+          city: Ville
+          orchard: Verger
+          vineyard: Vignoble
+          forest: Forêt
+          wood: Bois
           farmland: Terres agricoles
-          grass:
-          - Pelouse
-          - prairie
+          grass: Pelouse
+          meadow: Prairie
           bare_rock: Roche nue
           sand: Sable
           golf: Parcours de golf
           park: Parc
-          common:
-          - Espace commun
-          - prairie
-          - jardin
+          common: Espace commun
           built_up: Zone bâtie
           resident: Zone résidentielle
           retail: Zone de commerce
@@ -2520,9 +2532,8 @@ fr:
           commercial: Zone tertiaire
           heathland: Lande
           scrubland: Fruticée
-          lake:
-          - Lac
-          - bassin de retenue
+          lake: Lac
+          reservoir: Réservoir
           intermittent_water: plan d’eau intermittent
           glacier: Glacier
           reef: Récif
@@ -2535,22 +2546,20 @@ fr:
           centre: Centre sportif
           reserve: Réserve naturelle
           military: Zone militaire
-          school:
-          - École
-          - université
-          - hôpital
+          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êt
+          stop: Arrêter
           bicycle_shop: Magasin de vélos
           bicycle_parking: Parking à vélos
           toilets: Toilettes
@@ -2766,6 +2775,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
@@ -2896,6 +2906,7 @@ fr:
       application: Application
       permissions: Droits
       no_applications_html: Vous n’avez encore autorisé aucune application %{oauth2}.
+      oauth_2: OAuth 2
     application:
       revoke: Révoquer l’accès
       confirm_revoke: Révoquer l’accès pour cette application ?
@@ -3189,6 +3200,13 @@ fr:
       showing_page: Page %{page}
       next: Suivant »
       previous: ◂ Précédent
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: Actions
+        tbody:
+          send_message: Envoyer un message
   notes:
     index:
       title: Notes soumises ou commentées par « %{user} »
@@ -3226,6 +3244,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
index 35fc8db8423271a8e4b8b1222326caea55002d19..aee698bdb7c6664c3e1a693d1008d6d0c92fe795 100644 (file)
@@ -41,6 +41,11 @@ fur:
       messages:
         invalid_email_address: nol samee jessi une direzion di pueste eletroniche
           valide
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
     models:
       acl: Liste di control des jentradis
       changeset: Grup di cambiaments
@@ -146,41 +151,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})
@@ -196,6 +201,7 @@ fur:
       openid: OpenID
       google: Google
       facebook: Facebook
+      microsoft: Microsoft
       github: GitHub
       wikipedia: Vichipedie
   api:
@@ -266,16 +272,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
@@ -291,6 +303,8 @@ fur:
       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:
@@ -306,7 +320,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 +330,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}'
@@ -471,8 +485,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
@@ -511,6 +526,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?
@@ -523,9 +543,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
@@ -539,6 +564,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
@@ -567,6 +593,7 @@ fur:
           kindergarten: Scuelute
           language_school: Scuele di lenghis
           library: Biblioteche
+          monastery: Monastîr
           music_school: Scuele di musiche
           nightclub: Club noturni
           parking: Parcament
@@ -595,6 +622,7 @@ fur:
           veterinary: Veterinari
           village_hall: Centri civic
           waste_basket: Scovacere
+          weighbridge: Pese
         boundary:
           administrative: Confin aministratîf
           national_park: Parc nazionâl
@@ -644,6 +672,7 @@ fur:
           shoemaker: Cjaliâr
           tailor: Sartôr
         emergency:
+          fire_extinguisher: Estintôr
           phone: Telefon di emergjence
         highway:
           bus_stop: Fermade autobus
@@ -651,6 +680,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
@@ -683,6 +713,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
@@ -721,6 +753,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
@@ -728,6 +761,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
@@ -739,7 +773,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
@@ -763,18 +799,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:
@@ -826,6 +873,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
@@ -833,6 +881,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
@@ -876,7 +925,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
@@ -884,7 +933,7 @@ fur:
         resolved: Risolt
     show:
       reports:
-        one: 1 segnalazion
+        one: '%{count} segnalazion'
         other: '%{count} segnalazions'
       resolve: Risolf
       ignore: Ignore
@@ -999,8 +1048,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'
@@ -1008,12 +1055,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
@@ -1030,14 +1080,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
@@ -1049,6 +1095,9 @@ 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
@@ -1100,6 +1149,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:
@@ -1127,8 +1178,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
@@ -1145,6 +1196,8 @@ fur:
       title: Jes
       heading: Va fûr di OpenStreetMap
       logout_button: Jes
+    suspended_flash:
+      support: assistence
   shared:
     markdown_help:
       link: Leam
@@ -1159,7 +1212,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:
@@ -1173,6 +1234,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.
@@ -1244,6 +1312,8 @@ fur:
         title: Pe organizazions
       wiki:
         title: OpenStreetMap Wiki
+    potlatch:
+      change_preferences: Cambie lis tôs preferences culì
     any_questions:
       title: Domandis?
     sidebar:
@@ -1268,48 +1338,62 @@ fur:
           primary: Strade primarie
           secondary: Strade secondarie
           unclassified: Strade no classificade
+          pedestrian: Strade pedonâl
+          track: Piste
           rail: Ferade
           subway: Metropolitane
-          runway:
-          - Piste dal aeropuart
+          ferry: Traghet
+          tram: Tram
+          runway: Piste dal aeropuart
           admin: Confin aministratîf
-          forest:
-          - Bosc
+          forest: Bosc
+          grass: Prât
+          meadow: Prâts
+          sand: Savalon
           golf: Troi di golf
           park: Parc
-          common:
-          - Comugnâi
-          - prâts
+          common: Comugnâi
           resident: Zone residenziâl
           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:
@@ -1335,6 +1419,7 @@ fur:
       uploaded: 'Cjamât ai:'
       points: 'Ponts:'
       start_coordinates: 'Coordenadis iniziâls:'
+      coordinates_html: '%{latitude}; %{longitude}'
       map: mape
       edit: cambie
       owner: 'Paron:'
@@ -1352,7 +1437,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
@@ -1365,9 +1450,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
@@ -1453,6 +1541,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:
@@ -1594,7 +1685,7 @@ fur:
       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}
@@ -1631,11 +1722,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
@@ -1648,6 +1748,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.
@@ -1696,6 +1805,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
@@ -1708,6 +1823,17 @@ 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
+      opnvkarte_credit: Tassei par gentîl concession di %{memomaps_link}
+      memomaps: MeMoMaps
+      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
@@ -1731,13 +1857,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 3715335c096220b64dcc946029fd555ae29e5abd..e0339c5caa27420c26ec914d651b04b8352e7093 100644 (file)
@@ -1378,9 +1378,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
@@ -1657,8 +1657,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'
@@ -1666,12 +1664,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
@@ -1691,14 +1691,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
@@ -1717,6 +1712,9 @@ 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
@@ -2036,31 +2034,24 @@ fy:
           footway: Fuotpaad
           rail: Spoarwei
           subway: Metrospoar
-          cable:
-          - Kabelbaan
-          - stuoltsjelift
-          runway:
-          - Start-/lânings-
-          - taksybaan lofthaven
-          apron_only: Platfoarm
+          cable_car: Kabelbaan
+          chair_lift: stuoltsjelift
+          runway: Start-/lânings-
+          taxiway: taksybaan lofthaven
+          apron: Platfoarm
           admin: Bestjoerlike grins
-          forest:
-          - Bosk
-          - Wâld
+          forest: Bosk
+          wood: Wâld
           golf: Golfbaan
           park: Park
-          common:
-          - Miente
-          - greide
-          - tún
+          common: Miente
           resident: Wengebiet
           retail: Winkelgebiet
           industrial: Yndustrygebiet
           commercial: Kommersjeel gebiet
           heathland: Heidelân
-          lake:
-          - Mar
-          - opslachmar
+          lake: Mar
+          reservoir: opslachmar
           farm: Boerepleats
           brownfield: Braaklân
           cemetery: Begraafplak
@@ -2069,14 +2060,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
index 759fcf9c13d4e1a99daa3519ad962e0ec7a7aa47..0b7c35521121e68e500a75189392a8acd6662c39 100644 (file)
@@ -1005,9 +1005,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
@@ -1227,7 +1227,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'
@@ -1239,12 +1238,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
@@ -1267,9 +1268,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
@@ -1288,6 +1286,8 @@ 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
@@ -1543,30 +1543,24 @@ ga:
           footway: Cosán
           rail: Iarnród
           subway: Meitreo
-          cable:
-          - Carr cábla
-          - cathaoir chábla
-          runway:
-          - Rúidbhealach Aerfoirt
-          - bealach innealta
-          apron_only: Naprún Aerfoirt
+          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
-          - Coill
+          forest: Foraois
+          wood: Coill
           golf: Galfchúrsa
           park: Páirc
-          common:
-          - Coimín
-          - móinéar
+          common: Coimín
           resident: Ceantar cónaithe
           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
@@ -1575,14 +1569,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
index e1583a91f04307394b1e82a04ad0c6e90452a8bb..7f9eb131c22f77319df7594799b8a787b136ba01 100644 (file)
@@ -22,10 +22,12 @@ gcf:
       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
@@ -99,6 +101,7 @@ gcf:
     destroy:
       success: Kont néyantizé.
   browse:
+    no_comment: (pon komantasyon)
     download_xml: Chantyé XML
     location: 'Ki koté:'
     changeset:
@@ -208,6 +211,8 @@ gcf:
           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
@@ -484,16 +489,11 @@ gcf:
       table:
         entry:
           train: Tren
-          forest:
-          - Granbwa
-          grass:
-          - Zèb
-          common:
-            2: Haden
+          forest: Granbwa
+          grass: Zèb
           cemetery: Simityè
-          school:
-            0: Lékòl
-            2: Lopital
+          school: Lékòl
+          hospital: Lopital
     welcome:
       rules:
         title: Larèl-la!
index 9b3b77e6cd0314f02d87a22f8a24e1c5f9ad5e4f..99a76fa5c4479fa7eb31df02e81ff3a563f90a4c 100644 (file)
@@ -3,6 +3,7 @@
 # Export driver: phpyaml
 # Author: Akerbeltz
 # Author: Amire80
+# Author: Dimitar
 # Author: GunChleoc
 # Author: Macofe
 ---
@@ -1072,18 +1073,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
@@ -1105,9 +1107,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
@@ -1125,6 +1124,8 @@ 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
@@ -1397,30 +1398,24 @@ gd:
           footway: Àrainn-choisichean
           rail: Rèile
           subway: Meatro
-          cable:
-          - Carbad-càbaill
-          - Lioft-sèitheir
-          runway:
-          - Raon-laighe puirt-adhair
-          - Raon-cuairteachaidh
-          apron_only: Aparan puirt-adhair
+          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
-          - Coille
+          forest: Coille
+          wood: Coille
           golf: Raon goilf
           park: Pàirc
-          common:
-          - Coitcheann
-          - Faiche
+          common: Coitcheann
           resident: Raon-còmhnaidh
           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
@@ -1429,14 +1424,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
@@ -1656,7 +1649,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.
index 773e59ad9980334f22424c6771f9d4519252d9e4..06341c1b57236bd2dc2a20f55f2236389dcb34cb 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,12 @@ gl:
       messages:
         invalid_email_address: non semella ser un enderezo de correo electrónico válido
         email_address_not_routable: non é atinxíbel
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: xa está silenciado
     models:
       acl: Listaxe do control de acceso
       changeset: Conxunto de modificacións
@@ -426,9 +433,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
@@ -1482,9 +1490,9 @@ gl:
         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
@@ -1767,8 +1775,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'
@@ -1776,17 +1782,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}
@@ -1801,20 +1811,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
@@ -1826,9 +1837,16 @@ 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:
@@ -1958,6 +1976,7 @@ gl:
       image: Imaxe
       alt: Texto alternativo
       url: URL
+      codeblock: Segmento de código
     richtext_field:
       edit: Editar
       preview: Vista previa
@@ -2352,47 +2371,43 @@ 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
           ferry: Transbordador
           light_rail: Metro lixeiro
-          tram_only: Tranvía
+          tram: Tranvía
           trolleybus: Trolebús
           bus: Autobús
-          cable:
-          - Teleférico
-          - telecadeira
-          runway:
-          - Pista do aeroporto
-          - vía de circulación do aeroporto
-          apron_only: Plataforma do aeroporto
+          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
-          orchard:
-          - Horta
-          - viñedo
-          forest:
-          - Bosque
-          - bosque
+          capital: Capital
+          city: Cidade
+          orchard: Horta
+          vineyard: Viñedo
+          forest: Bosque
+          wood: Bosque
           farmland: Terra de labranza
-          grass:
-          - Herba
-          - pradaría
+          grass: Herba
+          meadow: Pradaría
           bare_rock: Rocha núa
           sand: Area
           golf: Campo de golf
           park: Parque
-          common:
-          - Espazo común
-          - pradaría
-          - xardín
+          common: Espazo común
           built_up: Zona edificada
           resident: Zona residencial
           retail: Zona comercial
@@ -2400,9 +2415,8 @@ gl:
           commercial: Zona de oficinas
           heathland: Breixeira
           scrubland: Matogueira
-          lake:
-          - Lagoa
-          - encoro
+          lake: Lagoa
+          reservoir: Encoro
           intermittent_water: Masa de auga intermitente
           glacier: Glaciar
           reef: Arrecife
@@ -2415,15 +2429,13 @@ gl:
           centre: Centro deportivo
           reserve: Reserva natural
           military: Zona militar
-          school:
-          - Escola
-          - universidade
-          - hospital
+          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
@@ -2633,6 +2645,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
@@ -2669,6 +2682,7 @@ 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:
@@ -2758,6 +2772,7 @@ gl:
       application: Aplicación
       permissions: Permisos
       no_applications_html: Non autorizaches ningunha aplicación %{oauth2}.
+      oauth_2: OAuth 2
     application:
       revoke: Revogar acceso
       confirm_revoke: Revogar o acceso a esta aplicación?
@@ -2842,6 +2857,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
@@ -2873,6 +2890,7 @@ gl:
           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
@@ -2982,6 +3000,16 @@ gl:
       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.
@@ -3041,6 +3069,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}
@@ -3077,6 +3129,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
@@ -3198,71 +3251,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.ª
@@ -3281,8 +3333,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í
@@ -3292,32 +3344,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 f1f83ee2fc0cc19c1c0e6a8141a48951b01deab8..0806b4254e56b9be1d7a5ebcf27f8bff1bc2d3bd 100644 (file)
@@ -79,6 +79,9 @@ he:
       messages:
         invalid_email_address: זאת אינה כתובת דוא״ל תקנית
         email_address_not_routable: לא בר־ניתוב
+      models:
+        user_mute:
+          is_already_muted: כבר מושתק
     models:
       acl: רשימת בקרת גישה
       changeset: ערכת שינויים
@@ -266,7 +269,7 @@ he:
       description: iD (עורך בתוך הדפדפן)
     remote:
       name: שליטה מרחוק
-      description: שליטה מרחוק (JOSM,‏ Potlatch או Merkaartor)
+      description: שליטה מרחוק (JOSM‏, Potlatch או Merkaartor)
   auth:
     providers:
       none: ללא
@@ -1518,9 +1521,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: פתיחה מחדש
@@ -1784,8 +1787,6 @@ he:
   messages:
     inbox:
       title: תיבת דואר נכנס
-      my_inbox: תיבת הדואר הנכנס שלי
-      my_outbox: תיבת הדואר היוצא שלי
       messages: יש לך %{new_messages} ועוד %{old_messages}
       new_messages:
         one: הודעה חדשה אחת
@@ -1793,16 +1794,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}
@@ -1816,16 +1821,19 @@ he:
       body: אנו מצטערים, אין הודעה עם מזהה זה.
     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}”, אבל ההודעה שביקשת להשיב עליה לא נשלחה לאותו
         המשתמש. נא להיכנס בחשבון הנכון כדי להשיב.
@@ -1839,9 +1847,16 @@ he:
         נא להיכנס בחשבון הנכון כדי ללקרוא אותה.
     sent_message_summary:
       destroy_button: מחיקה
+    heading:
+      my_inbox: תיבת הדואר הנכנס שלי
+      my_outbox: תיבת הדואר היוצא שלי
+      muted_messages: הודעות מושתקות
     mark:
       as_read: ההודעה סומנה כהודעה שנקראה
       as_unread: ההודעה סומנה כהודעה שלא נקראה
+    unmute:
+      notice: הודעה הועברה לדואר הנכנס
+      error: אי אפשר להעביר את ההודעה לדואר הנכנס.
     destroy:
       destroyed: ההודעה נמחקה
   passwords:
@@ -1966,6 +1981,7 @@ he:
       image: תמונה
       alt: טקסט חלופי
       url: כתובת URL
+      codeblock: קטע קוד
     richtext_field:
       edit: עריכה
       preview: תצוגה מקדימה
@@ -2345,47 +2361,43 @@ he:
           primary: כביש ראשי
           secondary: כביש משני
           unclassified: דרך לא מסווגת
+          pedestrian: דרך להולכי רגל
           track: מסלול
           bridleway: מסלול לרכיבת סוסים
           cycleway: דרך לאופניים
           cycleway_national: מסלול אופניים לאומי
           cycleway_regional: מסלול אופניים אזורי
           cycleway_local: מסלול אופניים מקומי
+          cycleway_mtb: מסלול אופני הרים
           footway: שביל להולכי רגל
           rail: מסילת ברזל
           train: רכבת
           subway: רכבת תחתית
           ferry: מעבורת
           light_rail: רכבת קלה
-          tram_only: חשמלית
+          tram: חשמלית
           trolleybus: טרוליבוס
           bus: אוטובוס
-          cable:
-          - רכבל
-          - מעלית סקי
-          runway:
-          - מסלול נחיתה
-          - דרך למוניות
-          apron_only: רחבת חניה למטוסים
+          cable_car: רכבל
+          chair_lift: רכבל מושבים
+          runway: מסלול נחיתה
+          taxiway: מסלול הסעה
+          apron: רחבת חניה למטוסים
           admin: גבול שטח שיפוט
-          orchard:
-          - מטע
-          - כרם
-          forest:
-          - יער
-          - חורשה
+          capital: בירה
+          city: עיר
+          orchard: מטע
+          vineyard: כרם
+          forest: יער
+          wood: חורשה
           farmland: שטח חקלאי
-          grass:
-          - דשא
-          - מרעה
+          grass: דשא
+          meadow: אחו
           bare_rock: סלע חשוף
           sand: חול
           golf: מסלול גולף
           park: פארק
-          common:
-          - מרעה
-          - מרעה
-          - גן
+          common: מרעה
           built_up: שטח בנוי
           resident: אזור מגורים
           retail: אזור קמעונאי
@@ -2393,9 +2405,8 @@ he:
           commercial: אזור מסחרי
           heathland: שדה פרא
           scrubland: בתה
-          lake:
-          - אגם
-          - מאגר
+          lake: אגם
+          reservoir: מאגר
           intermittent_water: גוף מים תקופתי
           glacier: קרחון יבשתי
           reef: שונית
@@ -2408,15 +2419,13 @@ he:
           centre: מרכז ספורט
           reserve: שמורת טבע
           military: שטח צבאי
-          school:
-          - בית ספר
-          - אוניברסיטה
-          - בית חולים
+          school: בית ספר
+          university: אוניברסיטה
+          hospital: בית חולים
           building: בניין בעל חשיבות
           station: תחנת רכבת
-          summit:
-          - פסגה
-          - פסגה
+          summit: פסגה
+          peak: פסגה
           tunnel: קו מקווקו = מנהרה
           bridge: קו שחור = גשר
           private: גישה פרטית
@@ -2613,6 +2622,7 @@ he:
       oauth1_settings: הגדרות OAuth 1
       oauth2_applications: יישומי OAuth 2
       oauth2_authorizations: אישורי OAuth 2
+      muted_users: משתמשים מושתקים
   oauth:
     authorize:
       title: אישור הגישה לחשבון שלך
@@ -2649,6 +2659,7 @@ he:
       read_gpx: לקרוא את מסלולי ה־GPS הפרטיים שלך
       write_gpx: להעלות מסלולי GPS
       write_notes: לשנות הערות
+      write_redactions: שינוי נתוני המפה
       read_email: לקרוא את כתובת הדוא"ל של המשתמש
       skip_authorization: לאשר את היישום אוטומטית
   oauth_clients:
@@ -2813,6 +2824,8 @@ he:
       my_dashboard: לוח הבקרה שלי
       blocks on me: מתי חסמו אותי
       blocks by me: מתי חסמתי
+      create_mute: השתקת המשתמש הזה
+      destroy_mute: ביטול השתקת המשתמש הזה
       edit_profile: עריכת פרופיל
       send message: שליחת הודעה
       diary: יומן
@@ -3013,6 +3026,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}
@@ -3049,6 +3088,7 @@ he:
       reactivate: הפעלה מחדש
       comment_and_resolve: להגיב ולפתור
       comment: להגיב
+      log_in_to_comment: יש להיכנס כדי להגיב על ההערה הזאת
       report_link_html: אם ההערה הזאת מכילה מידע רגיש שיש להסיר, אפשר %{link}.
       other_problems_resolve: עבור כל שאר הבעיות עם ההערה, נא לפתור אותה בעצמך באמצעות
         הערה.
index 1187b377b955e79985316779fcebab4cd3e3c81a..923e60ef0e33e2f5e0d6432a5459bf32edf9d4a6 100644 (file)
@@ -983,28 +983,24 @@ hi:
           footway: पगडंडी
           rail: रेलवे
           subway: उपमार्ग
-          cable:
-          - केबल कार
-          runway:
-          - एयरपोर्ट रनवे
-          forest:
-          - वन
-          - लकड़ी
-          grass:
-          - घास
+          bus: बस
+          cable_car: केबल कार
+          runway: एयरपोर्ट रनवे
+          forest: वन
+          wood: लकड़ी
+          grass: घास
           sand: रेत
           golf: गोल्फ मैदान
           park: पार्क
           resident: रिहायशी क्षेत्र
           industrial: औद्योगिक क्षेत्र
-          lake:
-          - झील
+          lake: झील
           farm: खेत
           cemetery: कब्रिस्तान
           allotments: आवंटन
-          school:
-          - पाठशाला
-          - विश्वविद्यालय
+          school: पाठशाला
+          university: विश्वविद्यालय
+          hospital: अस्पताल
           building: महत्वपूर्ण भवन
           station: रेलवे स्टेशन
           stop: रोकें
index ed8f74f569747d8ec46bbf49102e4535a32ee1f2..1547a548ff0e71f8fd2e8bb6355b34610cff659c 100644 (file)
@@ -1135,7 +1135,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'
@@ -1143,12 +1142,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
@@ -1171,9 +1172,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
@@ -1192,6 +1190,8 @@ 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
@@ -1425,30 +1425,24 @@ hr:
           footway: Pješačka staza
           rail: Željeznica
           subway: Podzemna željeznica
-          cable:
-          - Kabinska žičara
-          - sedežnica
-          runway:
-          - Aerodromska pista
-          - aerodromske ceste (za avione)
-          apron_only: Parking za avione (apron)
+          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)
-          - Šume (prirodne, neodržavane)
+          forest: Šuma (održavane, od šumarije)
+          wood: Šume (prirodne, neodržavane)
           golf: Golf teren
           park: Park
-          common:
-          - Travnjaci
-          - livade
+          common: Travnjaci
           resident: Stambeno područje
           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
@@ -1457,14 +1451,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
index 48d3c9287682d5f1c0a578a0d36dbbbf9a7339db..62ebac442c97aa53f7b7fc3aa0c9d0d0a0007072 100644 (file)
@@ -1363,9 +1363,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ć
@@ -1635,8 +1635,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'
@@ -1648,12 +1646,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ć
@@ -1673,16 +1673,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
@@ -1699,6 +1694,9 @@ 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
@@ -2009,30 +2007,24 @@ hsb:
           footway: Chódnik
           rail: Železnica
           subway: Podzemska železnica
-          cable:
-          - Kablowa nadróžna
-          - sydłowy lift
-          runway:
-          - Přizemišćo
-          - lětadłowa jězdnja
-          apron_only: Lětanišćowe předpolo
+          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
-          - Lěs
+          forest: Hajina
+          wood: Lěs
           golf: Golfownišćo
           park: Park
-          common:
-          - Powšitkowny
-          - łuka
+          common: Powšitkowny
           resident: Bydlenski wobwod
           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
@@ -2041,14 +2033,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
index 503b686d9e09be0642dd273833f07c1ccc1e3855..a22dfbd51787a42293a9554e616b80f21d4a12dc 100644 (file)
@@ -73,6 +73,12 @@ hu:
       messages:
         invalid_email_address: nem tűnik érvényes e-mail-címnek
         email_address_not_routable: nem irányítható
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          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
@@ -1468,9 +1474,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
@@ -1746,8 +1752,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
@@ -1755,17 +1759,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}'
@@ -1780,17 +1788,15 @@ 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
     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
@@ -1806,9 +1812,15 @@ 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
     destroy:
       destroyed: Üzenet törölve
   passwords:
@@ -1864,6 +1876,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:
@@ -2064,9 +2077,17 @@ 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_footer_2_html: Az adatok befoglalása az OpenStreetMapbe nem jelenti
           azt, hogy az eredeti adatszolgáltató támogatja az OpenStreetMapet, garanciát
@@ -2225,6 +2246,7 @@ 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
@@ -2233,48 +2255,43 @@ hu:
           cycleway_local: Helyi kerékpárút
           footway: Gyalogút
           rail: Vasút
+          train: Vonat
           subway: Metró
           ferry: Komp
           light_rail: HÉV
-          tram_only: Villamos
+          tram: Villamos
           trolleybus: Trolibusz
           bus: Busz
-          cable:
-          - Nagykabinos felvonó
-          - függőszékes felvonó
-          runway:
-          - Kifutópálya
-          - gurulóút
-          apron_only: Forgalmi előtér
+          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
-          orchard:
-          - Gyümölcsös
-          - szőlő
-          forest:
-          - Erdő
-          - erdő
+          orchard: Gyümölcsös
+          vineyard: Szőlő
+          forest: Erdő
+          wood: Természetes erdő
           farmland: Mezőgazdasági terület
-          grass:
-          - Fű
-          - rét
+          grass: Fű
+          meadow: Rét
           bare_rock: Csupasz szikla
           sand: Homok
           golf: Golfpálya
           park: Park
-          common:
-          - Füves terület
-          - rét
-          - kert
+          common: Füves terület
           built_up: Beépített terület
           resident: Gyalogos övezet
           retail: Kereskedelmi terület
           industrial: Ipari terület
           commercial: Kereskedelmi terület
           heathland: Fenyér
-          lake:
-          - Tó
-          - víztározó
+          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ő
@@ -2283,20 +2300,20 @@ hu:
           centre: Sportközpont
           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_parking: Kerékpártároló
           toilets: WC
index 8e2be854515f0f7f6bc76b00a2b9b302e15321c7..6aace21cd23e46ff6e8a78c1da2ac64ac23ecd7e 100644 (file)
@@ -1468,9 +1468,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
@@ -1758,8 +1758,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'
@@ -1767,12 +1765,14 @@ 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
     message_summary:
       unread_button: Marcar como non legite
       read_button: Marcar como legite
@@ -1792,14 +1792,9 @@ 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
       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
@@ -1818,6 +1813,9 @@ 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
     mark:
       as_read: Message marcate como legite
       as_unread: Message marcate como non legite
@@ -2337,35 +2335,27 @@ ia:
           subway: Metro
           ferry: Ferry-boat
           light_rail: Ferrovia legier
-          tram_only: Tram
+          tram: Tram
           trolleybus: Trolleybus
           bus: Autobus
-          cable:
-          - Telepherico
-          - Telesedia
-          runway:
-          - Pista de aeroporto
-          - via de circulation pro aviones
-          apron_only: Platteforma pro aviones
+          cable_car: Telepherico
+          chair_lift: Telesedia
+          runway: Pista de aeroporto
+          taxiway: Via de circulation pro aviones
+          apron: Platteforma pro aviones
           admin: Limite administrative
-          orchard:
-          - Verdiero
-          - vinia
-          forest:
-          - Foreste
-          - bosco
+          orchard: Verdiero
+          vineyard: Vinia
+          forest: Foreste
+          wood: Bosco
           farmland: Terra agricole
-          grass:
-          - Herba
-          - prato
+          grass: Herba
+          meadow: Prato
           bare_rock: Rocca nude
           sand: Sablo
           golf: Percurso de golf
           park: Parco
-          common:
-          - Commun
-          - prato
-          - jardin
+          common: Commun
           built_up: Area edificate
           resident: Area residential
           retail: Zona de commercio al detalio
@@ -2373,9 +2363,8 @@ ia:
           commercial: Area commercial
           heathland: Landa
           scrubland: Terreno de brossas
-          lake:
-          - Laco
-          - bassino
+          lake: Laco
+          reservoir: Reservoir
           intermittent_water: Massa de aqua intermittente
           glacier: Glaciero
           reef: Scolio
@@ -2388,15 +2377,13 @@ ia:
           centre: Centro de sport
           reserve: Reserva natural
           military: Area militar
-          school:
-          - Schola
-          - universitate
-          - hospital
+          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
index 89e0561a0d509e94f8d84d4c09fd302dcb97ef43..0ee57a368a2c6853d4c47a00928c6fc69c08d3e9 100644 (file)
@@ -1461,9 +1461,9 @@ id:
         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}
+      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
@@ -1744,8 +1744,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'
@@ -1753,12 +1751,14 @@ 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
     message_summary:
       unread_button: Tandai belum dibaca
       read_button: Tandai sudah dibaca
@@ -1778,14 +1778,9 @@ id:
       body: Maaf tidak ada pesan dengan id tersebut.
     outbox:
       title: Kotak keluar
-      my_inbox: Kotak Masuk Saya
-      my_outbox: Kotak Keluar Saya
       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
@@ -1803,6 +1798,9 @@ id:
         yang benar untuk membacanya.
     sent_message_summary:
       destroy_button: Hapus
+    heading:
+      my_inbox: Kotak Masuk Saya
+      my_outbox: Kotak Keluar Saya
     mark:
       as_read: Pesan ditandai sebagai telah dibaca
       as_unread: Pesan ditandai sebagai belum dibaca
@@ -2293,31 +2291,24 @@ id:
           footway: Jalan Setapak
           rail: Rel Kereta
           subway: Kereta bawah tanah
-          cable:
-          - Kereta Kabel
-          - Kereta Gantung
-          runway:
-          - Landasan bandara
-          - landas hubung
-          apron_only: Tempat Parkir Pesawat
+          cable_car: Kereta Kabel
+          chair_lift: Kereta Gantung
+          runway: Landasan bandara
+          taxiway: landas hubung
+          apron: Tempat Parkir Pesawat
           admin: Batas administrasi
-          forest:
-          - Hutan
-          - Kayu
+          forest: Hutan
+          wood: Kayu
           golf: Lapangan Golf
           park: Taman
-          common:
-          - Umum
-          - Padang rumput
-          - kebun
+          common: Umum
           resident: Area Permukiman
           retail: Area pertokoan
           industrial: Kawasan industri
           commercial: Area komersial
           heathland: Semak
-          lake:
-          - Danau
-          - Wilayah Serapan (Reservoir)
+          lake: Danau
+          reservoir: Wilayah Serapan (Reservoir)
           farm: Pertanian
           brownfield: Lahan kosong
           cemetery: Pemakaman
@@ -2326,14 +2317,12 @@ id:
           centre: Pusat Olahraga
           reserve: Cagar Alam
           military: Kawasan militer
-          school:
-          - Sekolah
-          - universitas
+          school: Sekolah
+          university: universitas
           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
index d16474ce5af6cddbc6447d6d9be521a5b0750517..512db18bdc3a9492a672382184421d0f2f3a72ca 100644 (file)
@@ -1459,9 +1459,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
@@ -1751,8 +1751,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ð'
@@ -1760,12 +1758,14 @@ 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
     message_summary:
       unread_button: Merkja sem ólesin
       read_button: Merkja sem lesin
@@ -1785,14 +1785,9 @@ is:
       body: Því miður er ekkert skilaboð með þetta auðkenni.
     outbox:
       title: Úthólf
-      my_inbox: Innhólfið mitt
-      my_outbox: Úthólfið mitt
       messages:
         one: Þú hefur sent %{count} skilaboð
         other: Þú hefur sent %{count} skilaboð
-      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
@@ -1811,6 +1806,9 @@ 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
@@ -2369,31 +2367,24 @@ is:
           footway: Gönguleið
           rail: Lestarteinar
           subway: Neðanjarðarlest
-          cable:
-          - Kláflyfta
-          - stólalyfta
-          runway:
-          - Flugbraut
-          - akstursbraut
-          apron_only: Flughlað
+          cable_car: Kláflyfta
+          chair_lift: stólalyfta
+          runway: Flugbraut
+          taxiway: akstursbraut
+          apron: Flughlað
           admin: Stjórnsýslumörk
-          forest:
-          - Ræktaður skógur
-          - Náttúrulegur skógur
+          forest: Ræktaður skógur
+          wood: Náttúrulegur skógur
           golf: Golfvöllur
           park: Almenningsgarður
-          common:
-          - Almenningur
-          - lundur
-          - garður
+          common: Almenningur
           resident: Íbúðasvæði
           retail: Smásölusvæði
           industrial: Iðnaðarsvæði
           commercial: Verslunarsvæði
           heathland: Heiðalönd
-          lake:
-          - Vatn
-          - uppistöðulón
+          lake: Vatn
+          reservoir: uppistöðulón
           farm: Bóndabær
           brownfield: Nýbyggingarsvæði
           cemetery: Grafreitur
@@ -2402,14 +2393,12 @@ is:
           centre: Íþróttamiðstöð
           reserve: Náttúruverndarsvæði
           military: Hersvæði
-          school:
-          - Skóli
-          - Háskóli
+          school: Skóli
+          university: Háskóli
           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
index 77ff19189419d370681cea0e02ae8d2f611b81d1..e8d910c81342f6f3717505d244f05d099b69f9c3 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
@@ -324,6 +327,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:
@@ -1522,9 +1528,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
@@ -1810,8 +1816,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'
@@ -1819,17 +1823,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}
@@ -1844,17 +1852,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,
@@ -1870,9 +1879,16 @@ 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:
@@ -2001,6 +2017,7 @@ it:
       image: Immagine
       alt: Testo alternativo
       url: URL
+      codeblock: Blocco di codice
     richtext_field:
       edit: Modifica
       preview: Anteprima
@@ -2137,6 +2154,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
@@ -2370,44 +2391,55 @@ 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_only: Tram
+          ferry: Traghetto
+          light_rail: Metropolitana leggera
+          tram: Tram
+          trolleybus: Filobus
           bus: Autobus
-          cable:
-          - Funivia
-          - seggiovia
-          runway:
-          - Pista di decollo/atterraggio
-          - pista di rullaggio
-          apron_only: Area di parcheggio aeroportuale
+          cable_car: Funivia
+          chair_lift: Seggiovia
+          runway: Pista di decollo/atterraggio
+          taxiway: Pista di rullaggio
+          apron: Area di parcheggio aeroportuale
           admin: Confine amministrativo
-          forest:
-          - Foresta
-          - bosco
+          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
-          - prato
-          - giardino
+          common: Area comune
           resident: Zona residenziale
           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
@@ -2416,19 +2448,19 @@ it:
           centre: Centro sportivo
           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_parking: Parcheggio per biciclette
@@ -2475,6 +2507,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
@@ -2642,6 +2675,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
@@ -2851,6 +2885,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
@@ -2882,6 +2918,7 @@ it:
           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
@@ -2991,6 +3028,16 @@ it:
       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.
@@ -3049,6 +3096,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}
@@ -3085,6 +3157,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
index 029246a215545e5c38e2ef4f0c81258d004c255c..127ec058de69446405c90b04ff8b01583a8f82b9 100644 (file)
@@ -1427,9 +1427,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: 再開
@@ -1655,18 +1655,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: 既読にする
@@ -1685,13 +1685,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:
@@ -1705,6 +1700,9 @@ ja:
       wrong_user: あなたは「%{user}」としてログインしていますが、閲覧しようとしたメッセージは、この利用者が送信したものでも、この利用者宛てのものでもありません。メッセージを閲覧するには、正しいユーザーとしてログインしてください。
     sent_message_summary:
       destroy_button: 削除
+    heading:
+      my_inbox: 自分の受信箱
+      my_outbox: 自分の送信ボックス
     mark:
       as_read: 既読メッセージ
       as_unread: 未読メッセージ
@@ -2027,31 +2025,24 @@ ja:
           footway: 歩道
           rail: 鉄道
           subway: 地下鉄
-          cable:
-          - 交走式ロープウェイ
-          - チェアリフト
-          runway:
-          - 空港滑走路
-          - 空港誘導路
-          apron_only: 空港ビル
+          cable_car: 交走式ロープウェイ
+          chair_lift: チェアリフト
+          runway: 空港滑走路
+          taxiway: 空港誘導路
+          apron: 空港ビル
           admin: 行政境界
-          forest:
-          - 森
-          - 森林
+          forest: 森
+          wood: 森林
           golf: ゴルフ場
           park: 公園
-          common:
-          - 共有地
-          - 牧草地
-          - 庭園
+          common: 共有地
           resident: 住宅地
           retail: 小売業地域
           industrial: 工業地域
           commercial: オフィス地域
           heathland: 荒地
-          lake:
-          - 湖
-          - 溜池
+          lake: 湖
+          reservoir: 溜池
           farm: 農牧場
           brownfield: 褐色地
           cemetery: 墓地
@@ -2060,14 +2051,12 @@ ja:
           centre: スポーツセンター
           reserve: 自然保護区
           military: 軍用地域
-          school:
-          - 学校
-          - 大学
+          school: 学校
+          university: 大学
           building: 重要建造物
           station: 鉄道駅
-          summit:
-          - 山脈
-          - 山頂
+          summit: 山脈
+          peak: 山頂
           tunnel: 点線の枠 = トンネル
           bridge: 黒枠 = 橋梁
           private: 私的通行
@@ -2397,6 +2386,7 @@ ja:
       my_dashboard: 私のダッシュボード
       blocks on me: 自分に与えられたブロック
       blocks by me: 自分が実行したブロック
+      create_mute: この利用者をミュートする
       edit_profile: プロフィールを編集
       send message: メッセージを送信
       diary: 日記
index 4398b4f8bc6e845d524eb511df8aff11a5ec46a3..19c5b53a1ac2ead3907481ab8ae2f51c532042db 100644 (file)
@@ -795,7 +795,6 @@ ka:
   messages:
     inbox:
       title: მიღებული
-      my_inbox: ჩემი მიღებული
       messages: თქვენ გაქვთ %{new_messages} და %{old_messages}
       new_messages:
         one: '%{count} ახალი შეტყობინება'
@@ -803,12 +802,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: მონიშნეთ როგორც წაკითხული
@@ -831,9 +832,6 @@ ka:
       messages:
         one: თქვენ გაქვთ %{count} გაგზავნილი შეტყობინება
         other: თქვენ გაქვთ %{count} გაგზავნილი შეტყობინება
-      to: ვის
-      subject: თემა
-      date: თარიღი
       no_sent_messages_html: თქვენ ჯერ არ გაქვთ გაგზავნილი შეტყობინებები. რატომ არ
         უნდა გავესაუბრო ვინმეს %{people_mapping_nearby_link}?
       people_mapping_nearby: ახლოს მყოფი ხალხი
@@ -850,6 +848,8 @@ ka:
         როგორც შესაბამისი მომხმარებელი, რათა წაიკითხოთ ის.
     sent_message_summary:
       destroy_button: წაშლა
+    heading:
+      my_inbox: ჩემი მიღებული
     mark:
       as_read: შეტყობინება მონიშნულია როგორც წაკითხული
       as_unread: შეტყობინება მონიშნულია როგორც წაუკითხავი
@@ -942,34 +942,28 @@ ka:
           footway: საფეხმავლო გზა
           rail: რკინიგზა
           subway: მეტრო
-          cable:
-          - საბაგირო გზა
-          runway:
-          - აეროპორტის ასაფრენ-დასაფრენი ბილიკი
+          cable_car: საბაგირო გზა
+          runway: აეროპორტის ასაფრენ-დასაფრენი ბილიკი
           admin: ადმინისტრაციული საზღვარი
-          forest:
-          - ტყე
-          - ტყე
+          forest: ტყე
+          wood: ტყე
           golf: გოლფის მოედანი
           park: პარკი
           resident: საცხოვრებელი ტერიტორია
           commercial: კომერციული ტერიტორია
-          lake:
-          - ტბა
-          - წყალსაცავი
+          lake: ტბა
+          reservoir: წყალსაცავი
           farm: ფერმა
           cemetery: სასაფლაო
           pitch: სპორტული მოედანი
           centre: სპორტული ცენტრი
           reserve: ნაკრძალი
           military: სამხედრო ტერიტორია
-          school:
-          - სკოლა
-          - უნივერსიტეტი
+          school: სკოლა
+          university: უნივერსიტეტი
           station: რკინიგზის სადგური
-          summit:
-          - მწვერვალი
-          - პიკი
+          summit: მწვერვალი
+          peak: პიკი
   traces:
     new:
       visibility_help: ეს რას ნიშნავს?
index fb427ed07b79958753c1d3b01d8141d9b092ed39..422a992109540214c8d25f15da1501f6ed9c89c0 100644 (file)
@@ -903,9 +903,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:
@@ -923,9 +924,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
@@ -934,6 +932,8 @@ 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
@@ -1120,13 +1120,10 @@ kab:
     key:
       table:
         entry:
-          forest:
-          - Tiẓgi
-          lake:
-          - Amdun
-          school:
-          - Aɣerbaz
-          - Tasdawit
+          forest: Tiẓgi
+          lake: Amdun
+          school: Aɣerbaz
+          university: Tasdawit
     welcome:
       title: Anṣuf!
       whats_on_the_map:
index 4de40ff46666f1a24c7cd8055b4640e98885448b..918147ef58686d532e944570c02d0b50c4be92b5 100644 (file)
@@ -852,7 +852,7 @@ kk-cyrl:
     lost_password:
       subject: '[OpenStreetMap] Құпиясөзді арылту сұранысы'
   messages:
-    inbox:
+    messages_table:
       subject: Тақырып
     message_summary:
       unread_button: Оқылмаған деп белгілеу
@@ -972,33 +972,26 @@ kk-cyrl:
           unclassified: Жергілікті жол
           rail: Темір жол
           subway: Метро
-          apron_only: Әуежай перроны
+          apron: Әуежай перроны
           admin: Әкімшілік шекара
-          forest:
-          - Орман
+          forest: Орман
           golf: Гольф алаңы
           park: Саябақ
-          common:
-            1: шабындық
-            2: бақ
           resident: Тұрғын аудан
           retail: Сауда аймағы
           industrial: Өнеркәсіп аймағы
-          lake:
-          - Көл
+          lake: Көл
           farm: Ферма
           cemetery: Зират
           allotments: Саяжайлар
           pitch: Спорт алаңы
           centre: Спорт орталығы
           military: Әскери аймақ
-          school:
-          - Мектеп
-          - университет
+          school: Мектеп
+          university: университет
           building: Елеулі ғимарат
           station: Темір жол бекеті
-          summit:
-            1: шың
+          peak: шың
           bicycle_shop: Велосипед дүкені
           toilets: Дәретхана
     welcome:
index 20e594ff773324602d67d7be083976e17c6adf7d..6d6d5d65d68eea362696a761321a03467d95e39b 100644 (file)
@@ -650,16 +650,13 @@ km:
       button: បញ្ជាក់​
       success: បានបញ្ជាក់អាសយដ្ឋានអ៊ីមែលរបស់អ្នករូចរាល់ហើយ!
   messages:
-    inbox:
+    messages_table:
       from: ពី​
+      to: ទៅ​
       subject: ប្រធានបទ​
       date: កាលបរិច្ឆេទ​
     new:
       back_to_inbox: ត្រឡប់ទៅប្រអប់សំបុត្រ​
-    outbox:
-      to: ទៅ​
-      subject: ប្រធានបទ​
-      date: កាលបរិច្ឆេទ​
   sessions:
     new:
       title: កត់ឈ្មោះចូល
@@ -727,15 +724,13 @@ km:
           rail: ផ្លូវដែក
           subway: ផ្លូវដែកក្រោមដី
           admin: ព្រំដែនរដ្ឋបាល
-          forest:
-          - ព្រៃឈើ​
+          forest: ព្រៃឈើ​
           park: ឧទ្យាន​
           industrial: តំបន់ឧស្សាហកម្ម​
           farm: កសិដ្ឋាន​
           centre: មជ្ឈមណ្ឌល​កីឡា​
-          school:
-          - សាលារៀន​
-          - សាកលវិទ្យាល័យ​
+          school: សាលារៀន​
+          university: សាកលវិទ្យាល័យ​
           station: ស្ថានីយ៍ផ្លូវដែក
   traces:
     new:
index 8b680fc668524ce768ca8d8bad7342cef2e95f6f..5072045574c7759a039cdf456a40af37722b98a1 100644 (file)
@@ -715,8 +715,9 @@ kn:
     confirm_email:
       button: ಧೃಡಪಡಿಸಿ
   messages:
-    inbox:
+    messages_table:
       from: ಇಂದ
+      to: ಗೆ
       subject: ವಿಷಯ
       date: ದಿನಾಂಕ
     message_summary:
@@ -729,9 +730,6 @@ kn:
       title: ಅಂತಹ ಯಾವುದೇ ಸಂದೇಶವಿಲ್ಲ
       heading: ಅಂತಹ ಯಾವುದೇ ಸಂದೇಶವಿಲ್ಲ
     outbox:
-      to: ಗೆ
-      subject: ವಿಷಯ
-      date: ದಿನಾಂಕ
       people_mapping_nearby: ನಿಮ್ಮ ಹತ್ತಿರವಿರುವ ಬಳಕೆದಾರರು
     show:
       title: ಸಂದೇಶವನ್ನು ಓದಿ
@@ -870,18 +868,15 @@ kn:
       table:
         entry:
           main_road: ಮುಖ್ಯ ರಸ್ತೆ
-          forest:
-          - ಅರಣ್ಯ
+          forest: ಅರಣ್ಯ
           park: ಉದ್ಯಾನ
           resident: ವಾಸ ಮಾಡುವ ಸ್ಥಳ
-          lake:
-          - ಕೆರೆ
-          - ಅಣೆಕಟ್ಟು
+          lake: ಕೆರೆ
+          reservoir: ಅಣೆಕಟ್ಟು
           farm: ಒಕ್ಕಲು ಜಮೀನು
           cemetery: ಸ್ಮಾಶಾಣ
-          school:
-          - ಪಾಠಶಾಲೆ
-          - ವಿಶ್ವವಿದ್ಯಾಲಯ
+          school: ಪಾಠಶಾಲೆ
+          university: ವಿಶ್ವವಿದ್ಯಾಲಯ
           station: ರೈಲು ನಿಲ್ದಾಣ
     welcome:
       title: ಸುಸ್ವಾಗತ!
index a86a672d90108c0b22d5efc0853a746d32759fe7..28a6ae63016b1238eedc1cc633d02f29d14943bb 100644 (file)
@@ -1406,9 +1406,9 @@ ko:
       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: 다시 열림
@@ -1649,8 +1649,6 @@ ko:
   messages:
     inbox:
       title: 받은 쪽지함
-      my_inbox: 받은 쪽지함
-      my_outbox: 보낸 쪽지함
       messages: '%{new_messages}와 %{old_messages}가 있습니다'
       new_messages:
         one: 새 메시지 %{count}개
@@ -1658,12 +1656,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: 읽음으로 표시
@@ -1682,14 +1682,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: 근처에 매핑한 사람
@@ -1706,6 +1701,9 @@ ko:
         올바른 사용자로 로그인하세요.'
     sent_message_summary:
       destroy_button: 삭제
+    heading:
+      my_inbox: 받은 쪽지함
+      my_outbox: 보낸 쪽지함
     mark:
       as_read: 메시지를 읽은 것으로 표시
       as_unread: 메시지를 읽지 않은 것으로 표시
@@ -1830,6 +1828,7 @@ ko:
       image: 이미지
       alt: 대체 텍스트
       url: URL
+      codeblock: 코드 블록
     richtext_field:
       edit: 편집
       preview: 미리 보기
@@ -2157,31 +2156,24 @@ ko:
           footway: 보도
           rail: 철도
           subway: 지하철
-          cable:
-          - 케이블 카
-          - 체어 리프트
-          runway:
-          - 공항 활주로
-          - 공항 유도로
-          apron_only: 공항 계류장
+          cable_car: 케이블 카
+          chair_lift: 체어 리프트
+          runway: 공항 활주로
+          taxiway: 공항 유도로
+          apron: 공항 계류장
           admin: 행정 구역 경계
-          forest:
-          - 숲
-          - 산림
+          forest: 숲
+          wood: 산림
           golf: 골프장
           park: 공원
-          common:
-          - 공유지
-          - 목초지
-          - 정원
+          common: 공유지
           resident: 주거 지역
           retail: 소매 지역
           industrial: 산업 지역
           commercial: 상업/관공서 지역
           heathland: 황무지
-          lake:
-          - 호수
-          - 저수지
+          lake: 호수
+          reservoir: 저수지
           farm: 농장
           brownfield: 재개발지역
           cemetery: 묘역
@@ -2190,14 +2182,12 @@ ko:
           centre: 스포츠 센터
           reserve: 자연 보호구역
           military: 군사 지역
-          school:
-          - 학교
-          - 대학
+          school: 학교
+          university: 대학
           building: 주요 건물
           station: 철도역
-          summit:
-          - 산꼭대기
-          - 봉우리
+          summit: 산꼭대기
+          peak: 봉우리
           tunnel: 점선 테두리 = 터널
           bridge: 검은 테두리 = 다리
           private: 개인 통행
@@ -2499,6 +2489,7 @@ ko:
       application: 애플리케이션
       permissions: 권한
       no_applications_html: 아직 %{oauth2} 애플리케이션을 승인하지 않았습니다.
+      oauth_2: OAuth 2
     application:
       revoke: 접근 취소
       confirm_revoke: 이 애플리케이션에 대한 액세스 권한을 취소하시겠습니까?
index 448a17c969136938aef3ae80d632ab8fc1b88ffc..f9a7e9e8929c88566c346ec96bfc60953050bcd1 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}?
@@ -278,30 +279,24 @@ ksh:
           footway: Fohßwääsch udder Päddsche
           rail: Eiserbahn
           subway: U-Bahn
-          cable:
-          - Seilbahn
-          - Sässelbahn
-          runway:
-          - Startbahn, Landebahn
-          - Rollwääsch om Fluchhaaven
-          apron_only: Halldepläz om Fluchveäld
+          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
-          - Urwald
+          forest: Wald, Bösch
+          wood: Urwald
           golf: Jolfplaz
           park: Park
-          common:
-          - öffentlesch Land
-          - Wiß
+          common: öffentlesch Land
           resident: Wohnjebeet
           retail: Einkaufszentrum
           industrial: Industriejebeet
           commercial: Jewerbejebeet
           heathland: Heed
-          lake:
-          - See, Wejer
-          - Stausee
+          lake: See, Wejer
+          reservoir: Stausee
           farm: Buurehoff
           brownfield: Industriebrachland
           cemetery: Friedhoff
@@ -310,14 +305,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 5afc8eb1d3aa7ae6b2cd6362d04ea1a0d15b4267..9f5facc581dde9a4a8af969623a0bdc10b4d247b 100644 (file)
@@ -47,6 +47,12 @@ 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:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: jixwe bêdengkirî ne
     models:
       acl: Lîsteya kontrola têketinan
       changeset: Qeyda guhartinan
@@ -237,6 +243,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 +278,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 +310,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.
@@ -1423,10 +1435,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
@@ -1715,8 +1727,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û'
@@ -1724,12 +1734,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
@@ -1749,14 +1761,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
@@ -1775,6 +1782,9 @@ 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
@@ -2112,31 +2122,24 @@ ku-Latn:
           footway: Rêya peyayan
           rail: Rêhesin
           subway: Metro
-          cable:
-          - Teleferîk
-          - teleferîk
-          runway:
-          - Pîsta balafirgehê
-          - rêya balafirgehê yê çûnûhatinê
-          apron_only: Aprona balafirgehê
+          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
-          - Daristan
+          forest: Daristan
+          wood: Daristan (bêçavdêrî, wek-xwe-hêlayî)
           golf: Cihê golfê
           park: Park
-          common:
-          - Erda mişterek
-          - mêrg
-          - bexçe
+          common: Erda mişterek
           resident: Cihê îkametê
           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
@@ -2145,14 +2148,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
@@ -2256,8 +2257,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
index c4ee5b312dac9c13f0dd9e73a1b881b40351b4b7..e2daa23bb447785db4ff2cc25d0b73236a47c46b 100644 (file)
@@ -49,6 +49,11 @@ lb:
       messages:
         invalid_email_address: schéngt keng valabel E-Mail-Adress ze sinn
         email_address_not_routable: ass net routingfäeg
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
     models:
       acl: Zougrëffssteierlëscht
       changeset: Set vun Ännerungen
@@ -1401,9 +1406,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
@@ -1691,8 +1696,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'
@@ -1700,12 +1703,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
@@ -1725,14 +1731,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
@@ -1751,6 +1753,9 @@ 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
@@ -1898,6 +1903,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:
@@ -2037,36 +2043,29 @@ lb:
           train: Zuch
           subway: Metro
           ferry: Fär
-          tram_only: Tram
+          tram: Tram
           bus: Bus
-          cable:
-          - Seelbunn
-          - Sessellift
-          runway:
-          - Start- a Landebunn
-          - Rullbunn
+          cable_car: Seelbunn
+          chair_lift: Sessellift
+          runway: Start- a Landebunn
+          taxiway: Rullbunn
           admin: Verwaltungsgrenz
-          orchard:
-          - Bongert
-          - Wéngert
-          forest:
-          - Bësch
-          - Bësch
-          grass:
-          - Wiss
+          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
@@ -2076,14 +2075,12 @@ lb:
           centre: Sportszenter
           reserve: Naturschutzgebitt
           military: Militärgebitt
-          school:
-          - Schoul
-          - Universitéit
-          - Spidol
+          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
@@ -2260,6 +2257,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
@@ -2419,6 +2417,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
index e7d529f9db0cd7cf785f9faf52f7cfa90cb464ce..6c5507279570c75347b920c3a0b1c7429cade1a7 100644 (file)
@@ -1382,9 +1382,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
@@ -1659,8 +1659,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'
@@ -1668,12 +1666,14 @@ 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
     message_summary:
       unread_button: Žymėti neskaitytu
       read_button: Žymėti skaitytu
@@ -1693,14 +1693,9 @@ lt:
       body: Gaila, bet žinutės su tokiu id nėra.
     outbox:
       title: Išsiųstieji
-      my_inbox: Gautieji
-      my_outbox: Išsiųsti
       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
@@ -1719,6 +1714,9 @@ lt:
         naudotojo paskyros, jei norite tai perskaityti.
     sent_message_summary:
       destroy_button: Ištrinti
+    heading:
+      my_inbox: Mano gauti
+      my_outbox: Išsiųsti
     mark:
       as_read: Pranešimas pažymėtas kaip skaitytas
       as_unread: Pranešimas pažymėtas kaip neskaitytas
@@ -2080,30 +2078,24 @@ lt:
           footway: Pėsčiųjų takas
           rail: Geležinkelis
           subway: Metropoliteno linija
-          cable:
-          - Lyno keltuvas
-          - keltuvas
-          runway:
-          - Kilimo takas
-          - Riedėjimo takas
-          apron_only: Oro uosto lėktuvų aikštelė
+          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
-          forest:
-          - Miškas
-          - Medžių teritorija
+          forest: Miškas
+          wood: Medžių teritorija
           golf: Golfo laukas
           park: Parkas
-          common:
-          - Bendras
-          - pieva
+          common: Bendras
           resident: Gyvenamoji zona
           retail: Mažmeninis rajonas
           industrial: Pramoninė zona
           commercial: Komericinis plotas
           heathland: Šilynas
-          lake:
-          - Ežeras
-          - rezervuaras
+          lake: Ežeras
+          reservoir: rezervuaras
           farm: Ūkis
           brownfield: Apleista teritorija
           cemetery: Kapinės
@@ -2112,14 +2104,12 @@ lt:
           centre: Sporto centras
           reserve: Gamtos rezervatas
           military: Karinis rajonas
-          school:
-          - Mokykla
-          - universitetas
+          school: Mokykla
+          university: universitetas
           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
index 4a5db17d0203ee63709aa11c576953c17ab49674..f45ca65a06c15afa9abc7bde2366090139f9875a 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
@@ -232,6 +233,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
@@ -411,7 +413,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
@@ -448,6 +450,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
@@ -498,6 +501,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:
@@ -610,6 +614,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
@@ -666,6 +671,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
@@ -845,6 +851,7 @@ lv:
           flagpole: Karoga masts
           kiln: Ceplis
           lighthouse: Bāka
+          manhole: Lūka
           mine: Raktuves
           mineshaft: Raktuves šahta
           monitoring_station: Uzraudzības stacija
@@ -1173,6 +1180,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
@@ -1335,8 +1344,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'
@@ -1344,12 +1351,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
@@ -1369,14 +1378,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ē
@@ -1395,6 +1399,9 @@ 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
@@ -1712,31 +1719,24 @@ lv:
           footway: Gājēju ceļš
           rail: Dzelzceļš
           subway: Metro
-          cable:
-          - Trošu ceļš
-          - krēslu pacēlājs
-          runway:
-          - Lidostas skrejceļš
-          - manevrēšanas ceļš
-          apron_only: Lidostas rampa
+          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
-          - Pirmatnējs mežs
+          forest: Mežs
+          wood: Pirmatnējs mežs
           golf: Golfa laukums
           park: Parks
-          common:
-          - Koplietošanas zeme
-          - Pļava
-          - dārzs
+          common: Koplietošanas zeme
           resident: Dzīvojamā zona
           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
@@ -1745,14 +1745,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
index e294170239255ccef34dbf57d3730b2848256495..97127722823b1bc221e5d661840b1cbd1e9e091c 100644 (file)
@@ -46,6 +46,12 @@ mk:
       messages:
         invalid_email_address: не претставува важечка е-пошта
         email_address_not_routable: не е насочлива
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: е веќе замолкнат
     models:
       acl: Список за контрола на пристап
       changeset: Измени
@@ -274,7 +280,7 @@ mk:
   accounts:
     edit:
       title: Уреди сметка
-      my settings: Ð\9cои Ð¿Ñ\80илагодувања
+      my settings: Ð\9cои Ð½агодувања
       current email address: Тековна е-пошта
       external auth: Надворешна заверка
       openid:
@@ -1462,9 +1468,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: Повторно отвори
@@ -1624,6 +1630,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'
@@ -1742,8 +1750,6 @@ mk:
   messages:
     inbox:
       title: Примени
-      my_inbox: Моето сандаче
-      my_outbox: Моја излезна пошта
       messages: Имате %{new_messages} и %{old_messages}
       new_messages:
         one: '%{count} нова порака'
@@ -1751,21 +1757,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: Во последно време имате испратено многу пораки. Почекајте малку,
@@ -1776,17 +1786,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}“, но пораката на којашто побаравте да
         одговорите не е испратена до тој корисник. Најавете се под правилно корисничко
@@ -1802,9 +1813,16 @@ mk:
         име за да ја прочитате.
     sent_message_summary:
       destroy_button: Избриши
+    heading:
+      my_inbox: Примени
+      my_outbox: Моја излезна пошта
+      muted_messages: Замолкнати пораки
     mark:
       as_read: Пораката е означена како прочитана
       as_unread: Пораката е означена како непрочитана
+    unmute:
+      notice: Пораката е преместена во Примени
+      error: Пораката не можеше да се премести во Примени.
     destroy:
       destroyed: Пораката е избришана
   passwords:
@@ -1932,6 +1950,7 @@ mk:
       image: Слика
       alt: Алтернативен текст
       url: URL
+      codeblock: Коден блок
     richtext_field:
       edit: Уреди
       preview: Преглед
@@ -2318,41 +2337,36 @@ mk:
           cycleway_national: Државна велосипедска патека
           cycleway_regional: Регионална велосипедска патека
           cycleway_local: Месна велосипедска патека
+          cycleway_mtb: Пат за планински велосипедизам
           footway: Пешачка патека
           rail: Железница
           train: Воз
           subway: Метро
           ferry: Траект
           light_rail: Лека железница
-          tram_only: Трамвај
+          tram: Трамвај
           trolleybus: Тролејбус
           bus: Автобус
-          cable:
-          - Клупна жичница
-          - клупна жичница
-          runway:
-          - Аеродромска писта
-          - рулажна патека
-          apron_only: Аеродромска платформа
+          cable_car: Клупна жичница
+          chair_lift: Клупна жичница
+          runway: Аеродромска писта
+          taxiway: Рулажна патека
+          apron: Аеродромска платформа
           admin: Административна граница
-          orchard:
-          - Овоштарник
-          - лозје
-          forest:
-          - Шума
-          - шума
+          capital: Главен град
+          city: Град
+          orchard: Овоштарник
+          vineyard: Лозје
+          forest: Шума
+          wood: Шума
           farmland: Земјоделско земјиште
-          grass:
-          - Трева
-          - ливада
+          grass: Трева
+          meadow: Ливада
           bare_rock: Гола карпа
           sand: Песок
           golf: Голф-терен
           park: Парк
-          common:
-          - Општествена земја
-          - ливада
-          - градина
+          common: Општествена земја
           built_up: Изградено подрачје
           resident: Станбено подрачје
           retail: Трговско подрачје
@@ -2360,9 +2374,8 @@ mk:
           commercial: Комерцијално подрачје
           heathland: Вресиште
           scrubland: Шикара
-          lake:
-          - Езеро
-          - резервоар
+          lake: Езеро
+          reservoir: Резервоар
           intermittent_water: Повремена водна површина
           glacier: Ледник
           reef: Гребен
@@ -2375,15 +2388,13 @@ mk:
           centre: Спортски центар
           reserve: Природен резерват
           military: Воено подрачје
-          school:
-          - Училиште
-          - универзитет
-          - болница
+          school: Училиште
+          university: Универзитет
+          hospital: Болница
           building: Значајно здание
           station: Железничка станица
-          summit:
-          - Врв
-          - врв
+          summit: Врв
+          peak: Врв
           tunnel: Испрекината линија = тунел
           bridge: Црна линија = мост
           private: Доверлив пристап
@@ -2593,6 +2604,7 @@ mk:
       oauth1_settings: Поставки за OAuth 1
       oauth2_applications: Поставки за OAuth 2
       oauth2_authorizations: Овластувања за OAuth 2
+      muted_users: Замолкнати корисници
   oauth:
     authorize:
       title: Овластете пристап до вашата сметка
@@ -2629,6 +2641,7 @@ mk:
       read_gpx: Читање на приватни ГПС-траги
       write_gpx: Подигање на ГПС-траги
       write_notes: Менување на белешки
+      write_redactions: Прикриј податоци за картата
       read_email: Читање на корисничка е-пошта
       skip_authorization: Автоодобрување на прилог
   oauth_clients:
@@ -2717,6 +2730,7 @@ mk:
       application: Прилог
       permissions: Дозволи
       no_applications_html: Сè уште немате овластено ниеден %{oauth2}-прилог.
+      oauth_2: OAuth 2
     application:
       revoke: Одземи пристап
       confirm_revoke: Да го одземам пристапот за овој прилог?
@@ -2795,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: Дневник
@@ -2832,6 +2848,7 @@ mk:
           importer: Одземи увознички пристап
       block_history: Активни блокови
       moderator_history: Зададени блокови
+      revoke_all_blocks: Отповикај ги сите блокови
       comments: Коментари
       create_block: Блокирај го корисников
       activate_user: Активирај го корисников
@@ -2941,6 +2958,16 @@ mk:
       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: Активно додека не се најави корисникот.
@@ -2999,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}
@@ -3035,6 +3086,7 @@ mk:
       reactivate: Преактивирај
       comment_and_resolve: Коментирај и реши
       comment: Коментирај
+      log_in_to_comment: Најавете се за да коментирате на оваа белешка
       report_link_html: Доколку оваа белешка содржи чувствителни информации кои треба
         да се остранат, можете да %{link}.
       other_problems_resolve: За сите други проблеми со белешката, решете ги самите
index a36aef78319ce4eb61d0874abcd1a4aac9025d72..9a7a689a59d4385eb73d5e99c5a33fbb51f1d97c 100644 (file)
@@ -927,7 +927,6 @@ mr:
   messages:
     inbox:
       title: अंतर्पेटी
-      my_inbox: माझी अंतर्पेटी
       messages: आपल्यासाठी %{new_messages} आणि %{old_messages} आहेत
       new_messages:
         one: '%{count} नवा संदेश'
@@ -935,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: वाचले अशी खूण करा
@@ -962,9 +963,6 @@ mr:
       messages:
         one: आपण पाठविलेला %{count} संदेश
         other: आपण पाठविलेले %{count} संदेश
-      to: प्रति
-      subject: विषय
-      date: दिनांक
       no_sent_messages_html: आपण अद्याप कुठलेही संदेश पाठविलेले नाहीत. %{people_mapping_nearby_link}
         संपर्क साधावा काय?
       people_mapping_nearby: जवळपासच्या इतर नकाशाकारांशी
@@ -982,6 +980,8 @@ mr:
         सदस्य म्हणून दाखल व्हा.
     sent_message_summary:
       destroy_button: वगळा
+    heading:
+      my_inbox: माझी अंतर्पेटी
     mark:
       as_read: संदेश वाचला आहे अशी खूण केली
       as_unread: संदेश वाचला नाही अशी खूण केली
@@ -1172,29 +1172,23 @@ mr:
           footway: पदपथ
           rail: लोहमार्ग
           subway: मेट्रो
-          cable:
-          - रज्जुमार्ग
-          - खुर्ची उद्वाहन
-          runway:
-          - विमानतळ धावपट्टी
-          - खेचमार्ग
-          apron_only: विमानतळावरील भरणतळ
+          cable_car: रज्जुमार्ग
+          chair_lift: खुर्ची उद्वाहन
+          runway: विमानतळ धावपट्टी
+          taxiway: खेचमार्ग
+          apron: विमानतळावरील भरणतळ
           admin: प्रशासकीय सीमा
-          forest:
-          - वन
-          - जंगल
+          forest: वन
+          wood: जंगल
           golf: गोल्फ कोर्स
           park: उद्यान
-          common:
-          - सार्वजनिक जमीन
-          - कुरण
+          common: सार्वजनिक जमीन
           resident: निवासी क्षेत्र
           retail: विक्री क्षेत्र
           industrial: औद्योगिक क्षेत्र
           commercial: वाणिज्यिक क्षेत्र
-          lake:
-          - तलाव
-          - जलाशय
+          lake: तलाव
+          reservoir: जलाशय
           farm: मळा
           cemetery: दफनभूमी
           allotments: वाटप
@@ -1202,14 +1196,12 @@ mr:
           centre: क्रीडाकेंद्र
           reserve: अभयारण्य
           military: लष्करी क्षेत्र
-          school:
-          - शाळा
-          - विद्यापीठ
+          school: शाळा
+          university: विद्यापीठ
           building: महत्वपूर्ण इमारत
           station: रेल्वे स्थानक
-          summit:
-          - शिखर
-          - शिखर
+          summit: शिखर
+          peak: शिखर
           tunnel: तुटक कड = बोगदा
           bridge: काळी कड = पूल
           private: खाजगी प्रवेश
index 018d07a11bec2c8594b983b04ded9591a9e41856..bc61362c1e945f952c2c0d0c648d498e5cb15dcc 100644 (file)
@@ -1337,16 +1337,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
@@ -1367,9 +1368,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
@@ -1388,6 +1386,8 @@ 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
@@ -1724,30 +1724,24 @@ ms:
           footway: Laluan pejalan kaki
           rail: Landasan keretapi
           subway: Landasan bawah tanah
-          cable:
-          - Kereta kabel
-          - lif kerusi
-          runway:
-          - Landasan kapal terbang
-          - jalan rayap
-          apron_only: Kawasan gerak lapangan terbang
+          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
-          - Hutan kecil
+          forest: Hutan
+          wood: Hutan kecil
           golf: Padang golf
           park: Taman
-          common:
-          - Tanah awam
-          - padang rumput
+          common: Tanah awam
           resident: Kawasan perumahan
           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
@@ -1756,14 +1750,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
index de20deee8d97e50646273135a889d4e211867488..2833f6f6f93c92ac4705bac31f6df4c8318143bb 100644 (file)
@@ -562,7 +562,9 @@ my:
   messages:
     inbox:
       title: အဝင်စာ
+    messages_table:
       from: မှ
+      to: သို့
       subject: အကြောင်းအရာ
       date: နေ့စွဲ
     message_summary:
@@ -578,9 +580,6 @@ my:
       heading: ယင်းကဲ့သို့မက်ဆေ့မရှိပါ
     outbox:
       title: အထွက်စာ
-      to: သို့
-      subject: အကြောင်းအရာ
-      date: နေ့စွဲ
     show:
       title: မက်ဆေ့ ဖတ်ရန်
       reply_button: အကြောင်းပြန်ရန်
@@ -690,17 +689,13 @@ my:
           bridleway: မြင်းစီးလမ်း
           cycleway: စက်ဘီးသွားလမ်း
           rail: ရထားလမ်း
-          runway:
-          - လေယာဉ်ကွင်းပြေးလမ်း
-          forest:
-          - သစ်တော
+          runway: လေယာဉ်ကွင်းပြေးလမ်း
+          forest: သစ်တော
           park: ပန်းခြံ
-          lake:
-          - ရေကန်
+          lake: ရေကန်
           cemetery: သုဿန်
-          school:
-          - ကျောင်း
-          - တက္ကသိုလ်
+          school: ကျောင်း
+          university: တက္ကသိုလ်
           station: ရထားဘူတာ
           construction: ဖောက်နေဆဲ လမ်းများ
           toilets: အိမ်သာများ
index 1eeef56682dea942d5fe2409c1aed1eb2407e200..a58345208648190474103483ac6b7d27a7abf214 100644 (file)
@@ -1276,9 +1276,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
@@ -1497,7 +1497,6 @@ nb:
   messages:
     inbox:
       title: Innboks
-      my_inbox: Min innboks
       messages: Du har %{new_messages} og %{old_messages}
       new_messages:
         one: '%{count} ny melding'
@@ -1505,12 +1504,14 @@ 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
     message_summary:
       unread_button: Marker som ulest
       read_button: Marker som lest
@@ -1530,13 +1531,9 @@ nb:
       body: Det er ingen melding med den ID-en.
     outbox:
       title: Utboks
-      my_inbox: Min innboks
       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
@@ -1553,6 +1550,8 @@ 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
     mark:
       as_read: Melding markert som lest
       as_unread: Melding markert som ulest
@@ -1842,30 +1841,24 @@ nb:
           footway: Gangvei
           rail: Jernbane
           subway: Undergrunnsbane
-          cable:
-          - Kabelvogn
-          - stolheis
-          runway:
-          - Flystripe
-          - taksebane
-          apron_only: terminal
+          cable_car: Kabelvogn
+          chair_lift: stolheis
+          runway: Flystripe
+          taxiway: taksebane
+          apron: terminal
           admin: Administrativ grense
-          forest:
-          - Skog
-          - Ved
+          forest: Skog
+          wood: Ved
           golf: Golfbane
           park: Park
-          common:
-          - Vanlig
-          - eng
+          common: Vanlig
           resident: Boligområde
           retail: Detaljsalgområde
           industrial: Industriområde
           commercial: Kommersielt område
           heathland: Heilandskap
-          lake:
-          - Innsjø
-          - reservoar
+          lake: Innsjø
+          reservoir: reservoar
           farm: Gård
           brownfield: Tidligere industriområde
           cemetery: Gravplass
@@ -1874,14 +1867,12 @@ nb:
           centre: Sportssenter
           reserve: Naturreservat
           military: Militært område
-          school:
-          - Skole
-          - universitet
+          school: Skole
+          university: universitet
           building: Viktig bygning
           station: Jernbanestasjon
-          summit:
-          - Topp
-          - fjelltopp
+          summit: Topp
+          peak: fjelltopp
           tunnel: Streket kant = tunnel
           bridge: Sort kant = bru
           private: Privat tilgang
index f2f3ac9045a0f63c30e7124c863d32624aca75f0..cb1eceeae7bab85c0d3536442fdf24d3a14df52f 100644 (file)
@@ -429,10 +429,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,13 +446,12 @@ 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:
@@ -520,30 +520,24 @@ nds:
           footway: Footpadd
           rail: Iesenbahn
           subway: U-Bahn
-          cable:
-          - Kavelbahn
-          - Skilift
-          runway:
-          - Fleger-Lannbahn
-          - Fleger-Rullweg
-          apron_only: Terminal
+          cable_car: Kavelbahn
+          chair_lift: Skilift
+          runway: Fleger-Lannbahn
+          taxiway: Fleger-Rullweg
+          apron: Terminal
           admin: Grenz
-          forest:
-          - Forst
-          - Woold
+          forest: Forst
+          wood: Woold
           golf: Golfplatz
           park: Park
-          common:
-          - Wisch
-          - Wisch
+          common: Wisch
           resident: Wahnrebeed
           retail: Ladenrebeed
           industrial: Industrierebeed
           commercial: Hannelsrebeed
           heathland: Heid
-          lake:
-          - See
-          - Stausee
+          lake: See
+          reservoir: Stausee
           farm: Buurnhoff
           brownfield: Industrie-Braakland
           cemetery: Karkhoff
@@ -552,14 +546,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 1fa1733b8a01b7aa8989bee431669f4ae5746ffe..5f1e4dc05c38d7a614c56ede4c5cf6608018c9d0 100644 (file)
@@ -822,8 +822,9 @@ ne:
   messages:
     inbox:
       title: इनबक्स
-      my_inbox: मेरो इनबक्स
+    messages_table:
       from: बाट
+      to: लाई
       subject: विषय
       date: मिति
     message_summary:
@@ -842,9 +843,6 @@ ne:
       heading: त्यस्तो कुनै पनि सन्देश छैन
     outbox:
       title: आउटबक्स
-      to: लाई
-      subject: विषय
-      date: मिति
     show:
       title: सन्देश पढ्नुहोस्
       reply_button: जवाफ दिने
@@ -853,6 +851,8 @@ ne:
       back: पछाडि
     sent_message_summary:
       destroy_button: हटाउनुहोस्
+    heading:
+      my_inbox: मेरो इनबक्स
     destroy:
       destroyed: सन्देश मेटियो
   passwords:
@@ -991,26 +991,21 @@ ne:
           cycleway: साइकल मार्ग
           rail: रेलमार्ग
           subway: सबवे
-          cable:
-          - केबल कार
-          - कुर्सी लिफ्ट
-          forest:
-          - वन
-          - कुञ्ज
+          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 b5971982117292a2ff598c6e805e6ee3e3c6ea89..a7c153a898b48a504ea930503fca9c74c23c6e68 100644 (file)
@@ -1525,9 +1525,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
@@ -1816,8 +1816,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'
@@ -1825,12 +1823,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
@@ -1850,14 +1850,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
@@ -1876,6 +1871,9 @@ 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
@@ -2410,35 +2408,27 @@ nl:
           subway: Metro
           ferry: Veerboot
           light_rail: Lightrail
-          tram_only: Tram
+          tram: Tram
           trolleybus: Trolleybus
           bus: Bus
-          cable:
-          - Kabelbaan
-          - stoeltjeslift
-          runway:
-          - Start- en landingsbaan
-          - taxibaan
-          apron_only: Luchthavenplatform
+          cable_car: Kabelbaan
+          chair_lift: Stoeltjeslift
+          runway: Start- en landingsbaan
+          taxiway: Taxibaan
+          apron: Luchthavenplatform
           admin: Bestuurlijke grens
-          orchard:
-          - Boomgaard
-          - wijngaard
-          forest:
-          - Bos
-          - bos
+          orchard: Boomgaard
+          vineyard: Wijngaard
+          forest: Bos
+          wood: Bos
           farmland: Landbouwgrond
-          grass:
-          - Gras
-          - weide
+          grass: Gras
+          meadow: Weide
           bare_rock: Kale rots
           sand: Zand
           golf: Golfbaan
           park: Park
-          common:
-          - Gemene grond
-          - weide
-          - tuin
+          common: Gemene grond
           built_up: Bebouwde kom
           resident: Woongebied
           retail: Winkelgebied
@@ -2446,9 +2436,8 @@ nl:
           commercial: Commercieel gebied
           heathland: Heide
           scrubland: Struikgewas
-          lake:
-          - Meer
-          - reservoir
+          lake: Meer
+          reservoir: Reservoir
           glacier: Gletsjer
           farm: Boerderij
           brownfield: Braakliggend terrein
@@ -2458,14 +2447,12 @@ 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
@@ -3029,8 +3016,8 @@ nl:
     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:
index a4dafa2ba257511e7441d1481f354b053e6bb256..3bafdc26c5952f614ec680e0832d1ae30002c6d9 100644 (file)
@@ -5,6 +5,7 @@
 # Author: Amire80
 # Author: Bjorni
 # Author: Danieldegroot2
+# Author: Dimitar
 # Author: Dittaeva
 # Author: Eirik
 # Author: Gnonthgol
@@ -1382,9 +1383,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
@@ -1658,8 +1659,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'
@@ -1667,12 +1666,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
@@ -1692,14 +1693,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
@@ -1716,6 +1712,9 @@ 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
@@ -2180,30 +2179,24 @@ nn:
           footway: Gangveg
           rail: Jernbane
           subway: Undergrunnsbane
-          cable:
-          - Kabelvogn
-          - stolheis
-          runway:
-          - Flystripe
-          - taksebane
-          apron_only: terminal
+          cable_car: Kabelvogn
+          chair_lift: stolheis
+          runway: Flystripe
+          taxiway: taksebane
+          apron: terminal
           admin: Administrativ grense
-          forest:
-          - Skog
-          - Ved
+          forest: Skog
+          wood: Ved
           golf: Golfbane
           park: Park
-          common:
-          - Vanleg
-          - snever
+          common: Vanleg
           resident: Boligområde
           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
@@ -2212,14 +2205,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
@@ -2415,7 +2406,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.
index 0e76724ef64c54adfeb5d01cc729a733f104370e..0f8fcc61ca07e90b9ab42168d8179d0c691c8271 100644 (file)
@@ -1021,9 +1021,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 +1235,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 +1263,6 @@ nqo:
       body: ߤߊߞߍ߬ߕߏ߫߸ ߗߋߛߓߍ߫ ߛߌ߫ ߕߍ߫ ߛߊ߲߬ߓߊ߬ߕߐ߮ ߏ߬ ߟߊ߫.
     outbox:
       title: ߗߋߟߌ߫ ߞߏ߲ߘߏ
-      my_inbox: ߒ ߠߊ߫ ߗߋߛߓߍ߫ ߛߐ߬ߡߐ߲߲߬ߣߍ߲
-      my_outbox: ߒ ߠߊ߫ ߗߋߛߓߍ߫ ߗߋߣߍ߲
-      to: ߞߊ߬ ߕߊ߯
-      subject: ߝߐߡߊ
-      date: ߕߎ߬ߡߊ߬ߘߊ
       no_sent_messages_html: ߗߋߛߓߍ߫ ߗߋߣߍ߲߫ ߕߴߌ ߓߟߏ߫ ߡߎߣߎ߲߬. ߡߎ߲߬ߠߊ߫ ߌ ߡߊ߫ ߕߘߍ߬ ߓߌ߬ߟߊ߬ߒ߬ߡߊ߬ߟߌ
         ߘߐ߫ %{people_mapping_nearby_link}؟
       people_mapping_nearby: ߡߐ߱ ߡߍ߲ ߠߎ߬ ߦߋ߫ ߔߊ߬ߔߘߊ߬ߦߊ ߞߊ߲߬ ߌ ߕߙߐߝߍ߬
@@ -1286,6 +1281,9 @@ nqo:
         ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߫ ߖߐ߲ߖߐ߲ ߘߌ߫ ߖߊ߰ߣߌ߲߫ ߛߴߌ ߘߌ߫ ߛߴߊ߬ ߘߐߞߊ߬ߙߊ߲߬ ߠߊ߫.
     sent_message_summary:
       destroy_button: ߊ߬ ߖߏ߬ߛߌ߬
+    heading:
+      my_inbox: ߒ ߠߊ߫ ߞߏ߲߬ߘߏ ߞߣߐߟߊ
+      my_outbox: ߒ ߠߊ߫ ߗߋߛߓߍ߫ ߗߋߣߍ߲
     mark:
       as_read: ߗߋߛߓߍ ߓߘߊ߫ ߣߐ߫ߣߐ߫ ߘߐ߬ߞߊ߬ߙߊ߲߬ߣߍ߲ ߘߌ߫
       as_unread: ߗߋߛߓߍ ߓߘߊ߫ ߣߐ߬ߣߐ߬ ߞߊ߬ߙߊ߲߬ߓߊߟߌ ߘߌ߫
@@ -1522,31 +1520,25 @@ nqo:
           footway: ߛߋ߲߬ߡߊ߬ߛߌߟߊ
           rail: ߣߍ߰ߛߌߟߊ
           subway: ߘߎ߰ߞߘߐ߬ߛߌߟߊ
-          cable:
-          - ߘߎ߲ߞߎߟߎ߲
-          runway:
-          - ߛߊ߲ߡߊߘߊ߲ ߓߏ߬ߙߌ߬ ߛߌߟߊ
-          - ߥߊߟߌߥߊߟߌ ߫ ߛߌߟߊ
+          cable_car: ߘߎ߲ߞߎߟߎ߲
+          runway: ߛߊ߲ߡߊߘߊ߲ ߓߏ߬ߙߌ߬ ߛߌߟߊ
+          taxiway: ߥߊߟߌߥߊߟߌ ߫ ߛߌߟߊ
           admin: ߓߐߕߏ߲߫ ߞߎ߲߬ߠߊ߬ߛߌ߰ߟߊ߬ߞߊ
-          forest:
-          - ߕߎ
-          - ߦߙߌ
-          common:
-          - ߘߍ߬ߒ߬ߡߊ߬ ߞߣߍ
+          forest: ߕߎ
+          wood: ߦߙߌ
+          common: ߘߍ߬ߒ߬ߡߊ߬ ߞߣߍ
           resident: ߡߐ߰ߘߐ߬ ߛߌߟߊ
           retail: ߖߎ߬ߟߦߊ߬ ߞߣߍ
           industrial: ߘߍ߲߰ߦߊ߬ߟߌ ߕߌ߲߬ߞߎߘߎ߲
           commercial: ߖߊ߬ߥߏ ߘߌ߲߬ߞߌߙߊ
-          lake:
-          - ߞߐ߰ߖߌ߬ߘߟߊ
+          lake: ߞߐ߰ߖߌ߬ߘߟߊ
           farm: ߝߏ߬ߘߏ
           cemetery: ߞߊߓߙߎߟߏ
           centre: ߝߊ߬ߘߌ߬ߡߊ߬ߞߟߏ ߕߊ߲ߓߊ߲
           reserve: ߛߎ߲ߞߎ߲ ߦߙߐ߫ ߟߊߕߏߣߍ߲
           military: ߣߊ߲߬ߕߌ߰ ߕߌ߲ߞߎߘߎ߲
-          school:
-          - ߞߊ߬ߙߊ߲߬ߕߊ
-          - ߖߊ߯ߓߘߊ
+          school: ߞߊ߬ߙߊ߲߬ߕߊ
+          university: ߖߊ߯ߓߘߊ
           station: ߣߍ߰ߛߌߟߊ ߟߐ߬ߘߊ߮
           construction: ߛߌߟߊ ߡߍ߲ ߟߊ ߦߴߌ ߘߐ߫
           bicycle_shop: ߣߍ߰ߛߏ߬ ߝߎ߲ߞߎ߲
index 0d50fc7a83849b512005be328dec2d76d4d5ae8e..309e2fcf9b088516914c285aa7af428ad62b78be 100644 (file)
@@ -1401,9 +1401,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
@@ -1667,8 +1667,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'
@@ -1676,12 +1674,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
@@ -1701,14 +1701,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
@@ -1727,6 +1722,9 @@ 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
@@ -2028,31 +2026,24 @@ oc:
           footway: Via pietonièra
           rail: Via ferrada
           subway: Linha de mètro
-          cable:
-          - Teleferic
-          - telesèti
-          runway:
-          - Pista d'aeropòrt
-          - via de circulacion d'aeropòrt
-          apron_only: Estacionament d'avions
+          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
-          - Bòsc
+          forest: Sèuva
+          wood: Bòsc
           golf: Percors de gòlf
           park: Pargue
-          common:
-          - Espaci comun
-          - prada
-          - Jardin
+          common: Espaci comun
           resident: Zòna residenciala
           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
@@ -2061,14 +2052,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
index 2a94f79c87605745afd092a304bfbe70774d4890..45320480b8f184626342bb69b7ab480cf100677d 100644 (file)
@@ -777,8 +777,9 @@ pa:
   messages:
     inbox:
       title: ਇਨਬਾਕਸ
-      my_inbox: ਮੇਰਾ ਇਨਬਾਕਸ
+    messages_table:
       from: ਵੱਲੋਂ
+      to: ਵੱਲ
       subject: ਵਿਸ਼ਾ
       date: ਮਿਤੀ
     message_summary:
@@ -793,9 +794,6 @@ pa:
       heading: ਅਜਿਹਾ ਕੋਈ ਸੁਨੇਹਾ ਨਹੀਂ
     outbox:
       title: ਆਊਟਬਾਕਸ
-      to: ਵੱਲ
-      subject: ਵਿਸ਼ਾ
-      date: ਮਿਤੀ
     show:
       title: ਸੁਨੇਹਾ ਪੜ੍ਹੋ
       reply_button: ਜੁਆਬ
@@ -803,6 +801,8 @@ pa:
       back: ਪਿੱਛੇ
     sent_message_summary:
       destroy_button: ਮਿਟਾਉ
+    heading:
+      my_inbox: ਮੇਰਾ ਇਨਬਾਕਸ
     destroy:
       destroyed: ਸੁਨੇਹਾ ਮਿਟਾਇਆ ਗਿਆ
   passwords:
@@ -934,43 +934,35 @@ pa:
           footway: ਪੈਦਲ ਰਾਹ
           rail: ਰੇਲਵੇ
           subway: ਸਬ-ਵੇਅ
-          cable:
-          - ਕੇਬਲ ਕਾਰ
-          - ਕੁਰਸੀ ਲਿਫ਼ਟ
-          runway:
-          - ਹਵਾਈ ਅੱਡੇ ਦੀ ਉਡਾਣ ਪੱਟੀ
-          - ਟੈਕਸੀਵੇਅ
-          apron_only: ਹਵਾਈ ਅੱਡੇ ਦਾ ਐਪਰਨ
+          cable_car: ਕੇਬਲ ਕਾਰ
+          chair_lift: ਕੁਰਸੀ ਲਿਫ਼ਟ
+          runway: ਹਵਾਈ ਅੱਡੇ ਦੀ ਉਡਾਣ ਪੱਟੀ
+          taxiway: ਟੈਕਸੀਵੇਅ
+          apron: ਹਵਾਈ ਅੱਡੇ ਦਾ ਐਪਰਨ
           admin: ਪ੍ਰਸ਼ਾਸਕੀ ਸਰਹੱਦ
-          forest:
-          - ਜੰਗਲ
-          - ਜੰਗਲ
+          forest: ਜੰਗਲ
+          wood: ਜੰਗਲ
           golf: ਗੋਲਫ਼ ਮੈਦਾਨ
           park: ਪਾਰਕ
-          common:
-          - ਸ਼ਾਮਲਾਟ
-          - ਚਰਗਾਹ
+          common: ਸ਼ਾਮਲਾਟ
           resident: ਰਿਹਾਇਸ਼ੀ ਇਲਾਕਾ
           retail: ਪਰਚੂਨ ਖੇਤਰ
           industrial: ਉਦਯੋਗਿਕ ਖੇਤਰ
           commercial: ਵਪਾਰਕ ਖੇਤਰ
-          lake:
-          - ਝੀਲ
-          - ਕੁੰਡ
+          lake: ਝੀਲ
+          reservoir: ਕੁੰਡ
           farm: ਖੇਤ
           cemetery: ਸ਼ਮਸ਼ਾਨ
           pitch: ਖੇਡ ਦੀ ਪਿੱਚ
           centre: ਖੇਡ ਕੇਂਦਰ
           reserve: ਕੁਦਰਤੀ ਰੱਖ
           military: ਫ਼ੌਜੀ ਇਲਾਕਾ
-          school:
-          - ਸਕੂਲ
-          - ਯੂਨੀਵਰਸਿਟੀ
+          school: ਸਕੂਲ
+          university: ਯੂਨੀਵਰਸਿਟੀ
           building: ਮਹੱਤਵਪੂਰਨ ਇਮਾਰਤ
           station: ਰੇਲਵੇ ਸਟੇਸ਼ਨ
-          summit:
-          - ਸਿਖਰ
-          - ਚੋਟੀ
+          summit: ਸਿਖਰ
+          peak: ਚੋਟੀ
           construction: ਉਸਾਰੀ ਹੇਠ ਸੜਕਾਂ
     welcome:
       title: ਜੀ ਆਇਆਂ ਨੂੰ!
index 894fafb7d589ab4acc472e2e76332c695c005068..7c641a29f8abc07e873bc51493dbf3744fe8fdbb 100644 (file)
@@ -21,6 +21,7 @@
 # Author: Deejay1
 # Author: FunPL
 # Author: GlutPaprykarz
+# Author: Iketsi
 # Author: Ireun
 # Author: Kaligula
 # Author: Kastanoto
@@ -104,6 +105,12 @@ pl:
       messages:
         invalid_email_address: nie wygląda na poprawny adres e-mail
         email_address_not_routable: nie jest routowalny
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: jest już wyciszony
     models:
       acl: Lista kontroli dostępu
       changeset: Zestaw zmian
@@ -1539,9 +1546,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
@@ -1818,8 +1826,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'
@@ -1831,12 +1837,14 @@ 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
     message_summary:
       unread_button: Oznacz jako nieprzeczytaną
       read_button: Oznacz jako przeczytaną
@@ -1856,15 +1864,10 @@ 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
       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
@@ -1883,6 +1886,9 @@ 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
@@ -2010,6 +2016,7 @@ pl:
       image: Obraz
       alt: Tekst alternatywny
       url: Adres URL
+      codeblock: Blok kodu
     richtext_field:
       edit: Edytuj
       preview: Podgląd
@@ -2337,34 +2344,27 @@ pl:
           subway: Metro
           ferry: Prom
           light_rail: Kolej miejska
-          tram_only: Tramwaj
+          tram: Tramwaj
           trolleybus: Trolejbus
           bus: Autobus
-          cable:
-          - Kolej linowa
-          - wyciąg krzesełkowy
-          runway:
-          - Pas startowy
-          - kołowania
-          apron_only: Płyta lotniska
+          cable_car: Kolej linowa
+          chair_lift: wyciąg krzesełkowy
+          runway: Pas startowy
+          taxiway: kołowania
+          apron: Płyta lotniska
           admin: Granica
-          forest:
-          - Las
-          - Drzewa
+          forest: Las
+          wood: Drzewa
           golf: Pole golfowe
           park: Park
-          common:
-          - Pole
-          - łąka
-          - ogród
+          common: Pole
           resident: Teren mieszkalny
           retail: Zabudowa handlowo-usługowa
           industrial: Teren przemysłowy
           commercial: Teren komercyjny
           heathland: Wrzosowisko
-          lake:
-          - Jezioro
-          - zbiornik
+          lake: Jezioro
+          reservoir: zbiornik
           glacier: Lodowiec
           farm: Gospodarstwo rolne
           brownfield: Teren powyburzeniowy
@@ -2374,20 +2374,19 @@ pl:
           centre: Centrum sportowe
           reserve: Rezerwat przyrody
           military: Teren wojskowy
-          school:
-          - Szkoła
-          - uniwersytet
+          school: Szkoła
+          university: uniwersytet
           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_parking: Parking dla rowerów
           toilets: Toalety
index df3e6be86560f1f8690b4b13b35ba384c997a376..50b66ba8c965be2ea93ff4e09f9e5b82861e3797 100644 (file)
@@ -1139,10 +1139,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: ولدا کھُلھو
@@ -1338,8 +1338,6 @@ pnb:
   messages:
     inbox:
       title: اینباکس
-      my_inbox: اینباکس
-      my_outbox: میرا آؤٹباکس
       messages: تہاڈے %{new_messages} تے %{old_messages} اے
       new_messages:
         one: '%{count} نویں سنیہا'
@@ -1347,12 +1345,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: پڑھا نشان لاؤ
@@ -1369,14 +1369,9 @@ pnb:
       body: ایہہ سنیہا نہیں لبھیا۔
     outbox:
       title: آؤٹباکس
-      my_inbox: اینباکس
-      my_outbox: میرا آؤٹباکس
       messages:
         one: تہاڈے %{count} بھیجݨ سنیہا اے
         other: تہاڈے  %{count} بھیجݨ سنیہے اے
-      to: ول
-      subject: وشا
-      date: تریخ
       people_mapping_nearby: نیڑے تیڑے دے نقشے والے
     show:
       title: مُنیہا پڑھو
@@ -1386,6 +1381,9 @@ pnb:
       back: پچھے
     sent_message_summary:
       destroy_button: مٹاؤ
+    heading:
+      my_inbox: اینباکس
+      my_outbox: میرا آؤٹباکس
     mark:
       as_read: سنیہا پڑھا نشان لایا گیا
       as_unread: سنیہا اݨ پڑھا نشان لایا گیا
@@ -1659,31 +1657,24 @@ pnb:
           footway: فُت‌وے
           rail: ریلوے
           subway: سبوے
-          cable:
-          - کیبل کار
-          - کُرسی لِفٹ
-          runway:
-          - ہوائی اڈے اُڈاݨ پٹی
-          - ٹیکسی‌وے
-          apron_only: ہوائی اڈے دا ایپرن
+          cable_car: کیبل کار
+          chair_lift: کُرسی لِفٹ
+          runway: ہوائی اڈے اُڈاݨ پٹی
+          taxiway: ٹیکسی‌وے
+          apron: ہوائی اڈے دا ایپرن
           admin: پرشاسکی سرحد
-          forest:
-          - رکھّ
-          - جنگل
+          forest: رکھّ
+          wood: جنگل
           golf: گولف مَیدان
           park: پارک
-          common:
-          - شاملاٹ
-          - چرگاہ
-          - باغ
+          common: شاملاٹ
           resident: رہائشی کھیتر
           retail: پرچون کھیتر
           industrial: سناتی کھیتر
           commercial: وپارک کھیتر
           heathland: ہیتھ
-          lake:
-          - جھیل
-          - کُنڈ
+          lake: جھیل
+          reservoir: کُنڈ
           farm: کھیت
           brownfield: براؤنفیلڈ
           cemetery: شمشان
@@ -1692,14 +1683,12 @@ pnb:
           centre: کھیڈ کیندر
           reserve: کُدرتی رکھّ
           military: فَوجی کھیتر
-          school:
-          - سکول
-          - یونیورستی
+          school: سکول
+          university: یونیورستی
           building: مہتوپورن عمارت
           station: ریلوے سٹیشن
-          summit:
-          - سکھر
-          - چوٹی
+          summit: سکھر
+          peak: چوٹی
           tunnel: سُرنگ (ڈیش لائیناں)
           bridge: پُل (کالیاں لائیناں)
           private: نِجی ورتوں
index fb766e366c9de8e78b3b8c9078b7488d3c751264..413a13d754a0365ef5b515a511f05d38e10d84da 100644 (file)
@@ -310,15 +310,13 @@ ps:
     confirm_email:
       button: تاييد
   messages:
-    inbox:
+    messages_table:
       date: نېټه
     message_summary:
       reply_button: ځوابول
       destroy_button: ړنگول
     new:
       title: پيغام لېږل
-    outbox:
-      date: نېټه
     show:
       title: پيغام لوستل
       reply_button: ځواب
@@ -370,18 +368,15 @@ ps:
     key:
       table:
         entry:
-          forest:
-          - ځنگل
+          forest: ځنگل
           park: پارک
-          lake:
-          - ډنډ
-          - زېرمتون
+          lake: ډنډ
+          reservoir: زېرمتون
           farm: کرونده
           cemetery: هديره
           military: پوځي سيمه
-          school:
-          - ښوونځی
-          - پوهنتون
+          school: ښوونځی
+          university: پوهنتون
   traces:
     new:
       visibility_help: دا څه مانا لري؟
index 281c5c40abf0f81d4fbf4dd78ad7d6194bdf2b2f..0862829262ce3075f69060441ba186699f8a3e05 100644 (file)
@@ -81,6 +81,12 @@ 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
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: já está silenciado
     models:
       acl: Aceder à lista de controlo
       changeset: Conjunto de alterações
@@ -1510,9 +1516,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
@@ -1794,8 +1800,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'
@@ -1803,17 +1807,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}
@@ -1828,17 +1836,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
@@ -1854,9 +1863,16 @@ 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:
@@ -2349,6 +2365,7 @@ 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
@@ -2361,34 +2378,40 @@ pt-PT:
           subway: Metropolitano
           ferry: Ferry
           light_rail: Comboio ligeiro
-          tram_only: Elétrico
+          tram: Elétrico
           trolleybus: Troleicarro
           bus: Autocarro
-          cable:
-          - Teleférico
-          - telecadeira
-          runway:
-          - Pista de aviação
-          - Via de circulação
-          apron_only: Estacionamento de aviões
+          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
-          forest:
-          - Floresta gerida
-          - Bosque
+          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
-          - prado
-          - Jardim
+          common: Terrenos comunitários
+          built_up: Zona edificada
           resident: Área residencial
           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
@@ -2397,14 +2420,13 @@ pt-PT:
           centre: Centro desportivo
           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
@@ -2615,6 +2637,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
@@ -2652,6 +2675,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:
@@ -2830,6 +2854,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
@@ -3030,6 +3056,32 @@ 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}
index 014c0ad0e89539b6aa23ce348c61e14b8fdfd716..18c834175844f39ebca3e10a10b6267a38a44a36 100644 (file)
@@ -7,6 +7,7 @@
 # Author: BraulioBezerra
 # Author: Brunomelnic
 # Author: Cainamarques
+# Author: CorraleH
 # Author: Crazymadlover
 # Author: Cristofer Alves
 # Author: Danieldegroot2
@@ -1518,9 +1519,9 @@ pt:
         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}
+      report_created_at_html: Primeiro relatado 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
@@ -1802,8 +1803,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'
@@ -1811,12 +1810,14 @@ 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
     message_summary:
       unread_button: Marcar como não lida
       read_button: Marcar como lida
@@ -1836,14 +1837,9 @@ 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
       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
@@ -1862,6 +1858,9 @@ pt:
         para poder responder.
     sent_message_summary:
       destroy_button: Apagar
+    heading:
+      my_inbox: Minha Caixa de Entrada
+      my_outbox: Minha caixa de saída
     mark:
       as_read: Mensagem marcada como lida
       as_unread: Mensagem marcada como não lida
@@ -2377,31 +2376,26 @@ pt:
           footway: Caminho de pedestre
           rail: Ferrovia
           subway: Metrô
-          cable:
-          - Bonde aéreo
-          - telecadeira
-          runway:
-          - Pista de Pouso
-          - pista de taxiamento
-          apron_only: Pátio de aeródromo
+          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
-          forest:
-          - Floresta manejada
-          - Bosque nativo
+          vineyard: Vinha
+          forest: Floresta manejada
+          wood: Bosque nativo
+          meadow: Prado
           golf: Campo de golfe
           park: Parque
-          common:
-          - Baldio comunitário
-          - prado
-          - Jardim
+          common: Baldio comunitário
           resident: Área residencial
           retail: Área de varejo
           industrial: Área industrial
           commercial: Área de negócios
           heathland: Urzal
-          lake:
-          - Lago
-          - lago artificial
+          lake: Lago
+          reservoir: Reservatório
           farm: Lavoura
           brownfield: Terreno abandonado
           cemetery: Cemitério secular
@@ -2410,14 +2404,13 @@ pt:
           centre: Centro/clube esportivo
           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
@@ -2662,6 +2655,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:
index c100b59e4fc93d0392ff36cbbd9e982e59710be2..42170491d530f12801bb4fcf047b95e793543ba5 100644 (file)
@@ -9,6 +9,7 @@
 # Author: EddyPetrisor
 # Author: GabiBil
 # Author: Gravitystorm
+# Author: Heron702
 # Author: Kyouko
 # Author: Lucdrei
 # Author: MSClaudiu
@@ -57,6 +58,11 @@ ro:
       messages:
         invalid_email_address: nu pare a fi o adresă de e-mail validă
         email_address_not_routable: nu este rutabil
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
     models:
       acl: Lista de control al accesului
       changeset: Set de modificări
@@ -295,6 +301,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:
@@ -1494,9 +1502,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
@@ -1776,8 +1784,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'
@@ -1785,12 +1791,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
@@ -1810,14 +1819,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
@@ -1836,6 +1841,9 @@ 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
@@ -1860,6 +1868,7 @@ ro:
       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
@@ -1964,6 +1973,7 @@ ro:
       image: Imagine
       alt: Text alternativ
       url: URL
+      codeblock: Bloc cod sursă
     richtext_field:
       edit: Editează
       preview: Previzualizare
@@ -2115,6 +2125,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
@@ -2352,6 +2365,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
@@ -2360,32 +2374,41 @@ ro:
           cycleway_local: Rețeaua locală de ciclism
           footway: Trotuar
           rail: Cale ferată
+          train: Tren
           subway: Stație de metrou
-          cable:
-          - Telecabină
-          - Telescaun
-          runway:
-          - Pistă de Aeroport
-          - taxiway
-          apron_only: Aeronavă
+          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ă
-          forest:
-          - Pădure
-          - Lemn
+          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
-          - luncă
-          - grădină
+          common: Comun
+          built_up: Zonă construită
           resident: Zonă rezidențială
           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
@@ -2394,19 +2417,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
@@ -2452,6 +2476,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: |-
@@ -2648,6 +2673,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:
@@ -2738,6 +2764,7 @@ ro:
       application: Aplicație
       permissions: Permisiuni
       no_applications_html: Nu ați autorizat încă nicio aplicație %{oauth2}.
+      oauth_2: OAuth 2
     application:
       revoke: Revocă accesul
       confirm_revoke: Revocați accesul acestei aplicații?
@@ -2844,12 +2871,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
@@ -3029,6 +3059,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}
@@ -3158,6 +3195,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 1e6b9cc18632eeaa9ee1c2974af38687a8a8239d..a93e329ea390ee9044ff64019c5f7681eb6a7da4 100644 (file)
@@ -533,7 +533,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:
@@ -1532,9 +1532,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: Переоткрыть
@@ -1812,8 +1812,6 @@ ru:
   messages:
     inbox:
       title: Входящие
-      my_inbox: Мои входящие
-      my_outbox: Мои исходящие
       messages: У вас %{new_messages} и %{old_messages}
       new_messages:
         few: '%{count} новых сообщения'
@@ -1825,11 +1823,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: Пометить как прочитанное
@@ -1855,16 +1856,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: пользователями поблизости
@@ -1883,6 +1880,9 @@ ru:
         вашему вопросу пользователь, чтобы прочитать его.
     sent_message_summary:
       destroy_button: Удалить
+    heading:
+      my_inbox: Мои входящие
+      my_outbox: Мои исходящие
     mark:
       as_read: Сообщение отмечено как прочитанное
       as_unread: Сообщение отмечено как непрочитанное
@@ -2315,42 +2315,33 @@ ru:
           train: Поезд
           subway: Линия метро
           ferry: Паром
-          tram_only: Трамвай
+          tram: Трамвай
           trolleybus: Троллейбус
           bus: Автобус
-          cable:
-          - Канатная дорога
-          - кресельный подъёмник
-          runway:
-          - Взлётно-посадочная полоса аэропорта
-          - рулёжная дорожка
-          apron_only: Перрон аэродрома
+          cable_car: Канатная дорога
+          chair_lift: кресельный подъёмник
+          runway: Взлётно-посадочная полоса аэропорта
+          taxiway: рулёжная дорожка
+          apron: Перрон аэродрома
           admin: Административная граница
-          orchard:
-          - Фруктовый сад
-          - виноградник
-          forest:
-          - Лес
-          - Роща
+          orchard: Фруктовый сад
+          vineyard: Виноградник
+          forest: Лес
+          wood: Роща
           farmland: Сельхозугодья
-          grass:
-          - Трава
-          - луг
+          grass: Трава
+          meadow: Луг
           golf: Площадка для гольфа
           park: Парк
-          common:
-          - Общественная земля
-          - луг
-          - сад
+          common: Общественная земля
           built_up: Площадь застройки
           resident: Жилой район
           retail: Торговый район
           industrial: Промышленный район
           commercial: Коммерческий район
           heathland: Вересковая пустошь
-          lake:
-          - Озеро
-          - водохранилище
+          lake: Озеро
+          reservoir: Водохранилище
           glacier: Ледник
           farm: Ферма
           brownfield: Расчистка под застройку
@@ -2360,15 +2351,13 @@ ru:
           centre: Спортивный центр
           reserve: Заповедник
           military: Военная территория
-          school:
-          - Школа
-          - университет
-          - больница
+          school: Школа, университет
+          university: Университет
+          hospital: Больница
           building: Значительное здание
           station: Железнодорожная станция
-          summit:
-          - Вершина
-          - пик
+          summit: Вершина
+          peak: Вершина горы
           tunnel: Туннель (пунктир)
           bridge: Мост (жирная линия)
           private: Частный доступ
@@ -2992,6 +2981,13 @@ ru:
       showing_page: Страница %{page}
       next: Следующая →
       previous: ← Предыдущая
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: Действия
+        tbody:
+          send_message: Отправить сообщение
   notes:
     index:
       title: Заметки, созданные или прокомментированный участником %{user}
index bea210681861c12750b227d2003048ac8a22a571..33883d2ba4980ad80b5b9a6537c12203aa1186d6 100644 (file)
@@ -505,16 +505,13 @@ sat:
     confirm_email:
       button: ᱜᱚᱴᱟᱭ ᱢᱮ
   messages:
-    inbox:
+    messages_table:
       subject: ᱵᱤᱥᱚᱭ
       date: ᱢᱟᱹᱦᱤᱛ
     message_summary:
       destroy_button: ᱜᱮᱫ ᱜᱤᱰᱤ
     new:
       title: ᱠᱷᱚᱵᱚᱨ ᱠᱩᱞ ᱢᱮ
-    outbox:
-      subject: ᱵᱤᱥᱚᱭ
-      date: ᱢᱟᱹᱦᱤᱛ
     show:
       destroy_button: ᱜᱮᱫ ᱜᱤᱰᱤ
       back: ᱛᱟᱭᱚᱢ
@@ -586,12 +583,10 @@ sat:
       table:
         entry:
           footway: ᱛᱟᱲᱟᱢᱦᱚᱨ
-          forest:
-          - ᱵᱤᱨ
-          - ᱠᱟᱴᱷ
+          forest: ᱵᱤᱨ
+          wood: ᱠᱟᱴᱷ
           park: ᱵᱟᱜᱟᱱ
-          school:
-          - ᱤᱛᱩᱱ ᱟᱥᱲᱟ
+          school: ᱤᱛᱩᱱ ᱟᱥᱲᱟ
           bicycle_shop: ᱥᱟᱭᱠᱤᱞ ᱫᱩᱠᱟᱹᱱ
           bicycle_parking: ᱥᱟᱭᱠᱤᱞ ᱯᱟᱨᱠᱤᱝ
           toilets: ᱴᱚᱭᱞᱮᱴᱠᱚ
index ae7add49f06268ca3d8551e0ea65d4326518a6c1..b0b9ddcde66e9db6f2f7dac2a6cad9df0352e47c 100644 (file)
@@ -1479,9 +1479,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
@@ -1770,8 +1770,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'
@@ -1779,12 +1777,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
@@ -1804,14 +1804,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
@@ -1830,6 +1825,9 @@ 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
@@ -2363,31 +2361,24 @@ sc:
           footway: Caminu pro pedones
           rail: Ferrovia
           subway: Metropolitana
-          cable:
-          - Funivia
-          - ascensore carrotzina
-          runway:
-          - Pista de aeroportu
-          - carrera de furriada
-          apron_only: Àrea de parchègiu de sos aèreos
+          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
-          - Buscu
+          forest: Litu
+          wood: Buscu
           golf: Campu de golf
           park: Parcu
-          common:
-          - Comunu
-          - pradu
-          - giardinu
+          common: Comunu
           resident: Àrea de residèntzia
           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
@@ -2396,14 +2387,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
index 0ccb00045e5a145e701df5ab4c93f1c2ff91e530..a4268ee15970b1967e08cdacff8d6834d2f7000f 100644 (file)
@@ -43,6 +43,11 @@ scn:
     errors:
       messages:
         invalid_email_address: nun pari èssiri nu nnirizzu email vàlidu
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
     models:
       acl: Lista di cuntrollu d'accessu
       changeset: Gruppu di canciamenti
@@ -163,6 +168,7 @@ scn:
       openid: OpenID
       google: Google
       facebook: Facebook
+      microsoft: Microsoft
       github: GitHub
       wikipedia: Wikipedia
   api:
@@ -191,6 +197,7 @@ scn:
   account:
     deletions:
       show:
+        title: Cancella lu mè cuntu
         delete_account: Cancella cuntu
         confirm_delete: Sî sicuru?
         cancel: Annulla
@@ -325,8 +332,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.
@@ -1168,7 +1177,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'
@@ -1176,12 +1184,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
@@ -1204,9 +1214,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
@@ -1224,6 +1231,8 @@ 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
@@ -1516,30 +1525,24 @@ scn:
           footway: Caminu pidunali
           rail: Ferruvìa
           subway: Mitrupulitana
-          cable:
-          - Funivìa
-          - seggiuvìa
-          runway:
-          - Pista d’attirraggiu
-          - pista di rullaggiu
-          apron_only: Ària di parcheggiu ariupurtuali
+          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
-          - Voscu
+          forest: Furesta
+          wood: Voscu
           golf: Campu di golf
           park: Villa
-          common:
-          - Cumuni
-          - Pratu
+          common: Cumuni
           resident: Zona risidinziali
           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
@@ -1548,14 +1551,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
index a3b2fda1e1f6541c60d310dd08eba8b226c3f6ce..70c9a09cb4d11351e17e02915d1db5ad995624b5 100644 (file)
@@ -916,21 +916,18 @@ sco:
     key:
       table:
         entry:
-          forest:
-            1: Wid
+          wood: Wid
           golf: Gowf coorse
           park: Pairk
           resident: Residential aurie
           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!
index 9f8ef52283768fd7fe2288a8476d16731fff3c06..557ac5bc739e369bda83d1e2851a708ec629ee13 100644 (file)
@@ -557,6 +557,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 +576,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
@@ -730,30 +729,24 @@ sh:
           footway: Pješačka staza
           rail: Željeznica
           subway: Podzemna željeznica
-          cable:
-          - Kabinska žičara
-          - sedežnica
-          runway:
-          - Aerodromska pista
-          - rulna staza
-          apron_only: Parking za avione
+          cable_car: Kabinska žičara
+          chair_lift: sedežnica
+          runway: Aerodromska pista
+          taxiway: rulna staza
+          apron: Parking za avione
           admin: Administrativna granica
-          forest:
-          - Šuma
-          - Šume (prirodne, neodržavane)
+          forest: Šuma
+          wood: Šume (prirodne, neodržavane)
           golf: Golf teren
           park: Park
-          common:
-          - Travnjaci
-          - livada
+          common: Travnjaci
           resident: Stambeno područje
           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
@@ -762,14 +755,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 68fc7960fd0d4c2f7a7a90e3bcf77541bea58cb2..66108416d8c45bb94bcb40c54880f69453affe86 100644 (file)
@@ -1395,9 +1395,9 @@ 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}
+      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ť
@@ -1644,8 +1644,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'
@@ -1655,11 +1653,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é
@@ -1679,15 +1679,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
@@ -1706,6 +1701,9 @@ 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á
@@ -2121,30 +2119,24 @@ sk:
           footway: Chodník pre peších
           rail: Železnica
           subway: Metro
-          cable:
-          - Lanovka
-          - sedačková lanovka
-          runway:
-          - Letisková dráha
-          - pojazdová dráha
-          apron_only: Letisková odbavovacia plocha
+          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ý)
-          - Les (neudržiavaný)
+          forest: Les (udržiavaný)
+          wood: Les (neudržiavaný)
           golf: Golfové ihrisko
           park: Park
-          common:
-          - Pastvina
-          - lúka
+          common: Pastvina
           resident: Obytná oblasť
           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
@@ -2153,14 +2145,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
index 34749cf451d9a92d645901e6fcc88b1f199973ee..bf450d963e64cb881a014711a45dee9def68bacc 100644 (file)
@@ -44,6 +44,11 @@ skr-arab:
       messages:
         invalid_email_address: جائز ای میل پتہ کائنی لڳدا پیا
         email_address_not_routable: روٹیبل کائنی
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
     models:
       acl: رسائی کنٹرول تندیر
       changeset: تبدیلیاں
@@ -1038,11 +1043,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 +1060,7 @@ skr-arab:
       back_to_inbox: انباکس تے واپس
     outbox:
       title: آؤٹ باکس
-      my_inbox: میݙا انباکس
-      my_outbox: میݙا آؤٹ باکس
-      to: تائیں
-      subject: موضوع
-      date: تریخ
+      actions: عمل
     show:
       title: سنیہا پڑھو
       reply_button: جواب
@@ -1067,6 +1069,9 @@ skr-arab:
       back: پچھوں
     sent_message_summary:
       destroy_button: مٹاؤ
+    heading:
+      my_inbox: میݙا انباکس
+      my_outbox: میݙا آؤٹ باکس
     destroy:
       destroyed: سنیہا مٹ ڳیا
   passwords:
@@ -1216,39 +1221,35 @@ skr-arab:
           track: ٹرَیک
           train: ڳَݙی
           light_rail: لائٹ ریل
-          tram_only: ٹرام
+          tram: ٹرام
           trolleybus: ٹرالی بس
           bus: بس
-          cable:
-          - کیبل کار
-          - چیئر لفٹ
-          orchard:
-          - بغیچا
-          forest:
-          - جنگل
-          - لکڑ
-          grass:
-          - گھا
-          - چراگاہ
+          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:
-          - سکول
-          - یونی ورسٹی
-          - ہسپتال
+          school: سکول
+          university: یونی ورسٹی
+          hospital: ہسپتال
           station: ریلوے ٹیشݨ
+          peak: چوٹی
           bus_stop: بساں دا اݙا
           stop: اݙہ
     welcome:
@@ -1337,6 +1338,13 @@ skr-arab:
     block:
       show: ݙِکھاؤ
       edit: تبدیلی کرو
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: عمل
+        tbody:
+          send_message: سنیہا پٹھو
   notes:
     index:
       subheading_submitted: جمع تھی ڳیا
index 6558df7436a83554cb4436fe8a2833b67e352957..6a365a8a7a5fb94840fa1298bc2d7c7f6254830a 100644 (file)
@@ -58,6 +58,12 @@ sl:
       messages:
         invalid_email_address: ni videti veljaven e-poštni naslov
         email_address_not_routable: ni preusmerljiv
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: je že utišan
     models:
       acl: Seznam nadzora dostopa
       changeset: Nabor sprememb
@@ -265,7 +271,7 @@ sl:
         opened_at_html: Ustvarjeno %{when}
         opened_at_by_html: Ustvaril_a %{user} %{when}
         commented_at_html: Posodobljeno %{when}
-        commented_at_by_html: Posodobil/a %{user} %{when}
+        commented_at_by_html: Posodobil_a %{user} %{when}
         closed_at_html: Razrešeno %{when}
         closed_at_by_html: Razrešil_a %{user} %{when}
         reopened_at_html: Znova aktivirano %{when}
@@ -503,7 +509,7 @@ sl:
     index:
       title: Sklopi sprememb
       title_user: Sklopi sprememb od %{user}
-      title_user_link_html: Sklopi sprememb uporabnika/ce %{user_link}
+      title_user_link_html: Sklopi sprememb uporabnika_ce %{user_link}
       title_friend: Množice sprememb mojih prijateljev
       title_nearby: Sklopi sprememb bližnjih uporabnikov
       empty: Ni najdenih množic sprememb.
@@ -518,7 +524,7 @@ sl:
   changeset_comments:
     comment:
       comment: 'Nov komentar o naboru sprememb #%{changeset_id} uporabnika %{author}'
-      commented_at_by_html: Posodobil/a %{user} %{when}
+      commented_at_by_html: Posodobil_a %{user} %{when}
     comments:
       comment: 'Nov komentar o naboru sprememb #%{changeset_id} uporabnika %{author}'
     index:
@@ -1512,9 +1518,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
@@ -1807,8 +1813,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'
@@ -1820,17 +1824,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}
@@ -1845,19 +1853,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.
@@ -1871,9 +1882,16 @@ 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:
@@ -2001,6 +2019,7 @@ sl:
       image: Slika
       alt: nadomestno besedilo
       url: URL
+      codeblock: Blok kode
     richtext_field:
       edit: Uredi
       preview: Predogled
@@ -2394,41 +2413,36 @@ sl:
           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
           ferry: Trajekt
           light_rail: Lahka železnica
-          tram_only: Tramvaj
+          tram: Tramvaj
           trolleybus: Trolejbus
           bus: Avtobus
-          cable:
-          - Nihalka
-          - sedežnica
-          runway:
-          - Vzletno-pristajalna steza
-          - povezave
-          apron_only: Letališka ploščad
+          cable_car: Nihalka
+          chair_lift: Sedežnica
+          runway: Vzletno-pristajalna steza
+          taxiway: Vozna steza
+          apron: Letališka ploščad
           admin: Upravna razmejitev
-          orchard:
-          - Sadovnjak
-          - vinograd
-          forest:
-          - Gozd
-          - gozd
+          capital: Glavno mesto
+          city: Mesto
+          orchard: Sadovnjak
+          vineyard: Vinograd
+          forest: Gozd
+          wood: Gozd
           farmland: Kmetijsko zemljišče
-          grass:
-          - Trava
-          - travnik
+          grass: Trava
+          meadow: Travnik
           bare_rock: Gola skala
           sand: Pesek
           golf: Igrišče za golf
           park: Park
-          common:
-          - Travniki
-          - travnik
-          - vrt
+          common: Travniki
           built_up: Pozidano območje
           resident: Naselje
           retail: Trgovinsko območje
@@ -2436,9 +2450,8 @@ sl:
           commercial: Poslovno območje
           heathland: Grmičevje
           scrubland: Grmičevje
-          lake:
-          - Jezero
-          - vodni zbiralnik
+          lake: Jezero
+          reservoir: Vodni zbiralnik
           intermittent_water: Presihajoče vodno telo
           glacier: Ledenik
           reef: Greben
@@ -2451,15 +2464,13 @@ sl:
           centre: Športni center
           reserve: Naravni rezervat
           military: Vojaško območje
-          school:
-          - Šola
-          - univerza
-          - bolnišnica
+          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
@@ -2670,6 +2681,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
@@ -2708,6 +2720,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:
@@ -2796,6 +2809,7 @@ sl:
       application: Aplikacija
       permissions: Dovoljenja
       no_applications_html: Pooblastili še niste nobene aplikacije %{oauth2}.
+      oauth_2: OAuth 2
     application:
       revoke: Prekliči dostop
       confirm_revoke: Želite za to aplikacijo preklicati dostop?
@@ -2881,6 +2895,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
@@ -2912,6 +2928,7 @@ sl:
           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
@@ -3016,6 +3033,18 @@ sl:
       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.
@@ -3050,11 +3079,11 @@ sl:
     blocks_on:
       title: Blokiranja uporabnika %{name}
       heading_html: Seznam blokiranj uporabnika %{name}
-      empty: Uporabnik/ca %{name} še ni bil/a blokiran/a.
+      empty: Uporabnik_ca %{name} še ni bil_a blokiran_a.
     blocks_by:
-      title: Dana blokiranja uporabnika/ce %{name}
+      title: Dana blokiranja uporabnika_ce %{name}
       heading_html: Seznam izvedenih blokiranj uporabnika %{name}
-      empty: Uporabnik/ca %{name} ni blokiral/a še nikogar.
+      empty: Uporabnik_ca %{name} ni blokiral_a še nikogar.
     show:
       title: '%{block_by} je blokiral uporabnika %{block_on}'
       heading_html: '%{block_by} je blokiral uporabnika %{block_on}'
@@ -3083,6 +3112,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}
@@ -3119,6 +3174,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.
index d557e8472d5e4ad227e9a4f90bdcf9c291212330..410ba522aad93485d12ea380d7aa4883f862afc1 100644 (file)
@@ -2,6 +2,7 @@
 # Exported from translatewiki.net
 # Export driver: phpyaml
 # Author: Bjakupi
+# Author: Dimitar
 # Author: Eraldkerciku
 # Author: Euriditi
 # Author: Fanjiayi
@@ -855,8 +856,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
@@ -959,14 +960,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
@@ -986,9 +988,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
@@ -998,6 +997,8 @@ 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
@@ -1182,14 +1183,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:
@@ -1301,7 +1300,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:
index db977c51107301e618c0975e6e05bf568268f778..5e8182c0d0e9e4023d1b7c4ceea116c16a052ad7 100644 (file)
@@ -829,7 +829,6 @@ sr-Latn:
   messages:
     inbox:
       title: Primljene
-      my_inbox: Primljene
       messages: Imate %{new_messages} i %{old_messages}
       new_messages:
         one: '%{count} nova poruka'
@@ -837,12 +836,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
@@ -865,9 +866,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
@@ -883,6 +881,8 @@ 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
@@ -1032,30 +1032,24 @@ sr-Latn:
           footway: Pešačka staza
           rail: Železnička pruga
           subway: Podzemna železnica
-          cable:
-          - Žičara
-          - sedišnica
-          runway:
-          - Aerodromska pista
-          - rulne staze
-          apron_only: Aerodromski peron
+          cable_car: Žičara
+          chair_lift: sedišnica
+          runway: Aerodromska pista
+          taxiway: rulne staze
+          apron: Aerodromski peron
           admin: Administrativna granica
-          forest:
-          - Šuma
-          - Šuma
+          forest: Šuma
+          wood: Šuma
           golf: Golf teren
           park: Park
-          common:
-          - Poljana
-          - livada
+          common: Poljana
           resident: Stambeno područje
           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
@@ -1064,14 +1058,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
index f74a57e4a91319057f20613012348d93f9bb4a67..66928055d5de102e830b5420da9f0b4a5effb1be 100644 (file)
@@ -1340,7 +1340,6 @@ sr:
   messages:
     inbox:
       title: Примљене
-      my_inbox: Примљене
       messages: Имате %{new_messages} и %{old_messages}
       new_messages:
         one: '%{count} нова порука'
@@ -1348,12 +1347,14 @@ sr:
       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: Означи као прочитано
@@ -1376,9 +1377,6 @@ sr:
       messages:
         one: Имате %{count} послату поруку
         other: Имате %{count} послате поруке
-      to: За
-      subject: Наслов
-      date: Датум
       no_sent_messages_html: Још увек немате послатих порука. Зашто не бисте ступили
         у контакт с %{people_mapping_nearby_link}?
       people_mapping_nearby: маперима у вашој околини
@@ -1396,6 +1394,8 @@ sr:
         прочитали.
     sent_message_summary:
       destroy_button: Обриши
+    heading:
+      my_inbox: Примљене
     mark:
       as_read: Порука је означена као прочитана
       as_unread: Порука је означена као непрочитана
@@ -1672,30 +1672,27 @@ sr:
           subway: Подземна железница
           trolleybus: Тролејбус
           bus: Аутобус
-          cable:
-          - Жичара
-          - седишница
-          runway:
-          - Аеродромска писта
-          - рулне стазе
-          apron_only: Аеродромски перон
+          cable_car: Жичара
+          chair_lift: седишница
+          runway: Аеродромска писта
+          taxiway: Рулна стаза
+          apron: Аеродромски перон
           admin: Административна граница
-          forest:
-          - Шума
-          - шума
+          capital: Престоница
+          city: Град
+          forest: Шума
+          wood: Шума
+          meadow: Ливада
           golf: Голф терен
           park: Парк
-          common:
-          - Пољана
-          - ливада
+          common: Пољана
           resident: Стамбено подручје
           retail: Малопродајно подручје
           industrial: Индустријско подручје
           commercial: Пословно подручје
           heathland: Пустош
-          lake:
-          - Језеро
-          - резервоар
+          lake: Језеро
+          reservoir: Резервоар
           farm: Фарма
           brownfield: Грађевинско земљиште
           cemetery: Гробље
@@ -1704,14 +1701,13 @@ sr:
           centre: Спортски центар
           reserve: Резерват природе
           military: Војно подручје
-          school:
-          - Школа
-          - универзитет
+          school: Школа
+          university: Универзитет
+          hospital: Болница
           building: Значајна зграда
           station: Железничка станица
-          summit:
-          - Узвишење
-          - врх
+          summit: Узвишење
+          peak: Врх
           tunnel: Испрекидан оквир – тунел
           bridge: Црни оквир – мост
           private: Приватни посед
index 9efb4fbf67184e74c95f21fe85116de9864080f1..0616ccd09739e6c2346710d048975b018512e4ee 100644 (file)
@@ -18,6 +18,7 @@
 # Author: Jas
 # Author: Jenniesarina
 # Author: Jopparn
+# Author: Kakan spelar
 # Author: Larske
 # Author: Liftarn
 # Author: Lokal Profil
@@ -1500,9 +1501,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
@@ -1781,8 +1782,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'
@@ -1790,12 +1789,15 @@ 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
@@ -1815,14 +1817,10 @@ 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
@@ -1841,6 +1839,9 @@ sv:
         användare för att läsa det.
     sent_message_summary:
       destroy_button: Radera
+    heading:
+      my_inbox: Min inkorg
+      my_outbox: Min utkorg
     mark:
       as_read: Meddelandet markerat som läst
       as_unread: Meddelandet markerat som oläst
@@ -2325,31 +2326,24 @@ sv:
           footway: Gångväg
           rail: Järnväg
           subway: Tunnelbana
-          cable:
-          - Linbana
-          - stollift
-          runway:
-          - Landningsbana
-          - taxibana
-          apron_only: Flygplatsplatta
+          cable_car: Linbana
+          chair_lift: stollift
+          runway: Landningsbana
+          taxiway: taxibana
+          apron: Flygplatsplatta
           admin: Administrativ gräns
-          forest:
-          - Kulturskog
-          - Naturskog
+          forest: Kulturskog
+          wood: Naturskog
           golf: Golfbana
           park: Park
-          common:
-          - Allmänning
-          - äng
-          - trädgård
+          common: Allmänning
           resident: Bostadsområde
           retail: Område för Detaljhandel
           industrial: Industriellt område
           commercial: Kommersiellt område
           heathland: Hed
-          lake:
-          - Sjö
-          - vattenmagasin
+          lake: Sjö
+          reservoir: vattenmagasin
           farm: Bondgård
           brownfield: Förfallen industritomt
           cemetery: Begravningsplats
@@ -2358,14 +2352,12 @@ sv:
           centre: Idrottsanläggning
           reserve: Naturreservat
           military: Militärområde
-          school:
-          - Skola
-          - universitet
+          school: Skola
+          university: universitet
           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
index 8ee2fdfab857dd1bd0ba7e83e2d0a31628c19495..9b49e09f545721a43297bebfa20eedbaea0659ff 100644 (file)
@@ -40,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: மாற்றங்களை சேமி
@@ -53,6 +53,12 @@ ta:
       messages:
         invalid_email_address: செல்லுபடியாகும் மின்னஞ்சல் முகவரியாகத் தெரியவில்லை
         email_address_not_routable: திசைதிருப்பக்கூடியது அல்ல
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: ஏற்கனவே மௌனிக்கப்பட்டுள்ளார்
     models:
       acl: அனுமதிக் கட்டுப்பாட்டுப் பட்டியல்
       changeset: மாற்றங்கள்
@@ -83,7 +89,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: வழி முனையம்
@@ -94,7 +100,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: வரைபடத்தை மாற்றவும்
@@ -593,17 +599,20 @@ ta:
   messages:
     inbox:
       title: உள்பெட்டி
+    messages_table:
       from: 'அனுப்புநர்:'
       subject: பொருள்
       date: நாள்
+      actions: செயல்கள்
     message_summary:
       unread_button: வாசிக்கப்படாததாக என குறியிடு
       read_button: வாசித்ததாக குறியிடு
       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: செய்தி அனுப்பப்பட்டுவிட்டது
@@ -612,15 +621,23 @@ ta:
       heading: அப்படியொரு தகவல் இல்லை
     outbox:
       title: அனுப்பியவை
-      subject: பொருள்
-      date: நாள்
+      actions: செயல்கள்
+    muted:
+      title: மௌனித்த தகவல்கள்
+      messages:
+        one: '%{count} மௌனித்த தகவல்'
+        other: உமக்கு %{count} மௌனித்த தகவல்கள் உள்ளன
     show:
       title: தகவலை வாசிக்கவும்
       reply_button: பதிலளி
       unread_button: வாசிக்கப்படாததாக  குறியிடு
-      destroy_button: நீக்கு
+      destroy_button: நீக்கு
     sent_message_summary:
       destroy_button: நீக்கு
+    heading:
+      muted_messages: மௌனித்த தகவல்கள்
+    unmute:
+      notice: தகவல் வருமஞ்சலுக்கு நகர்த்தப்பட்டுள்ளது
     destroy:
       destroyed: தகவல் நீக்கப்பட்டது
   passwords:
@@ -672,7 +689,7 @@ ta:
     export:
       title: ஏற்றுமதி செய்
       licence: உரிமம்
-      options: à®µà®¿à®°à¯\81பà¯\8dபதà¯\8d à®¤à¯\87à®°à¯\8dவுகள்
+      options: à®¤à¯\86ரிவுகள்
       format: வடிவமைப்பு
       scale: அளவுவீதம்
       max: அதிகபட்சம்
@@ -684,7 +701,7 @@ ta:
       search_results: தேடல் முடிவுகள்
       close: மூடு
     search:
-      search: à®¤à¯\87à®\9fலà¯\8d
+      search: à®¤à¯\87à®\9fà¯\81
       submit_text: செல்
     key:
       table:
@@ -692,29 +709,37 @@ ta:
           primary: முதன்மையான சாலை
           secondary: இரண்டாம் நிலை சாலை
           unclassified: வகைப்படுத்தாத சாலை
+          cycleway_mtb: மலையீருருளிப் பாதை
           rail: இரயில்வே
-          forest:
-          - காடு
-          - விறகு
+          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: கழிவறைகள்
@@ -743,7 +768,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: மேலும்
@@ -756,6 +781,9 @@ ta:
       in: உள்
     index:
       upload_trace: சுவடை பதிவேற்றவும்
+  application:
+    settings_menu:
+      muted_users: மௌனித்த பயனர்கள்
   oauth_clients:
     show:
       edit: தொகுப்பு விவரங்கள்
@@ -778,6 +806,8 @@ ta:
       my diary: எனது நாட்குறிப்பேடு
       my edits: என் திருத்தங்கள்
       my settings: என் அமைப்புகள்
+      create_mute: இப்பயனரை மௌனி
+      destroy_mute: இப்பயனரை ஓசையாக்கு
       diary: நாட்குறிப்பேடு
       edits: தொகுப்புகள்
       add as friend: நண்பராக சேர்
@@ -803,7 +833,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: பயனர்கள்
@@ -817,22 +847,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 4cd8020c2f9cb3d742e7da93228e092572008d34..d5823c431b49af836e832479475127d433fea326 100644 (file)
@@ -1374,9 +1374,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: మళ్ళీ తెరువు
@@ -1641,8 +1641,6 @@ te:
   messages:
     inbox:
       title: ఇన్‌బాక్సు
-      my_inbox: నా ఇన్‌బాక్స్
-      my_outbox: నా ఔట్‌బాక్సు
       messages: మీకు %{new_messages}, %{old_messages} ఉన్నాయి
       new_messages:
         one: '%{count} కొత్త సందేశం'
@@ -1650,12 +1648,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: చదివినట్లుగా గుర్తుపెట్టు
@@ -1675,14 +1675,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: సమీపంలో మ్యాపింగు చేస్తున్నవారు
@@ -1699,6 +1694,9 @@ te:
         పంపలేదు, ఆ వాడుకరికి రాలేదు. సరైన వాడుకరిగా లాగినై చదవండి.
     sent_message_summary:
       destroy_button: తొలగించు
+    heading:
+      my_inbox: నా ఇన్‌బాక్స్
+      my_outbox: నా ఔట్‌బాక్సు
     mark:
       as_read: సందేశాన్ని చదివినట్లుగా గుర్తుపెట్టాం
       as_unread: సందేశాన్ని చదవనట్లుగా గుర్తుపెట్టాం
@@ -2005,29 +2003,23 @@ te:
           footway: కాల్దారి
           rail: రైలుమార్గం
           subway: కిందారి
-          cable:
-          - కేబుల్ కారు
-          - చెయిర్ లిఫ్ట్
-          runway:
-          - విమానాశ్రయం రన్‌వే
-          - టాక్సీ వే
-          apron_only: విమానాశ్రయం ఏప్రాన్
+          cable_car: కేబుల్ కారు
+          chair_lift: చెయిర్ లిఫ్ట్
+          runway: విమానాశ్రయం రన్‌వే
+          taxiway: టాక్సీ వే
+          apron: విమానాశ్రయం ఏప్రాన్
           admin: పరిపాలనా సరిహద్దు
-          forest:
-          - అడవి
-          - కలప
+          forest: అడవి
+          wood: కలప
           golf: గోల్ఫ్ కోర్సు
           park: పార్కు
-          common:
-          - పచ్చికబయలు
-          - పచ్చికబయలు
+          common: పచ్చికబయలు
           resident: నివాస ప్రాంతం
           retail: రిటెయిల్ ప్రదేశం
           industrial: పారిశ్రామిక ప్రదేశం
           commercial: వాణిజ్య ప్రదేశం
-          lake:
-          - సరస్సు
-          - జలాశయం
+          lake: సరస్సు
+          reservoir: జలాశయం
           farm: పొలాలు
           brownfield: బ్రౌన్‌ఫీల్డ్ స్థలం
           cemetery: స్మశానం
@@ -2035,13 +2027,11 @@ te:
           centre: క్రీడా కేంద్రం
           reserve: ప్రకృతి సంరక్షణ కేంద్రం
           military: మిలిటరీ ప్రదేశం
-          school:
-          - పాఠశాల
-          - విశ్వవిద్యాలయం
+          school: పాఠశాల
+          university: విశ్వవిద్యాలయం
           building: ప్రముఖ కట్టడము
           station: రైల్వే స్టేషన్
-          summit:
-            1: శిఖరం
+          peak: శిఖరం
           bridge: Black casing = వంతెన
           construction: నిర్మాణంలో ఉన్న రహదార్లు
           bicycle_shop: సైకిలు దుకాణం
index b38c9a6f7789f77b72432efcdbceda9d594595e9..cbaf187d0f458b8279b4bd40938a1263707a0b94 100644 (file)
@@ -5,6 +5,7 @@
 # Author: Ariesanywhere
 # Author: B20180
 # Author: Bebiezaza
+# Author: Ekminarin
 # Author: Just Sayori
 # Author: Karit
 # Author: Korrawit
@@ -1140,9 +1141,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: เปิดใหม่
@@ -1184,23 +1185,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: กรุณาระบุรายละเอียด
@@ -1357,8 +1358,6 @@ th:
   messages:
     inbox:
       title: จดหมายรับ
-      my_inbox: จดหมายรับส่วนตัว
-      my_outbox: กล่องจดหมายขาออกส่วนตัว
       messages: ท่านมี %{new_messages} และ %{old_messages}
       new_messages:
         one: ข้อความใหม่ %{count} ข้อความ
@@ -1366,11 +1365,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: ทำเครื่องหมายว่าอ่านแล้ว
@@ -1389,14 +1390,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:
@@ -1412,6 +1408,9 @@ th:
         โปรดเข้าระบบใหม่โดยใช้ชื่อผู้ใช้นั้นเพื่อตอบกลับ
     sent_message_summary:
       destroy_button: ลบ
+    heading:
+      my_inbox: จดหมายรับส่วนตัว
+      my_outbox: กล่องจดหมายขาออกส่วนตัว
     mark:
       as_read: ข้อความถูกทำเครื่องหมายว่าอ่านแล้ว
       as_unread: ข้อความถูกทำเครื่องหมายว่ายังไม่ได้อ่าน
@@ -1649,30 +1648,24 @@ th:
           footway: ทางเดินเท้า
           rail: ทางรถไฟ
           subway: รถไฟใต้ดิน
-          cable:
-          - รถกระเช้า
-          - รถกระเช้าเปลือย
-          runway:
-          - ทางวิ่งสนามบิน
-          - ทางขับเครื่องบิน
-          apron_only: โรงซ่อมบำรุงเครื่องบิน
+          cable_car: รถกระเช้า
+          chair_lift: รถกระเช้าเปลือย
+          runway: ทางวิ่งสนามบิน
+          taxiway: ทางขับเครื่องบิน
+          apron: โรงซ่อมบำรุงเครื่องบิน
           admin: ขอบเขตการปกครอง
-          forest:
-          - ป่า
-          - ไม้
+          forest: ป่า
+          wood: ไม้
           golf: สนามกอล์ฟ
           park: สวน
-          common:
-          - ที่ส่วนกลาง
-          - ทุ่งหญ้า
+          common: ที่ส่วนกลาง
           resident: เขตที่พักอาศัย
           retail: พื้นที่พาณิชยกรรม
           industrial: พื้นที่อุตสาหกรรม
           commercial: พื้นที่พาณิชยกรรม
           heathland: ทุ่งไม้พุ่ม
-          lake:
-          - ทะเลสาบ
-          - อ่างเก็บน้ำ
+          lake: ทะเลสาบ
+          reservoir: อ่างเก็บน้ำ
           farm: ไร่นา
           brownfield: พื้นที่อุตสาหกรรมเดิม
           cemetery: สุสาน
@@ -1681,14 +1674,12 @@ th:
           centre: ศูนย์กีฬา
           reserve: พื้นที่สงวนธรรมชาติ
           military: เขตทหาร
-          school:
-          - โรงเรียน
-          - มหาวิทยาลัย
+          school: โรงเรียน
+          university: มหาวิทยาลัย
           building: อาคารสำคัญ
           station: สถานีรถไฟ
-          summit:
-          - ยอดเขา
-          - ยอดเขา
+          summit: ยอดเขา
+          peak: ยอดเขา
           tunnel: เส้นประ = อุโมงค์
           bridge: เส้นทึบ = สะพาน
           private: พื้นที่ส่วนบุคคล
index 0ff6ac89f3b79280cf1dd014836a55c4ed201364..ef71c3333893042e57c723110808493bc23877cb 100644 (file)
@@ -1134,8 +1134,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
@@ -1362,8 +1362,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'
@@ -1371,12 +1369,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
@@ -1396,14 +1396,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
@@ -1422,6 +1417,9 @@ 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
@@ -1690,31 +1688,24 @@ tl:
           footway: Lakaran ng tao
           rail: Daambakal
           subway: Daanang pang-ilalim
-          cable:
-          - Kotse ng kable
-          - upuang inaangat
-          runway:
-          - Rampa ng Paliparan
-          - daanan ng taksi
-          apron_only: Tapis ng paliparan
+          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
-          - Kahoy
+          forest: Gubat
+          wood: Kahoy
           golf: Kurso ng golp
           park: Liwasan
-          common:
-          - Karaniwan
-          - kaparangan
-          - halamanan
+          common: Karaniwan
           resident: Pook na panuluyan
           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
@@ -1723,14 +1714,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
index 4d3d8bdae8790632ad41e2f04e9b1fbd7320496e..117fe3084d6d7411bf2af3ca6390de394cc780e1 100644 (file)
@@ -91,6 +91,12 @@ tr:
       messages:
         invalid_email_address: geçerli bir e-posta adresi gibi görünmüyor
         email_address_not_routable: yönlendirilebilir değil
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: zaten sessize alındı
     models:
       acl: Erişim Kontrol Listesi
       changeset: Değişiklik Kaydı
@@ -144,7 +150,7 @@ tr:
       diary_entry:
         user: Kullanıcı
         title: Konu
-        body: Gövde
+        body: Mesaj
         latitude: Enlem
         longitude: Boylam
         language_code: Dil
@@ -193,7 +199,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
@@ -363,7 +369,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ı'
@@ -535,7 +541,7 @@ tr:
       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
@@ -560,7 +566,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
@@ -573,8 +579,8 @@ 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üğü'
       leave_a_comment: Yorum yap
       login_to_leave_a_comment_html: Yorum yazmak için %{login_link}
       login: Oturum Aç
@@ -622,10 +628,10 @@ 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
@@ -692,7 +698,7 @@ tr:
         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:
@@ -1510,9 +1516,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
@@ -1588,7 +1594,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ı
@@ -1673,6 +1679,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'
@@ -1798,8 +1806,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'
@@ -1807,17 +1813,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'
@@ -1832,17 +1842,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
@@ -1858,9 +1869,16 @@ 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:
@@ -1882,6 +1900,7 @@ tr:
       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:
     show:
       title: Tercihlerim
@@ -1924,17 +1943,17 @@ tr:
       failure: Profil güncellenemedi.
   sessions:
     new:
-      title: Oturum aç
-      heading: Oturum aç
+      title: Oturum Aç
+      heading: Oturum Aç
       email or username: 'E-posta Adresi veya Kullanıcı Adı:'
       password: 'Parola:'
       openid_html: '%{logo} OpenID:'
       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ş
@@ -1987,6 +2006,7 @@ tr:
       image: Resim
       alt: Alt metin
       url: URL
+      codeblock: Kod bloğu
     richtext_field:
       edit: Düzenle
       preview: Önizleme
@@ -2046,7 +2066,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.
@@ -2223,7 +2243,7 @@ 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
+      title: Dışa Aktar
       area_to_export: Çıkartılacak alan
       manually_select: Fare kullanarak farklı bir alan seç
       format_to_export: Çıkartma biçimi
@@ -2264,7 +2284,7 @@ tr:
       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:
@@ -2364,40 +2384,56 @@ 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
-          cable:
-          - Teleferik
-          - gondol
-          runway:
-          - Uçuş pisti
-          - Uçak pisti
-          apron_only: Havaalanı apronu
+          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ı
-          forest:
-          - Orman
-          - Orman
+          capital: Başkent
+          city: Şehir
+          orchard: Meyve bahçesi
+          vineyard: Üzüm bağı
+          forest: 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
-          - mera
-          - bahçe
+          common: Çimen
+          built_up: İnşa alanı
           resident: Yerleşim bölgesi
           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
@@ -2406,19 +2442,20 @@ tr:
           centre: Spor merkezi
           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_parking: Bisiklet parkı
           toilets: Tuvaletler
@@ -2624,6 +2661,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
@@ -2660,6 +2698,7 @@ 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:
@@ -2749,6 +2788,7 @@ tr:
       application: Uygulama
       permissions: İzinler
       no_applications_html: Henüz hiçbir %{oauth2} uygulamasını yetkilendirmediniz.
+      oauth_2: OAuth 2
     application:
       revoke: Erişimi İptal Et
       confirm_revoke: Bu uygulamaya erişim iptal edilsin mi?
@@ -2762,16 +2802,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
@@ -2836,13 +2876,15 @@ 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:'
@@ -2867,6 +2909,7 @@ tr:
           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
@@ -2877,7 +2920,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.
@@ -2977,6 +3020,16 @@ tr:
       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.
@@ -3010,14 +3063,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.
@@ -3027,19 +3080,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
@@ -3073,6 +3150,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
index a88e4a2643ef640d6428acfa9d1a5e46e0c7f9cb..1f10f43330549a3b2712f09cce4f5277771be880 100644 (file)
@@ -832,6 +832,7 @@ tt:
         other: '%{count} яңа хәбәрегез'
       old_messages:
         other: '%{count} иске хәбәрегез'
+    messages_table:
       from: 'Кемнән:'
       subject: Тема
       date: Вакыт
@@ -892,30 +893,24 @@ tt:
           cycleway: Әйләнаяк юлы
           rail: Тимер юл
           subway: Метро
-          cable:
-          - Канат юлы
+          cable_car: Канат юлы
           admin: Административ чик
-          forest:
-          - Урман
-          - Агачлык
+          forest: Урман
+          wood: Агачлык
           park: Парк
-          common:
-            1: болын
           resident: Торак районы
           industrial: Сәнәгый район
           heathland: Буш җир
-          lake:
-          - Күл
-          - сусаклагыч
+          lake: Күл
+          reservoir: сусаклагыч
           farm: Ферма
           cemetery: Зират
           pitch: Спорт мәйданчыгы
           centre: Спорт үзәге
           reserve: Тыюлык
           military: Хәрби зона
-          school:
-          - Мәктәп
-          - университет
+          school: Мәктәп
+          university: университет
           station: Тимер юл станциясе
           toilets: Бәдрәф
   traces:
index 764e0db8ef46aa48cdee726c5e1aa154dfec462c..6a48a0931105e9bbe3ccb0e95112adfa575f3c9d 100644 (file)
@@ -87,6 +87,12 @@ uk:
       messages:
         invalid_email_address: не схоже на коректну адресу електронної пошти
         email_address_not_routable: недоступний
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: вже стишено
     models:
       acl: Список контролю доступу
       changeset: Набір змін
@@ -1021,7 +1027,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: Місце для розвороту
@@ -1055,7 +1061,7 @@ uk:
           railway: Історична залізниця
           roman_road: Римська дорога
           ruins: Руїни
-          rune_stone: Рунний камінь
+          rune_stone: Рунічний камінь
           stone: Камінь
           tomb: Гробниця
           tower: Вежа
@@ -1428,7 +1434,7 @@ uk:
           photo: Фотомагазин
           seafood: Морепродукти
           second_hand: Комісійний магазин
-          sewing: Ð¨Ð²ÐµÐ¹Ð½Ð¸Ð¹ Ñ\86еÑ\85
+          sewing: Ð¨Ð²ÐµÐ¹Ð½Ðµ Ð¿Ñ\80иладдÑ\8f
           shoes: Взуття
           sports: Спортивні товари
           stationery: Канцтовари
@@ -1550,9 +1556,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: Повторно відкрити
@@ -1580,7 +1586,7 @@ uk:
   issue_comments:
     create:
       comment_created: Коментар створено
-      issue_reassigned: Ваш коментар створено, а питання перепризначено
+      issue_reassigned: Ваш коментар створено та перепризначено звернення
   reports:
     new:
       title_html: Скарга %{link}
@@ -1833,8 +1839,6 @@ uk:
   messages:
     inbox:
       title: Вхідні
-      my_inbox: Вхідні
-      my_outbox: Вихідні
       messages: У вас %{new_messages} і %{old_messages}
       new_messages:
         one: '%{count} нове повідомлення'
@@ -1846,17 +1850,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}
@@ -1871,19 +1879,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}“, але повідомлення, на яке ви хочете відповісти,
         було надіслане не вам. Будь ласка, увійдіть до відповідного облікового запису,
@@ -1899,9 +1910,16 @@ uk:
         облікового запису, щоб прочитати його.
     sent_message_summary:
       destroy_button: Вилучити
+    heading:
+      my_inbox: Вхідні
+      my_outbox: Вихідні
+      muted_messages: Стишені повідомлення
     mark:
       as_read: Повідомлення позначене як прочитане
       as_unread: Повідомлення позначене як непрочитане
+    unmute:
+      notice: Повідомлення переміщено до "Вхідних".
+      error: Не вдалося перемістити повідомлення до "Вхідних".
     destroy:
       destroyed: Повідомлення вилучено
   passwords:
@@ -2028,6 +2046,7 @@ uk:
       image: Зображення
       alt: Alt текст
       url: URL
+      codeblock: Блок коду
     richtext_field:
       edit: Редагувати
       preview: Попередній перегляд
@@ -2404,40 +2423,49 @@ uk:
           cycleway_national: Національні велошляхи
           cycleway_regional: Регіональні велошляхи
           cycleway_local: Місцеві велошляхи
+          cycleway_mtb: Маршрут для гірських велосипедів
           footway: Пішохідна доріжка
           rail: Залізниця
           train: Поїзд
           subway: Лінія метро
           ferry: Паром
           light_rail: Швидкісний трамвай
-          tram_only: Трамвай
+          tram: Трамвай
           trolleybus: Тролейбус
           bus: Автобус
-          cable:
-          - Канатна дорога
-          - крісельний підйомник
-          runway:
-          - Злітно-посадкова смуга аеропорту
-          - руліжна доріжка
-          apron_only: Перон аеропорту
+          cable_car: Канатна дорога
+          chair_lift: Крісельний підйомник
+          runway: Злітно-посадкова смуга аеропорту
+          taxiway: Руліжна доріжка
+          apron: Перон аеропорту
           admin: Адміністративна межа
-          forest:
-          - Ліс
-          - Дерева
+          capital: Столиця
+          city: Місто
+          orchard: Сад
+          vineyard: Виноградник
+          forest: Ліс
+          wood: Дерева
+          farmland: Поле
+          grass: Трава
+          meadow: Левада
+          bare_rock: Голі скелі
+          sand: Пісок
           golf: Поле для гольфу
           park: Парк
-          common:
-          - Суспільні землі
-          - левада
-          - сад
+          common: Суспільні землі
+          built_up: Забудована територія
           resident: Жила зона
           retail: Торговельний район
           industrial: Промисловий район
           commercial: Бізнесова зона
           heathland: Пустище
-          lake:
-          - Озеро
-          - водосховище
+          scrubland: Чагарник
+          lake: Озеро
+          reservoir: Водосховище
+          intermittent_water: Водойма, що пересихає
+          glacier: Льодовик
+          reef: Риф
+          wetland: Заболочені землі
           farm: Ферма
           brownfield: Покинута зона
           cemetery: Кладовище
@@ -2446,14 +2474,13 @@ uk:
           centre: Спортивний центр
           reserve: Заповідник
           military: Військова зона
-          school:
-          - Школа
-          - університет
+          school: Школа
+          university: Університет
+          hospital: Лікарня
           building: Значна споруда
           station: Залізнична станція
-          summit:
-          - Вершина
-          - пік
+          summit: Вершина
+          peak: Пік
           tunnel: Тунель (пунктиром)
           bridge: Міст (жирна лінія)
           private: Приватний доступ
@@ -2676,6 +2703,7 @@ uk:
       oauth1_settings: налаштування OAuth 1
       oauth2_applications: застосунки OAuth 2
       oauth2_authorizations: авторизації OAuth 2
+      muted_users: Стишені учасники
   oauth:
     authorize:
       title: Авторизувати доступ до облікового запису
@@ -2714,6 +2742,7 @@ uk:
       read_gpx: Отримувати приватні GPS-треки
       write_gpx: Завантажувати GPS-треки
       write_notes: Змінювати нотатки
+      write_redactions: Виконувати очищення даних
       read_email: Отримувати адресу е-пошти
       skip_authorization: Автоматичне схвалення заявки
   oauth_clients:
@@ -2803,6 +2832,7 @@ uk:
       application: Застосунок
       permissions: Дозволи
       no_applications_html: У вас ще немає застосунків авторизованих через %{oauth2}.
+      oauth_2: OAuth 2
     application:
       revoke: Відкликати доступ
       confirm_revoke: Відкликати доступ у застосунку?
@@ -2890,6 +2920,8 @@ uk:
       my_dashboard: Інфо панель
       blocks on me: Мої блокування
       blocks by me: Заблоковано мною
+      create_mute: Стишити цього учасника
+      destroy_mute: Зняти стишення з цього учасника
       edit_profile: Редагувати профіль
       send message: Надіслати повідомлення
       diary: Щоденник
@@ -3099,6 +3131,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}
@@ -3135,6 +3193,7 @@ uk:
       reactivate: Поновити
       comment_and_resolve: Прокоментувати та Опрацювати
       comment: Коментар
+      log_in_to_comment: Увійдіть, щоб прокоментувати цю нотатку
       report_link_html: Якщо ця нотатка містить конфіденційну інформацію, яку потрібно
         видалити, ви можете %{link}.
       other_problems_resolve: Всі інші проблеми з нотаткою вирішуйте самостійно в
index 512f7e2b3cb2816129f8cd4ab1c4a0867065b204..c4b68cb07ea82d2a60cf4165f4dd858e9a6de67d 100644 (file)
@@ -1322,9 +1322,9 @@ vi:
         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
@@ -1602,16 +1602,16 @@ 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
     message_summary:
       unread_button: Đánh dấu là chưa đọc
       read_button: Đánh dấu là đã đọc
@@ -1631,12 +1631,7 @@ 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
       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
@@ -1655,6 +1650,9 @@ 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
@@ -2025,31 +2023,24 @@ vi:
           footway: Đường đi bộ
           rail: Đường sắt
           subway: Đường ngầm
-          cable:
-          - Đường xe cáp
-          - ghế cáp treo
-          runway:
-          - Đường băng
-          - đường băng
-          apron_only: Sân đậu máy bay
+          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
-          forest:
-          - Rừng trồng cây
-          - Rừng
+          forest: Rừng trồng cây
+          wood: Rừng
           golf: Sân golf
           park: Công viên
-          common:
-          - Đất công
-          - bãi cỏ
-          - vườn
+          common: Đất công
           resident: Khu vực nhà ở
           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
           farm: Ruộng
           brownfield: Cánh đồng nâu
           cemetery: Nghĩa địa
@@ -2058,14 +2049,12 @@ vi:
           centre: Trung tâm thể thao
           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
           building: Kiến trúc quan trọng
           station: Nhà ga
-          summit:
-          - Đỉnh núi
-          - đồi
+          summit: Đỉnh núi
+          peak: đồi
           tunnel: Đường đứt nét = đường hầm
           bridge: Đường rắn = cầu
           private: Đường riêng
index dea0b2ba349e11762aa43371eaa510fb93e466ed..fe7c35408901a1c7ffe60725a829bdef53c9af4b 100644 (file)
@@ -8,6 +8,7 @@
 # Author: Amire80
 # Author: Anakmalaysia
 # Author: Angrydog001
+# Author: Anterdc99
 # Author: Assoc
 # Author: Boyuan Yang
 # Author: C933103
@@ -123,6 +124,12 @@ zh-CN:
       messages:
         invalid_email_address: 似乎不是有效的电子邮件地址
         email_address_not_routable: 不可路由
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: 已弱化
     models:
       acl: 访问控制列表
       changeset: 变更集
@@ -335,6 +342,7 @@ zh-CN:
         retain_notes: 您的地图注记与注记中的评论,如果有,将被保留,但不可见。
         retain_changeset_discussions: 您在变更集下的讨论,如果有,将被保留。
         retain_email: 您的电子邮件地址将被保留。
+        recent_editing_html: 因为您最近有做出编辑,目前无法删除您的账号。%{time} 后才可删除。
         confirm_delete: 您确定吗?
         cancel: 取消
   accounts:
@@ -1499,9 +1507,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: 重新开放
@@ -1535,7 +1543,7 @@ zh-CN:
       title_html: 举报%{link}
       missing_params: 不能创建新的举报
       disclaimer:
-        intro: 在发送您的举报至网站版主前,请确保:
+        intro: 在发送您的举报至网站仲裁员前,请确保:
         not_just_mistake: 您确信这个问题不只是失误
         unable_to_fix: 您无法自行修复问题,或通过您的伙伴社群成员帮助下修复
         resolve_with_user: 您已尝试与有关用户解决问题
@@ -1730,21 +1738,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}
@@ -1758,20 +1768,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: 删除
@@ -1779,9 +1790,16 @@ 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:
@@ -1904,6 +1922,7 @@ zh-CN:
       image: 图像
       alt: 替代文本
       url: URL
+      codeblock: 代码块
     richtext_field:
       edit: 编辑
       preview: 预览
@@ -1961,8 +1980,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 提供署名。
@@ -2000,12 +2019,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}:包含来自芬兰地形数据库的
           国家土地调查
@@ -2199,6 +2219,7 @@ zh-CN:
           primary: 一级道路
           secondary: 二级道路
           unclassified: 无等级道路
+          pedestrian: 人行道
           track: 小路
           bridleway: 马道
           cycleway: 自行车道
@@ -2207,38 +2228,46 @@ zh-CN:
           cycleway_local: 本地自行车道
           footway: 步道
           rail: 铁路
+          train: 火车
           subway: 地铁
-          cable:
-          - 缆车
-          - 吊椅缆车
-          runway:
-          - 机场跑道
-          - 滑行道
-          apron_only: 机场停机坪
+          ferry: 渡船
+          light_rail: 轻轨
+          tram: 有轨电车
+          trolleybus: 无轨电车
+          bus: 公共汽车
+          cable_car: 缆车
+          chair_lift: 吊椅缆车
+          runway: 机场跑道
+          taxiway: 滑行道
+          apron: 机场停机坪
           admin: 行政区边界
-          orchard:
-          - 果园
-          - 葡萄园
-          forest:
-          - 森林
-          - 林
-          grass:
-          - 草坪
+          capital: 首都
+          city: 城市
+          orchard: 果园
+          vineyard: 葡萄园
+          forest: 森林
+          wood: 树林
+          farmland: 农田
+          grass: 草坪
+          meadow: 草甸
           bare_rock: 裸岩
+          sand: 沙地
           golf: 高尔夫球场
           park: 公园
-          common:
-          - 公地
-          - 草甸
-          - 花园
+          common: 公地
+          built_up: 建成区
           resident: 居住区
           retail: 零售区
           industrial: 工业区
           commercial: 商业区
           heathland: 荒原
-          lake:
-          - 湖
-          - 水库
+          scrubland: 灌木丛林地
+          lake: 湖
+          reservoir: 水库
+          intermittent_water: 间歇性水体
+          glacier: 冰川
+          reef: 礁
+          wetland: 湿地
           farm: 农场
           brownfield: 棕地
           cemetery: 坟场
@@ -2247,19 +2276,20 @@ zh-CN:
           centre: 体育馆
           reserve: 自然保护区
           military: 军事区
-          school:
-          - 学校
-          - 大学
+          school: 学校
+          university: 大学
+          hospital: 医院
           building: 特殊建筑物
           station: 火车站
-          summit:
-          - 山峰
-          - 高峰
+          summit: 山峰
+          peak: 山峰
           tunnel: 双虚线=隧道
           bridge: 双实线=桥
-          private: 私人
-          destination: 目的地进入权
+          private: 私人通行
+          destination: 目的地通行
           construction: 在建道路
+          bus_stop: 公共汽车站
+          stop: 停车站
           bicycle_shop: 自行车店
           bicycle_parking: 自行车停车场
           toilets: 厕所
@@ -2292,6 +2322,7 @@ zh-CN:
         imports: 导入
         automated_edits: 自动化编辑
       start_mapping: 开始绘制地图
+      continue_authorization: 继续授权
       add_a_note:
         title: 没有时间编辑?添加注记!
         para_1: 如果您这是想做一些微小改动而没有时间登录来学习如何编辑,那添加注记是非常容易的。
@@ -2424,6 +2455,7 @@ zh-CN:
       oauth1_settings: OAuth 1设置
       oauth2_applications: OAuth 2应用程序
       oauth2_authorizations: OAuth 2授权
+      muted_users: 已弱化用户
   oauth:
     authorize:
       title: 授权访问您的账户
@@ -2458,6 +2490,7 @@ zh-CN:
       read_gpx: 读取私人GPS轨迹
       write_gpx: 上传GPS轨迹
       write_notes: 修改备注
+      write_redactions: 编写地图数据
       read_email: 查看用户邮箱地址
       skip_authorization: 自动核准应用
   oauth_clients:
@@ -2541,6 +2574,7 @@ zh-CN:
       application: 应用程序
       permissions: 权限
       no_applications_html: 您还没有授权任何%{oauth2}应用程序。
+      oauth_2: OAuth 2
     application:
       revoke: 撤销访问权限
       confirm_revoke: 撤消此应用程序的访问权限?
@@ -2606,6 +2640,8 @@ zh-CN:
       my_dashboard: 我的综合面板
       blocks on me: 我的封禁
       blocks by me: 被我封禁
+      create_mute: 弱化此用户
+      destroy_mute: 取消弱化此用户
       edit_profile: 编辑个人资料
       send message: 发送消息
       diary: 日记
@@ -2625,15 +2661,19 @@ zh-CN:
       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: 启用此用户
@@ -2695,8 +2735,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: 返回索引
@@ -2717,7 +2757,7 @@ zh-CN:
     create:
       flash: 已建立对用户 %{name} 的封禁
     update:
-      only_creator_can_edit: 只有执行封禁的管理员能编辑它
+      only_creator_can_edit: 只有执行此封禁的仲裁员才能编辑
       success: 封禁已更新。
     index:
       title: 用户的封禁
@@ -2731,6 +2771,11 @@ zh-CN:
       confirm: 您确定要撤销该封禁?
       revoke: 撤销!
       flash: 该封禁已经被撤销。
+    revoke_all:
+      title: 正在撤销对%{block_on}的所有封禁
+      heading_html: 正在撤销对%{block_on}的所有封禁
+      confirm: 您确定要撤销%{active_blocks}吗?
+      revoke: 撤销!
     helper:
       time_future_html: 结束于 %{time}。
       until_login: 用户登录时激活。
@@ -2788,6 +2833,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} 提交或评论的注记'
@@ -2909,6 +2976,7 @@ zh-CN:
       map_data_zoom_in_tooltip: 放大地图以查看数据
       queryfeature_tooltip: 查询特征
       queryfeature_disabled_tooltip: 放大以查询特征
+      embed_html_disabled: HTML 嵌入不适用于此地图图层
     changesets:
       show:
         comment: 评论
index bc7c4b0bed31fee50901be3d1403f5460e50dad0..b83cf01f4d91e6f4a8b09a38779ddf51c54cb213 100644 (file)
@@ -1140,29 +1140,25 @@ zh-HK:
           motorway: 高速公路
           rail: 鐵路
           subway: 地鐵
-          runway:
-          - 機場跑道
-          apron_only: 機場停機坪
+          runway: 機場跑道
+          apron: 機場停機坪
           admin: 行政邊界
-          forest:
-          - 森林
+          forest: 森林
           golf: 哥爾夫球場
           park: 公園
           resident: 住宅區
           industrial: 工業區
           commercial: 商業區
-          lake:
-          - 湖泊
-          - 水庫
+          lake: 湖泊
+          reservoir: 水庫
           brownfield: 棕地
           cemetery: 墓地
           pitch: 運動場
           centre: 運動中心
           reserve: 自然保護區
           military: 軍事區
-          school:
-          - 學校
-          - 大學
+          school: 學校
+          university: 大學
           station: 火車站
           bicycle_shop: 單車店
           bicycle_parking: 單車停泊處
index 008ab780dc8b5cfa83359a4ca1ab828710d8ed3f..03e7b99c83d4e224fa9b93e3087c43cebc68e242 100644 (file)
@@ -87,6 +87,12 @@ zh-TW:
       messages:
         invalid_email_address: 似乎不是有效的電子郵件信箱地址。
         email_address_not_routable: 不可繞送
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: 已忽視
     models:
       acl: 存取控制清單
       changeset: 變更集
@@ -1466,9 +1472,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: 重新開啟
@@ -1614,6 +1620,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'
@@ -1701,8 +1708,6 @@ zh-TW:
   messages:
     inbox:
       title: 收件匣
-      my_inbox: 我的收件匣
-      my_outbox: 我的寄件匣
       messages: 您有 %{new_messages} 及 %{old_messages}。
       new_messages:
         one: '%{count} 項新訊息'
@@ -1710,16 +1715,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}
@@ -1733,16 +1742,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:
@@ -1754,9 +1764,16 @@ 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:
@@ -1879,6 +1896,7 @@ zh-TW:
       image: 圖片
       alt: 替代文字
       url: 網址
+      codeblock: 代碼區塊
     richtext_field:
       edit: 編輯
       preview: 預覽
@@ -2179,41 +2197,36 @@ zh-TW:
           cycleway_national: 國家自行車道
           cycleway_regional: 區域自行車道
           cycleway_local: 地區自行車道
+          cycleway_mtb: 登山車路徑
           footway: 步道
           rail: 鐵路
           train: 列車
           subway: 地下鐵
           ferry: 渡輪
           light_rail: 輕軌
-          tram_only: 路面電車
+          tram: 路面電車
           trolleybus: 無軌電車
           bus: 公車
-          cable:
-          - 大型纜車
-          - 升降吊椅
-          runway:
-          - 機場跑道
-          - 滑行道
-          apron_only: 機場停機坪
+          cable_car: 大型纜車
+          chair_lift: 升降吊椅
+          runway: 機場跑道
+          taxiway: 滑行道
+          apron: 機場停機坪
           admin: 行政區邊界
-          orchard:
-          - 果園
-          - 葡萄
-          forest:
-          - 森林
-          - 森林
+          capital: 首都
+          city: 城市
+          orchard: 果
+          vineyard: 葡萄園
+          forest: 森林
+          wood: 森林
           farmland: 農地
-          grass:
-          - 草坪
-          - 牧草地
+          grass: 草坪
+          meadow: 牧草地
           bare_rock: 裸岩
           sand: 沙地
           golf: 高爾夫球場
           park: 公園
-          common:
-          - 共有地
-          - 野草地
-          - 花園
+          common: 共有地
           built_up: 組成面積
           resident: 住宅區
           retail: 商店區
@@ -2221,9 +2234,8 @@ zh-TW:
           commercial: 商業區
           heathland: 石楠荒地
           scrubland: 灌木叢林地
-          lake:
-          - 湖泊
-          - 水庫
+          lake: 湖泊
+          reservoir: 水庫
           intermittent_water: 間歇性水體
           glacier: 冰河
           reef: 礁
@@ -2236,15 +2248,13 @@ zh-TW:
           centre: 運動中心
           reserve: 自然保護區
           military: 軍事區
-          school:
-          - 學校
-          - 大學
-          - 醫院
+          school: 學校;大學
+          university: 大學
+          hospital: 醫院
           building: 重要建築
           station: 鐵路車站
-          summit:
-          - 頂峰
-          - 山峰
+          summit: 頂峰
+          peak: 山峰
           tunnel: 虛線邊框 = 隧道
           bridge: 黑線邊框 = 橋樑
           private: 私人進出
@@ -2425,6 +2435,7 @@ zh-TW:
       oauth1_settings: OAuth 1 設定
       oauth2_applications: OAuth 2 應用程式
       oauth2_authorizations: OAuth 2 授權
+      muted_users: 已忽視使用者
   oauth:
     authorize:
       title: 授權使用您的帳號
@@ -2459,6 +2470,7 @@ zh-TW:
       read_gpx: 讀取私人 GPS 軌跡
       write_gpx: 上傳 GPS 軌跡
       write_notes: 修改註記
+      write_redactions: 編寫地圖資料
       read_email: 讀取使用者電子郵件位址
       skip_authorization: 自動核准申請
   oauth_clients:
@@ -2543,6 +2555,7 @@ zh-TW:
       application: 應用程式
       permissions: 權限
       no_applications_html: 您未授權任何 %{oauth2} 應用程式。
+      oauth_2: OAuth 2
     application:
       revoke: 撤銷存取權限
       confirm_revoke: 撤銷此應用程式的撤銷存取權限?
@@ -2608,6 +2621,8 @@ zh-TW:
       my_dashboard: 我的功能面板
       blocks on me: 對我的封鎖
       blocks by me: 我所設的封鎖
+      create_mute: 忽視這名使用者
+      destroy_mute: 取消忽視這名使用者
       edit_profile: 編輯個人資料
       send message: 傳送訊息
       diary: 日記
@@ -2639,6 +2654,7 @@ zh-TW:
           importer: 撤銷匯入權限
       block_history: 已封鎖
       moderator_history: 給予封鎖
+      revoke_all_blocks: 撤銷所有封鎖
       comments: 評論
       create_block: 封鎖這位使用者
       activate_user: 解除這位使用者的封鎖狀態
@@ -2736,6 +2752,16 @@ zh-TW:
       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: 生效直至這個使用者登入為止。
@@ -2793,6 +2819,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} 送出或評論的註記
@@ -2828,6 +2876,7 @@ zh-TW:
       reactivate: 重新開啟
       comment_and_resolve: 評論並解決
       comment: 評論
+      log_in_to_comment: 登入來評論此註記
       report_link_html: 如果此註記含有需要移除的敏感資訊,您可以%{link}。
       other_problems_resolve: 對於註記的所有其他問題,您可以依據評論內容來自行處理。
       other_problems_resolved: 對於其他類型回報,解決已經足夠了。
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 110a67a4984a80b7f17182f92432b01f7d1a7e65..a38f8450ff052517e12238b8fb2e9a581f344d5d 100644 (file)
@@ -321,6 +321,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
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
index 0563417cdf07f81577a51a8dab9770d8b57ea423..c9fdebbc8a9fa5253d9341fdadf2caada58cc1d8 100644 (file)
@@ -2922,6 +2922,13 @@ CREATE INDEX user_tokens_user_id_idx ON public.user_tokens USING btree (user_id)
 CREATE UNIQUE INDEX users_auth_idx ON public.users USING btree (auth_provider, auth_uid);
 
 
+--
+-- Name: users_display_name_canonical_idx; Type: INDEX; Schema: public; Owner: -
+--
+
+CREATE INDEX users_display_name_canonical_idx ON public.users USING btree (lower(NORMALIZE(display_name, NFKC)));
+
+
 --
 -- Name: users_display_name_idx; Type: INDEX; Schema: public; Owner: -
 --
@@ -3581,6 +3588,7 @@ INSERT INTO "schema_migrations" (version) VALUES
 ('23'),
 ('22'),
 ('21'),
+('20231213182102'),
 ('20231206141457'),
 ('20231117170422'),
 ('20231101222146'),
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 f6546a550d6cb4ade8238ba75bda6364752e6e60..b170e74b1aa75e1273aa02c20e418beac20e31fd 100644 (file)
@@ -10,4 +10,21 @@ 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 within_sidebar(&block)
+    within "#sidebar_content", &block
+  end
 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 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 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
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 }
index 0786af61da03c6952a9b811849934ae371b0edf8..83c397b7de21c9cbb0d99643ec8f9703cc9f7357 100644 (file)
@@ -54,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
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
index 8ec0dc9bc049e2486458f50b650034e5d0f52beb..253f298a58f36493bb9e5bbca18c34586f75de30 100644 (file)
@@ -65,6 +65,26 @@ class UserCreationTest < ActionDispatch::IntegrationTest
     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
     new_email = "newtester@osm.org"
     display_name = "new_tester"
@@ -94,18 +114,29 @@ class UserCreationTest < ActionDispatch::IntegrationTest
       end
     end
 
-    # Check the e-mail
-    register_email = ActionMailer::Base.deliveries.first
-
-    assert_equal register_email.to.first, new_email
-    # Check that the confirm account url is correct
-    assert_match(/#{@url}/, register_email.body.to_s)
-
-    # Check the page
     assert_response :success
     assert_template "confirmations/confirm"
 
+    user = User.find_by(:email => "newtester@osm.org")
+    assert_not_nil user
+    assert_not_predicate user, :active?
+
+    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
+
+    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
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 8d597fc6592ecb373e8179c4c302bbe7a839c405..ea6e4ae27361a312915da3a4f81e85e2df3052b2 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}") do
+    test locale.to_s do
       without_i18n_exceptions do
         # plural_keys = plural_keys(locale)
 
@@ -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") do
+    test "#{lang} for raw html" do
       yml = YAML.load_file(filename)
       assert_nothing_raised do
         check_values_for_raw_html(yml)
index 537bb9d0ddf60ec4220007d56d3c6986f524be7b..751adcd82dc361583bf4e8ea7ca4ad8a8d3ac8f9 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
index ac3ea091cfa3f20250edc39790c8c180c7565065..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
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 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 83cc1251d02d05a8465e802cb34727c029579cdb..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
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 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..1a2376ca87e35d063e5c6c53b2d119650f98a960 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
 
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
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 37f66e178b0f53401da63d90022ee0679d86fb2d..42949504f633925b8a6473cd203972ab944d9a71 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,11 @@ 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_valid
@@ -87,7 +90,7 @@ 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
 
@@ -247,25 +250,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
 
@@ -283,10 +286,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
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 e6517dccc38b6bd0c5b17bb3463c5e34111bfdd3..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,9 +34,9 @@ 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"
@@ -47,7 +47,7 @@ class AccountDeletionTest < ApplicationSystemTestCase
       travel 1.hour do
         visit edit_account_path
 
-        click_link "Delete Account..."
+        click_on "Delete Account..."
 
         assert_no_content "cannot currently be deleted"
       end
@@ -61,7 +61,7 @@ class AccountDeletionTest < ApplicationSystemTestCase
       travel 1.hour do
         visit edit_account_path
 
-        click_link "Delete Account..."
+        click_on "Delete Account..."
 
         assert_no_content "cannot currently be deleted"
       end
@@ -75,7 +75,7 @@ class AccountDeletionTest < ApplicationSystemTestCase
       travel 12.hours do
         visit edit_account_path
 
-        click_link "Delete Account..."
+        click_on "Delete Account..."
 
         assert_no_content "cannot currently be deleted"
       end
@@ -89,7 +89,7 @@ class AccountDeletionTest < ApplicationSystemTestCase
       travel 10.hours do
         visit edit_account_path
 
-        click_link "Delete Account..."
+        click_on "Delete Account..."
 
         assert_content "cannot currently be deleted"
         assert_content "in about 1 hour"
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
index ce4346115694d4e6e99a44c35ebd6b7abe5f5527..e70005e647abad142dddac009d1ec0bb477a1a18 100644 (file)
@@ -10,14 +10,14 @@ class UserMutingTest < ApplicationSystemTestCase
     sign_in_as(user)
 
     visit user_path(other_user)
-    click_link "Mute this User"
+    click_on "Mute this User"
     assert_content "You muted #{other_user.display_name}"
 
     visit edit_account_path
     assert_content "Muted Users"
-    click_link "Muted Users"
+    click_on "Muted Users"
     assert_content "You have muted 1 User"
-    click_link "Unmute"
+    click_on "Unmute"
 
     assert_content "You unmuted #{other_user.display_name}"
     refute_content "Muted Users"
@@ -35,7 +35,7 @@ class UserMutingTest < ApplicationSystemTestCase
     fill_in "Body", :with => "some message"
 
     assert_no_emails do
-      click_button "Send"
+      click_on "Send"
     end
 
     message = Message.find_by(:sender => muted_user, :recipient => user)
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 19e1a2784611fa219af508a181909c7ead6f320c..9d06d23534f8cdcb9ea297aa4bd1cf048263a6f6 100644 (file)
@@ -245,7 +245,7 @@ module ActiveSupport
       visit login_path
       fill_in "username", :with => user.email
       fill_in "password", :with => "test"
-      click_button "Login", :match => :first
+      click_on "Login", :match => :first
     end
 
     def session_for(user)
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 f722b6a1b6e208295dcca7a2932559e90911aa90..f113d57529fe54db00c55d3a0e356bb5a2e26094 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
@@ -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"