]> git.openstreetmap.org Git - rails.git/commitdiff
Merge pull request #4405 from tomhughes/normalize-display-name
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 17 Jan 2024 16:24:09 +0000 (16:24 +0000)
committerGitHub <noreply@github.com>
Wed, 17 Jan 2024 16:24:09 +0000 (16:24 +0000)
Require user names to be unique after unicode normalisation

295 files changed:
.rubocop.yml
.rubocop_todo.yml
Gemfile.lock
INSTALL.md
app/abilities/ability.rb
app/abilities/api_capability.rb
app/assets/images/key/cyclemap/beach.png [new file with mode: 0644]
app/assets/images/key/cyclemap/bicycle_parking.png
app/assets/images/key/cyclemap/bicycle_parking_small.svg [new file with mode: 0644]
app/assets/images/key/cyclemap/bicycle_rental.png [new file with mode: 0644]
app/assets/images/key/cyclemap/bicycle_rental_small.svg [new file with mode: 0644]
app/assets/images/key/cyclemap/common.png [deleted file]
app/assets/images/key/cyclemap/cycleway.png [deleted file]
app/assets/images/key/cyclemap/cycleway_local.png [deleted file]
app/assets/images/key/cyclemap/cycleway_local13.png [deleted file]
app/assets/images/key/cyclemap/cycleway_national.png [deleted file]
app/assets/images/key/cyclemap/cycleway_national13.png [deleted file]
app/assets/images/key/cyclemap/cycleway_regional.png [deleted file]
app/assets/images/key/cyclemap/cycleway_regional13.png [deleted file]
app/assets/images/key/cyclemap/footway.png [deleted file]
app/assets/images/key/cyclemap/forest.png [deleted file]
app/assets/images/key/cyclemap/lake.png [deleted file]
app/assets/images/key/cyclemap/motorway.png [deleted file]
app/assets/images/key/cyclemap/motorway12.png [deleted file]
app/assets/images/key/cyclemap/primary.png [deleted file]
app/assets/images/key/cyclemap/primary12.png [deleted file]
app/assets/images/key/cyclemap/rail.png [deleted file]
app/assets/images/key/cyclemap/rail14.png [deleted file]
app/assets/images/key/cyclemap/secondary.png [deleted file]
app/assets/images/key/cyclemap/secondary12.png [deleted file]
app/assets/images/key/cyclemap/track.png [deleted file]
app/assets/images/key/cyclemap/trunk.png [deleted file]
app/assets/images/key/cyclemap/trunk12.png [deleted file]
app/assets/images/key/mapnik/apron.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/runway.png [deleted file]
app/assets/images/key/mapnik/runway11.svg [new file with mode: 0644]
app/assets/images/key/mapnik/runway12.svg [new file with mode: 0644]
app/assets/images/key/mapnik/runway13.svg [new file with mode: 0644]
app/assets/images/key/mapnik/runway14.svg [new file with mode: 0644]
app/assets/images/key/mapnik/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/rail11.svg [deleted file]
app/assets/images/key/opnvkarte/rail15.svg [deleted file]
app/assets/images/sprite.png [deleted file]
app/assets/images/sprite.svg
app/assets/javascripts/index.js
app/assets/javascripts/messages.js
app/assets/stylesheets/common.scss
app/controllers/diary_entries_controller.rb
app/controllers/messages_controller.rb
app/controllers/site_controller.rb
app/controllers/user_blocks_controller.rb
app/controllers/user_mutes_controller.rb [new file with mode: 0644]
app/controllers/users_controller.rb
app/helpers/authorization_helper.rb [new file with mode: 0644]
app/helpers/browse_tags_helper.rb
app/helpers/svg_helper.rb [new file with mode: 0644]
app/mailers/user_mailer.rb
app/models/acl.rb
app/models/language.rb
app/models/message.rb
app/models/user.rb
app/models/user_mute.rb [new file with mode: 0644]
app/views/application/_settings_menu.html.erb
app/views/browse/history.html.erb
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/_heading.html.erb [new file with mode: 0644]
app/views/messages/_inbox_count.html.erb [moved from app/views/messages/_message_count.html.erb with 91% similarity]
app/views/messages/_message_summary.html.erb
app/views/messages/_messages_table.html.erb [new file with mode: 0644]
app/views/messages/_muted_count.html.erb [new file with mode: 0644]
app/views/messages/_outbox_count.html.erb [new file with mode: 0644]
app/views/messages/destroy.json.jbuilder
app/views/messages/inbox.html.erb
app/views/messages/mark.json.jbuilder
app/views/messages/muted.html.erb [new file with mode: 0644]
app/views/messages/outbox.html.erb
app/views/messages/show.html.erb
app/views/notes/show.html.erb
app/views/oauth2_applications/_application.html.erb
app/views/oauth2_authorizations/new.html.erb
app/views/oauth2_authorized_applications/_application.html.erb
app/views/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/user_mutes/index.html.erb [new file with mode: 0644]
app/views/users/show.html.erb
config/application.rb
config/key.yml
config/locales/af.yml
config/locales/aln.yml
config/locales/ar.yml
config/locales/arz.yml
config/locales/ast.yml
config/locales/az.yml
config/locales/be-Tarask.yml
config/locales/be.yml
config/locales/bg.yml
config/locales/bn.yml
config/locales/br.yml
config/locales/bs.yml
config/locales/ca.yml
config/locales/ce.yml
config/locales/cs.yml
config/locales/cy.yml
config/locales/da.yml
config/locales/de.yml
config/locales/diq.yml
config/locales/dsb.yml
config/locales/el.yml
config/locales/en-GB.yml
config/locales/en.yml
config/locales/eo.yml
config/locales/es.yml
config/locales/et.yml
config/locales/eu.yml
config/locales/fa.yml
config/locales/fi.yml
config/locales/fit.yml
config/locales/fr.yml
config/locales/fur.yml
config/locales/fy.yml
config/locales/ga.yml
config/locales/gcf.yml
config/locales/gd.yml
config/locales/gl.yml
config/locales/gsw.yml
config/locales/he.yml
config/locales/hi.yml
config/locales/hr.yml
config/locales/hsb.yml
config/locales/hu.yml
config/locales/ia.yml
config/locales/id.yml
config/locales/is.yml
config/locales/it.yml
config/locales/ja.yml
config/locales/ka.yml
config/locales/kab.yml
config/locales/kk-cyrl.yml
config/locales/km.yml
config/locales/kn.yml
config/locales/ko.yml
config/locales/ksh.yml
config/locales/ku-Latn.yml
config/locales/lb.yml
config/locales/lt.yml
config/locales/lv.yml
config/locales/mk.yml
config/locales/mo.yml
config/locales/mr.yml
config/locales/ms.yml
config/locales/my.yml
config/locales/nb.yml
config/locales/nds.yml
config/locales/ne.yml
config/locales/nl.yml
config/locales/nn.yml
config/locales/nqo.yml
config/locales/oc.yml
config/locales/pa.yml
config/locales/pl.yml
config/locales/pnb.yml
config/locales/ps.yml
config/locales/pt-PT.yml
config/locales/pt.yml
config/locales/ro.yml
config/locales/ru.yml
config/locales/sat.yml
config/locales/sc.yml
config/locales/scn.yml
config/locales/sco.yml
config/locales/sh.yml
config/locales/sk.yml
config/locales/skr-arab.yml
config/locales/sl.yml
config/locales/sq.yml
config/locales/sr-Latn.yml
config/locales/sr.yml
config/locales/sv.yml
config/locales/ta.yml
config/locales/te.yml
config/locales/th.yml
config/locales/tl.yml
config/locales/tr.yml
config/locales/tt.yml
config/locales/uk.yml
config/locales/vi.yml
config/locales/yo.yml
config/locales/zh-CN.yml
config/locales/zh-HK.yml
config/locales/zh-TW.yml
config/openlayers.cfg [deleted file]
config/routes.rb
config/settings/test.yml
db/migrate/20231010201451_create_user_mutes.rb [new file with mode: 0644]
db/migrate/20231010203028_add_muted_flag_to_messages.rb [new file with mode: 0644]
db/structure.sql
lib/oauth.rb
script/deliver-message
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/controllers/user_mutes_controller_test.rb [new file with mode: 0644]
test/factories/messages.rb
test/factories/notes.rb
test/factories/user_mute.rb [new file with mode: 0644]
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_mute_test.rb [new file with mode: 0644]
test/models/user_preference_test.rb
test/models/user_test.rb
test/models/way_tag_test.rb
test/system/account_deletion_test.rb
test/system/confirmation_resend_test.rb
test/system/diary_entry_test.rb
test/system/issues_test.rb
test/system/messages_test.rb [new file with mode: 0644]
test/system/note_comments_test.rb
test/system/oauth2_test.rb [new file with mode: 0644]
test/system/preferences_test.rb
test/system/report_diary_comment_test.rb
test/system/report_diary_entry_test.rb
test/system/report_note_test.rb
test/system/report_user_test.rb
test/system/user_blocks_test.rb [new file with mode: 0644]
test/system/user_logout_test.rb
test/system/user_muting_test.rb [new file with mode: 0644]
test/system/user_signup_test.rb
test/system/user_status_change_test.rb
test/system/view_communities_test.rb
test/test_helper.rb
test/validators/characters_validator_test.rb
test/validators/whitespace_validator_test.rb
yarn.lock

index 1e18afd83581ba0fc47d728032b3ade65f091b1a..ddfb63cae0610942a1ac6f107267e2c283ea2b50 100644 (file)
@@ -68,6 +68,9 @@ Rails/SkipsModelValidations:
     - 'db/migrate/*.rb'
     - 'app/controllers/users_controller.rb'
 
+Style/ArgumentsForwarding:
+  Enabled: false
+
 Style/Documentation:
   Enabled: false
 
index bd2f92309886c83b83e4dfdaecd5cc8153f23cc7..8a196f52e0317b45cc56b4c4ca856e4d353efa97 100644 (file)
@@ -14,6 +14,11 @@ require:
   - rubocop-rails
   - rubocop-rake
 
+# Offense count: 11
+# Configuration parameters: Include, MaxAmount
+FactoryBot/ExcessiveCreateList:
+  MaxAmount: 200
+
 # Offense count: 557
 # This cop supports safe autocorrection (--autocorrect).
 # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
@@ -61,12 +66,12 @@ Metrics/BlockNesting:
 # Offense count: 26
 # Configuration parameters: CountComments, CountAsOne.
 Metrics/ClassLength:
-  Max: 297
+  Max: 299
 
 # 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 7d97c6de7e216e4817b225f6e9bdb06c9e248213..96dea6362560096f278c0370500ec878b88bd606 100644 (file)
@@ -3,6 +3,7 @@ GEM
   specs:
     aasm (5.5.0)
       concurrent-ruby (~> 1.0)
+    abbrev (0.1.2)
     actioncable (7.1.2)
       actionpack (= 7.1.2)
       activesupport (= 7.1.2)
@@ -95,16 +96,16 @@ GEM
     autoprefixer-rails (10.4.16.0)
       execjs (~> 2)
     aws-eventstream (1.3.0)
-    aws-partitions (1.864.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.74.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)
@@ -122,10 +123,10 @@ GEM
       erubi (~> 1.4)
       parser (>= 2.4)
       smart_properties
-    bigdecimal (3.1.4)
+    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,8 +153,8 @@ GEM
       rack-test (>= 0.6.3)
       regexp_parser (>= 1.5, < 3.0)
       xpath (~> 3.2)
-    concurrent-ruby (1.2.2)
-    config (5.0.0)
+    concurrent-ruby (1.2.3)
+    config (5.1.0)
       deep_merge (~> 1.2, >= 1.2.1)
       dry-validation (~> 1.0, >= 1.0.0)
     connection_pool (2.4.1)
@@ -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)
-    hashdiff (1.0.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.6.0)
-    irb (1.10.1)
+    io-console (0.7.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)
@@ -394,17 +400,17 @@ GEM
       actionpack (>= 4.2)
       omniauth (~> 2.0)
     openstreetmap-deadlock_retry (1.3.1)
-    parallel (1.23.0)
-    parser (3.2.2.4)
+    parallel (1.24.0)
+    parser (3.3.0.4)
       ast (~> 2.4.1)
       racc
     pg (1.5.4)
     popper_js (2.11.8)
     progress (3.6.0)
-    psych (5.1.1.1)
+    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)
@@ -465,10 +472,10 @@ GEM
     rb-fsevent (0.11.2)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
-    rdoc (6.6.1)
+    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,16 +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.24.0)
-      rubocop (~> 1.33)
-    rubocop-minitest (0.33.0)
+    rubocop-factory_bot (2.25.1)
+      rubocop (~> 1.41)
+    rubocop-minitest (0.34.4)
       rubocop (>= 1.39, < 2.0)
-    rubocop-performance (1.19.1)
-      rubocop (>= 1.7.0, < 2.0)
-      rubocop-ast (>= 0.4.0)
-    rubocop-rails (2.22.2)
+      rubocop-ast (>= 1.30.0, < 2.0)
+    rubocop-performance (1.20.2)
+      rubocop (>= 1.48.1, < 2.0)
+      rubocop-ast (>= 1.30.0, < 2.0)
+    rubocop-rails (2.23.1)
       activesupport (>= 4.2.0)
       rack (>= 1.1)
       rubocop (>= 1.33.0, < 2.0)
@@ -546,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)
@@ -558,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 59e924b9b86da2280fc2cfb4d6cb94abad782984..ec219b504a2002ac7bd9cd8891baeb4ec793798f 100644 (file)
@@ -23,7 +23,7 @@ of packages required before you can get the various gems installed.
 ## Minimum requirements
 
 * Ruby 3.0+
-* PostgreSQL 9.1+
+* PostgreSQL 12+
 * Bundler (see note below about [developer Ruby setup](#rbenv))
 * Javascript Runtime
 
index f9348f68e707ae9897bd0a2e2690e7e4187573d0..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?
@@ -47,20 +41,21 @@ class Ability
         can [:show], :dashboard
         can [:new, :create, :edit, :update, :comment, :subscribe, :unsubscribe], DiaryEntry
         can [:make_friend, :remove_friend], Friendship
-        can [:new, :create, :reply, :show, :inbox, :outbox, :mark, :destroy], Message
+        can [:new, :create, :reply, :show, :inbox, :outbox, :muted, :mark, :unmute, :destroy], Message
         can [:close, :reopen], Note
         can [:show, :edit, :update], :preference
         can [:edit, :update], :profile
         can [:new, :create], Report
         can [:mine, :new, :create, :edit, :update, :destroy], Trace
         can [:account, :go_public], User
+        can [:index, :create, :destroy], UserMute
 
         if user.moderator?
           can [:hide, :unhide, :hidecomment, :unhidecomment], DiaryEntry
           can [:index, :show, :resolve, :ignore, :reopen], Issue
           can :create, IssueComment
           can [:new, :create, :edit, :update, :destroy], Redaction
-          can [:new, :edit, :create, :update, :revoke], UserBlock
+          can [:new, :edit, :create, :update, :revoke, :revoke_all], UserBlock
         end
 
         if user.administrator?
index 8c52327cfe488cc0d4e0710d85c48625dd7a166d..95d7ab9ab92d2145b90f11373a69416aacc9f959 100644 (file)
@@ -32,9 +32,9 @@ class ApiCapability
           can [:destroy, :restore], ChangesetComment if scope?(token, :write_api)
           can :destroy, Note if scope?(token, :write_notes)
           if user&.terms_agreed?
-            can :redact, OldNode if scope?(token, :write_api)
-            can :redact, OldWay if scope?(token, :write_api)
-            can :redact, OldRelation if scope?(token, :write_api)
+            can :redact, OldNode if scope?(token, :write_api) || scope?(token, :write_redactions)
+            can :redact, OldWay if scope?(token, :write_api) || scope?(token, :write_redactions)
+            can :redact, OldRelation if scope?(token, :write_api) || scope?(token, :write_redactions)
           end
         end
       end
diff --git a/app/assets/images/key/cyclemap/beach.png b/app/assets/images/key/cyclemap/beach.png
new file mode 100644 (file)
index 0000000..256732b
Binary files /dev/null and b/app/assets/images/key/cyclemap/beach.png differ
index c900a449546dcf75d3463b6edacb66db22c4b8e1..e5a781d139fa3f4053413ffa2820a34ffd361781 100644 (file)
Binary files a/app/assets/images/key/cyclemap/bicycle_parking.png and b/app/assets/images/key/cyclemap/bicycle_parking.png differ
diff --git a/app/assets/images/key/cyclemap/bicycle_parking_small.svg b/app/assets/images/key/cyclemap/bicycle_parking_small.svg
new file mode 100644 (file)
index 0000000..753fab7
--- /dev/null
@@ -0,0 +1,3 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8'>
+<rect x='.5' y='.5' width='7' height='7' rx='2' fill='#0087ff' stroke='#fefefe' />
+</svg>
diff --git a/app/assets/images/key/cyclemap/bicycle_rental.png b/app/assets/images/key/cyclemap/bicycle_rental.png
new file mode 100644 (file)
index 0000000..190e527
Binary files /dev/null and b/app/assets/images/key/cyclemap/bicycle_rental.png differ
diff --git a/app/assets/images/key/cyclemap/bicycle_rental_small.svg b/app/assets/images/key/cyclemap/bicycle_rental_small.svg
new file mode 100644 (file)
index 0000000..fa0399c
--- /dev/null
@@ -0,0 +1,3 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8'>
+<rect x='.5' y='.5' width='7' height='7' rx='2' fill='#fbe500' stroke='#fefefe' />
+</svg>
diff --git a/app/assets/images/key/cyclemap/common.png b/app/assets/images/key/cyclemap/common.png
deleted file mode 100644 (file)
index 7c10815..0000000
Binary files a/app/assets/images/key/cyclemap/common.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway.png b/app/assets/images/key/cyclemap/cycleway.png
deleted file mode 100644 (file)
index 13bed4a..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway_local.png b/app/assets/images/key/cyclemap/cycleway_local.png
deleted file mode 100644 (file)
index 2a29331..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway_local.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway_local13.png b/app/assets/images/key/cyclemap/cycleway_local13.png
deleted file mode 100644 (file)
index 3f2c535..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway_local13.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway_national.png b/app/assets/images/key/cyclemap/cycleway_national.png
deleted file mode 100644 (file)
index 0f5455f..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway_national.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway_national13.png b/app/assets/images/key/cyclemap/cycleway_national13.png
deleted file mode 100644 (file)
index 252b07a..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway_national13.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway_regional.png b/app/assets/images/key/cyclemap/cycleway_regional.png
deleted file mode 100644 (file)
index 9224999..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway_regional.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/cycleway_regional13.png b/app/assets/images/key/cyclemap/cycleway_regional13.png
deleted file mode 100644 (file)
index 5195704..0000000
Binary files a/app/assets/images/key/cyclemap/cycleway_regional13.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/footway.png b/app/assets/images/key/cyclemap/footway.png
deleted file mode 100644 (file)
index c78756f..0000000
Binary files a/app/assets/images/key/cyclemap/footway.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/forest.png b/app/assets/images/key/cyclemap/forest.png
deleted file mode 100644 (file)
index a7ebe8e..0000000
Binary files a/app/assets/images/key/cyclemap/forest.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/lake.png b/app/assets/images/key/cyclemap/lake.png
deleted file mode 100644 (file)
index 918d496..0000000
Binary files a/app/assets/images/key/cyclemap/lake.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/motorway.png b/app/assets/images/key/cyclemap/motorway.png
deleted file mode 100644 (file)
index 296f176..0000000
Binary files a/app/assets/images/key/cyclemap/motorway.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/motorway12.png b/app/assets/images/key/cyclemap/motorway12.png
deleted file mode 100644 (file)
index 749493a..0000000
Binary files a/app/assets/images/key/cyclemap/motorway12.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/primary.png b/app/assets/images/key/cyclemap/primary.png
deleted file mode 100644 (file)
index 78ae0e4..0000000
Binary files a/app/assets/images/key/cyclemap/primary.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/primary12.png b/app/assets/images/key/cyclemap/primary12.png
deleted file mode 100644 (file)
index fed37d0..0000000
Binary files a/app/assets/images/key/cyclemap/primary12.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/rail.png b/app/assets/images/key/cyclemap/rail.png
deleted file mode 100644 (file)
index 0abf0c1..0000000
Binary files a/app/assets/images/key/cyclemap/rail.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/rail14.png b/app/assets/images/key/cyclemap/rail14.png
deleted file mode 100644 (file)
index 957f17c..0000000
Binary files a/app/assets/images/key/cyclemap/rail14.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/secondary.png b/app/assets/images/key/cyclemap/secondary.png
deleted file mode 100644 (file)
index 7928b18..0000000
Binary files a/app/assets/images/key/cyclemap/secondary.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/secondary12.png b/app/assets/images/key/cyclemap/secondary12.png
deleted file mode 100644 (file)
index cde0085..0000000
Binary files a/app/assets/images/key/cyclemap/secondary12.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/track.png b/app/assets/images/key/cyclemap/track.png
deleted file mode 100644 (file)
index f294edc..0000000
Binary files a/app/assets/images/key/cyclemap/track.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/trunk.png b/app/assets/images/key/cyclemap/trunk.png
deleted file mode 100644 (file)
index d312a65..0000000
Binary files a/app/assets/images/key/cyclemap/trunk.png and /dev/null differ
diff --git a/app/assets/images/key/cyclemap/trunk12.png b/app/assets/images/key/cyclemap/trunk12.png
deleted file mode 100644 (file)
index 51230a0..0000000
Binary files a/app/assets/images/key/cyclemap/trunk12.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/apron.png b/app/assets/images/key/mapnik/apron.png
deleted file mode 100644 (file)
index bcea5e3..0000000
Binary files a/app/assets/images/key/mapnik/apron.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/bridge.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/runway.png b/app/assets/images/key/mapnik/runway.png
deleted file mode 100644 (file)
index c656728..0000000
Binary files a/app/assets/images/key/mapnik/runway.png and /dev/null differ
diff --git a/app/assets/images/key/mapnik/runway11.svg b/app/assets/images/key/mapnik/runway11.svg
new file mode 100644 (file)
index 0000000..088893c
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='3'>
+<line x2='50%' y1='50%' y2='50%' stroke='#bbc' stroke-width='2' />
+<line x1='50%' x2='100%' y1='50%' y2='50%' stroke='#bbc' />
+</svg>
diff --git a/app/assets/images/key/mapnik/runway12.svg b/app/assets/images/key/mapnik/runway12.svg
new file mode 100644 (file)
index 0000000..205a18e
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='5'>
+<line x2='50%' y1='50%' y2='50%' stroke='#bbc' stroke-width='4' />
+<line x1='50%' x2='100%' y1='50%' y2='50%' stroke='#bbc' />
+</svg>
diff --git a/app/assets/images/key/mapnik/runway13.svg b/app/assets/images/key/mapnik/runway13.svg
new file mode 100644 (file)
index 0000000..e4d7127
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='6'>
+<line x2='50%' y1='50%' y2='50%' stroke='#bbc' stroke-width='6' />
+<line x1='50%' x2='100%' y1='50%' y2='50%' stroke='#bbc' stroke-width='2' />
+</svg>
diff --git a/app/assets/images/key/mapnik/runway14.svg b/app/assets/images/key/mapnik/runway14.svg
new file mode 100644 (file)
index 0000000..dc9958d
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='52' height='12'>
+<line x2='50%' y1='50%' y2='50%' stroke='#bbc' stroke-width='12' />
+<line x1='50%' x2='100%' y1='50%' y2='50%' stroke='#bbc' stroke-width='4' />
+</svg>
diff --git a/app/assets/images/key/mapnik/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/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>
diff --git a/app/assets/images/sprite.png b/app/assets/images/sprite.png
deleted file mode 100644 (file)
index e256170..0000000
Binary files a/app/assets/images/sprite.png and /dev/null differ
index 382bc41fd079fefd47fb75ca0340f6d6ddfe9db5..ae2e03c6beb72886bb1c37dbfa222b665379296a 100644 (file)
@@ -1,68 +1,62 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="300" height="200" viewBox="0, 0, 300, 200">
-  <g id="background">
-    <path d="M0,0 L300,0 L300,200 L0,200 z" fill="#B3B3B3" id="rect6890" display="none"/>
-  </g>
-  <g id="Layer_1">
-    <g id="query">
-      <text transform="matrix(1, 0, 0, 1, 276.165, 12.5)" id="tspan3023">
-        <tspan x="-3.665" y="6.012" font-family="Helvetica, sans-serif" font-weight="Bold" font-size="12" fill="#FFFFFF">?</tspan>
-      </text>
-      <path d="M263,1 C263,1 272,8 272,8 C270.944,8.587 269.888,9.173 268.832,9.76 L271.863,16.375 C272.209,17.128 271.878,18.018 271.125,18.364 C270.372,18.709 269.482,18.378 269.136,17.625 L266.201,11.221 C265.134,11.814 264.067,12.407 263,13 L263,1 z" fill="#FFFFFF"/>
-    </g>
-    <g id="add-note-grey">
-      <path d="M242,31 L242,24 L243,23 L253,23 L254,24 L254,31 L253,32 L250,32 L248,35 L246,32 L243,32 z" fill="#CCCCCC" id="path3386"/>
-      <path d="M257,33 L257,35 L259,35 L259,37 L257,37 L257,39 L255,39 L255,37 L253,37 L253,35 L255,35 L255,33 L257,33 z" fill="#CCCCCC"/>
-    </g>
-    <g id="add-note">
-      <path d="M257,12 L257,14 L259,14 L259,16 L257,16 L257,18 L255,18 L255,16 L253,16 L253,14 L255,14 L255,12 L257,12 z" fill="#FFFFFF"/>
-      <path d="M242,11 L242,4 L243,3 L253,3 L254,4 L254,11 L253,12 L250,12 L248,15 L246,12 L243,12 z" fill="#FFFFFF" id="path11741"/>
-    </g>
-    <g id="check-green">
-      <path d="M224,28 L226,28 L229,31 L233.773,25 L236,25 L236,27 L231,33 L230,34 L228,34 L227,33 L224,30 z" fill="#70CD8F" id="path3361-4"/>
-    </g>
-    <g id="check">
-      <path d="M224,8 L226,8 L229,11 L233.773,5 L236,5 L236,7 L231,13 L230,14 L228,14 L227,13 L224,10 z" fill="#222222" id="path10883"/>
-    </g>
-    <g id="close-grey">
-      <path d="M205.938,25.156 L204.938,26.156 L204.938,27.156 L207.938,30.156 L204.938,33.156 L204.938,34.156 L205.938,35.156 L206.938,35.156 L209.938,32.156 L212.938,35.156 L213.938,35.156 L214.938,34.156 L214.938,33.156 L211.938,30.156 L214.938,27.156 L214.938,26.156 L213.938,25.156 L212.938,25.156 L209.938,28.156 L206.938,25.156 L205.938,25.156 z" fill="#999999" id="path3059"/>
-    </g>
-    <g id="close">
-      <path d="M206,5 L205,6 L205,7 L208,10 L205,13 L205,14 L206,15 L207,15 L210,12 L213,15 L214,15 L215,14 L215,13 L212,10 L215,7 L215,6 L214,5 L213,5 L210,8 L207,5 L206,5 z" fill="#CCCCCC" id="path10879"/>
-    </g>
-    <g id="link">
-      <path d="M185,6 L183,8 L183,12 L185,14 L187,14 L185,12 L185,8 L190,8 L190,11 L192,11 L192,8 L190,6 L187,6 L185,6 z M192,6 L194,8 L194,12 L189,12 L189,9 L187,9 L187,12 L189,14 L194,14 L196,12 L196,8 L194,6 L192,6 z" fill="#0000FF" id="path4118"/>
-    </g>
-    <g id="clipboard">
-      <path d="M170,1 L169,2 L169,3 L168,3 L167,4 L167,6 L174,6 L174,4 L173,3 L172,3 L172,2 L171,1 L170,1 z M165,4 L164,5 L164,16 L165,17 L176,17 L177,16 L177,5 L176,4 L175,4 L175,5 L175,7 L175,15 L166,15 L166,7 L166,5 L166,4 L165,4 z M168,8 L168,9 L173,9 L173,8 L168,8 z M168,10 L168,11 L173,11 L173,10 L168,10 z M168,12 L168,13 L171,13 L171,12 L168,12 z" fill="#FFFFFF" id="path6924"/>
-    </g>
-    <g id="export">
-      <path d="M155,2 L154,3 L154,5 L152,5 C146,5 146,12 146,12 C146,12 148,8 152,8 C152.667,8 153.333,8 154,8 L154,10 L155,11 L159,6.5 L155,2 z M142,6 L141,7 L141,16 L142,17 L152,17 L153,16 L153,14 L153,11 L153,10 L152,10 C151.68,10 151.34,10.073 151,10.188 L151,13 L151,15 L145.438,15 C145.139,15.069 144.829,15.069 144.531,15 L143,15 L143,13.375 C142.967,13.168 142.967,12.957 143,12.75 L143,10 L143,8 L144.531,8 C144.875,7.331 145.323,6.652 145.875,6 L145,6 L142,6 z" fill="#FFFFFF" id="path6920"/>
-    </g>
-    <g id="info">
-      <path d="M129,3 L128,4 L128,6 L129,7 L131,7 L132,6 L132,4 L131,3 z M129,9 L128,10 L128,16 L129,17 L131,17 L132,16 L132,10 L131,9 z" fill="#FFFFFF" id="path6912"/>
-    </g>
-    <g id="layers">
-      <path d="M109.5,3 L103,6 L103,7 L109.5,10 L110.5,10 L117,7 L117,6 L110.5,3 L109.5,3 z M104.094,9.5 L103,10 L103,11 L109.5,14 L110.5,14 L117,11 L117,10 L115.906,9.5 L110.5,12 L109.5,12 L104.094,9.5 z M104.094,13.5 L103,14 L103,15 L109.5,18 L110.5,18 L117,15 L117,14 L115.906,13.5 L110.5,16 L109.5,16 L104.094,13.5 z" fill="#FFFFFF" id="path6922"/>
-    </g>
-    <g id="locate-green">
-      <path d="M84,30 L84,28 L94,24 L96,24 L96,26 L92,36 L90,36 L90,30 z" fill="#70CD8F" id="path6918-2"/>
-    </g>
-    <g id="locate">
-      <path d="M84,10 L84,8 L94,4 L96,4 L96,6 L92,16 L90,16 L90,10 z" fill="#FFFFFF" id="path6918"/>
-    </g>
-    <g id="minus">
-      <path d="M65,8 L76,8 L77,9 L77,10 L76,11 L65,11 L64,10 L64,9 z" fill="#FFFFFF" id="path6916"/>
-    </g>
-    <g id="plus">
-      <path d="M57,9 L56,8 L52,8 L52,4 L51,3 L50,3 L49,4 L49,8 L45,8 L44,9 L44,10 L45,11 L49,11 L49,15 L50,16 L51,16 L52,15 L52,11 L56,11 L57,10 L57,9 z" fill="#FFFFFF" id="path6914"/>
-    </g>
-    <g id="heart">
-      <path d="M24,8 C24,6.172 25,4 27.75,4 C29.578,4 30.5,6 30.5,6 C30.5,6 31.422,4 33.25,4 C36,4 37,6.172 37,8 C37,13 30.5,16 30.5,16 C30.5,16 24,13 24,8 z" fill="#000000" id="path3843"/>
-    </g>
-    <g id="search">
-      <path d="M11.5,3 C14.538,3 17,5.462 17,8.5 C17,11.538 14.538,14 11.5,14 C10.494,14 9.561,13.722 8.75,13.25 L5,17 L4,17 L3,16 L3,15 L6.75,11.25 C6.278,10.439 6,9.506 6,8.5 C6,5.462 8.462,3 11.5,3 z M12,5 L11,5 L9,6 L8,8 L8,9 L9,11 L11,12 L12,12 L14,11 L15,9 L15,8 L14,6 L12,5 z" fill="#999999" id="path10739"/>
-    </g>
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="300" height="200">
+  <g id="query">
+    <text transform="matrix(1, 0, 0, 1, 276.165, 12.5)">
+      <tspan x="-3.665" y="6.012" font-family="Helvetica, sans-serif" font-weight="Bold" font-size="12" fill="#FFFFFF">?</tspan>
+    </text>
+    <path d="M263,1 C263,1 272,8 272,8 C270.944,8.587 269.888,9.173 268.832,9.76 L271.863,16.375 C272.209,17.128 271.878,18.018 271.125,18.364 C270.372,18.709 269.482,18.378 269.136,17.625 L266.201,11.221 C265.134,11.814 264.067,12.407 263,13 L263,1 z" fill="#FFFFFF"/>
+  </g>
+  <g id="add-note-grey">
+    <path d="M242,31 L242,24 L243,23 L253,23 L254,24 L254,31 L253,32 L250,32 L248,35 L246,32 L243,32 z" fill="#CCCCCC"/>
+    <path d="M257,33 L257,35 L259,35 L259,37 L257,37 L257,39 L255,39 L255,37 L253,37 L253,35 L255,35 L255,33 L257,33 z" fill="#CCCCCC"/>
+  </g>
+  <g id="add-note">
+    <path d="M257,12 L257,14 L259,14 L259,16 L257,16 L257,18 L255,18 L255,16 L253,16 L253,14 L255,14 L255,12 L257,12 z" fill="#FFFFFF"/>
+    <path d="M242,11 L242,4 L243,3 L253,3 L254,4 L254,11 L253,12 L250,12 L248,15 L246,12 L243,12 z" fill="#FFFFFF"/>
+  </g>
+  <g id="check-green">
+    <path d="M224,28 L226,28 L229,31 L233.773,25 L236,25 L236,27 L231,33 L230,34 L228,34 L227,33 L224,30 z" fill="#70CD8F"/>
+  </g>
+  <g id="check">
+    <path d="M224,8 L226,8 L229,11 L233.773,5 L236,5 L236,7 L231,13 L230,14 L228,14 L227,13 L224,10 z" fill="#222222"/>
+  </g>
+  <g id="close-grey">
+    <path d="M205.938,25.156 L204.938,26.156 L204.938,27.156 L207.938,30.156 L204.938,33.156 L204.938,34.156 L205.938,35.156 L206.938,35.156 L209.938,32.156 L212.938,35.156 L213.938,35.156 L214.938,34.156 L214.938,33.156 L211.938,30.156 L214.938,27.156 L214.938,26.156 L213.938,25.156 L212.938,25.156 L209.938,28.156 L206.938,25.156 L205.938,25.156 z" fill="#999999"/>
+  </g>
+  <g id="close">
+    <path d="M206,5 L205,6 L205,7 L208,10 L205,13 L205,14 L206,15 L207,15 L210,12 L213,15 L214,15 L215,14 L215,13 L212,10 L215,7 L215,6 L214,5 L213,5 L210,8 L207,5 L206,5 z" fill="#CCCCCC"/>
+  </g>
+  <g id="link">
+    <path d="M185,6 L183,8 L183,12 L185,14 L187,14 L185,12 L185,8 L190,8 L190,11 L192,11 L192,8 L190,6 L187,6 L185,6 z M192,6 L194,8 L194,12 L189,12 L189,9 L187,9 L187,12 L189,14 L194,14 L196,12 L196,8 L194,6 L192,6 z" fill="#0000FF"/>
+  </g>
+  <g id="clipboard">
+    <path d="M170,1 L169,2 L169,3 L168,3 L167,4 L167,6 L174,6 L174,4 L173,3 L172,3 L172,2 L171,1 L170,1 z M165,4 L164,5 L164,16 L165,17 L176,17 L177,16 L177,5 L176,4 L175,4 L175,5 L175,7 L175,15 L166,15 L166,7 L166,5 L166,4 L165,4 z M168,8 L168,9 L173,9 L173,8 L168,8 z M168,10 L168,11 L173,11 L173,10 L168,10 z M168,12 L168,13 L171,13 L171,12 L168,12 z" fill="#FFFFFF"/>
+  </g>
+  <g id="export">
+    <path d="M155,2 L154,3 L154,5 L152,5 C146,5 146,12 146,12 C146,12 148,8 152,8 C152.667,8 153.333,8 154,8 L154,10 L155,11 L159,6.5 L155,2 z M142,6 L141,7 L141,16 L142,17 L152,17 L153,16 L153,14 L153,11 L153,10 L152,10 C151.68,10 151.34,10.073 151,10.188 L151,13 L151,15 L145.438,15 C145.139,15.069 144.829,15.069 144.531,15 L143,15 L143,13.375 C142.967,13.168 142.967,12.957 143,12.75 L143,10 L143,8 L144.531,8 C144.875,7.331 145.323,6.652 145.875,6 L145,6 L142,6 z" fill="#FFFFFF"/>
+  </g>
+  <g id="info">
+    <path d="M129,3 L128,4 L128,6 L129,7 L131,7 L132,6 L132,4 L131,3 z M129,9 L128,10 L128,16 L129,17 L131,17 L132,16 L132,10 L131,9 z" fill="#FFFFFF"/>
+  </g>
+  <g id="layers">
+    <path d="M109.5,3 L103,6 L103,7 L109.5,10 L110.5,10 L117,7 L117,6 L110.5,3 L109.5,3 z M104.094,9.5 L103,10 L103,11 L109.5,14 L110.5,14 L117,11 L117,10 L115.906,9.5 L110.5,12 L109.5,12 L104.094,9.5 z M104.094,13.5 L103,14 L103,15 L109.5,18 L110.5,18 L117,15 L117,14 L115.906,13.5 L110.5,16 L109.5,16 L104.094,13.5 z" fill="#FFFFFF"/>
+  </g>
+  <g id="locate-green">
+    <path d="M84,30 L84,28 L94,24 L96,24 L96,26 L92,36 L90,36 L90,30 z" fill="#70CD8F"/>
+  </g>
+  <g id="locate">
+    <path d="M84,10 L84,8 L94,4 L96,4 L96,6 L92,16 L90,16 L90,10 z" fill="#FFFFFF"/>
+  </g>
+  <g id="minus">
+    <path d="M65,8 L76,8 L77,9 L77,10 L76,11 L65,11 L64,10 L64,9 z" fill="#FFFFFF"/>
+  </g>
+  <g id="plus">
+    <path d="M57,9 L56,8 L52,8 L52,4 L51,3 L50,3 L49,4 L49,8 L45,8 L44,9 L44,10 L45,11 L49,11 L49,15 L50,16 L51,16 L52,15 L52,11 L56,11 L57,10 L57,9 z" fill="#FFFFFF"/>
+  </g>
+  <g id="heart">
+    <path d="M24,8 C24,6.172 25,4 27.75,4 C29.578,4 30.5,6 30.5,6 C30.5,6 31.422,4 33.25,4 C36,4 37,6.172 37,8 C37,13 30.5,16 30.5,16 C30.5,16 24,13 24,8 z" fill="#000000"/>
+  </g>
+  <g id="search">
+    <path d="M11.5,3 C14.538,3 17,5.462 17,8.5 C17,11.538 14.538,14 11.5,14 C10.494,14 9.561,13.722 8.75,13.25 L5,17 L4,17 L3,16 L3,15 L6.75,11.25 C6.278,10.439 6,9.506 6,8.5 C6,5.462 8.462,3 11.5,3 z M12,5 L11,5 L9,6 L8,8 L8,9 L9,11 L11,12 L12,12 L14,11 L15,9 L15,8 L14,6 L12,5 z" fill="#999999"/>
   </g>
 </svg>
index 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 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 c3a31d834a51a841d7220b6334c33788e2c9d21b..f0746117d7b53dcd29010e509c1d2225b363835c 100644 (file)
@@ -37,8 +37,7 @@ time[title] {
   vertical-align: top;
   width: 20px;
   height: 20px;
-  background: transparent image-url("sprite.png") no-repeat 0 0;
-  background-image: image-url("sprite.svg");
+  background: transparent image-url("sprite.svg") no-repeat 0 0;
   text-indent: -9999px;
   overflow: hidden;
 }
@@ -563,16 +562,6 @@ header .search_forms,
   display: none;
 }
 
-/* Rules for the map key which appears in the popout sidebar */
-
-#mapkey {
- .mapkey-table-key img {
-    display: block;
-    margin-left: auto;
-    margin-right: auto;
-  }
-}
-
 /* Rules for search sidebar */
 
 #sidebar .search_results_entry {
@@ -656,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 adb53b43ba3842d8cd0b3faf5aaa898abde4b213..2ca86fc028dca2dbe9af4c0a8ec14b71665c3ca9 100644 (file)
@@ -47,7 +47,7 @@ class MessagesController < ApplicationController
       render :action => "new"
     elsif @message.save
       flash[:notice] = t ".message_sent"
-      UserMailer.message_notification(@message).deliver_later
+      UserMailer.message_notification(@message).deliver_later if @message.notify_recipient?
       redirect_to :action => :inbox
     else
       @title = t "messages.new.title"
@@ -107,6 +107,13 @@ class MessagesController < ApplicationController
     @title = t ".title"
   end
 
+  # Display the list of muted messages received by the user.
+  def muted
+    @title = t ".title"
+
+    redirect_to inbox_messages_path if current_user.muted_messages.none?
+  end
+
   # Set the message as being read or unread.
   def mark
     @message = Message.where(:recipient => current_user).or(Message.where(:sender => current_user)).find(params[:message_id])
@@ -127,6 +134,23 @@ class MessagesController < ApplicationController
     render :action => "no_such_message", :status => :not_found
   end
 
+  # Moves message into Inbox by unsetting the muted-flag
+  def unmute
+    message = current_user.muted_messages.find(params[:message_id])
+
+    if message.unmute
+      flash[:notice] = t(".notice")
+    else
+      flash[:error] = t(".error")
+    end
+
+    if current_user.muted_messages.none?
+      redirect_to inbox_messages_path
+    else
+      redirect_to muted_messages_path
+    end
+  end
+
   private
 
   ##
index 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
diff --git a/app/controllers/user_mutes_controller.rb b/app/controllers/user_mutes_controller.rb
new file mode 100644 (file)
index 0000000..2068ab6
--- /dev/null
@@ -0,0 +1,45 @@
+class UserMutesController < ApplicationController
+  include UserMethods
+
+  layout "site"
+
+  before_action :authorize_web
+  before_action :set_locale
+
+  authorize_resource
+
+  before_action :lookup_user, :only => [:create, :destroy]
+  before_action :check_database_readable
+  before_action :check_database_writable, :only => [:create, :destroy]
+
+  def index
+    @muted_users = current_user.muted_users
+    @title = t ".title"
+
+    redirect_to edit_account_path unless @muted_users.any?
+  end
+
+  def create
+    user_mute = current_user.mutes.build(:subject => @user)
+
+    if user_mute.save
+      flash[:notice] = t(".notice", :name => user_mute.subject.display_name)
+    else
+      flash[:error] = t(".error", :name => user_mute.subject.display_name, :full_message => user_mute.errors.full_messages.to_sentence.humanize)
+    end
+
+    redirect_back_or_to user_mutes_path(current_user)
+  end
+
+  def destroy
+    user_mute = current_user.mutes.find_by!(:subject => @user)
+
+    if user_mute.destroy
+      flash[:notice] = t(".notice", :name => user_mute.subject.display_name)
+    else
+      flash[:error] = t(".error")
+    end
+
+    redirect_back_or_to user_mutes_path(current_user)
+  end
+end
index f79c284e3e499bf6b70475b0380141034032e316..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
@@ -355,6 +355,8 @@ class UsersController < ApplicationController
                    domain_mx_servers(domain)
                  end
 
+    return true if Acl.allow_account_creation(request.remote_ip, :domain => domain, :mx => mx_servers)
+
     blocked = Acl.no_account_creation(request.remote_ip, :domain => domain, :mx => mx_servers)
 
     blocked ||= SIGNUP_IP_LIMITER && !SIGNUP_IP_LIMITER.allow?(request.remote_ip)
diff --git a/app/helpers/authorization_helper.rb b/app/helpers/authorization_helper.rb
new file mode 100644 (file)
index 0000000..11c8c29
--- /dev/null
@@ -0,0 +1,13 @@
+module AuthorizationHelper
+  include ActionView::Helpers::TranslationHelper
+
+  def authorization_scope(scope)
+    html = []
+    html << t("oauth.scopes.#{scope}")
+    if Oauth::MODERATOR_SCOPES.include? scope
+      html << " "
+      html << image_tag("roles/moderator.png", :srcset => image_path("roles/moderator.svg", :class => "align-text-bottom"), :size => "20x20")
+    end
+    safe_join(html)
+  end
+end
index 014b8262d050b947de09416b15a8020191f0bb26..04d9a6c2083a5ed265c77ed0fed7c5c424c8f2a6 100644 (file)
@@ -34,9 +34,13 @@ module BrowseTagsHelper
       end
       safe_join(phones, "; ")
     elsif colour_value = colour_preview(key, value)
-      tag.span("", :class => "colour-preview-box float-end m-1 border border-dark border-opacity-10", :"data-colour" => colour_value, :title => t("browse.tag_details.colour_preview", :colour_value => colour_value)) + colour_value
+      svg = tag.svg :width => 14, :height => 14, :class => "float-end m-1" do
+        concat tag.title t("browse.tag_details.colour_preview", :colour_value => colour_value)
+        concat tag.rect :x => 0.5, :y => 0.5, :width => 13, :height => 13, :fill => colour_value, :stroke => "#2222"
+      end
+      svg + colour_value
     else
-      safe_join(value.split(";").map { |x| linkify(h(x)) }, ";")
+      safe_join(value.split(";", -1).map { |x| linkify(h(x)) }, ";")
     end
   end
 
diff --git a/app/helpers/svg_helper.rb b/app/helpers/svg_helper.rb
new file mode 100644 (file)
index 0000000..a40fa70
--- /dev/null
@@ -0,0 +1,37 @@
+module SvgHelper
+  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 a65c3a35ad68977fe1a1da5f6296c280006145a0..aa503f40c539647dfb9d66aea990b57e6f8c76c6 100644 (file)
@@ -41,6 +41,10 @@ class Acl < ApplicationRecord
     match(address, options).exists?(:k => "no_account_creation")
   end
 
+  def self.allow_account_creation(address, options = {})
+    match(address, options).exists?(:k => "allow_account_creation")
+  end
+
   def self.no_note_comment(address, domain = nil)
     match(address, :domain => domain).exists?(:k => "no_note_comment")
   end
index 8d3e4583fad137db074ed85614a27becdaeaf759..f1d40feeab109fc341c9aae48fa1ea184e63d494 100644 (file)
@@ -26,7 +26,7 @@ class Language < ApplicationRecord
 
   def name
     name = english_name
-    name += " (#{native_name})" unless native_name.nil?
+    name += " (#{native_name})" unless native_name.nil? || native_name == english_name
     name
   end
 end
index 7c12769d3a3e39f081caeb16dd0417a858a0ddc2..665e2d721376b897738691c73cf4a62c0bc3bd4b 100644 (file)
@@ -12,6 +12,7 @@
 #  to_user_visible   :boolean          default(TRUE), not null
 #  from_user_visible :boolean          default(TRUE), not null
 #  body_format       :enum             default("markdown"), not null
+#  muted             :boolean          default(FALSE), not null
 #
 # Indexes
 #
@@ -32,6 +33,10 @@ class Message < ApplicationRecord
   validates :body, :sent_on, :presence => true
   validates :title, :body, :characters => true
 
+  scope :muted, -> { where(:muted => true) }
+
+  before_create :set_muted
+
   def self.from_mail(mail, from, to)
     if mail.multipart?
       if mail.text_part
@@ -65,4 +70,18 @@ class Message < ApplicationRecord
     sha256 << id.to_s
     Base64.urlsafe_encode64(sha256.digest)[0, 8]
   end
+
+  def notify_recipient?
+    !muted?
+  end
+
+  def unmute
+    update(:muted => false)
+  end
+
+  private
+
+  def set_muted
+    self.muted ||= UserMute.active?(:owner => recipient, :subject => sender)
+  end
 end
index 5b48e3a68e53f4656a14e6639bfdc35b48a24f03..b04f8e2b914c274babd1d9aec55c5f85ce4705e7 100644 (file)
@@ -52,9 +52,10 @@ class User < ApplicationRecord
   has_many :diary_comments, -> { order(:created_at => :desc) }, :inverse_of => :user
   has_many :diary_entry_subscriptions, :class_name => "DiaryEntrySubscription"
   has_many :diary_subscriptions, :through => :diary_entry_subscriptions, :source => :diary_entry
-  has_many :messages, -> { where(:to_user_visible => true).order(:sent_on => :desc).preload(:sender, :recipient) }, :foreign_key => :to_user_id
-  has_many :new_messages, -> { where(:to_user_visible => true, :message_read => false).order(:sent_on => :desc) }, :class_name => "Message", :foreign_key => :to_user_id
+  has_many :messages, -> { where(:to_user_visible => true, :muted => false).order(:sent_on => :desc).preload(:sender, :recipient) }, :foreign_key => :to_user_id
+  has_many :new_messages, -> { where(:to_user_visible => true, :muted => false, :message_read => false).order(:sent_on => :desc) }, :class_name => "Message", :foreign_key => :to_user_id
   has_many :sent_messages, -> { where(:from_user_visible => true).order(:sent_on => :desc).preload(:sender, :recipient) }, :class_name => "Message", :foreign_key => :from_user_id
+  has_many :muted_messages, -> { where(:to_user_visible => true, :muted => true).order(:sent_on => :desc).preload(:sender, :recipient) }, :class_name => "Message", :foreign_key => :to_user_id
   has_many :friendships, -> { joins(:befriendee).where(:users => { :status => %w[active confirmed] }) }
   has_many :friends, :through => :friendships, :source => :befriendee
   has_many :tokens, :class_name => "UserToken", :dependent => :destroy
@@ -76,6 +77,9 @@ class User < ApplicationRecord
   has_many :blocks_created, :class_name => "UserBlock", :foreign_key => :creator_id, :inverse_of => :creator
   has_many :blocks_revoked, :class_name => "UserBlock", :foreign_key => :revoker_id, :inverse_of => :revoker
 
+  has_many :mutes, -> { order(:created_at => :desc) }, :class_name => "UserMute", :foreign_key => :owner_id, :inverse_of => :owner
+  has_many :muted_users, :through => :mutes, :source => :subject
+
   has_many :roles, :class_name => "UserRole"
 
   has_many :issues, :class_name => "Issue", :foreign_key => :reported_user_id, :inverse_of => :reported_user
@@ -116,7 +120,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
diff --git a/app/models/user_mute.rb b/app/models/user_mute.rb
new file mode 100644 (file)
index 0000000..9bee39b
--- /dev/null
@@ -0,0 +1,34 @@
+# == Schema Information
+#
+# Table name: user_mutes
+#
+#  id         :bigint(8)        not null, primary key
+#  owner_id   :bigint(8)        not null
+#  subject_id :bigint(8)        not null
+#  created_at :datetime         not null
+#  updated_at :datetime         not null
+#
+# Indexes
+#
+#  index_user_mutes_on_owner_id_and_subject_id  (owner_id,subject_id) UNIQUE
+#
+# Foreign Keys
+#
+#  fk_rails_...  (owner_id => users.id)
+#  fk_rails_...  (subject_id => users.id)
+#
+class UserMute < ApplicationRecord
+  belongs_to :owner, :class_name => "User"
+  belongs_to :subject, :class_name => "User"
+
+  validates :subject, :uniqueness => { :scope => :owner_id, :message => :is_already_muted }
+
+  def self.active?(owner:, subject:)
+    !subject.administrator? &&
+      !subject.moderator? &&
+      exists?(
+        :owner => owner,
+        :subject => subject
+      )
+  end
+end
index 9ce9755a2c5f3e452e016f2ce0fb6e6551250c40..8477a11a05af10c542e3b9dd17433be9904d3f64 100644 (file)
     <li class="nav-item">
       <%= link_to t(".oauth2_authorizations"), oauth_authorized_applications_path, :class => "nav-link #{'active' if controller_name == 'oauth2_authorized_applications'}" %>
     </li>
+    <% if current_user.muted_users.any? %>
+      <li class="nav-item">
+        <%= link_to t(".muted_users"), user_mutes_path, :class => "nav-link #{'active' if controller_name == 'user_mutes'}" %>
+      </li>
+    <% end %>
   </ul>
 <% end %>
index ebf8bcb30ec524c9e44260c1ff52b74109b67720..fd1f5ffc5e1781c0dea5d671fe112cb01049bd19 100644 (file)
@@ -2,7 +2,7 @@
 
 <%= render "sidebar_header", :title => t("browse.#{@type}.history_title_html", :name => printable_name(@feature)) %>
 
-<%= render :partial => @type, :collection => @feature.send("old_#{@type}s").reverse %>
+<%= render :partial => @type, :collection => @feature.send(:"old_#{@type}s").reverse %>
 
 <div class='secondary-actions'>
   <%= link_to(t("browse.download_xml"), :controller => "api/old_#{@type.pluralize}", :action => "history") %>
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 %>
diff --git a/app/views/messages/_heading.html.erb b/app/views/messages/_heading.html.erb
new file mode 100644 (file)
index 0000000..90995ed
--- /dev/null
@@ -0,0 +1,18 @@
+<% content_for :heading_class, "pb-0" %>
+
+<% content_for :heading do %>
+  <h1><%= t("users.show.my messages") %></h1>
+  <ul class="nav nav-tabs">
+    <% { ".my_inbox" => inbox_messages_path, ".my_outbox" => outbox_messages_path, ".muted_messages" => muted_messages_path }.each do |i18n_key, path| %>
+    <% next if path == muted_messages_path && current_user.muted_messages.none? %>
+
+    <li class="nav-item">
+      <% if path == active_link_path %>
+        <a class="nav-link active"><%= t(i18n_key) %></a>
+      <% else %>
+        <%= link_to t(i18n_key), path, :class => "nav-link" %>
+      <% end %>
+    </li>
+    <% end %>
+  </ul>
+<% end %>
similarity index 91%
rename from app/views/messages/_message_count.html.erb
rename to app/views/messages/_inbox_count.html.erb
index 33a3b52f3917c400cb1bedbe16e44de4692e66ba..86bb2c474d8bf005e290ce7a5e80a47d3d31ad3d 100644 (file)
@@ -1,7 +1,7 @@
-<p id="inbox-count">
+<h4 id="inbox-count">
 <%= t "messages.inbox.messages",
       :new_messages => t("messages.inbox.new_messages",
                          :count => current_user.new_messages.size),
       :old_messages => t("messages.inbox.old_messages",
                          :count => current_user.messages.size - current_user.new_messages.size) %>
-</p>
+</h4>
index b2a1bc26868e82de84ee3cac44a0357c313a36b2..4a552e83e05479a7d6df58d9cd0f23311c3742ef 100644 (file)
@@ -6,5 +6,8 @@
     <%= button_to t(".unread_button"), message_mark_path(message_summary, :mark => "unread"), :remote => true, :class => "btn btn-sm btn-primary", :form => { :class => "inbox-mark-unread", :hidden => !message_summary.message_read? } %>
     <%= button_to t(".read_button"), message_mark_path(message_summary, :mark => "read"), :remote => true, :class => "btn btn-sm btn-primary", :form => { :class => "inbox-mark-read", :hidden => message_summary.message_read? } %>
     <%= button_to t(".destroy_button"), message_path(message_summary, :referer => request.fullpath), :method => :delete, :remote => true, :class => "btn btn-sm btn-danger", :form_class => "inbox-destroy" %>
+    <% if message_summary.muted? %>
+      <%= button_to t(".unmute_button"), message_unmute_path(message_summary), :method => :patch, :class => "btn btn-sm btn-secondary" %>
+    <% end %>
   </td>
 </tr>
diff --git a/app/views/messages/_messages_table.html.erb b/app/views/messages/_messages_table.html.erb
new file mode 100644 (file)
index 0000000..2e33962
--- /dev/null
@@ -0,0 +1,13 @@
+<table class="table table-sm align-middle">
+  <thead>
+    <tr>
+      <% columns.each do |column| %>
+      <th><%= t ".#{column}" %></th>
+      <% end %>
+      <th class="d-flex justify-content-end"><%= t ".actions" %></th>
+    </tr>
+  </thead>
+  <tbody>
+    <%= render :partial => inner_partial, :collection => messages %>
+  </tbody>
+</table>
diff --git a/app/views/messages/_muted_count.html.erb b/app/views/messages/_muted_count.html.erb
new file mode 100644 (file)
index 0000000..207973d
--- /dev/null
@@ -0,0 +1,3 @@
+<h4 id="muted-count">
+<%= t "messages.muted.messages", :count => current_user.muted_messages.size %>
+</h4>
diff --git a/app/views/messages/_outbox_count.html.erb b/app/views/messages/_outbox_count.html.erb
new file mode 100644 (file)
index 0000000..5b27f1d
--- /dev/null
@@ -0,0 +1,3 @@
+<h4 id="outbox-count">
+<%= t "messages.outbox.messages", :count => current_user.sent_messages.size %>
+</h4>
index 3403ac888e27210467629afc2dba0532c98e4c64..65bfd6a6b70a97d9c5e06107d0ee076ea4e86931 100644 (file)
@@ -1,2 +1,4 @@
 json.inboxanchor render(:partial => "layouts/inbox")
-json.inbox_count render(:partial => "message_count")
+json.inbox_count render(:partial => "inbox_count")
+json.outbox_count render(:partial => "outbox_count")
+json.muted_count render(:partial => "muted_count")
index 54089c34a65ba6cea80c625b0ed7b362b0e7cdcd..4d6be787b93fa5866404c8fc5721afe505382a12 100644 (file)
@@ -2,35 +2,12 @@
   <%= javascript_include_tag "messages" %>
 <% end %>
 
-<% content_for :heading_class, "pb-0" %>
+<%= render :partial => "heading", :locals => { :active_link_path => inbox_messages_path } %>
 
-<% content_for :heading do %>
-  <h1><%= t("users.show.my messages") %></h1>
-  <ul class="nav nav-tabs">
-    <li class="nav-item">
-      <a class="nav-link active"><%= t ".my_inbox" %></a>
-    </li>
-    <li class="nav-item">
-      <%= link_to t(".my_outbox"), outbox_messages_path, :class => "nav-link" %>
-    </li>
-  </ul>
-<% end %>
-
-  <h4><%= render :partial => "message_count" %></h4>
+<%= render :partial => "inbox_count" %>
 
 <% if current_user.messages.size > 0 %>
-  <table class="table table-sm align-middle">
-    <thead>
-      <tr>
-        <th><%= t ".from" %></th>
-        <th><%= t ".subject" %></th>
-        <th><%= t ".date" %></th>
-      </tr>
-    </thead>
-    <tbody>
-        <%= render :partial => "message_summary", :collection => current_user.messages %>
-    </tbody>
-  </table>
+  <%= render :partial => "messages_table", :locals => { :columns => %w[from subject date], :messages => current_user.messages, :inner_partial => "message_summary" } %>
 <% else %>
   <div><%= t(".no_messages_yet_html", :people_mapping_nearby_link => link_to(t(".people_mapping_nearby"), user_path(current_user))) %></div>
 <% end %>
index 3403ac888e27210467629afc2dba0532c98e4c64..65bfd6a6b70a97d9c5e06107d0ee076ea4e86931 100644 (file)
@@ -1,2 +1,4 @@
 json.inboxanchor render(:partial => "layouts/inbox")
-json.inbox_count render(:partial => "message_count")
+json.inbox_count render(:partial => "inbox_count")
+json.outbox_count render(:partial => "outbox_count")
+json.muted_count render(:partial => "muted_count")
diff --git a/app/views/messages/muted.html.erb b/app/views/messages/muted.html.erb
new file mode 100644 (file)
index 0000000..8e97abc
--- /dev/null
@@ -0,0 +1,9 @@
+<% content_for :head do %>
+  <%= javascript_include_tag "messages" %>
+<% end %>
+
+<%= render :partial => "heading", :locals => { :active_link_path => muted_messages_path } %>
+
+<%= render :partial => "muted_count" %>
+
+<%= render :partial => "messages_table", :locals => { :columns => %w[from subject date], :messages => current_user.muted_messages, :inner_partial => "message_summary" } %>
index e246f9292ebb8afaf0161e306b55fb812176f379..65fbaf3261c818aa79613e6b6a3c6b546b69a9b3 100644 (file)
@@ -2,36 +2,12 @@
   <%= javascript_include_tag "messages" %>
 <% end %>
 
-<% content_for :heading_class, "pb-0" %>
+<%= render :partial => "heading", :locals => { :active_link_path => outbox_messages_path } %>
 
-<% content_for :heading do %>
-  <h1><%= t("users.show.my messages") %></h1>
-
-  <ul class="nav nav-tabs">
-    <li class="nav-item">
-      <%= link_to t(".my_inbox"), inbox_messages_path, :class => "nav-link" %>
-    </li>
-    <li class="nav-item">
-      <a class="nav-link active"><%= t ".my_outbox" %></a>
-    </li>
-  </ul>
-<% end %>
-
-<h4><%= t ".messages", :count => current_user.sent_messages.size %></h4>
+<%= render :partial => "outbox_count" %>
 
 <% if current_user.sent_messages.size > 0 %>
-  <table class="table table-sm align-middle">
-    <thead>
-      <tr>
-        <th><%= t ".to" %></th>
-        <th><%= t ".subject" %></th>
-        <th><%= t ".date" %></th>
-      </tr>
-    </thead>
-    <tbody>
-      <%= render :partial => "sent_message_summary", :collection => current_user.sent_messages %>
-    </tbody>
-  </table>
+  <%= render :partial => "messages_table", :locals => { :columns => %w[to subject date], :messages => current_user.sent_messages, :inner_partial => "sent_message_summary" } %>
 <% else %>
   <div class="messages"><%= t(".no_sent_messages_html", :people_mapping_nearby_link => link_to(t(".people_mapping_nearby"), user_path(current_user))) %></div>
 <% end %>
index 4761aac60d95d4cd5de4dfa4f1481f85248e5a7f..f0742280f76e410cc5ebcdc8ab9c9830d7b5e32b 100644 (file)
@@ -22,9 +22,8 @@
     <%= link_to t(".reply_button"), message_reply_path(@message), :class => "btn btn-primary" %>
     <%= link_to t(".unread_button"), message_mark_path(@message, :mark => "unread"), :method => "post", :class => "btn btn-primary" %>
     <%= link_to t(".destroy_button"), message_path(@message), :method => "delete", :class => "btn btn-danger" %>
-    <%= link_to t(".back"), inbox_messages_path, :class => "btn btn-link" %>
   <% else %>
     <%= link_to t(".destroy_button"), message_path(@message), :method => "delete", :class => "btn btn-danger" %>
-    <%= link_to t(".back"), outbox_messages_path, :class => "btn btn-link" %>
   <% end %>
+  <%= link_to t(".back"), :back, :class => "btn btn-link" %>
 </div>
index fda8946b6b18378ce483c53c0bf267963d5f3df2..d355d3e5f29ab07b80431251309d828fcbc14a23 100644 (file)
                                                    :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="#">
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 60eff9a445d6ace0a15af81cec00414575fd48d6..82105097e7b409eaffc16f7e1a9bb8f5e25f2784 100644 (file)
@@ -1,17 +1,17 @@
 <div id="mapkey">
-  <table class="table table-sm table-borderless mapkey-table mb-0">
+  <table class="table table-sm table-borderless mb-0 align-middle">
     <% @key.each do |layer_name, layer_data| %>
       <% layer_data.each do |entry| %>
         <%= tag.tr :class => "mapkey-table-entry", :data => { :layer => layer_name, :zoom_min => entry["min_zoom"], :zoom_max => entry["max_zoom"] } do %>
-          <td class="mapkey-table-key align-middle">
-            <% if entry["width"] && entry["height"] && entry["fill"] %>
-              <%= image_tag "data:image/svg+xml,#{u("<svg xmlns='http://www.w3.org/2000/svg' width='#{entry['width']}' height='#{entry['height']}'><rect width='100%' height='100%' fill='#{entry['fill']}' /></svg>")}" %>
+          <td>
+            <% if entry["image"] %>
+              <%= image_tag "key/#{layer_name}/#{entry['image']}", :class => "d-block mx-auto" %>
             <% else %>
-              <%= image_tag "key/#{layer_name}/#{entry['image']}" %>
+              <%= key_svg_tag :class => "d-block mx-auto", **entry %>
             <% end %>
           </td>
-          <td class="mapkey-table-value">
-            <%= Array(t(".table.entry.#{entry['name']}")).to_sentence %>
+          <td>
+            <%= entry["name"].map { |feature_name| t ".table.entry.#{feature_name}" }.join(" · ") %>
           </td>
         <% 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>
diff --git a/app/views/user_mutes/index.html.erb b/app/views/user_mutes/index.html.erb
new file mode 100644 (file)
index 0000000..cf9e7ed
--- /dev/null
@@ -0,0 +1,38 @@
+<% content_for :heading do %>
+  <h1><%= t ".my_muted_users" %></h1>
+<% end %>
+
+<%= render :partial => "settings_menu" %>
+
+<h4>
+  <%= t ".you_have_muted_n_users", :count => @muted_users.size %>
+</h4>
+<p>
+  <%= t ".user_mute_explainer" %>
+  <em><%= t ".user_mute_admins_and_moderators" %></em>
+</p>
+
+<% if @muted_users.any? %>
+  <table class="table">
+    <thead>
+      <tr>
+        <th><%= t ".table.thead.muted_user" %></th>
+        <th class="d-flex justify-content-end"><%= t ".table.thead.actions" %></th>
+      </tr>
+    </thead>
+    <tbody>
+      <% @muted_users.each do |user| %>
+        <tr>
+          <td>
+            <%= user_thumbnail_tiny user %>
+            <%= link_to user.display_name, user_path(user) %>
+          </td>
+          <td class="text-nowrap text-end">
+            <%= link_to t(".table.tbody.unmute"), user_mute_path(user), :method => :delete, :class => "btn btn-sm btn-primary" %>
+            <%= link_to t(".table.tbody.send_message"), new_message_path(user), :class => "btn btn-sm btn-secondary" %>
+          </td>
+        </tr>
+      <% end %>
+    </tbody>
+  </table>
+<% end %>
index 81fda926b7a081b333add6d07f6d3aaa87989668..253945b9b6d2529d1cbc344453c257f924dcdd7f 100644 (file)
               </li>
             <% end %>
 
+            <% if can?(:revoke_all, UserBlock) and @user.blocks.active.exists? %>
+              <li>
+                <%= link_to t(".revoke_all_blocks"), revoke_all_user_blocks_path(@user) %>
+              </li>
+            <% end %>
+
             <% if can?(:create, UserBlock) %>
               <li>
                 <%= link_to t(".create_block"), new_user_block_path(@user) %>
                 <%= report_link(t(".report"), @user) %>
               </li>
             <% end %>
+
+            <% if current_user and UserMute.exists?(owner: current_user, subject: @user) %>
+              <li>
+              <%= link_to t(".destroy_mute"), user_mute_path(@user), :method => :delete %>
+              </li>
+            <% elsif current_user %>
+              <li>
+              <%= link_to t(".create_mute"), user_mute_path(@user), :method => :post, :title => t("user_mutes.index.user_mute_explainer") %>
+              </li>
+            <% end %>
           </ul>
         </nav>
       <% end %>
index e568c854052cb177b6f3cf69537ed47df17bbb6a..4517e8adfb611d8d073041274321212ff95bf6e1 100644 (file)
@@ -35,6 +35,8 @@ module OpenStreetMap
     # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
     # the I18n.default_locale when a translation cannot be found).
     config.i18n.fallbacks = true
+    # Enables custom error message formats
+    config.active_model.i18n_customize_full_message = true
 
     # Use logstash for logging if required
     if Settings.key?(:logstash_path)
index f64ab8b372a306e911e4ff055810c0283e42e044..a78dbb282b482a28db3f4fd81fea6ec9430c3612 100644 (file)
 mapnik:
   # transportation: roads.mss
-  - { min_zoom: 6, max_zoom: 19, name: motorway, image: motorway.png }
-  - { min_zoom: 6, max_zoom: 7, name: main_road, image: mainroad.png }
-  - { min_zoom: 8, max_zoom: 11, name: main_road, image: mainroad8.png }
-  - { min_zoom: 12, max_zoom: 19, name: main_road, image: mainroad12.png }
-  - { min_zoom: 13, max_zoom: 19, name: track, image: track.png }
-  - { min_zoom: 13, max_zoom: 19, name: bridleway, image: bridleway.png }
-  - { min_zoom: 13, max_zoom: 19, name: cycleway, image: cycleway.png }
-  - { min_zoom: 13, max_zoom: 19, name: footway, image: footway.png }
+  - { min_zoom:  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, max_zoom: 19, name: cable, image: cable.png }
-  - { min_zoom: 11, max_zoom: 19, name: runway, image: runway.png }
-  - { min_zoom: 12, max_zoom: 19, name: apron, image: apron.png }
+  - { min_zoom: 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, max_zoom: 9, 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, max_zoom: 11, name: forest, width: 26, height: 10, fill: "#bddab1" }
-  - { min_zoom: 12, name: forest, width: 26, height: 10, fill: "#add19e" }
-  - { min_zoom: 5, max_zoom: 11, name: orchard, width: 26, height: 10, fill: "#bee5b5" }
-  - { min_zoom: 12, name: orchard, width: 26, height: 10, fill: "#aedfa3" }
-  - { min_zoom: 5, max_zoom: 11, name: grass, width: 26, height: 10, fill: "#d7efc0" }
-  - { min_zoom: 12, name: grass, width: 26, height: 10, fill: "#cdebb0" }
-  - { min_zoom: 5, max_zoom: 11, name: farmland, width: 26, height: 10, fill: "#f1f3dd" }
+  - { 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, max_zoom: 11, name: heathland, width: 26, height: 10, fill: "#dee1b2" }
+  - { min_zoom:  5, name: heathland, width: 26, height: 10, fill: "#dee1b2" }
   - { min_zoom: 12, name: heathland, width: 26, height: 10, fill: "#d6d99f" }
-  - { min_zoom: 5, max_zoom: 11, name: scrubland, width: 26, height: 10, fill: "#d3dfbc" }
+  - { min_zoom:  5, name: scrubland, width: 26, height: 10, fill: "#d3dfbc" }
   - { min_zoom: 12, name: scrubland, width: 26, height: 10, fill: "#c8d7ab" }
-  - { min_zoom: 5, max_zoom: 11, name: bare_rock, width: 26, height: 10, fill: "#f1eae3" }
+  - { min_zoom:  5, name: bare_rock, width: 26, height: 10, fill: "#f1eae3" }
   - { min_zoom: 12, name: bare_rock, width: 26, height: 10, fill: "#eee5dc" }
-  - { min_zoom: 5, max_zoom: 11, name: sand, width: 26, height: 10, fill: "#f7edd1" }
+  - { min_zoom:  5, name: sand, width: 26, height: 10, fill: "#f7edd1" }
   - { min_zoom: 12, name: sand, width: 26, height: 10, fill: "#f5e9c6" }
   # landuse z8, z10: landcover.mss
   - { min_zoom: 10, name: park, width: 26, height: 10, fill: "#c8facc" }
   - { min_zoom: 10, name: golf, width: 26, height: 10, fill: "#def6c0" }
-  - { min_zoom: 8, max_zoom: 11, name: built_up, width: 26, height: 10, fill: "#d9d9d9" }
+  - { min_zoom:  8, name: built_up, width: 26, height: 10, fill: "#d9d9d9" }
   - { min_zoom: 12, max_zoom: 12, name: built_up, width: 26, height: 10, fill: "#dddddd" }
   - { min_zoom: 13, name: resident, width: 26, height: 10, fill: "#e0dfdf" }
   - { min_zoom: 13, name: retail, width: 26, height: 10, fill: "#ffd6d1" }
   - { min_zoom: 13, name: commercial, width: 26, height: 10, fill: "#f2dad9" }
   - { min_zoom: 13, name: industrial, width: 26, height: 10, fill: "#ebdbe8" }
-  - { min_zoom: 10, max_zoom: 11, name: farm, width: 26, height: 10, fill: "#f7e3c8" }
+  - { min_zoom: 10, name: farm, width: 26, height: 10, fill: "#f7e3c8" }
   - { min_zoom: 12, name: farm, width: 26, height: 10, fill: "#f5dcba" }
-  - { min_zoom: 10, max_zoom: 11, name: brownfield, width: 26, height: 10, fill: "#d2d2c3" }
+  - { min_zoom: 10, name: brownfield, width: 26, height: 10, fill: "#d2d2c3" }
   - { min_zoom: 12, name: brownfield, width: 26, height: 10, fill: "#c7c7b4" }
-  - { min_zoom: 10, max_zoom: 11, name: cemetery, width: 26, height: 10, fill: "#bbd5be" }
+  - { min_zoom: 10, name: cemetery, width: 26, height: 10, fill: "#bbd5be" }
   - { min_zoom: 12, name: cemetery, width: 26, height: 10, fill: "#aacbaf" }
-  - { min_zoom: 10, max_zoom: 11, name: allotments, width: 26, height: 10, fill: "#d4e6cc" }
+  - { min_zoom: 10, name: allotments, width: 26, height: 10, fill: "#d4e6cc" }
   - { min_zoom: 12, name: allotments, width: 26, height: 10, fill: "#c9e1bf" }
   - { min_zoom: 11, name: pitch, width: 26, height: 10, fill: "#88e0be" }
   - { min_zoom: 11, name: centre, width: 26, height: 10, fill: "#dffce2" }
   - { min_zoom: 10, name: reserve, image: reserve.svg } # admin.mss
-  - { min_zoom: 8, name: military, image: military.svg }
-  - { min_zoom: 13, name: school, image: school.svg }
+  - { min_zoom:  8, name: military, image: military.svg }
+  - { min_zoom: 13, name: [school, university, hospital], image: school.svg }
   # buildings: buildings.mss
   - { min_zoom: 14, name: building, width: 10, height: 10, fill: "#ab9793" }
-  - { min_zoom: 15, name: building, 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: 15, max_zoom: 19, name: private, image: private.png }
-  - { min_zoom: 15, max_zoom: 19, name: destination, image: destination.png }
-  - { min_zoom: 12, max_zoom: 19, name: construction, image: construction.png }
+  - { min_zoom: 11, name: [summit, peak], image: summit.svg } # amenity-points.mss
+  - { min_zoom: 13, name: tunnel, width: 50, height: 5, casing: grey, casing-dasharray: "4 2", casing-dashoffset: 1 } # roads.mss
+  - { min_zoom: 13, name: bridge, width: 50, height: 5, casing: black } # roads.mss
+  - { min_zoom: 15, name: private, image: private.png }
+  - { min_zoom: 15, name: destination, image: destination.png }
+  - { min_zoom: 12, name: construction, image: construction.png }
 cyclemap:
-  - { min_zoom: 0, max_zoom: 11, name: motorway, image: motorway.png }
-  - { min_zoom: 12, max_zoom: 19, name: motorway, image: motorway12.png }
-  - { min_zoom: 0, max_zoom: 11, name: trunk, image: trunk.png }
-  - { min_zoom: 12, max_zoom: 19, name: trunk, image: trunk12.png }
-  - { min_zoom: 7, max_zoom: 11, name: primary, image: primary.png }
-  - { min_zoom: 12, max_zoom: 19, name: primary, image: primary12.png }
-  - { min_zoom: 9, max_zoom: 11, name: secondary, image: secondary.png }
-  - { min_zoom: 12, max_zoom: 19, name: secondary, image: secondary12.png }
-  - { min_zoom: 13, max_zoom: 19, name: track, image: track.png }
-  - { min_zoom: 8, max_zoom: 19, name: cycleway, image: cycleway.png }
-  - { min_zoom: 5, max_zoom: 12, name: cycleway_national, image: cycleway_national.png }
-  - { min_zoom: 13, max_zoom: 19, name: cycleway_national, image: cycleway_national13.png }
-  - { min_zoom: 5, max_zoom: 12, name: cycleway_regional, image: cycleway_regional.png }
-  - { min_zoom: 13, max_zoom: 19, name: cycleway_regional, image: cycleway_regional13.png }
-  - { min_zoom: 8, max_zoom: 12, name: cycleway_local, image: cycleway_local.png }
-  - { min_zoom: 13, max_zoom: 19, name: cycleway_local, image: cycleway_local13.png }
-  - { min_zoom: 13, max_zoom: 19, name: footway, image: footway.png }
-  - { min_zoom: 7, max_zoom: 13, name: rail, image: rail.png }
-  - { min_zoom: 14, max_zoom: 19, name: rail, image: rail14.png }
-  - { min_zoom: 9, max_zoom: 19, name: forest, image: forest.png }
-  - { min_zoom: 10, max_zoom: 19, name: common, image: common.png }
-  - { min_zoom: 7, max_zoom: 19, name: lake, image: lake.png }
-  - { min_zoom: 14, max_zoom: 19, name: bicycle_shop, image: bicycle_shop.png }
-  - { min_zoom: 14, max_zoom: 19, name: bicycle_parking, image: bicycle_parking.png }
-  - { min_zoom: 16, max_zoom: 19, name: toilets, image: toilets.png }
+  - { min_zoom:  5, name: motorway, width: 50, height: 2, fill: "#9a9ab1" }
+  - { min_zoom:  9, name: motorway, width: 50, height: 3, fill: "#9a9ab1" }
+  - { min_zoom: 12, name: motorway, width: 50, height: 5, fill: "#bdbece", casing: "#8d95a7" }
+  - { min_zoom: 13, name: motorway, width: 50, height: 9, fill: "#bdbece", casing: "#8d95a7" }
+  - { min_zoom:  6, name: trunk, width: 50, height: 2, fill: "#c8d8c8" }
+  - { min_zoom: 12, name: trunk, width: 50, height: 4, fill: "#c8d8c8", casing: "#abb5a4" }
+  - { min_zoom: 13, name: trunk, width: 50, height: 8, fill: "#c8d8c8", casing: "#abb5a4" }
+  - { min_zoom:  8, name: primary, width: 50, height: 2, fill: "#d8c8c8" }
+  - { min_zoom: 12, name: primary, width: 50, height: 4, fill: "#f0e3e3", casing: "#d4b6b7" }
+  - { min_zoom: 13, name: primary, width: 50, height: 8, fill: "#f0e3e3", casing: "#d4b6b7" }
+  - { min_zoom: 10, name: secondary, width: 50, height: 1, fill: "#dadacc" }
+  - { min_zoom: 12, name: secondary, width: 50, height: 4, fill: "#ededc8", casing: "#c8b48a" }
+  - { min_zoom: 13, name: secondary, width: 50, height: 7, fill: "#ededc8", casing: "#c8b48a" }
+  - { min_zoom: 15, name: pedestrian, width: 50, height: 6, fill: "#e2e3e2", casing: "#9a9a9a" }
+  - { min_zoom: 13, name: track, width: 50, height: 3, fill: white, casing: "#999", casing-dasharray: "5 3", casing-dashoffset: 1 }
+  - { min_zoom: 15, name: track, width: 50, height: 4, fill: white, casing: "#999", casing-dasharray: "5 3", casing-dashoffset: 1 }
+  - { min_zoom: 17, name: track, width: 50, height: 5, fill: white, casing: "#999", casing-dasharray: "5 3", casing-dashoffset: 1 }
+  - { min_zoom: 13, name: bridleway, width: 52, height: 3, line: green, line-width: 1.5, line-dasharray: "4 2" }
+  - { min_zoom:  8, name: cycleway, width: 50, height: 3, line: "#0100fe", line-width: 1.5, line-dasharray: "6 2" }
+  - { min_zoom:  5, name: cycleway_national, width: 50, height:  2, fill: "#fe0000" }
+  - { min_zoom: 12, name: cycleway_national, width: 50, height:  3, fill: "#fe0000" }
+  - { min_zoom: 13, name: cycleway_national, width: 50, height: 12, fill: "#ffb3b3" }
+  - { min_zoom:  7, name: cycleway_regional, width: 50, height:  2, fill: "#b638fb" }
+  - { min_zoom: 12, name: cycleway_regional, width: 50, height:  3, fill: "#b638fb" }
+  - { min_zoom: 13, name: cycleway_regional, width: 50, height: 10, fill: "#ddb5d9" }
+  - { min_zoom:  8, name: cycleway_local, width: 50, height: 2, fill: "#0100fe" }
+  - { min_zoom: 12, name: cycleway_local, width: 50, height: 3, fill: "#0100fe" }
+  - { min_zoom: 13, name: cycleway_local, width: 50, height: 8, fill: "#b2b2ff" }
+  - { min_zoom: 10, name: cycleway_mtb, width: 50, height: 2, fill: "#ff7b1c" }
+  - { min_zoom: 13, name: cycleway_mtb, width: 50, height: 6, fill: "#fbcaa3" }
+  - { min_zoom: 13, name: footway, width: 50, height: 3, line: "#bd6d6e", line-width: 1.5, line-dasharray: "6 2" }
+  - { min_zoom:  7, name: rail, width: 50, height: 3, line: "#999999", line-width: 1.5 }
+  - { min_zoom: 14, name: rail, width: 50, height: 4, fill: "#999999", line: white, line-dasharray: 4, line-width: 2 }
+  - { min_zoom:  1, name: [lake, reservoir], width: 26, height: 10, fill: "#addeff" }
+  - { min_zoom:  9, name: [forest, wood], width: 26, height: 10, fill: "#b3d6a4" }
+  - { min_zoom: 10, name: meadow, width: 26, height: 10, fill: "#c0de9c" }
+  - { min_zoom: 10, name: park, width: 26, height: 10, fill: "#cbe4c4" }
+  - { min_zoom: 10, name: common, width: 26, height: 10, fill: "#d4f0d1" }
+  - { min_zoom: 10, name: heathland, width: 26, height: 10, fill: "#eaf0d6" }
+  - { min_zoom: 11, max_zoom: 13, name: resident, width: 26, height: 10, fill: "#e2e2e2" }
+  - { min_zoom: 11, name: industrial, width: 26, height: 10, fill: "#f1dede" }
+  - { min_zoom: 11, name: allotments, width: 26, height: 10, fill: "#d7d7b1" }
+  - { min_zoom: 12, name: cemetery, width: 26, height: 10, fill: "#abcfb1" }
+  - { min_zoom: 12, name: pitch, width: 26, height: 10, fill: "#ade0c5" }
+  - { min_zoom: 13, name: centre, width: 26, height: 10, fill: "#b4e9cd" }
+  - { min_zoom: 13, name: beach, image: beach.png }
+  - { min_zoom: 13, name: [school, university], width: 26, height: 10, fill: "#f0f0d8" }
+  - { min_zoom: 14, name: bicycle_shop, image: bicycle_shop.png }
+  - { min_zoom: 15, name: bicycle_rental, image: bicycle_rental_small.svg }
+  - { min_zoom: 17, name: bicycle_rental, image: bicycle_rental.png }
+  - { min_zoom: 15, name: bicycle_parking, image: bicycle_parking.png }
+  - { min_zoom: 16, name: bicycle_parking_small, image: bicycle_parking_small.svg }
+  - { min_zoom: 16, name: toilets, image: toilets.png }
 opnvkarte:
   - { min_zoom:  6, name: rail, width: 52, height: 1, fill: "#868686" }
   - { min_zoom:  8, name: rail, width: 52, height: 2, fill: "#868686" }
-  - { min_zoom: 11, name: rail, 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" }
@@ -125,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" }
@@ -148,3 +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, width: 52, height:  4, fill: "#dddddd", casing: "#6d6d6d" }
+  - { min_zoom: 13, name: motorway, width: 52, height:  8, fill: "#dddddd", casing: "#6d6d6d" }
+  - { min_zoom: 15, name: motorway, width: 52, height: 13, fill: "#dddddd", casing: "#6d6d6d", line: "#ffffff", line-dasharray: 12, line-dashoffset: 4 }
+  - { min_zoom: 17, name: motorway, width: 52, height: 17, fill: "#dddddd", casing: "#6d6d6d", line: "#ffffff", line-dasharray: 12, line-dashoffset: 4, casing-width: 2 }
+  - { min_zoom:  8, name: main_road, width: 52, height:  1, fill: "#5c6d6d88" }
+  - { min_zoom: 11, name: main_road, width: 52, height:  4, fill: "#dddddd", casing: "#a1968b" }
+  - { min_zoom: 13, name: main_road, width: 52, height:  8, fill: "#dddddd", casing: "#a1968b" }
+  - { min_zoom: 15, name: main_road, width: 52, height: 13, fill: "#dddddd", casing: "#a1968b" }
+  - { min_zoom: 17, name: main_road, width: 52, height: 17, fill: "#dddddd", casing: "#a1968b" }
+  # landcover
+  - { min_zoom:  0, name: [lake, reservoir], width: 26, height: 10, fill: "#a1cbea" }
+  - { min_zoom:  8, name: [lake, reservoir], width: 26, height: 10, fill: "#bfd3ef" }
+  - { min_zoom:  4, name: [forest, wood], width: 26, height: 10, fill: "#b9c5a3" }
+  - { min_zoom:  4, name: built_up, width: 26, height: 10, fill: "#d8d8d8" }
+  - { min_zoom:  9, name: farmland, width: 26, height: 10, fill: "#eae8d6" }
+  - { min_zoom: 12, name: [park, allotments], width: 26, height: 10, fill: "#c2d89a" }
index d3c6fc01b2da12ff174d812945c8c482c732e805..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,22 +1513,27 @@ af:
       back: Terug
     sent_message_summary:
       destroy_button: Skrap
+    heading:
+      my_inbox: My in-vakkie
+      my_outbox: My uit-vakkie
     mark:
       as_read: Boodskap as gelees gemerk
       as_unread: Boodskap as ongelees gemerk
     destroy:
       destroyed: Boodskap is verwyder
   passwords:
-    lost_password:
+    new:
       title: Wagwoord verloor
       heading: Wagwoord vergeet?
       email address: 'E-posadres:'
       new password button: Herstel wagwoord
+    create:
       notice email cannot find: E-posadres is ongelukkig onverkrygbaar, jammer.
-    reset_password:
+    edit:
       title: Herstel wagwoord
       heading: Herstel wagwoord vir %{user}
       reset: Herstel wagwoord
+    update:
       flash changed: U wagwoord is gewysig.
   preferences:
     show:
@@ -1719,34 +1719,24 @@ af:
           footway: Voetpad
           rail: Spoorweg
           subway: Ondergrondse spoorweg
-          tram:
-          - Ligte spoor
-          - trem
-          cable:
-          - Sweefspoor
-          - stoelhyser
-          runway:
-          - Aanloopbaan
-          - vliegtuigrybaan
-          apron:
-          - Lughaweplatform
-          - terminaal
+          cable_car: Sweefspoor
+          chair_lift: stoelhyser
+          runway: Aanloopbaan
+          taxiway: vliegtuigrybaan
+          apron: Lughaweplatform
           admin: Administratiewe grens
           forest: Woud
           wood: Bos
           golf: Gholfbaan
           park: Park
+          common: Gemeen
           resident: Woongebied
-          common:
-          - Gemeen
-          - weiland
           retail: Kleinhandel-gebied
           industrial: Nywerheidsgebied
           commercial: Handelsgebied
           heathland: Heide
-          lake:
-          - Meer
-          - reservoir
+          lake: Meer
+          reservoir: reservoir
           farm: Plaas
           brownfield: Braakveldterrein
           cemetery: Begraafplaas
@@ -1755,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 a367ef62eae643e5f809513b785aa5770323b316..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,28 +766,32 @@ aln:
         atë mesazh.
     sent_message_summary:
       destroy_button: Fshij
+    heading:
+      my_inbox: postë e mia
     mark:
       as_read: Mesazhi u bo si i lexum
       as_unread: Mesazhi u bo si i palexum
     destroy:
       destroyed: Mesazhi u fshi
   passwords:
-    lost_password:
+    new:
       title: T'ka hup fjalkalimi
       heading: Ke harrue fjalkalimin?
       email address: 'Email Adresa:'
       new password button: Ndrysho fjalkalimin
       help_text: Shkrueje email adresen që je regjistrue me to, do t'ju deromi një
         lidhe rreth ksaj ku ju muni me ndrru fjalkalimin
+    create:
       notice email on way: Na vjen keq që e keni hup :-( po ni email ka me ju ardh
         së shpejti edhe muni me ricaktu.
       notice email cannot find: Smujtëm me gjet qat email adres, na vjen keq.
-    reset_password:
+    edit:
       title: Ricakto fjalëkalimin
       heading: Ricakto fjalëkalimin për %{user}
       reset: Ricakto Fjalëkalimin
-      flash changed: Fjalëkalimi juaj u ndryshua.
       flash token bad: Sun e gjetëm qat token, kontrolloje URL?
+    update:
+      flash changed: Fjalëkalimi juaj u ndryshua.
   profiles:
     edit:
       image: 'Imazhi:'
@@ -910,34 +912,24 @@ aln:
           footway: Këmbësore
           rail: Hekurudhor
           subway: Metro
-          tram:
-          - hekurudhor Lehta
-          - tramvaj
-          cable:
-          - teleferik
-          - heqë karrige
-          runway:
-          - Aeroporti i pistës
-          - taxiway
-          apron:
-          - aeroportit Aeroporti
-          - terminal
+          cable_car: teleferik
+          chair_lift: heqë karrige
+          runway: Aeroporti i pistës
+          taxiway: taxiway
+          apron: aeroportit Aeroporti
           admin: kufitare administrative
           forest: Pyll
           wood: Druri
           golf: fushë e golfit
           park: Park
+          common: I përbashkët
           resident: Zonë Rezidenciale
-          common:
-          - I përbashkët
-          - livadh
           retail: zonë me pakicë
           industrial: Zonë Industriale
           commercial: Zona Tregtare
           heathland: Heathland
-          lake:
-          - Liqe
-          - rezervuar
+          lake: Liqe
+          reservoir: rezervuar
           farm: Ferm
           brownfield: site Brownfield
           cemetery: Varrezë
@@ -946,14 +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 43196a2b5ef670de637c0fe9650fe22bb6cf2ffb..ec6693043492e1d5e92006326ffa024ca48874a6 100644 (file)
@@ -17,6 +17,7 @@
 # Author: FiberAhmed
 # Author: Gravitystorm
 # Author: Grille chompa
+# Author: Hanzo64
 # Author: HitomiAkane
 # Author: Houcinee1
 # Author: Hubaishan
@@ -1480,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: إعادة فتح
@@ -1750,8 +1751,6 @@ ar:
   messages:
     inbox:
       title: الوارد
-      my_inbox: الوارد
-      my_outbox: صندوق الصادر الخاص بي
       messages: لديك %{new_messages} و%{old_messages}
       new_messages:
         one: '%{count} رسالة جديدة'
@@ -1759,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: التعليم كمقروءة
@@ -1783,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}' ولكن الرسالة التي طلبت الرد
         عليها لم تكن مرسلة لذلك المستخدم؛ يُرجَى تسجيل الدخول كمستخدم صحيح للرد."
@@ -1807,28 +1807,35 @@ ar:
         لم تكن من أو إلى ذلك المستخدم؛ يُرجَى تسجيل الدخول كمستخدم صحيح للرد."
     sent_message_summary:
       destroy_button: حذف
+    heading:
+      my_inbox: الوارد
+      my_outbox: صندوق الصادر الخاص بي
     mark:
       as_read: عُلِّمت الرسالة كمقروءة
       as_unread: عُلِّمت الرسالة كغير مقروءة
+    unmute:
+      error: لم يتم نقل الرسالة إلى صندوق البريد
     destroy:
       destroyed: حُذِفت الرسالة
   passwords:
-    lost_password:
+    new:
       title: نسيان كلمة السر
       heading: أنسيت كلمة السر؟
       email address: 'عنوان البريد الإلكتروني:'
       new password button: أعد ضبط كلمة السر
       help_text: أدخل عنوان البريد الإلكتروني الذي استخدمته للتسجيل، وسوف نرسل عليه
         رابطا يمكنك استخدامه لإعادة تعيين كلمة المرور.
+    create:
       notice email on way: نأسف لأنك أضعتها :-( ولكن هناك رسالة إلكترونية في طريقها
         إليك ستمكنك من إعادة تعيينها قريبًا.
       notice email cannot find: معذرةً، تعذر إيجاد عنوان البريد الإلكتروني.
-    reset_password:
+    edit:
       title: إعادة ضبط كلمة السر
       heading: إعادة تعيين كلمة السر %{user}
       reset: أعد ضبط كلمة السر
-      flash changed: كلمة مرورك قد تغيرت.
       flash token bad: لم نجد هذا النموذج، تحقق من المسار ربما؟
+    update:
+      flash changed: كلمة مرورك قد تغيرت.
   preferences:
     show:
       title: تفضيلاتي
@@ -2194,6 +2201,7 @@ ar:
           primary: طريق رئيسي
           secondary: طريق ثانوي
           unclassified: طريق غير مصنّف
+          pedestrian: طريق للمشاة
           track: مسار
           bridleway: مسلك خيول
           cycleway: طريق دراجات
@@ -2203,35 +2211,24 @@ ar:
           footway: طريق مشاة
           rail: سكة حديدية
           subway: قطار الأنفاق
-          tram:
-          - قطار خفيف
-          - ترام
-          cable:
-          - عربة أسلاك
-          - تلفريك
-          runway:
-          - مدرج مطار
-          - مدرج مطار لمناورات الطائرات
-          apron:
-          - ساحة مطار
-          - صالة مطار
+          cable_car: عربة أسلاك
+          chair_lift: تلفريك
+          runway: مدرج مطار
+          taxiway: مدرج مطار لمناورات الطائرات
+          apron: ساحة مطار
           admin: حدود إدارية
           forest: غابة
           wood: غابة
           golf: ملعب غولف
           park: منتزه
+          common: شائع
           resident: منطقة سكنية
-          common:
-          - شائع
-          - مرج
-          - حديقة
           retail: منطقة بيع بالمفرق
           industrial: منطقة صناعية
           commercial: منطقة تجارية
           heathland: أرض بور
-          lake:
-          - بحيرة
-          - خزان
+          lake: بحيرة
+          reservoir: خزان
           farm: مزرعة
           brownfield: موقع مخلفات
           cemetery: مقبرة
@@ -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 762867a299808d8ae88a780ca4ab66d74192202f..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,28 +687,32 @@ arz:
       unread_button: علّم كغير مقروءة
     sent_message_summary:
       destroy_button: احذف
+    heading:
+      my_inbox: الوارد
     mark:
       as_read: عُلّمت الرساله مقروءة
       as_unread: عُلّمت الرساله كغير مقروءة
     destroy:
       destroyed: حُذفت الرسالة
   passwords:
-    lost_password:
+    new:
       title: نسيان كلمه المرور
       heading: أنسيت كلمه المرور؟
       email address: 'عنوان البريد الإلكتروني:'
       new password button: إعاده ضبط كلمه المرور
       help_text: أدخل عنوان البريد الإلكترونى الذى استخدمته للتسجيل ، وسوف نرسل عليه
         رابط يمكنك استخدامه لإعاده تعيين كلمه المرور.
+    create:
       notice email on way: نأسف لأنك أضعتها :-( ولكن هناك رساله إلكترونيه فى طريقها
         إليك ستمكنك من إعاده تعيينها قريبًا.
       notice email cannot find: تعذّر إيجاد عنوان البريد الإلكترونى، نحن آسفون.
-    reset_password:
+    edit:
       title: إعاده ضبط كلمه المرور
       heading: إعاده تعيين كلمه المرور %{user}
       reset: إعاده ضبط كلمه المرور
-      flash changed: كلمه المرور الخاصه بك قد تغيرت.
       flash token bad: لم تجد تلك المعلومات، تحقق من الرابط ربما؟
+    update:
+      flash changed: كلمه المرور الخاصه بك قد تغيرت.
   profiles:
     edit:
       home location: 'موقع المنزل:'
@@ -778,30 +780,21 @@ arz:
           footway: طريق مشاة
           rail: سكه حديدية
           subway: قطار الأنفاق
-          tram:
-          - ترام
-          - ترام
-          runway:
-          - مدرج مطار للإقلاع/الهبوط
-          - مدرج مطار لمناورات الطائرات
-          apron:
-          - ساحه مطار
-          - صاله مطار
+          runway: مدرج مطار للإقلاع/الهبوط
+          taxiway: مدرج مطار لمناورات الطائرات
+          apron: ساحه مطار
           admin: حدود إدارية
           forest: غابة
           wood: غابة
           golf: ملعب غولف
           park: منتزه
+          common: شائع
           resident: منطقه سكنية
-          common:
-          - شائع
-          - مرج
           retail: منطقه بيع بالمفرق
           industrial: منطقه صناعية
           commercial: منطقه تجارية
-          lake:
-          - بحيرة
-          - خزان
+          lake: بحيرة
+          reservoir: خزان
           farm: أرض زراعية
           cemetery: مقبرة
           allotments: حصص سكنية
@@ -809,14 +802,12 @@ arz:
           centre: مركز رياضي
           reserve: محميه طبيعية
           military: منطقه عسكرية
-          school:
-          - مدرسة
-          - جامعة
+          school: مدرسة
+          university: جامعة
           building: مبنى كبير
           station: محطه قطار
-          summit:
-          - قمة
-          - ذروة
+          summit: قمة
+          peak: ذروة
           private: استخدام خصوصي
           construction: الطرق تحت الإنشاء
   traces:
index 730b482621667bd5f1ba77aba80de255cbc718e0..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,28 +1412,32 @@ ast:
         por o a esi usuariu. Anicia sesión col usuariu correchu pa contestar.
     sent_message_summary:
       destroy_button: Desaniciar
+    heading:
+      my_inbox: El mio buzón
     mark:
       as_read: Mensaxe marcáu como lleíu
       as_unread: Mensaxe marcáu como non lleíu
     destroy:
       destroyed: Mensaxe desaniciáu
   passwords:
-    lost_password:
+    new:
       title: Contraseña perdida
       heading: ¿Escaecisti la contraseña?
       email address: 'Direición de corréu electrónicu:'
       new password button: Reestablecer contraseña
       help_text: Escribi les señes de corréu qu'usasti pa date d'alta, unviarémoste
         un enllaz que pues usar pa reestablecer la contraseña.
+    create:
       notice email on way: Sentimos que la perdieres :-( pero hai un corréu en camín
         pa que puedas reaniciala ceo.
       notice email cannot find: Nun s'alcontró esa direición de corréu.
-    reset_password:
+    edit:
       title: Reestablecer contraseña
       heading: Reestablecer la contraseña de %{user}
       reset: Reaniciar contraseña
-      flash changed: Cambióse la contraseña
       flash token bad: Nun s'alcontró esi token, ¿tendríes de comprobar la URL, seique?
+    update:
+      flash changed: Cambióse la contraseña
   preferences:
     show:
       edit_preferences: Editar les preferencies
@@ -1704,34 +1706,24 @@ ast:
           footway: Camín peatonal
           rail: Ferrocarril
           subway: Metro
-          tram:
-          - Ferrocarril llixeru
-          - tranvía
-          cable:
-          - Teleféricu
-          - telesilla
-          runway:
-          - Pista d'aeropuertu
-          - cai de rodaxe
-          apron:
-          - Aparcamientu d'aviones
-          - terminal
+          cable_car: Teleféricu
+          chair_lift: telesilla
+          runway: Pista d'aeropuertu
+          taxiway: cai de rodaxe
+          apron: Aparcamientu d'aviones
           admin: Llende alministrativa
           forest: Área forestal
           wood: Viesca
           golf: Campu de golf
           park: Parque
+          common: Espaciu comunal
           resident: Área residencial
-          common:
-          - Espaciu comunal
-          - prau
           retail: Área de tiendes
           industrial: Área industrial
           commercial: Área comercial
           heathland: Berezal
-          lake:
-          - Llagu
-          - banzáu
+          lake: Llagu
+          reservoir: banzáu
           farm: Casería
           brownfield: Terrén en derribu
           cemetery: Cementeriu
@@ -1740,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 8fc3dd0cc0b685d53a853379fc208ff3f3d35b3e..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,21 +882,24 @@ az:
       unread_button: Oxunulmamış kimi işarələ
     sent_message_summary:
       destroy_button: Sil
+    heading:
+      my_inbox: Mənim gələnlər
     mark:
       as_read: Mesaj oxunulmuş kimi işarələndi
       as_unread: Mesaj oxunulmamış kimi işarələndi
     destroy:
       destroyed: Mesaj silindi
   passwords:
-    lost_password:
+    new:
       title: İtirilmiş parol
       heading: Parolu unutmusan?
       email address: 'E-poçt ünvanları:'
       new password button: Parolu yenilə
-    reset_password:
+    edit:
       title: Parolu yenilə
       heading: '%{user} üçün parolu yenilə'
       reset: Parolu Yenilə
+    update:
       flash changed: Parolun indi dəyişildi.
   profiles:
     edit:
@@ -985,37 +986,27 @@ az:
           footway: Piyada yolu
           rail: Dəmir yolu
           subway: Metro
-          tram:
-            1: tramvay
-          runway:
-          - Aeroport uçuş-enmə zolağı
-          apron:
-            1: terminal
+          runway: Aeroport uçuş-enmə zolağı
           admin: Administrativ sərhəd
           forest: Meşə
           park: Park
           resident: Yaşayış sahəsi
-          common:
-            1: çəmənlik
           retail: Ticarət sahəsi
           industrial: Sənaye sahəsi
           commercial: Ticarət sahəsi
-          lake:
-          - Göl
-          - su anbarı
+          lake: Göl
+          reservoir: su anbarı
           farm: Ferma
           cemetery: Məzarlıq
           centre: İdman mərkəzi
           reserve: Təbiət Qoruğu
           military: Hərbi ərazi
-          school:
-          - Məktəb
-          - universitet
+          school: Məktəb
+          university: universitet
           building: Əhəmiyyətli bina
           station: Dəmiryol stansiyası
-          summit:
-          - Zirvə
-          - pik
+          summit: Zirvə
+          peak: pik
           private: Xüsusi giriş
   traces:
     new:
index 7dafad6eff49fb103c38c5c18aaf673c132d75cc..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,29 +1017,33 @@ be-Tarask:
         як карыстальнік, адпаведна запыту, каб прачытаць.
     sent_message_summary:
       destroy_button: Выдаліць
+    heading:
+      my_inbox: Мае ўваходзячыя
     mark:
       as_read: Паведамленьне пазначанае як прачытанае
       as_unread: Паведамленьне пазначанае як непрачытанае
     destroy:
       destroyed: Паведамленьне выдаленае
   passwords:
-    lost_password:
+    new:
       title: Згублены пароль
       heading: Забылі пароль?
       email address: 'Адрас электроннай пошты:'
       new password button: Ачысьціць пароль
       help_text: Увядзіце адрас электроннай пошты, які Вы выкарыстоўвалі пры рэгістрацыі,
         і мы вышлем Вам спасылку, якую Вы зможаце выкарыстаць для зьмены паролю.
+    create:
       notice email on way: Шкада, што Вы яго згубілі, але электронны ліст ужо дасланы,
         таму Вы хутка зможаце яго зьмяніць.
       notice email cannot find: Прабачце, не атрымалася знайсьці такога адрасу электроннай
         пошты.
-    reset_password:
+    edit:
       title: Ачысьціць пароль
       heading: Скінуць пароль для %{user}
       reset: Ачысьціць пароль
-      flash changed: Ваш пароль быў зьменены.
       flash token bad: Немагчыма знайсьці такі ключ, можа праверце URL-адрас?
+    update:
+      flash changed: Ваш пароль быў зьменены.
   profiles:
     edit:
       image: Выява
@@ -1167,34 +1169,24 @@ be-Tarask:
           footway: Пешаходная дарога
           rail: Чыгунка
           subway: Мэтро
-          tram:
-          - Лінія для лёгкага чыгуначнага транспарту
-          - трамвай
-          cable:
-          - Канатная дарога
-          - крэславы пад’ёмнік
-          runway:
-          - Узьлётная паласа
-          - рулёжная дарога
-          apron:
-          - Пэрон аэрапорта
-          - тэрмінал
+          cable_car: Канатная дарога
+          chair_lift: крэславы пад’ёмнік
+          runway: Узьлётная паласа
+          taxiway: рулёжная дарога
+          apron: Пэрон аэрапорта
           admin: Адміністрацыйная мяжа
           forest: Лес
           wood: Пушча
           golf: Поле для гольфу
           park: Парк
+          common: Грамадзкая зямля
           resident: Жылы раён
-          common:
-          - Грамадзкая зямля
-          - луг
           retail: Гандлёвы раён
           industrial: Прамысловы раён
           commercial: Камэрцыйны раён
           heathland: Пусташ
-          lake:
-          - Возера
-          - вадасховішча
+          lake: Возера
+          reservoir: вадасховішча
           farm: Фэрма
           brownfield: Закінутая тэрыторыя
           cemetery: Могілкі
@@ -1203,14 +1195,12 @@ be-Tarask:
           centre: Спартовы цэнтар
           reserve: Запаведнік
           military: Вайсковая тэрыторыя
-          school:
-          - Школа
-          - унівэрсытэт
+          school: Школа
+          university: унівэрсытэт
           building: Значны будынак
           station: Чыгуначная станцыя
-          summit:
-          - Вяршыня
-          - пік
+          summit: Вяршыня
+          peak: пік
           tunnel: Пункцір = тунэль
           bridge: Чорная лінія = мост
           private: Прыватны доступ
index ac84d783a84c79a02cf4cd9c19bc286ee80c2815..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,28 +1435,32 @@ be:
         як карыстальнік, адпаведна запыту, каб прачытаць.
     sent_message_summary:
       destroy_button: Выдаліць
+    heading:
+      my_inbox: Мае уваходныя
     mark:
       as_read: Паведамленне адмечана прачытаным
       as_unread: Паведамленне адмечана нечытаным
     destroy:
       destroyed: Паведамленне выдалена
   passwords:
-    lost_password:
+    new:
       title: згублены пароль
       heading: Забылі пароль?
       email address: 'Паштовы адрас:'
       new password button: Выслаць мне новы пароль
       help_text: Увядзіце адрас электроннай пошты, які Вы выкарыстоўвалі пры рэгістрацыі,
         і мы вышлем Вам спасылку, якую Вы зможаце выкарыстаць для змены паролю.
+    create:
       notice email on way: Жаль, што вы яго згубілі :-( але ліст ужо адпраўлены, і
         вы хутка зможаце яго скінуць.
       notice email cannot find: Немагчыма знайсці гэтакі паштовы адрас, прабачце.
-    reset_password:
+    edit:
       title: скінуць пароль
       heading: Скінуць пароль для %{user}
       reset: 'Скінуць пароль:'
-      flash changed: Ваш пароль быў зменены.
       flash token bad: Не знайшоў такі токен, можа, праверце URL?
+    update:
+      flash changed: Ваш пароль быў зменены.
   profiles:
     edit:
       image: 'Выява:'
@@ -1718,35 +1720,29 @@ be:
           cycleway_local: Веладарожка мясцовага значэння
           footway: Пешаходная дарожка
           rail: Чыгунка
+          train: Цягнік
           subway: Метро
-          tram:
-          - Хуткасны трамвай
-          - трамвай
-          cable:
-          - Канатная дарога
-          - Крэсельны пад'ёмнік
-          runway:
-          - Узлетна-пасадачная паласа
-          - рулёжная дарожка
-          apron:
-          - Перон аэрапорта
-          - тэрмінал
+          trolleybus: Тралейбус
+          bus: Аўтобус
+          cable_car: Канатная дарога
+          chair_lift: Крэсельны пад'ёмнік
+          runway: Узлетна-пасадачная паласа
+          taxiway: рулёжная дарожка
+          apron: Перон аэрапорта
           admin: Адміністрацыйная мяжа
           forest: Лес
-          wood: Ð\9fушча
+          wood: Ð¿ушча
           golf: Поле для гольфа
           park: Парк
+          common: Агульныя
           resident: Жылы раён
-          common:
-          - Агульныя
-          - луг
           retail: Гандлевая плошча
           industrial: Прамысловая зона
           commercial: Камерцыйная зона
           heathland: Пустка
-          lake:
-          - Возера
-          - вадасховішча
+          lake: Возера
+          reservoir: вадасховішча
+          glacier: Ляднік
           farm: Ферма
           brownfield: Ачышчаная пляцоўка для забудовы
           cemetery: Могілкі
@@ -1755,14 +1751,12 @@ be:
           centre: Спартыўны цэнтр
           reserve: Запаведнік
           military: Ваенная зона
-          school:
-          - Школа
-          - універсітэт
+          school: Школа
+          university: універсітэт
           building: Значны будынак
           station: Чыгуначны вакзал
-          summit:
-          - Вяршыня
-          - пік
+          summit: Вяршыня
+          peak: пік
           tunnel: Тунэль (пункцірам)
           bridge: Мост (суцэльная лінія)
           private: Прыватны доступ
index e782ec22b0804f74c35f039c9c6d17f7cbd62651..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,13 +1372,16 @@ bg:
       back: Назад
     sent_message_summary:
       destroy_button: Изтриване
+    heading:
+      my_inbox: Входяща кутия
+      my_outbox: Изходяща кутия
     mark:
       as_read: Съобщението е отбелязано като прочетено
       as_unread: Съобщението е отбелязано като непрочетено
     destroy:
       destroyed: Съобщението беше изтрито
   passwords:
-    lost_password:
+    new:
       title: Възстановяване на парола
       heading: Забравена парола?
       email address: 'Електронна поща:'
@@ -1385,11 +1389,13 @@ bg:
       help_text: Въведете имейл адреса, който сте използвали при регистрацията, и
         ние ще Ви изпратим връзка, която можете да използвате, за да промените паролата
         си.
+    create:
       notice email cannot find: Съжаляваме, но този електронен адрес не е намерен.
-    reset_password:
+    edit:
       title: Възстановяване на парола
       heading: Смени Парола за %{user}
       reset: Нулиране на парола
+    update:
       flash changed: Паролата е променена успешно.
   preferences:
     show:
@@ -1402,6 +1408,7 @@ bg:
       cancel: Отказ
   profiles:
     edit:
+      title: Редактиране на профила
       cancel: Отказ
       image: Изображение
       gravatar:
@@ -1495,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}: Вие сте свободни да я използвате
@@ -1657,34 +1665,24 @@ bg:
           footway: Пътека
           rail: Железен път
           subway: Метро
-          tram:
-          - Бърз трамвай
-          - трамвай
-          cable:
-          - Кабинков лифт
-          - седалков лифт
-          runway:
-          - Летищна писта
-          - път за рулиране
-          apron:
-          - Летищен перон
-          - терминал
+          cable_car: Кабинков лифт
+          chair_lift: седалков лифт
+          runway: Летищна писта
+          taxiway: път за рулиране
+          apron: Летищен перон
           admin: Административна граница
           forest: Гора
           wood: Дървета
           golf: Игрище за голф
           park: Парк
+          common: Обща
           resident: Жилищна зона
-          common:
-          - Обща
-          - ливада
           retail: Търговска зона
           industrial: Промишлена зона
           commercial: Търговска зона
           heathland: Пустош
-          lake:
-          - Езеро
-          - язовир
+          lake: Езеро
+          reservoir: язовир
           farm: Ферма
           brownfield: Място за строеж
           cemetery: Гробище
@@ -1693,14 +1691,12 @@ bg:
           centre: Спортен център
           reserve: Природен резерват
           military: Военна зона
-          school:
-          - Училище
-          - университет
+          school: Училище
+          university: Университет
           building: Значима сграда
           station: Железопътна гара
-          summit:
-          - Било
-          - връх
+          summit: Било
+          peak: връх
           tunnel: Тунел (пунктирана линия)
           bridge: Мост (плътна линия)
           private: Частен достъп
@@ -1857,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} достъп до вашия профил.
@@ -1930,6 +1926,8 @@ bg:
       my_preferences: Предпочитания
       blocks on me: Блокирани от мен
       blocks by me: Блокирани от мен
+      create_mute: Заглушаване на потребителя
+      edit_profile: Редактиране на профила
       send message: Изпратете съобщение
       diary: Дневник
       edits: Промени
@@ -1986,6 +1984,8 @@ bg:
     edit:
       title: Промяна на блокирането на %{name}
       heading_html: Промяна на блокирането на %{name}
+    filter:
+      block_expired: Блокирането вече е изтекло и не може да се редактира.
     revoke:
       revoke: Анулиране!
     helper:
@@ -2025,6 +2025,11 @@ bg:
       showing_page: Страница %{page}
       next: Следваща »
       previous: « Предишна
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: Действия
   notes:
     index:
       title: Бележки създадени или с коментар от %{user}
@@ -2135,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 6390710480c5bd6c3d08b1cf48c97d31d645e3f1..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,23 +1493,27 @@ bn:
       back: পিছনে
     sent_message_summary:
       destroy_button: অপসারণ
+    heading:
+      my_inbox: আমার ইনবক্স
+      my_outbox: আমার আউটবক্স
     mark:
       as_read: বার্তা পঠিত হিসেবে চিহ্নিত করুন
       as_unread: বার্তা অপঠিত হিসেবে চিহ্নিত করুন
     destroy:
       destroyed: বার্তা মোছা হয়েছে
   passwords:
-    lost_password:
+    new:
       title: পাসওয়ার্ড ভুলে গেছেন
       heading: পাসওয়ার্ড ভুলে গেছেন?
       email address: 'ইমেইল ঠিকানা:'
       new password button: পাসওয়ার্ড পুনঃনির্ধারণ
       help_text: নিবন্ধনের সময় ব্যবহৃত আপনার ইমেইল ঠিকানাটি লিখুন, ইমেইলের মাধ্যমে
         আমরা একটি লিঙ্ক পাঠাবো যার মাধ্যমে আপনি পাসওয়ার্ড পরিবর্তন করতে পারবেন।
-    reset_password:
+    edit:
       title: পাসওয়ার্ড পুনঃনির্ধারণ
       heading: '%{user} এর পাসওয়ার্ড পুনর্বদল করুন'
       reset: পাসওয়ার্ড পুনঃনির্ধারণ
+    update:
       flash changed: আপনার পাসওয়ার্ড পরিবর্তন করা হয়েছে।
   preferences:
     show:
@@ -1584,6 +1585,7 @@ bn:
       image: ছবি
       alt: বিকল্প পাঠ্য
       url: ইউআরএল
+      codeblock: কোড ব্লক
     richtext_field:
       edit: সম্পাদনা
       preview: প্রাকদর্শন
@@ -1656,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: ওএসএম জগৎ
@@ -1737,36 +1739,40 @@ bn:
           cycleway_local: স্থানীয় সাইকেলের রাস্তা
           footway: ফুটপাথ
           rail: রেলপথ
+          train: রেলগাড়ি
           subway: ভূগর্ভস্থ পথ
-          tram:
-            1: ট্রাম
-          cable:
-          - ক্যাবল কার
-          apron:
-            1: টার্মিনাল
+          ferry: ফেরি
+          tram: ট্রাম
+          bus: বাস
+          cable_car: ক্যাবল কার
           admin: প্রশাসনিক সীমানা
+          orchard: ফলবাগিচা
+          vineyard: আঙুর খেত
           forest: অরণ্য
-          wood: বন
+          wood: কাঠ
+          farmland: কৃষিজমি
+          meadow: তৃণভূমি
+          sand: বালু
           golf: গল্ফ মাঠ
           park: উদ্যান
+          common: সাধারণ
           resident: আবাসিক এলাকা
-          common:
-          - সাধারণ
           industrial: শিল্পাঞ্চল
           commercial: বাণিজ্যিক এলাকা
-          lake:
-          - হ্রদ
-          - জলাধার
+          lake: হ্রদ
+          reservoir: জলাধার
+          glacier: হিমবাহ
           farm: খামার
           cemetery: কবরস্থান
           centre: ক্রীড়া কেন্দ্র
           military: সামরিক এলাকা
-          school:
-          বিদ্যালয়
-          - বিশ্ববিদ্যালয়
+          school: বিদ্যালয়
+          university: বিশ্ববিদ্যালয়
+          hospital: হাসপাতাল
           station: রেল স্টেশন
-          summit:
-            1: শৃঙ্গ
+          peak: শৃঙ্গ
+          bus_stop: বাস স্টপ
+          stop: স্টপ
           bicycle_shop: সাইকেলের দোকান
           bicycle_parking: সাইকেল পার্কিং
           toilets: পায়খানা
@@ -1923,9 +1929,9 @@ bn:
         সিদ্ধান্ত নিয়েছেন। আরও তথ্যের জন্য, অনুগ্রহ করে %{terms_declined_link} দেখুন।
       terms_declined_link: এই উইকি পাতা
     no_such_user:
-      title: এরকম কোন ব্যবহারকারী নেই
+      title: এরকম কোন ব্যবহারকারী নেই
       heading: ব্যবহারকারী %{user} বিদ্যমান নয়
-      body: দুঃখিত, %{user} নামের কোন ব্যবহারকারী নেই। অনুগ্রহ করে আপনার বানান পরীক্ষা
+      body: দুঃখিত, %{user} নামের কোন ব্যবহারকারী নেই। অনুগ্রহ করে আপনার বানান পরীক্ষা
         করুন, অথবা হয়ত আপনি যে সংযোগটিতে টোকা দিয়েছেন সেটি ভুল।
       deleted: অপসারিত
     show:
@@ -1979,7 +1985,7 @@ bn:
       summary_no_ip_html: '%{date}-এ %{name} তৈরি হয়েছে'
       confirm: নির্বাচিত ব্যবহারকারীদের নিশ্চিত করুন
       hide: নির্বাচিত ব্যবহারকারীদের লুকান
-      empty: কোন সাদৃশ্যপূর্ণ ব্যবহারকারী পাওয়া যায়নি
+      empty: কোন সাদৃশ্যপূর্ণ ব্যবহারকারী পাওয়া যায়নি
     suspended:
       title: অ্যাকাউন্ট স্থগিত করা হয়েছে
       heading: অ্যাকাউন্ট স্থগিত করা হয়েছে
@@ -2000,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: বর্তমান ব্যবহারকারীর থেকে প্রশাসকের ভূমিকা প্রত্যাহার
@@ -2029,6 +2035,8 @@ bn:
     revoke:
       revoke: প্রত্যাহার!
       flash: এই অবরোধ প্রত্যাহার করা হয়েছে।
+    revoke_all:
+      revoke: প্রত্যাহার!
     helper:
       block_duration:
         hours:
@@ -2048,6 +2056,11 @@ bn:
       display_name: বাধাপ্রাপ্ত ব্যবহারকারী
       next: পরবর্তী »
       previous: « পূর্ববর্তী
+  user_mutes:
+    index:
+      table:
+        tbody:
+          send_message: বার্তা পাঠান
   notes:
     show:
       title: 'টীকা: %{id}'
index 1a313b0652d304447ab69d720c0ecfcc918c10db..6292a37ec77a7d45127a872da0a03ec15592cb67 100644 (file)
@@ -15,6 +15,7 @@
 # Author: McDutchie
 # Author: Nemo bis
 # Author: Shirayuki
+# Author: Troer56
 # Author: Y-M D
 ---
 br:
@@ -56,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ù
@@ -1478,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ñ
@@ -1752,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'
@@ -1761,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}
@@ -1786,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
@@ -1812,28 +1819,38 @@ br:
         reizh evit gellout lenn anezhi.
     sent_message_summary:
       destroy_button: Dilemel
+    heading:
+      my_inbox: Ma boest resev
+      my_outbox: Ma boest kas
+      muted_messages: Kemennadennoù kuzhet
     mark:
       as_read: Kemennadenn merket evel lennet
       as_unread: Merkañ evel anlennet
+    unmute:
+      notice: Dilec'hiet eo bet ar gemennadenn d'ar voest resev
+      error: Ne c'haller ket dilec'hiañ ar gemennadenn d'ar voest resev.
     destroy:
       destroyed: Kemennadenn dilamet
   passwords:
-    lost_password:
+    new:
       title: Ger-tremen kollet
       heading: Ankouaet hoc'h eus ho ker-tremen ?
       email address: 'Chomlec''h postel :'
       new password button: Adderaouekaat ar ger-tremen
       help_text: Ebarzhit ar chomlec'h postel ho poa implijet evit en em enskrivañ,
         kaset e vo deoc'h ul liamm a c'hallot implijout evit adderaouekaat ho ker-tremen.
+    create:
       notice email on way: Kaset ez eus bet ur postel deoc'h evit adderaouekaat ho
         ker-tremen.
       notice email cannot find: Ho tigarez, n'eo ket bet kavet ar chomlec'h postel-se.
-    reset_password:
+    edit:
       title: Adderaouekaat ar ger-tremen
       heading: Adderaouekaat ar ger-tremen evit %{user}
       reset: Adderaouekaat ar ger-tremen
-      flash changed: Cheñchet eo bet ho ker-tremen.
       flash token bad: N'eo ket bet kavet ar jedouer-se, gwiriañ an URL marteze ?
+    update:
+      flash changed: Cheñchet eo bet ho ker-tremen.
+      flash token bad: N'eo ket bet kavet ar jedouer-se, gwiriit an URL mar plij.
   preferences:
     show:
       title: Ma fenndibaboù
@@ -2066,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:
@@ -2216,44 +2234,55 @@ br:
           primary: Hent bras
           secondary: Hent bihan
           unclassified: Hent n'eo ket rummet
+          pedestrian: Hent evit an dud war-droad
           track: Roudenn
           bridleway: Hent evit kezeg
           cycleway: Roudenn divrodegoù
           cycleway_national: roudenn vroadel evit an divrodegoù
           cycleway_regional: Roudenn divrodegoù rannvroel
           cycleway_local: roudenn lec'hel evit an divrodegoù
+          cycleway_mtb: Hent MTB
           footway: Hent evit an dud war droad
           rail: Hent-houarn
+          train: Tren
           subway: Linenn vetro
-          tram:
-          - tramgarr
-          - tramgarr
-          cable:
-          - Teleferik
-          - fungador
-          runway:
-          - Roudenn evit an taksioù
-          - Roudenn evit an taksioù
-          apron:
-          - Roudenn aerborzh
-          - termenva
+          ferry: Karrlistri
+          light_rail: Metro skañv
+          tram: Tramgarr
+          trolleybus: Trollebus
+          bus: Karr-boutin
+          cable_car: Teleferik
+          chair_lift: Fungador
+          runway: Roudenn evit an taksioù
+          taxiway: Hent evit an taksioù
+          apron: Roudenn aerborzh
           admin: Bevenn velestradurel
+          capital: Kêr-benn
+          city: Kêr
+          orchard: Gwerje
+          vineyard: Gwinieg
           forest: Koad
           wood: Koad
+          farmland: Tachenn labour-douar
+          grass: Geot
+          meadow: Prad
+          bare_rock: Roc'h noazh
+          sand: Traezh
           golf: Tachenn golf
           park: Park
+          common: prad
+          built_up: Takad savet
           resident: Takad annez
-          common:
-          - prad
-          - prad
-          - liorzh
           retail: Takad kenwerzh
           industrial: Takad greantel
           commercial: Takad kenwerzhel
           heathland: Lanneier
-          lake:
-          - Lenn
-          - mirlec'h
+          scrubland: Strouezheg
+          lake: Lenn
+          reservoir: Mirlenn
+          glacier: Skorneg
+          reef: Karreg
+          wetland: Takad gleborek
           farm: Ti-feurm
           brownfield: Takad greanterezh
           cemetery: Bered
@@ -2262,19 +2291,20 @@ br:
           centre: Kreizenn sport
           reserve: Gwarezva natur
           military: Takad milourel
-          school:
-          - Skol
-          - skol-veur
+          school: Skol
+          university: Skol-veur
+          hospital: Ospital
           building: Savadur pouezus
           station: Porzh-houarn
-          summit:
-          - Lein
-          - pikern
+          summit: Lein
+          peak: Pikern
           tunnel: Bord poentoùigoù = riboul
           bridge: Bord du = pont
           private: Moned prevez
           destination: Moned d'ar pal
           construction: Hentoù war ar stern
+          bus_stop: Arsav karr-boutin
+          stop: Arsav
           bicycle_shop: Stal varc'hoù-houarn
           bicycle_parking: Parklec'h belioù
           toilets: Privezioù
@@ -2285,6 +2315,10 @@ br:
         Setu amañ un nebeud displegadennoù diwar-benn an traoù pouezusañ da c'houzout.
       whats_on_the_map:
         title: Petra zo war ar gartenn
+        on_the_map_html: |-
+          OpenStreetMap zo ul lec'h evit kartennaouiñ traoù %{real_and_current} war un dro
+          -
+          Ennañ ez eus milionoù a savadurioù, a hentoù, hag a vunudoù all diwar-benn lec'hioù. Gallout a rit kartennaouiñ forzh peseurt tra eus ar bed gwirion hag a zedenn ac'hanoc'h.
         real_and_current: gwir hag a-vremañ
         off_the_map_html: Ar pezh %{doesnt} avat eo ar roadennoù evit notennoù roet
           gant an dud, elfennoù istorel pe martezeüs, hag ar roadennoù a zo dindan
@@ -2311,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
@@ -2454,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
@@ -2560,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:
@@ -2572,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ñ?
@@ -2627,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
@@ -2659,12 +2698,15 @@ br:
       role:
         administrator: Ur merour eo an implijer-mañ
         moderator: Un habaskaer eo an implijer-mañ
+        importer: Un enporzhier/ez eo an implijer/ez-mañ
         grant:
           administrator: Reiñ ar moned merour
           moderator: Reiñ ar moned habaskaer
+          importer: Grataat gwirioù enporzhiañ
         revoke:
           administrator: Disteurel ar moned merour
           moderator: Disteurel ar moned habaskaer
+          importer: Lemel ar gwirioù enporzhiañ
       block_history: stankadurioù oberiant
       moderator_history: Stankadurioù roet
       comments: evezhiadennoù
@@ -2777,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.
@@ -2850,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 9d3df0ec2ad599cb74be4a50b0f76f7020d9065e..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,28 +1009,32 @@ bs:
         kao ispravan korisnik kako bi ste je pročitali.'
     sent_message_summary:
       destroy_button: Izbrisati
+    heading:
+      my_inbox: Moja dolazna pošta
     mark:
       as_read: Poruka označena kao pročitana
       as_unread: Poruka označena kao nepročitana
     destroy:
       destroyed: Poruka izbrisana
   passwords:
-    lost_password:
+    new:
       title: Izgubljena lozinka
       heading: Zaboravljena lozinka?
       email address: 'Adresa e-pošte:'
       new password button: Ponovno postavljanje lozinke
       help_text: Unesite e-mail adresu koju ste koristili za otvaranje računa i poslaćemo
         Vam link kojim možete ponovo postaviti lozinku.
+    create:
       notice email on way: Žao mi je što ste je izgubili :-( ali e-mail je na putu
         tako da je možete pononvo postaviti uskoro.
       notice email cannot find: Ne možemo pronaći tu e-mail adresu, žao nam je.
-    reset_password:
+    edit:
       title: Ponovno postavljanje lozinke
       heading: Ponovno postavljanje lozinke za %{user}
       reset: Ponovno postavljanje lozinke
-      flash changed: Vaša lozinka je promjenjena.
       flash token bad: Niste pronašli tz značku, možda da provjerite URL?
+    update:
+      flash changed: Vaša lozinka je promjenjena.
   profiles:
     edit:
       image: 'Slika:'
@@ -1194,34 +1196,24 @@ bs:
           footway: Pješačka staza
           rail: Željeznica
           subway: Podzemna željeznica
-          tram:
-          - Lahka željeznica
-          - tramvaj
-          cable:
-          - Kabinska žičara
-          - Uspinjača sa naslonjačem
-          runway:
-          - Aerodromska pista
-          - Aerodromska rulna staza
-          apron:
-          - Parking za avione
-          - terminal
+          cable_car: Kabinska žičara
+          chair_lift: Uspinjača sa naslonjačem
+          runway: Aerodromska pista
+          taxiway: Aerodromska rulna staza
+          apron: Parking za avione
           admin: Administrativna granica
           forest: Šume (održavane, od šumarije)
           wood: Šume (prirodne, neodržavane)
           golf: Golf teren
           park: Park
+          common: Travnjaci
           resident: Stambeno područje
-          common:
-          - Travnjaci
-          - Livada
           retail: Maloprodajno područje
           industrial: Industrijsko područje
           commercial: Poslovno područje
           heathland: Stepa
-          lake:
-          - Jezero
-          - Rezervoar
+          lake: Jezero
+          reservoir: Rezervoar
           farm: Polja, farme, njive
           brownfield: Gradilište
           cemetery: Groblje
@@ -1230,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 03219768c1a4603b6add84c00bf9da5386fb4231..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,28 +1819,37 @@ ca:
         la sessió amb l'usuari correcte.
     sent_message_summary:
       destroy_button: Suprimeix
+    heading:
+      my_inbox: La meva safata d'entrada
+      my_outbox: La meva safata de sortida
+      muted_messages: Missatges silenciats
     mark:
       as_read: Missatge marcat com a llegit
       as_unread: Missatge marcat com a no llegit
+    unmute:
+      notice: El missatge s'ha mogut a la safata d'entrada
+      error: No s'ha pogut moure el missatge a la safata d'entrada.
     destroy:
       destroyed: Missatge suprimit
   passwords:
-    lost_password:
+    new:
       title: Contrasenya perduda
       heading: Heu oblidat la contrasenya?
       email address: 'Adreça de correu electrònic:'
       new password button: Restableix la contrasenya
       help_text: Introduïu l'adreça de correu electrònic que vau utilitzar per registrar-vos;
         us hi enviarem un enllaç per a restablir la contrasenya.
+    create:
       notice email on way: Lamentem que l'hàgiu perdut :-( però ja us hem enviat un
         correu i la podreu restablir ben aviat.
       notice email cannot find: No s'ha trobat aquesta adreça de correu.
-    reset_password:
+    edit:
       title: Restableix la contrasenya
       heading: Restableix la contrasenya per a %{user}
       reset: Restableix la contrasenya
-      flash changed: S'ha canviat la contrasenya.
       flash token bad: No s'ha trobat el testimoni. Comproveu l'URL.
+    update:
+      flash changed: S'ha canviat la contrasenya.
   preferences:
     show:
       title: Les meves preferències
@@ -2063,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».'
@@ -2279,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
@@ -2287,36 +2300,44 @@ ca:
           cycleway_local: Carril bici local
           footway: Via de vianants
           rail: Ferrocarril
+          train: Tren
           subway: Metro
-          tram:
-          - Tren lleuger
-          - tramvia
-          cable:
-          - Telefèric
-          - telecadira
-          runway:
-          - Pista d'aeroport
-          - carrer de rodatge
-          apron:
-          - Estacionament d'avions
-          - terminal
+          ferry: Ferri
+          light_rail: Ferrocarril lleuger
+          tram: Tramvia
+          trolleybus: Troleibús
+          bus: Autobús
+          cable_car: Telefèric
+          chair_lift: Telecadira
+          runway: Pista d'aeroport
+          taxiway: Carrer de rodatge
+          apron: Estacionament d'avions
           admin: Límit administratiu
+          orchard: Hort
+          vineyard: Vinya
           forest: Bosc
-          wood: Fusta
+          wood: Arbreda
+          farmland: Terra de conreu
+          grass: Gespa
+          meadow: Prada
+          bare_rock: Roca pelada
+          sand: Sorra
           golf: Camp de golf
           park: Parc
+          common: Àrea comunal
+          built_up: Zona edificada
           resident: Zona residencial
-          common:
-          - Àrea comunal
-          - prat
-          - jardí
           retail: Àrea comercial
           industrial: Zona industrial
           commercial: Zona comercial
           heathland: Bruguerar
-          lake:
-          - Llac
-          - bassa
+          scrubland: Matolls
+          lake: Llac
+          reservoir: Embassament
+          intermittent_water: Cos d'aigua intermitent
+          glacier: Glacera
+          reef: Escull
+          wetland: Aiguamoll
           farm: Granja
           brownfield: Àrea industrial abandonada
           cemetery: Cementiri
@@ -2325,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 7073f6b085dd74096b9d9c91b0dd8cbf795d7d80..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: Жоп ло
@@ -760,15 +759,16 @@ ce:
     sent_message_summary:
       destroy_button: ДӀайаккха
   passwords:
-    lost_password:
+    new:
       title: Пароль меттахӀоттор
       heading: Йицйелла пароль?
       email address: 'Электронан поштан адрес:'
       new password button: Керла пароль кхосса соьга
-    reset_password:
+    edit:
       title: Йуха а йазйе пароль
       heading: Йуха а йазйе пароль %{user}
       reset: ХӀоттайе пароль
+    update:
       flash changed: Хьан пароль хийцина.
   profiles:
     edit:
index 5323b908973dbe96c698163b185c22672132c4b9..40f2bc433dabae8187afd65fdca67083c481c1d9 100644 (file)
@@ -883,7 +883,7 @@ cs:
           "yes": Most
         building:
           apartment: Apartmán
-          apartments: Apartmány
+          apartments: Bytový dům
           barn: Stodola
           bungalow: Bungalov
           cabin: Chatka
@@ -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,28 +1885,33 @@ cs:
         se pod správným účtem.
     sent_message_summary:
       destroy_button: Smazat
+    heading:
+      my_inbox: Má doručená pošta
+      my_outbox: Moje odchozí
     mark:
       as_read: Zpráva označena jako přečtená
       as_unread: Zpráva označena jako nepřečtená
     destroy:
       destroyed: Zpráva smazána
   passwords:
-    lost_password:
+    new:
       title: Ztracené heslo
       heading: Zapomněli jste heslo?
       email address: 'E-mailová adresa:'
       new password button: Resetovat heslo
       help_text: Zadejte e-mailovou adresu, pod kterou jste se zaregistrovali, my
         vám na ni pošleme odkaz, pomocí kterého si nastavíte nové heslo.
+    create:
       notice email on way: Škoda zapomenutého hesla :-( e-mail už je na cestě, takže
         si budete brzy moci zvolit nové.
       notice email cannot find: Je mi líto, ale nemohu najít tuto e-mailovou adresu.
-    reset_password:
+    edit:
       title: Obnovit heslo
       heading: Resetovat heslo pro %{user}
       reset: Resetovat heslo
-      flash changed: Vaše heslo bylo změněno.
       flash token bad: Odpovídající kód nebyl nalezen, možná zkontrolujte URL?
+    update:
+      flash changed: Vaše heslo bylo změněno.
   preferences:
     show:
       title: Moje preference
@@ -2393,35 +2393,24 @@ cs:
           footway: Pěší cesta
           rail: Železnice
           subway: Metro
-          tram:
-          - Rychlodráha
-          - tramvaj
-          cable:
-          - Lanovka
-          - sedačková lanovka
-          runway:
-          - Vzletová a přistávací dráha
-          - pojezdová dráha
-          apron:
-          - Letištní odbavovací plocha
-          - terminál
+          cable_car: Lanovka
+          chair_lift: sedačková lanovka
+          runway: Vzletová a přistávací dráha
+          taxiway: pojezdová dráha
+          apron: Letištní odbavovací plocha
           admin: Administrativní hranice
           forest: Les
           wood: Les
           golf: Golfové hřiště
           park: Park
+          common: Pastvina
           resident: Obytná oblast
-          common:
-          - Pastvina
-          - louka
-          - zahrada
           retail: Nákupní oblast
           industrial: Průmyslová oblast
           commercial: Kancelářská oblast
           heathland: Vřesoviště
-          lake:
-          - Jezero
-          - nádrž
+          lake: Jezero
+          reservoir: nádrž
           farm: Farma
           brownfield: Zbořeniště
           cemetery: Hřbitov
@@ -2430,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 aa673f8315f443f783e7f25072e09668fb928c03..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,22 +1613,27 @@ 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
     destroy:
       destroyed: Neges wedi'i dileu
   passwords:
-    lost_password:
+    new:
       title: Ailosod cyfrinair
       heading: Wedi anghofio'ch cyfrinair?
       email address: 'Cyfeiriad e-bost:'
       new password button: Ailosod cyfrinair
+    create:
       notice email cannot find: Methwyd dod o hyd i'r cyfeiriad ebost yno.
-    reset_password:
+    edit:
       title: Ailosod cyfrinair
       heading: Ailosod cyfrinair ar gyfer %{user}
       reset: Ailosod cyfrinair
+    update:
       flash changed: Mae eich cyfrinair wedi'i newid.
   preferences:
     show:
@@ -1710,6 +1729,7 @@ cy:
       image: Delwedd
       alt: Testun amgen
       url: URL
+      codeblock: Bloc cod
     richtext_field:
       edit: Golygu
       preview: Rhagolwg
@@ -1924,36 +1944,45 @@ cy:
           cycleway_local: Llwybr beiciau lleol
           footway: Troedffordd
           rail: Rheilffordd
+          train: Trên
           subway: Trenau tanddaear
-          tram:
-          - Rheilffordd ysgafn
-          - dram
-          cable:
-          - Car cebl
-          - lifft cadair
-          runway:
-          - Llwybr glanio
-          - thacsiffordd maes awyr
-          apron:
-          - Llain
-          - therminws maes awyr
+          ferry: Fferi
+          light_rail: Rheilffordd ysgafn
+          tram: Tram
+          trolleybus: Bws Drydan
+          bus: Bws
+          cable_car: Car cebl
+          chair_lift: Cadair godi
+          runway: Llwybr glanio
+          taxiway: Tacsiffordd
+          apron: Llain
           admin: Ffin gweinyddol
+          capital: Prifddinas
+          city: Dinas
+          orchard: Perllan
+          vineyard: Gwinllan
           forest: Coedwig
           wood: Coedlan
+          farmland: Tir Ffermio
+          grass: Gwair
+          meadow: Gwaun
+          bare_rock: Carreg Plaen
+          sand: Tywod
           golf: Maes golff
           park: Parc
+          common: Comin
+          built_up: Ardal Adeiledig
           resident: Ardal breswyl
-          common:
-          - Comin
-          - gwaun
-          - gardd
           retail: Ardal adwerthu
           industrial: Ardal ddiwydiannol
           commercial: Ardal fasnachol
           heathland: Rhos
-          lake:
-          - Llyn
-          - chronfa ddŵr
+          scrubland: Prysgoed
+          lake: Llyn
+          reservoir: Cronfa Ddŵr
+          glacier: Rhewlif
+          reef: Riff
+          wetland: Gwlyptir
           farm: Fferm
           brownfield: Safle tir llwyd
           cemetery: Mynwent
@@ -1962,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
@@ -2146,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:
@@ -2198,6 +2229,7 @@ cy:
     index:
       application: Ap
       permissions: Caniatadau
+      oauth_2: OAuth 2
   users:
     new:
       title: Cofrestru
@@ -2206,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!
@@ -2244,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
@@ -2264,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
@@ -2385,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}
@@ -2452,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 bc01d8f6e0ffdda8980e5c76b521bdf3927029d3..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,28 +1839,39 @@ da:
         den korrekte bruger for at svare.
     sent_message_summary:
       destroy_button: Slet
+    heading:
+      my_inbox: Min indbakke
+      my_outbox: Min udbakke
+      muted_messages: Stillegjorte beskeder
     mark:
       as_read: Besked markeret som læst
       as_unread: Besked markeret som ulæst
+    unmute:
+      notice: Beskeden er flyttet til Indbakke
+      error: Beskeden kunne ikke flyttes til Indbakke.
     destroy:
       destroyed: Besked slettet
   passwords:
-    lost_password:
+    new:
       title: Glemt adgangskode
       heading: Glemt adgangskode?
       email address: 'E-mailadresse:'
       new password button: Nulstil adgangskode
       help_text: Indtast e-mailadressen du brugte da du oprettede kontoen. Vi sender
         et link til den som du kan bruge til at nulstille din adgangskode.
+    create:
       notice email on way: Synd du har glemt den, men en e-mail er på vej så du kan
         snart indstille en ny.
       notice email cannot find: Kunne ikke finde den e-mailadresse, beklager.
-    reset_password:
+    edit:
       title: Nulstil adgangskode
       heading: Nulstil adgangskode for %{user}
       reset: Nulstil adgangskode
-      flash changed: Din adgangskode er ændret.
       flash token bad: Kunne ikke finde denne nøgle, prøv at kontrollere URL'en?
+    update:
+      flash changed: Din adgangskode er ændret.
+      flash token bad: Fandt ikke den der nøgle. Kunne du måske prøve på at tjekke
+        URL'en?
   preferences:
     show:
       title: Mine præferencer
@@ -1959,6 +1976,7 @@ da:
       image: Billede
       alt: Alt-tekst
       url: URL
+      codeblock: Kodeblok
     richtext_field:
       edit: Rediger
       preview: Forhåndsvisning
@@ -2096,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
@@ -2322,44 +2344,56 @@ da:
           primary: Hovedvej (primærrute)
           secondary: Hovedvej (sekundærrute)
           unclassified: Anden vej
+          pedestrian: Gågade
           track: Hjulspor
           bridleway: Ridesti
           cycleway: Cykelsti
           cycleway_national: National cykelsti
           cycleway_regional: Regional cykelsti
           cycleway_local: Lokal cykelsti
+          cycleway_mtb: Mountainbikerute
           footway: Gangsti
           rail: Jernbane
+          train: Tog
           subway: Undergrundsbane
-          tram:
-          - Letbane
-          - sporvogn
-          cable:
-          - Kabelvogn
-          - stolelift
-          runway:
-          - Landingsbane
-          - taxibane
-          apron:
-          - Lufthavnsforplads
-          - terminal
+          ferry: Færge
+          light_rail: Letbane
+          tram: Sporvogn
+          trolleybus: Trolleybus
+          bus: Bus
+          cable_car: Kabelvogn
+          chair_lift: Stolelift
+          runway: Landingsbane
+          taxiway: Rullevej
+          apron: Lufthavnsforplads
           admin: Administrativ grænse
+          capital: Hovedstad
+          city: By
+          orchard: Plantage
+          vineyard: Vingård
           forest: Skov
-          wood: Skov
+          wood: Træ
+          farmland: Landbrugsjord
+          grass: Græs
+          meadow: Eng
+          bare_rock: Blottet klippe
+          sand: Sand
           golf: Golfbane
           park: Park
+          common: Fælled
+          built_up: Bebygget område
           resident: Boligområde
-          common:
-          - Fælled
-          - eng
-          - have
           retail: Detailhandelsområde
           industrial: Industriområde
           commercial: Erhvervsområde
           heathland: Hede
-          lake:
-          - Sø
-          - reservoir
+          scrubland: Buskads
+          lake: Sø
+          reservoir: Reservoir
+          intermittent_water: Periodisk vandmasse
+          glacier: Gletsjer
+          reef: Rev
+          wetland: Vådområde
           farm: Gård
           brownfield: Tidligere industriområde
           cemetery: Begravelsesplads
@@ -2368,19 +2402,20 @@ da:
           centre: Sportscenter
           reserve: Naturreservat
           military: Militært område
-          school:
-          - Skole
-          - universitet
+          school: Skole
+          university: Universitet
+          hospital: Sygehus
           building: Vigtig bygning
           station: Togstation
-          summit:
-          - Bjergtop
-          - højdepunkt
+          summit: Bjergtop
+          peak: Højdepunkt
           tunnel: Stiplet kant = tunnel
           bridge: Sort kant = bro
           private: Privat adgang
           destination: Ærindekørsel tilladt
           construction: Veje under konstruktion
+          bus_stop: Busstop
+          stop: Stop
           bicycle_shop: Cykelhandler
           bicycle_parking: Cykelparkering
           toilets: Toiletter
@@ -2425,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
@@ -2582,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
@@ -2618,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:
@@ -2789,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
@@ -2809,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
@@ -2929,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å.
@@ -2987,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}
@@ -3023,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 7dbbc0465bf86443eb8eb370cdf65938f58d3012..ab879429d350658fd5fa210ef31fe3011cdff556 100644 (file)
@@ -16,6 +16,7 @@
 # Author: Bxalber
 # Author: Campmaster
 # Author: Candid Dauth
+# Author: Caro
 # Author: CarstenG
 # Author: ChrisiPK
 # Author: ChristianSW
@@ -96,7 +97,9 @@
 # Author: The Evil IP address
 # Author: ThePiscin
 # Author: Thomas Bohn
+# Author: Til
 # Author: Timonade
+# Author: Twistqj
 # Author: Umherirrender
 # Author: Unkn0wnCat
 # Author: Vrifox
@@ -143,6 +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
@@ -1556,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
@@ -1850,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'
@@ -1859,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
@@ -1884,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
@@ -1910,13 +1911,16 @@ 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
     destroy:
       destroyed: Nachricht gelöscht
   passwords:
-    lost_password:
+    new:
       title: Passwort vergessen
       heading: Passwort vergessen?
       email address: 'E-Mail-Adresse:'
@@ -1924,17 +1928,19 @@ de:
       help_text: Bitte gib deine E-Mail-Adresse ein, mit der du dich angemeldet hast.
         Wir werden dir dann einen Link schicken, mit dem du dein Passwort zurücksetzen
         kannst.
+    create:
       notice email on way: Eine E-Mail mit Hinweisen zum Zurücksetzen des Passworts
         wurde an dich versandt.
       notice email cannot find: Wir konnten die E-Mail-Adresse nicht finden. Du hast
         dich möglicherweise vertippt oder mit einer anderen E-Mail-Adresse angemeldet.
-    reset_password:
+    edit:
       title: Passwort zurücksetzen
       heading: Passwort für %{user} zurücksetzen
       reset: Passwort zurücksetzen
-      flash changed: Dein Passwort wurde geändert.
       flash token bad: Wir konnten dieses Kürzel leider nicht finden. Du hast dich
         möglicherweise vertippt oder du bist einem ungültigem Link gefolgt.
+    update:
+      flash changed: Dein Passwort wurde geändert.
   preferences:
     show:
       title: Benutzereinstellungen
@@ -2400,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
@@ -2409,35 +2416,25 @@ de:
           footway: Fußweg
           rail: Eisenbahn
           subway: U-Bahn
-          tram:
-          - Stadtbahn
-          - Straßenbahn
-          cable:
-          - Seilbahn
-          - Sessellift
-          runway:
-          - Start- und Landebahn
-          - Rollbahn
-          apron:
-          - Flughafenvorfeld
-          - Terminal
+          cable_car: Seilbahn
+          chair_lift: Sessellift
+          runway: Start- und Landebahn
+          taxiway: Rollbahn
+          apron: Flughafenvorfeld
           admin: Landesgrenzen, sonstige Grenzen
           forest: Wald
           wood: Wald
           golf: Golfplatz
           park: Park
+          common: öffentliche Grünfläche (brit.)
           resident: Wohngebiet
-          common:
-          - öffentliche Grünfläche (brit.)
-          - Wiese
-          - Garten
           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
@@ -2446,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
@@ -2809,9 +2804,9 @@ de:
       title: Bedingungen
       heading: Bedingungen
       heading_ct: Bedingungen für Mitwirkende
-      read and accept with tou: Lese bitte die Bedingungen für Mitwirkende, wie auch
-        unsere Nutzngsbedingungen und bestätige dies jeweils mit einem Häkchen und
-        klicke dann auf den "Weiter"-Knopf.
+      read and accept with tou: Lies bitte die Bedingungen für Mitwirkende und die
+        Nutzungsbedingungen, bestätige dies jeweils mit einem Häkchen und klicke dann
+        auf den "Weiter"-Knopf.
       contributor_terms_explain: Diese Vereinbarung definiert die Bedingungen für
         deine bestehenden und zukünftigen Beiträge.
       read_ct: Ich habe obige Bedingungen für Mitwirkende gelesen und stimme ihnen
index 0081b009abf0a2cb306d4c25da02ac42f2126dcf..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,13 +824,15 @@ diq:
       back: Peyser
     sent_message_summary:
       destroy_button: Bestere
+    heading:
+      my_inbox: Amayenê mı
   passwords:
-    lost_password:
+    new:
       title: Parolaya vınibyayi
       heading: To parola ke xo vira?
       email address: 'Adresa e-postey:'
       new password button: Parola reset ke
-    reset_password:
+    edit:
       title: Parola reset ke
       heading: Parolay %{user} reset ke
       reset: Parola reset ke
@@ -910,25 +910,19 @@ diq:
           track: Raya Herın
           bridleway: Raya Ancınıştan
           cycleway: Raya Bisiklet
-          apron:
-            1: terminal
           forest: Mêşe
           wood: Meşe
           golf: Saxay Golfi
           park: Perk
-          common:
-          - Çimen
-          lake:
-          - Gol
+          common: Çimen
+          lake: Gol
           farm: Cıtinin
           cemetery: Mezlaser
           allotments: Bostan
-          school:
-          - Wendxane
-          - Uniwersita
-          summit:
-          - Sersıq
-          - Ko
+          school: Wendxane
+          university: Uniwersita
+          summit: Sersıq
+          peak: Ko
     welcome:
       title: Xeyr amey!
   traces:
index 6c054f3383b3b4bf4ca0e863794b7156f366bb9a..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,28 +1050,32 @@ dsb:
         se ako korektny wužywaŕ, aby ju cytał.
     sent_message_summary:
       destroy_button: Lašowaś
+    heading:
+      my_inbox: Mój post
     mark:
       as_read: Powěsć jo se markěrowała ako pśecytana
       as_unread: Powěsć jo se markěrowała ako njepśecytana
     destroy:
       destroyed: Powěsć wulašowana
   passwords:
-    lost_password:
+    new:
       title: Zabyte gronidło
       heading: Sy gronidło zabył?
       email address: 'E-mailowa adresa:'
       new password button: Gronidło slědk stajiś
       help_text: Zapódaj e-mailowu adresu, kótaruž sy za registrěrowanje wužył, pósćelomy
         wótkaz na nju, kótaryž móžoš wužywaś, aby swójo gronidło slědk stajił.
+    create:
       notice email on way: Bóžko sy jo zabył :-(, ale e-mail jo k tebje ducy, tak
         až móžoš jo skóro slědk stajiś.
       notice email cannot find: Bóžko ta e-mailowa adresa njejo se namakała.
-    reset_password:
+    edit:
       title: Gronidło slědk stajiś
       heading: Gronidło za %{user} slědk stajiś
       reset: Gronidło slědk stajiś
-      flash changed: Twójo gronidło jo se změniło.
       flash token bad: Njejo móžno było ten token namakaś, pšosym pśekontrolěruj URL.
+    update:
+      flash changed: Twójo gronidło jo se změniło.
   profiles:
     edit:
       image: 'Wobraz:'
@@ -1265,34 +1267,24 @@ dsb:
           footway: Drožka
           rail: Zeleznica
           subway: Pódzemska
-          tram:
-          - Měsćańska zeleznica
-          - elektriska
-          cable:
-          - Kablowa elektriska
-          - sedłowy lift
-          runway:
-          - Pśizemjeńska cera
-          - lětadłowa cera
-          apron:
-          - Pśedpólo lětanišća
-          - terminal
+          cable_car: Kablowa elektriska
+          chair_lift: sedłowy lift
+          runway: Pśizemjeńska cera
+          taxiway: lětadłowa cera
+          apron: Pśedpólo lětanišća
           admin: Zastojnstwowa granica
           forest: Góla
           wood: Lěs
           golf: Golfowišćo
           park: Park
+          common: Powšykny
           resident: Bydleński wobcerk
-          common:
-          - Powšykny
-          - łuka
           retail: Nakupowanišćo
           industrial: Industrijowy wobcerk
           commercial: Źěłarstwowy wobcerk
           heathland: Wrjosate strony
-          lake:
-          - Jazor
-          - gaśeński jazor
+          lake: Jazor
+          reservoir: gaśeński jazor
           farm: Farma
           brownfield: Industrijowe lědo
           cemetery: Kjarchob
@@ -1301,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 ea8f011e9ebbffc12f63a38e33a716e8b8f0f6d7..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: Ομάδα αλλαγών
@@ -201,7 +207,7 @@ el:
           γι' αυτό προσπαθήστε να χρησιμοποιήσετε απλούς και κατανοητούς όρους.
         needs_view: Πρέπει ο χρήστης να συνδεθεί προτού εκκαθαριστεί αυτή η φραγή;
       user:
-        new_email: (να Î¼Î·ν εμφανίζεται ποτέ δημόσια)
+        new_email: (δεν εμφανίζεται ποτέ δημόσια)
   datetime:
     distance_in_words_ago:
       about_x_hours:
@@ -499,7 +505,7 @@ el:
       area: Περιοχή
     index:
       title: Αλλαγές
-      title_user: Αλλαγές από τον %{user}
+      title_user: Αλλαγές από %{user}
       title_user_link_html: Ομάδες αλλαγών από %{user_link}
       title_friend: Αλλαγές από τους φίλους μου
       title_nearby: Αλλαγές από κοντινούς χρήστες
@@ -558,7 +564,7 @@ el:
       title: Ημερολόγια χρηστών
       title_friends: Ημερολόγια φίλων
       title_nearby: Ημερολόγια κοντινών χρηστών
-      user_title: Ημερολόγιο του/των %{user}
+      user_title: Ημερολόγιο του χρήστη %{user}
       in_language_title: Καταχωρήσεις ημερολογίων στα %{language}
       new: Νέα καταχώρηση ημερολογίου
       new_title: Σύνταξη νέας καταχώρησης στο ημερολόγιό μου
@@ -571,8 +577,8 @@ el:
       title: Επεξεργασία καταχώρισης ημερολογίου
       marker_text: Τοποθεσία καταχώρησης ημερολογίου
     show:
-      title: το ημερολόγιο του %{user} | %{title}
-      user_title: το ημερολόγιο του %{user}
+      title: Ημερολόγιο του χρήστη %{user} | %{title}
+      user_title: Ημερολόγιο του χρήστη %{user}
       leave_a_comment: Αφήστε σχόλιο
       login_to_leave_a_comment_html: '%{login_link} για να αφήσετε ένα σχόλιο'
       login: Συνδεθείτε
@@ -583,7 +589,8 @@ el:
         %{id}. Είναι πιθανό να υπάρχουν ορθογραφικά λάθη ή να είναι λάθος ο σύνδεσμος
         μέσω του οποίου φτάσατε σε αυτήν την σελίδα.
     diary_entry:
-      posted_by_html: Δημοσιεύτηκε από τον %{link_user} στις %{created} στα %{language_link}.
+      posted_by_html: Δημοσιεύτηκε από τον χρήστη %{link_user} στις %{created} στα
+        %{language_link}.
       updated_at_html: Τελευταία ενημέρωση στις %{updated}.
       comment_link: Σχολιάστε την καταχώρηση
       reply_link: Αποστολή μηνύματος στον συγγραφέα
@@ -597,7 +604,7 @@ el:
       confirm: Επιβεβαίωση
       report: Αναφορά καταχώρησης
     diary_comment:
-      comment_from_html: Σχόλιο από τον %{link_user} στις %{comment_created_at}
+      comment_from_html: Σχόλιο από τον χρήστη %{link_user} στις %{comment_created_at}
       hide_link: Απόκρυψη σχολίου
       unhide_link: Επανεμφάνιση σχολίου
       confirm: Επιβεβαίωση
@@ -618,9 +625,9 @@ el:
         title: Καταχωρήσεις ημερολογίου OpenStreetMap
         description: Πρόσφατες καταχωρήσεις ημερολογίου από χρήστες του OpenStreetMap
     comments:
-      title: Î Ï\81οÏ\83Ï\84έθηκαν Ï\83Ï\87Ï\8cλια Î·Î¼ÎµÏ\81ολογίοÏ\85 από τον χρήστη %{user}
+      title: Î£Ï\87Ï\8cλια Î·Î¼ÎµÏ\81ολογίοÏ\85 Ï\80οÏ\85 Ï\80Ï\81οÏ\83Ï\84έθηκαν από τον χρήστη %{user}
       heading: Σχόλια Ημερολογίου %{user}
-      subheading_html: Î Ï\81οÏ\83Ï\84έθηκαν Ï\83Ï\87Ï\8cλια Î·Î¼ÎµÏ\81ολογίοÏ\85 από τον χρήστη %{user}
+      subheading_html: Î£Ï\87Ï\8cλια Î·Î¼ÎµÏ\81ολογίοÏ\85 Ï\80οÏ\85 Ï\80Ï\81οÏ\83Ï\84έθηκαν από τον χρήστη %{user}
       no_comments: Χωρίς σχόλια ημερολογίου
       post: Καταχώρηση
       when: Πότε
@@ -1513,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: Ξανάνοιγμα
@@ -1806,8 +1814,6 @@ el:
   messages:
     inbox:
       title: Εισερχόμενα
-      my_inbox: Τα εισερχόμενα μου
-      my_outbox: Τα εξερχόμενα μου
       messages: Έχετε %{new_messages} και %{old_messages}
       new_messages:
         one: '%{count} νέο μήνυμα'
@@ -1815,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}
@@ -1840,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}» αλλά το μήνυμα που ζητάτε να απαντήσετε
         δεν έχει σταλεί σε αυτόν το χρήστη. Παρακαλούμε συνδεθείτε με το σωστό όνομα
@@ -1866,13 +1877,20 @@ el:
         χρήστη ώστε να μπορέσετε να το διαβάσετε.
     sent_message_summary:
       destroy_button: Διαγραφή
+    heading:
+      my_inbox: Τα εισερχόμενα μου
+      my_outbox: Τα εξερχόμενα μου
+      muted_messages: Μηνύματα σε Σίγαση
     mark:
       as_read: Το μήνυμα σημειώθηκε ως αναγνωσμένο
       as_unread: Το μήνυμα σημειώθηκε ως μη αναγνωσμένο
+    unmute:
+      notice: Το μήνυμα μετακινήθηκε στα Εισερχόμενα
+      error: Δεν ήταν δυνατή η μετακίνηση του μηνύματος στα Εισερχόμενα.
     destroy:
       destroyed: Το μήνυμα διαγράφηκε
   passwords:
-    lost_password:
+    new:
       title: Χάσατε το συνθηματικό σας
       heading: Ξεχάσατε το συνθηματικό σας;
       email address: 'Διεύθυνση ηλεκτρονικού ταχυδρομείου:'
@@ -1880,16 +1898,19 @@ el:
       help_text: Πληκτρολογήστε τη διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιήσατε
         για να εγγραφείτε. Θα στείλουμε έναν σύνδεσμο τον οποίον μπορείτε να χρησιμοποιήσετε
         για να επαναφέρετε το συνθηματικό σας.
+    create:
       notice email on way: Λυπούμαστε που το χάσατε :-(, αλλά ένα μήνυμα ηλεκτρονικού
         ταχυδρομείου εστάλη, ώστε να μπορέσετε να το επαναφέρετε σύντομα.
       notice email cannot find: Λυπούμαστε, δεν βρέθηκε αυτή η διεύθυνση ηλεκτρονικού
         ταχυδρομείου.
-    reset_password:
+    edit:
       title: Επαναφορά συνθηματικού
       heading: Επαναφορά συνθηματικού για τον χρήστη %{user}
       reset: Επαναφορά συνθηματικού
-      flash changed: Το συνθηματικό σας άλλαξε!
       flash token bad: Δεν βρήκατε αυτό το κομμάτι, μήπως πρέπει να ελέγξετε το URL;
+    update:
+      flash changed: Το συνθηματικό σας άλλαξε!
+      flash token bad: Δεν βρέθηκε αυτό το token, ελέγξτε ίσως τη διεύθυνση URL;
   preferences:
     show:
       title: Οι προτιμήσεις μου
@@ -1982,9 +2003,9 @@ el:
       support: υποστήριξη
   shared:
     markdown_help:
-      heading_html: Î\91ναλÏ\8dθηκε με %{kramdown_link}
+      heading_html: Î\91ναλÏ\85μμένο με %{kramdown_link}
       headings: Επικεφαλίδες
-      heading: Î\9aαφαλίδα
+      heading: Î\9aεφαλίδα
       subheading: Υποκεφαλίδα
       unordered: Αταξινόμητη λίστα
       ordered: Ταξινομημένη λίστα
@@ -1995,6 +2016,7 @@ el:
       image: Εικόνα
       alt: Εναλ. κείμενο
       url: URL
+      codeblock: Μπλοκ κώδικα
     richtext_field:
       edit: Επεξεργασία
       preview: Προεπισκόπηση
@@ -2039,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:
@@ -2063,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
@@ -2146,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, παρέχει
@@ -2162,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
@@ -2328,44 +2361,51 @@ el:
           primary: Κύρια Οδός
           secondary: Δευτερεύουσα Οδός
           unclassified: Αταξινόμητη Οδός
+          pedestrian: Πεζόδρομος
           track: Αγροτικός / Δασικός δρόμος
           bridleway: Μονοπάτι για Άλογα
           cycleway: Ποδηλατόδρομος
           cycleway_national: Εθνικός ποδηλατόδρομος
           cycleway_regional: Περιφερειακός ποδηλατόδρομος
           cycleway_local: Τοπικός ποδηλατόδρομος
+          cycleway_mtb: Ορεινή ποδηλατική διαδρομή
           footway: Μονοπάτι
           rail: Σιδηρόδρομος
+          train: Τρένο
           subway: Υπόγειος Σιδηρόδρομος
-          tram:
-          - Προαστιακός
-          - τραμ
-          cable:
-          - Τελεφερίκ
-          - τελεφερίκ με καθίσματα
-          runway:
-          - Διάδρομος Αεροδρομίου
-          - τροχόδρομος
-          apron:
-          - Πίστα προσγείωσης αεροδρομίου
-          - τερματικός σταθμός
+          ferry: Πορθμείο
+          light_rail: Ελαφρύς σιδηρόδρομος
+          tram: Τραμ
+          trolleybus: Τρόλεϊ
+          bus: Λεωφορείο
+          cable_car: Τελεφερίκ
+          chair_lift: Αναβατήρας
+          runway: Διάδρομος Αεροδρομίου
+          taxiway: Τροχόδρομος
+          apron: Πίστα προσγείωσης αεροδρομίου
           admin: Διοικητικό όριο
+          capital: Πρωτεύουσα
+          city: Πόλη
+          vineyard: Αμπελώνας
           forest: Δάσος
           wood: Φυσικό δάσος
+          grass: Γρασίδι
+          meadow: Λιβάδι
+          bare_rock: Γυμνός βράχος
+          sand: Άμμος
           golf: Γήπεδο γκολφ
           park: Πάρκο
+          common: Κοινόχρηστο
+          built_up: Δομημένη περιοχή
           resident: Κατοικημένη περιοχή
-          common:
-          - Κοινόχρηστο
-          - λιβάδι
-          - κήπος
           retail: Περιοχή λιανικού εμπορίου
           industrial: Βιομηχανική περιοχή
           commercial: Εμπορική περιοχή
           heathland: Φρυγανότοπος
-          lake:
-          - Λίμνη
-          - ταμιευτήρας
+          lake: Λίμνη
+          reservoir: Ταμιευτήρας
+          glacier: Παγετώνας
+          reef: Ύφαλος
           farm: Αγρόκτημα
           brownfield: Πρώην βιομηχανική περιοχή
           cemetery: Κοιμητήριο
@@ -2374,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: Τουαλέτες
@@ -2434,6 +2475,7 @@ el:
         imports: Εισαγωγές
         automated_edits: Αυτοματοποιημένες Επεξεργασίες
       start_mapping: Ξεκινήστε τη Χαρτογράφηση
+      continue_authorization: Συνέχιση Εξουσιοδότησης
       add_a_note:
         title: Δεν έχετε χρόνο για χαρτογράφηση; Προσθέστε μια σημείωση!
         para_1: Εάν θέλετε κάτι μικρό να διορθωθεί και δεν έχετε χρόνο να εγγραφείτε
@@ -2542,7 +2584,7 @@ el:
       my_gps_traces: Τα ίχνη GPS μου
       public_traces_from: Δημόσια ίχνη GPS από τον %{user}
       description: Προβολή πρόσφατων μεταφορτωμένων ιχνών GPS
-      tagged_with: χαρακτηρίστηκαν με %{tags}
+      tagged_with: ' με ετικέτα %{tags}'
       empty_title: Τίποτα εδώ ακόμα
       empty_upload_html: '%{upload_link} ή μάθετε περισσότερα για την ανίχνευση GPS
         στο %{wiki_link}.'
@@ -2592,6 +2634,7 @@ el:
       oauth1_settings: Ρυθμίσεις OAuth 1
       oauth2_applications: Εφαρμογές OAuth 2
       oauth2_authorizations: Εξουσιοδοτήσεις OAuth 2
+      muted_users: Χρήστες σε Σίγαση
   oauth:
     authorize:
       title: Επιτρέψτε την πρόσβαση στο λογαριασμό σας
@@ -2631,6 +2674,7 @@ el:
       read_gpx: Ανάγνωση προσωπικών ιχνών GPS
       write_gpx: Μεταφόρτωση ιχνών GPS
       write_notes: Τροποποίηση σημειώσεων
+      write_redactions: Αφαίρεση και απόκρυψη δεδομένων χάρτη
       read_email: Διαβάζει τη διεύθυνση email χρήστη
       skip_authorization: Αυτόματη έγκριση εφαρμογής
   oauth_clients:
@@ -2717,9 +2761,10 @@ el:
   oauth2_authorized_applications:
     index:
       title: Οι Εξουσιοδοτημένες Εφαρμογές μου
-      application: Î\95Ï\86αÏ\81μογέÏ\82
+      application: Î\95Ï\86αÏ\81μογή
       permissions: Άδειες
       no_applications_html: Δεν έχετε εξουσιοδοτήσει ακόμη %{oauth2} εφαρμογές.
+      oauth_2: OAuth 2
     application:
       revoke: Ανάκληση πρόσβασης
       confirm_revoke: Ανάκληση πρόσβασης για αυτήν την εφαρμογή;
@@ -2806,6 +2851,8 @@ el:
       my_dashboard: Το ταμπλό μου
       blocks on me: Φραγές σε Εμένα
       blocks by me: Φραγές από Εμένα
+      create_mute: Σίγαση αυτού του χρήστη
+      destroy_mute: Κατάργηση σίγασης αυτού του χρήστη
       edit_profile: Επεξεργασία προφίλ
       send message: Αποστολή Μηνύματος
       diary: Ημερολόγιο
@@ -2837,6 +2884,7 @@ el:
           importer: Ανάκληση πρόσβασης εισαγωγέα
       block_history: Ενεργές Φραγές
       moderator_history: Φραγές που Επιβλήθηκαν
+      revoke_all_blocks: Ανάκληση όλων των φραγών
       comments: Σχόλια
       create_block: Φραγή αυτού του Χρήστη
       activate_user: Ενεργοποίηση αυτού του λογαριασμού Χρήστη
@@ -2950,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: Ενεργό έως ότου ο χρήστης συνδεθεί.
@@ -3008,11 +3066,36 @@ el:
       showing_page: Σελίδα %{page}
       next: Επόμενη »
       previous: « Προηγούμενη
+  user_mutes:
+    index:
+      title: Χρήστες σε Σίγαση
+      my_muted_users: Οι χρήστες μου σε σίγαση
+      you_have_muted_n_users:
+        one: Έχετε θέσει σε σίγαση %{count} χρήστη
+        other: Έχετε θέσει σε σίγαση %{count} χρήστες
+      user_mute_explainer: Τα μηνύματα των χρηστών σε σίγαση μετακινούνται σε ξεχωριστά
+        Εισερχόμενα και δεν θα λαμβάνετε ειδοποιήσεις μέσω email.
+      user_mute_admins_and_moderators: Μπορείτε να θέσετε σε σίγαση τους Διαχειριστές
+        και τους Συντονιστές αλλά δεν θα γίνει σίγαση των μηνυμάτων τους.
+      table:
+        thead:
+          muted_user: Χρήστης σε Σίγαση
+          actions: Ενέργειες
+        tbody:
+          unmute: Κατάργηση σίγασης
+          send_message: Αποστολή μηνύματος
+    create:
+      notice: Θέσατε σε σίγαση τον χρήστη %{name}.
+      error: Ο χρήστης %{name} δεν μπόρεσε να τεθεί σε σίγαση. %{full_message}.
+    destroy:
+      notice: Καταργήσατε τη σίγαση του χρήστη %{name}.
+      error: Δεν ήταν δυνατή η κατάργηση της σίγασης του χρήστη. Παρακαλούμε προσπαθήστε
+        ξανά.
   notes:
     index:
-      title: Σημειώσεις που υποβλήθηκαν ή σχολιάστηκαν από τον %{user}
-      heading: σημειώσεις του %{user}
-      subheading_html: Σημειώσεις που %{submitted} ή %{commented} από τον %{user}
+      title: Σημειώσεις που υποβλήθηκαν ή σχολιάστηκαν από τον χρήστη %{user}
+      heading: Σημειώσεις του χρήστη %{user}
+      subheading_html: Σημειώσεις που %{submitted} ή %{commented} από τον χρήστη %{user}
       subheading_submitted: υποβλήθηκε
       subheading_commented: σχολιάστηκε
       no_notes: Χωρίς σημειώσεις
@@ -3044,6 +3127,7 @@ el:
       reactivate: Επανενεργοποίηση
       comment_and_resolve: Σχολιάστε και Επιλύστε
       comment: Σχολιάζω
+      log_in_to_comment: Συνδεθείτε για να σχολιάσετε σε αυτή την σημείωση
       report_link_html: Εάν αυτή η σημείωση περιέχει ευαίσθητες πληροφορίες που πρέπει
         να αφαιρεθούν, μπορείτε %{link}.
       other_problems_resolve: Για όλα τα άλλα προβλήματα με τη σημείωση, επιλύστε
index 5858dd57c7aa018d2760f847d7d9f9721f00da4e..5eefc686ff0ae2d0a1158e44a223fa3af50e0f8a 100644 (file)
@@ -5,6 +5,7 @@
 # Author: Alefar
 # Author: Andibing
 # Author: BEANS
+# Author: Back ache
 # Author: Bjh21
 # Author: Bpfhjquevaps
 # Author: Bruce89
@@ -507,6 +508,14 @@ en-GB:
       comment: Comment
       newer_comments: Newer Comments
       older_comments: Older Comments
+  doorkeeper:
+    errors:
+      messages:
+        account_selection_required: The authorisation server requires end-user account
+          selection
+        consent_required: The authorisation server requires end-user consent
+        interaction_required: The authorisation server requires end-user interaction
+        login_required: The authorisation server requires end-user authentication
   friendships:
     make_friend:
       heading: Add %{user} as a friend?
@@ -1265,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'
@@ -1273,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
@@ -1301,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
@@ -1322,28 +1329,32 @@ en-GB:
         order to read it.
     sent_message_summary:
       destroy_button: Delete
+    heading:
+      my_inbox: My Inbox
     mark:
       as_read: Message marked as read
       as_unread: Message marked as unread
     destroy:
       destroyed: Message deleted
   passwords:
-    lost_password:
+    new:
       title: Lost password
       heading: Forgotten Password?
       email address: E-mail address
       new password button: Reset password
       help_text: Enter the e-mail address you used to sign up, we will send a link
         to it that you can use to reset your password.
+    create:
       notice email on way: Sorry you lost it :-( but an email is on its way so you
         can reset it soon.
       notice email cannot find: Could not find that email address, sorry.
-    reset_password:
+    edit:
       title: Reset password
       heading: Reset Password for %{user}
       reset: Reset Password
-      flash changed: Your password has been changed.
       flash token bad: Did not find that token, check the URL maybe?
+    update:
+      flash changed: Your password has been changed.
   profiles:
     edit:
       image: Image
@@ -1584,34 +1595,24 @@ en-GB:
           footway: Footway
           rail: Railway
           subway: Subway
-          tram:
-          - Light rail
-          - tram
-          cable:
-          - Cable car
-          - chairlift
-          runway:
-          - Airport Runway
-          - taxiway
-          apron:
-          - Airport apron
-          - terminal
+          cable_car: Cable car
+          chair_lift: chairlift
+          runway: Airport Runway
+          taxiway: taxiway
+          apron: Airport apron
           admin: Administrative boundary
           forest: Forest
           wood: Wood
           golf: Golf course
           park: Park
+          common: Common
           resident: Residential area
-          common:
-          - Common
-          - meadow
           retail: Retail area
           industrial: Industrial area
           commercial: Commercial area
           heathland: Heathland
-          lake:
-          - Lake
-          - reservoir
+          lake: Lake
+          reservoir: reservoir
           farm: Farm
           brownfield: Brownfield site
           cemetery: Cemetery
@@ -1620,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 31563243ad0f209cfa4027c28e6af392ad39ce51..653e363a67bcfb6d39927c5df0c99457a4e09192 100644 (file)
@@ -40,6 +40,12 @@ en:
       messages:
         invalid_email_address: does not appear to be a valid e-mail address
         email_address_not_routable: is not routable
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: "%{message}"
+          is_already_muted: "is already muted"
     # Translates all the model names, which is used in error handling on the website
     models:
       acl: "Access Control List"
@@ -1433,9 +1439,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
@@ -1584,6 +1590,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"
@@ -1673,8 +1680,6 @@ en:
   messages:
     inbox:
       title: "Inbox"
-      my_inbox: "My Inbox"
-      my_outbox: "My Outbox"
       messages: "You have %{new_messages} and %{old_messages}"
       new_messages:
         one: "%{count} new message"
@@ -1682,16 +1687,20 @@ en:
       old_messages:
         one: "%{count} old message"
         other: "%{count} old messages"
+      no_messages_yet_html: "You have no messages yet. Why not get in touch with some of the %{people_mapping_nearby_link}?"
+      people_mapping_nearby: "people mapping nearby"
+    messages_table:
       from: "From"
+      to: "To"
       subject: "Subject"
       date: "Date"
-      no_messages_yet_html: "You have no messages yet. Why not get in touch with some of the %{people_mapping_nearby_link}?"
-      people_mapping_nearby: "people mapping nearby"
+      actions: "Actions"
     message_summary:
       unread_button: "Mark as unread"
       read_button: "Mark as read"
       reply_button: "Reply"
       destroy_button: "Delete"
+      unmute_button: "Move to Inbox"
     new:
       title: "Send message"
       send_message_to_html: "Send a new message to %{name}"
@@ -1705,16 +1714,17 @@ en:
       body: "Sorry there is no message with that id."
     outbox:
       title: "Outbox"
-      my_inbox: "My Inbox"
-      my_outbox: "My Outbox"
+      actions: "Actions"
       messages:
         one: "You have %{count} sent message"
         other: "You have %{count} sent messages"
-      to: "To"
-      subject: "Subject"
-      date: "Date"
       no_sent_messages_html: "You have no sent messages yet. Why not get in touch with some of the %{people_mapping_nearby_link}?"
       people_mapping_nearby: "people mapping nearby"
+    muted:
+      title: "Muted Messages"
+      messages:
+        one: "%{count} muted message"
+        other: "You have %{count} muted messages"
     reply:
       wrong_user: "You are logged in as `%{user}' but the message you have asked to reply to was not sent to that user. Please login as the correct user in order to reply."
     show:
@@ -1726,9 +1736,16 @@ en:
       wrong_user: "You are logged in as `%{user}' but the message you have asked to read was not sent by or to that user. Please login as the correct user in order to read it."
     sent_message_summary:
       destroy_button: "Delete"
+    heading: 
+      my_inbox: "My Inbox"
+      my_outbox: "My Outbox"
+      muted_messages: "Muted messages"
     mark:
       as_read: "Message marked as read"
       as_unread: "Message marked as unread"
+    unmute:
+      notice: "Message has been moved to Inbox"
+      error: "The message could not be moved to the Inbox."
     destroy:
       destroyed: "Message deleted"
   passwords:
@@ -1854,6 +1871,7 @@ en:
       image: Image
       alt: Alt text
       url: URL
+      codeblock: Code block
     richtext_field:
       edit: Edit
       preview: Preview
@@ -2282,49 +2300,43 @@ en:
           primary: "Primary road"
           secondary: "Secondary road"
           unclassified: "Unclassified road"
+          pedestrian: "Pedestrian way"
           track: "Track"
           bridleway: "Bridleway"
           cycleway: "Cycleway"
           cycleway_national: "National cycleway"
           cycleway_regional: "Regional cycleway"
           cycleway_local: "Local cycleway"
+          cycleway_mtb: "Mountain bike route"
           footway: "Footway"
           rail: "Railway"
           train: "Train"
           subway: "Subway"
           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:
-            - Airport apron
-            - terminal
+          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"
@@ -2332,9 +2344,8 @@ en:
           commercial: "Commercial area"
           heathland: "Heathland"
           scrubland: "Scrubland"
-          lake:
-            - Lake
-            - reservoir
+          lake: "Lake"
+          reservoir: "Reservoir"
           intermittent_water: "Intermittent waterbody"
           glacier: "Glacier"
           reef: "Reef"
@@ -2345,17 +2356,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"
@@ -2364,7 +2374,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!
@@ -2559,6 +2571,7 @@ en:
       oauth1_settings: OAuth 1 settings
       oauth2_applications: OAuth 2 applications
       oauth2_authorizations: OAuth 2 authorizations
+      muted_users: Muted Users
   oauth:
     authorize:
       title: "Authorize access to your account"
@@ -2593,6 +2606,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:
@@ -2677,6 +2691,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?"
@@ -2746,6 +2761,8 @@ en:
       my_dashboard: My Dashboard
       blocks on me: Blocks on Me
       blocks by me: Blocks by Me
+      create_mute: Mute this User
+      destroy_mute: Unmute this User
       edit_profile: Edit Profile
       send message: Send Message
       diary: Diary
@@ -2777,6 +2794,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"
@@ -2879,6 +2897,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."
@@ -2936,6 +2964,29 @@ en:
       showing_page: "Page %{page}"
       next: "Next »"
       previous: "« Previous"
+  user_mutes:
+    index:
+      title: "Muted Users"
+      my_muted_users: "My muted users"
+      you_have_muted_n_users:
+        one: "You have muted %{count} User"
+        other: "You have muted %{count} users"
+      user_mute_explainer: "Messages of muted users are moved into a separate Inbox and you won't receive email notifications."
+      user_mute_admins_and_moderators: "You can mute Admins and Moderators but their messages will not be muted."
+      table:
+        thead:
+          muted_user: "Muted User"
+          actions: "Actions"
+        tbody:
+          unmute: "Unmute"
+          send_message: "Send message"
+
+    create:
+      notice: "You muted %{name}."
+      error: "%{name} could not be muted. %{full_message}."
+    destroy:
+      notice: "You unmuted %{name}."
+      error: "User could not be unmuted. Please try again."
   notes:
     index:
       title: "Notes submitted or commented on by %{user}"
@@ -2972,6 +3023,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 b9b108e17592edb8e9ded772e000064a6b1fc995..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,28 +1815,38 @@ eo:
         legi ĝin.
     sent_message_summary:
       destroy_button: Forigi
+    heading:
+      my_inbox: Ricevujo
+      my_outbox: Senditujo
+      muted_messages: Silentigitaj mesaĝoj
     mark:
       as_read: Mesaĝo markita kiel legitan
       as_unread: Mesaĝo markita kiel nelegitan
+    unmute:
+      notice: Movis mesaĝon al ricevujo
+      error: La mesaĝo ne povis esti movita al la ricevujo.
     destroy:
       destroyed: Mesaĝo forigita
   passwords:
-    lost_password:
+    new:
       title: Perdita pasvorto
       heading: Forgesis vian pasvorton ?
       email address: 'Retpoŝtadreso:'
       new password button: Nuligi pasvorton
       help_text: Entajpu la retpoŝtan adreson kiun vi uzis por ensaluto, ni sendos
         al vi ligilon, kiun vi povos uzi por restarigi vian pasvorton.
+    create:
       notice email on way: Bedaŭras, ke vi perdis ĝin :-( sed baldaŭ vi ricevos retleteron,
         kiun vi uzos por restarigi ĝin.
       notice email cannot find: Bedaŭrinde, tiu retadreso ne troveblas.
-    reset_password:
+    edit:
       title: Nuligi pasvorton
       heading: Nuligi Pasvorton por %{user}
       reset: Nuligi pasvorton
-      flash changed: Via pasvorto estis ŝanĝita.
       flash token bad: Netrovebla ĵetono, bonvolu kontroli la URLon.
+    update:
+      flash changed: Via pasvorto estis ŝanĝita.
+      flash token bad: Ne povas trovi ĵetonon. Provu kontroli la retadreson.
   preferences:
     show:
       title: Miaj preferoj
@@ -1931,6 +1951,7 @@ eo:
       image: Bildo
       alt: Kromteksto
       url: Retadreso
+      codeblock: Bloko de kodo
     richtext_field:
       edit: Redakti
       preview: Antaŭvidi
@@ -2295,44 +2316,56 @@ eo:
           primary: Vojo unua-ranga
           secondary: Vojo dua-ranga
           unclassified: Vojo kvara-ranga
+          pedestrian: Piedirada strato
           track: Vojo kampa
           bridleway: Ĉevalvojo
           cycleway: Bicikla vojo
-          cycleway_national: Bicikla vojo ŝtata
-          cycleway_regional: Bicikla vojo regiona
-          cycleway_local: Bicikla vojo loka
+          cycleway_national: Bicikla kurso ŝtata
+          cycleway_regional: Bicikla kurso regiona
+          cycleway_local: Bicikla kurso loka
+          cycleway_mtb: Montbicikla kurso
           footway: Trotuaro
           rail: Fervojo
+          train: Vagonaro
           subway: Metroo
-          tram:
-          - Fervojo malpeza
-          - tramo
-          cable:
-          - Kablovojo
-          - seĝtelfero
-          runway:
-          - Avia dromo
-          - aŭtokur-strato
-          apron:
-          - Aviadil-parkumejo
-          - flugstacio
+          ferry: Pramo
+          light_rail: Malpeza vagonaro
+          tram: Tramo
+          trolleybus: Trolebuso
+          bus: Aŭtobuso
+          cable_car: Kablovojo
+          chair_lift: Telfero seĝa
+          runway: Avia dromo
+          taxiway: Aŭtokur-strato
+          apron: Aviadil-parkumejo
           admin: Administra limo
+          capital: Ĉefurbo
+          city: Urbo
+          orchard: Fruktoĝardeno
+          vineyard: Vinberĝardeno
           forest: Kultiv-arbaro
           wood: Arbaro
+          farmland: Agrokultura tereno
+          grass: Herbotapiŝo
+          meadow: Herbejo
+          bare_rock: Roka areo
+          sand: Sabla tereno
           golf: Golfejo
           park: Parko
+          common: Publika ripoza tereno
+          built_up: Konstruaĵ-kovrita tereno
           resident: Privatdoma tereno
-          common:
-          - Publika ripoza tereno
-          - herbejo
-          - ĝardeno
           retail: Komercejo
           industrial: Industria areo
           commercial: Oficeja tereno
           heathland: Erikejo
-          lake:
-          - Lago
-          - akvorezervujo
+          scrubland: Arbustaro
+          lake: Lago
+          reservoir: Lago artefarita
+          intermittent_water: Sezona akvujo
+          glacier: Glacirivero
+          reef: Rifo
+          wetland: Malsekejo
           farm: Farmobieno
           brownfield: Antaŭ-konstruejo (post-malkonstruado)
           cemetery: Tombejo
@@ -2341,19 +2374,20 @@ eo:
           centre: Sporta centro
           reserve: Naturrezervejo
           military: Armea tereno
-          school:
-          - Lernejo
-          - universitato
+          school: Lernejo
+          university: Universitato
+          hospital: Malsanulejo
           building: Grava konstruaĵo
           station: Stacidomo
-          summit:
-          - Montosupro
-          - montpinto
+          summit: Montosupro
+          peak: Montpinto
           tunnel: Strekumita konturo - tunelo
           bridge: Nigra konturo - ponto
           private: Privata aliro
           destination: Aliro nur al celo
           construction: Vojoj konstruataj
+          bus_stop: Haltejo aŭtobusa
+          stop: Haltejo
           bicycle_shop: Bicikl-vendejo
           bicycle_parking: Parkumejo bicikla
           toilets: Necesejo
@@ -2486,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:
@@ -2554,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
@@ -2590,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:
@@ -2679,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?
@@ -2760,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
@@ -2793,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
@@ -2898,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.
@@ -2955,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}
@@ -2992,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 95905c01bb8a2e25c864fd27fc27c227cc6bae21..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,13 +1919,20 @@ es:
         correcto para leer el mensaje.
     sent_message_summary:
       destroy_button: Eliminar
+    heading:
+      my_inbox: Mi buzón
+      my_outbox: Mi buzón de salida
+      muted_messages: Mensajes silenciados
     mark:
       as_read: Mensaje marcado como leído
       as_unread: Mensaje marcado como no leído
+    unmute:
+      notice: El mensaje se ha trasladado a la bandeja de entrada
+      error: No se pudo trasladar el mensaje a la bandeja de entrada.
     destroy:
       destroyed: Mensaje eliminado
   passwords:
-    lost_password:
+    new:
       title: Contraseña perdida
       heading: ¿Contraseña olvidada?
       email address: 'Dirección de correo electrónico:'
@@ -1923,15 +1940,19 @@ es:
       help_text: Escribe la dirección de correo electrónico con la que te registraste,
         te enviaremos un enlace a esa dirección que podrás utilizar para restablecer
         tu contraseña.
+    create:
       notice email on way: Sentimos que la hayas perdido :-( pero ya va de camino
         un mensaje de correo electrónico que te servirá para restablecer tu contraseña
         enseguida.
       notice email cannot find: Lo sentimos, no se pudo encontrar esa dirección de
         correo electrónico.
-    reset_password:
+    edit:
       title: Restablecer contraseña
       heading: Restablecer contraseña para %{user}
       reset: Restablecer contraseña
+      flash token bad: No se ha encontrado este token, ¿Quizá deberías comprobar la
+        URL?
+    update:
       flash changed: Tu contraseña ha sido cambiada.
       flash token bad: No se ha encontrado este token, ¿Quizá deberías comprobar la
         URL?
@@ -2425,44 +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
-          tram:
-          - Metro ligero
-          - tranvía
-          cable:
-          - Telecabina
-          - Telesilla
-          runway:
-          - Pista de aeropuerto
-          - Calle de rodaje
-          apron:
-          - Rampa aeroportuaria
-          - terminal
+          ferry: Ferry
+          light_rail: Tren Ligero
+          tram: Tranvía
+          trolleybus: Trolebús
+          bus: Autobús
+          cable_car: Telecabina
+          chair_lift: Telesilla
+          runway: Pista de aeropuerto
+          taxiway: Calle de rodaje
+          apron: Rampa aeroportuaria
           admin: Límite administrativo
+          capital: Capital
+          city: Ciudad
+          orchard: Huerta
+          vineyard: Viñedo
           forest: Bosque
-          wood: Bosque
+          wood: Bosque maderable
+          farmland: Tierras de cultivo
+          grass: Césped
+          meadow: Pradera
+          bare_rock: Roca desnuda
+          sand: Arena
           golf: Campo de golf
           park: Parque
+          common: Común
+          built_up: Área construida
           resident: Zona residencial
-          common:
-          - Común
-          - pradera
-          - jardín
           retail: Zona de comercios
           industrial: Zona industrial
           commercial: Zona comercial
           heathland: Brezal
-          lake:
-          - Lago
-          - embalse
+          scrubland: Matorral
+          lake: Lago
+          reservoir: Embalse
+          intermittent_water: Cuerpo de agua intermitente
+          glacier: Glaciar
+          reef: Arrecife
+          wetland: Pantano
           farm: Granja
           brownfield: Sitio baldío
           cemetery: Cementerio
@@ -2471,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
@@ -2695,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
@@ -2821,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?
@@ -2906,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
@@ -2937,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
@@ -3051,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.
@@ -3110,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}
@@ -3146,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 59866c7a166f0248ce3bd08dd1971e628f4ca15f..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,28 +1322,37 @@ et:
         palun logi sisse õige kasutajana.
     sent_message_summary:
       destroy_button: Kustuta
+    heading:
+      my_inbox: Saabunud sõnumid
+      my_outbox: Saadetud sõnumid
+      muted_messages: Vaigistatud sõnumid
     mark:
       as_read: Sõnum on märgitud loetud sõnumiks.
       as_unread: Sõnum on märgitud lugemata sõnumiks.
+    unmute:
+      notice: Sõnum on teisaldatud postkasti.
+      error: Sõnumit ei õnnestunud postkasti teisaldada.
     destroy:
       destroyed: Sõnum kustutatud.
   passwords:
-    lost_password:
+    new:
       title: Unustatud parool
       heading: Parool ununenud?
       email address: 'E-posti aadress:'
       new password button: Lähtesta parool
       help_text: Sisesta e-posti aadress, mida kasutasid registreerumisel. Saadame
         sinna lingi, mida saad kasutada parooli lähtestamiseks.
+    create:
       notice email on way: Kahju, et parooli kaotasid, kuid ära muretse. Peagi saad
         e-kirja, mille abil saad parooli lähtestada.
       notice email cannot find: Seda e-posti aadressi ei leitud.
-    reset_password:
+    edit:
       title: Lähtesta parool
       heading: Kasutaja %{user} parooli lähtestamine
       reset: Lähtesta parool
-      flash changed: Sinu parool on muudetud.
       flash token bad: Ei leitud sellist kinnituskoodi. Kontrolli URL-i.
+    update:
+      flash changed: Sinu parool on muudetud.
   preferences:
     show:
       title: Minu eelistused
@@ -1438,6 +1450,7 @@ et:
       text: Tekst
       image: Pilt
       alt: Asendustekst
+      codeblock: Koodiplokk
     richtext_field:
       edit: Muuda
       preview: Eelvaade
@@ -1805,34 +1818,24 @@ et:
           footway: Jalgtee
           rail: Raudtee
           subway: Metroo
-          tram:
-          - Trammitee
-          - tramm
-          cable:
-          - Köisraudtee
-          - toolilift
-          runway:
-          - Lennurada
-          - ruleerimistee
-          apron:
-          - Lennujaama perroon
-          - terminal
+          cable_car: Köisraudtee
+          chair_lift: Toolilift
+          runway: Lennurada
+          taxiway: Ruleerimistee
+          apron: Lennujaama perroon
           admin: Halduspiir
           forest: Tulundusmets
           wood: Mets
           golf: Golfiväljak
           park: Park
+          common: Heinamaa
           resident: Elamurajoon
-          common:
-          - Heinamaa
-          - luht
           retail: Kaubanduspiirkond
           industrial: Tööstuspiirkond
           commercial: Äripiirkond
           heathland: Nõmm
-          lake:
-          - Järv
-          - veehoidla
+          lake: Järv
+          reservoir: Veehoidla
           farm: Põllumajanduslik maa
           brownfield: Ehitusmaa
           cemetery: Surnuaed
@@ -1841,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
@@ -2052,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:
@@ -2202,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
@@ -2387,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
@@ -2547,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 a626cb41d0b2eabc06b3be35f9ce964712606f90..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,28 +1783,33 @@ 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
     destroy:
       destroyed: Mezua ezabatuta
   passwords:
-    lost_password:
+    new:
       title: Ahaztutako pasahitza
       heading: Pasahitza ahaztuta?
       email address: 'Eposta helbidea:'
       new password button: Pasahitza berrezarri
       help_text: Sartu saioa hastean erabiltzen zenuen helbide elektronikoa, zure
         pasahitza berrezarri ahal izateko erabil dezakezu bidaliko dizugun esteka.
+    create:
       notice email on way: Sentitzen duzu hau galdu izatea :-( baina posta elektronikoa
         bidaltzen ari zaizu laster berrabiarazi dezakezun.
       notice email cannot find: Eposta helbide hori ezin izan dugu aurkitu, barkatu.
-    reset_password:
+    edit:
       title: Pasahitza berrezarri
       heading: '%{user}-ren pasahitza berrezarri'
       reset: Pasahitza berrezarri
-      flash changed: Zure pasahitza aldatu da.
       flash token bad: Token hori ez da aurkitu, URL egiaztatu beharbada?
+    update:
+      flash changed: Zure pasahitza aldatu da.
   preferences:
     show:
       title: Nire hobespenak
@@ -2206,35 +2206,24 @@ eu:
           footway: Oinezkoen bidea
           rail: Trenbidea
           subway: Metroa
-          tram:
-          - Tren arina
-          - tranbia
-          cable:
-          - Funikularra
-          - teleaulkia
-          runway:
-          - Aireportuko Pista
-          - taxi bidea
-          apron:
-          - Aireportu plataforma
-          - terminala
+          cable_car: Funikularra
+          chair_lift: teleaulkia
+          runway: Aireportuko Pista
+          taxiway: taxi bidea
+          apron: Aireportu plataforma
           admin: Muga administratiboa
           forest: Baso
           wood: Basoa
           golf: Golf-zelai
           park: Parke
+          common: Arrunta
           resident: Etxebizitza ingurua
-          common:
-          - Arrunta
-          - belardia
-          - lorategia
           retail: Txikizkako azalera
           industrial: Industrialdea
           commercial: Merkataritza eremua
           heathland: Txilardia
-          lake:
-          - Aintzira
-          - urtegia
+          lake: Aintzira
+          reservoir: urtegia
           farm: Baserria
           brownfield: Landarik gabeko gunea
           cemetery: Hilerri
@@ -2243,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 b37387776de8d1af4fd9fb6925352d90587c9ae4..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,28 +1751,33 @@ fa:
         وارد سامانه شوید تا بتوانید آن را بخوانید.
     sent_message_summary:
       destroy_button: حذف
+    heading:
+      my_inbox: صندوق دریافت
+      my_outbox: صندوق ارسال
     mark:
       as_read: پیام به‌عنوان خوانده علامت‌گذاری شد
       as_unread: پیام به عنوان نخوانده علامت‌گذاری شد
     destroy:
       destroyed: پیام حذف شد
   passwords:
-    lost_password:
+    new:
       title: فراموشی رمز عبور
       heading: رمز عبور خودتان را فراموش کرده‌اید؟
       email address: 'نشانی رایانامه:'
       new password button: بازنشانی رمز عبور
       help_text: رایانامه‌ای که با آن نام‌نویسی کرده‌اید را وارد کنید. ما پیوندی به
         آن می‌فرستیم تا بتوانید به وسیلهٔ آن گذرواژه‌تان را بازنشانی کنید.
+    create:
       notice email on way: متأسفیم که آن را گم کرده‌اید :-( اما رایانامه‌ای در راه
         است که می‌توانید به‌زودی آن را مجدد تنظیم کنید.
       notice email cannot find: چنین رایانامه‌ای پیدا نشد، متأسفیم.
-    reset_password:
+    edit:
       title: بازنشانی رمز عبور
       heading: بازنشانی رمز عبور برای %{user}
       reset: بازنشانی رمز عبور
-      flash changed: رمز عبورتان عوض شد.
       flash token bad: توکن را نیافتید؟ نشانی را بررسی کنید شاید بیابید.
+    update:
+      flash changed: رمز عبورتان عوض شد.
   preferences:
     show:
       title: ترجیحات من
@@ -1812,6 +1812,7 @@ fa:
       no home location: شما محل خانهٔ خودتان را وارد نکرده‌اید.
       update home location on click: وقتی روی نقشه کلیک می‌کنم موقعیت خانه روزآمد
         شود.
+      delete: حذف
     update:
       success: نمایه ذخیره شد.
       failure: ذخیره‌سازی نمایه انجام نشد.
@@ -2096,34 +2097,24 @@ fa:
           footway: راه پیاده
           rail: راه‌آهن
           subway: مترو
-          tram:
-          - راه‌آهن سبک
-          - قطار برقی
-          cable:
-          - تله‌فریک
-          - صندلی بالابر
-          runway:
-          - باند فرودگاه
-          - خزش‌راه
-          apron:
-          - پیشگاه فرودگاه
-          - پایانه
+          cable_car: تله‌فریک
+          chair_lift: صندلی بالابر
+          runway: باند فرودگاه
+          taxiway: خزش‌راه
+          apron: پیشگاه فرودگاه
           admin: مرز اداری
           forest: جنگل
           wood: چوب
           golf: زمین گلف
           park: پارک
+          common: مشاع
           resident: منطقهٔ مسکونی
-          common:
-          - مشاع
-          - علفزار
           retail: منطقه خرده فروشی
           industrial: منطقه صنعتی
           commercial: منطقه تجاری
           heathland: Heathland
-          lake:
-          - دریاچه
-          - مخزن
+          lake: دریاچه
+          reservoir: مخزن
           farm: مزرعه
           brownfield: سایت قهوه‌ای
           cemetery: گورستان
@@ -2132,14 +2123,12 @@ fa:
           centre: مرکز ورزشی
           reserve: طبیعت حفاظت شده
           military: منطقه نظامی
-          school:
-          - مدرسه
-          - دانشگاه
+          school: مدرسه
+          university: دانشگاه
           building: ساختمان مهم
           station: ایستگاه راه آهن
-          summit:
-          - چکاد
-          - قله
+          summit: چکاد
+          peak: قله
           tunnel: لبهٔ خط‌چین‌دار = تونل
           bridge: لبهٔ سیاه = پل
           private: دسترسی شخصی
index 21b1bf5f60f632119866a7870b8a236a3ae2ebc6..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,27 +1763,32 @@ fi:
         sisään oikealla käyttäjätunnukselle lukeaksesi sen.
     sent_message_summary:
       destroy_button: Poista
+    heading:
+      my_inbox: Saapuneet
+      my_outbox: Lähetetyt
     mark:
       as_read: Viesti on merkitty luetuksi.
       as_unread: Viesti on merkitty lukemattomaksi.
     destroy:
       destroyed: Viesti on poistettu.
   passwords:
-    lost_password:
+    new:
       title: Unohtunut salasana
       heading: Unohditko salasanasi?
       email address: 'Sähköpostiosoite:'
       new password button: Lähetä salasanan palautusohjeet
       help_text: Kirjoita alapuolelle kirjautumissähköpostiosoitteesi. Osoitteeseen
         lähetetään salasanan palautusohjeet.
+    create:
       notice email on way: Salasanan palautusohjeet on lähetetty annettuun sähköpostiosoitteeseen.
       notice email cannot find: Annettu sähköpostiosoite ei ole käytössä.
-    reset_password:
+    edit:
       title: Salasanan vaihto
       heading: Vaihda käyttäjän %{user} salasana
       reset: Vaihda salasana
-      flash changed: Salasanasi on vaihdettu.
       flash token bad: Tuntematon tunniste. Tarkista että URL on sama kuin postissasi.
+    update:
+      flash changed: Salasanasi on vaihdettu.
   preferences:
     show:
       title: Asetukset
@@ -2205,35 +2205,24 @@ fi:
           footway: Jalkakäytävä
           rail: Junarata
           subway: Metro
-          tram:
-          - Pikaraitiotie
-          - raitiotie
-          cable:
-          - Köysirata
-          - tuolihissi
-          runway:
-          - Lentokentän kiitotie
-          - rullaustie
-          apron:
-          - Lentokentän asemataso
-          - terminaali
+          cable_car: Köysirata
+          chair_lift: tuolihissi
+          runway: Lentokentän kiitotie
+          taxiway: rullaustie
+          apron: Lentokentän asemataso
           admin: Hallinnollinen raja
           forest: Talousmetsä
           wood: Metsä
           golf: Golfkenttä
           park: Puisto
+          common: Niitty
           resident: Asuinalue
-          common:
-          - Niitty
-          - keto
-          - puutarha
           retail: Kaupallinen alue
           industrial: Teollisuusalue
           commercial: Toimistoalue
           heathland: Kanervikko
-          lake:
-          - Järvi
-          - tekojärvi
+          lake: Järvi
+          reservoir: tekojärvi
           farm: Maatila
           brownfield: Purettujen rakennusten alue
           cemetery: Hautausmaa
@@ -2242,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 ba2382b3428922ae38b920fb9b0f2716801a2f58..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,13 +686,15 @@ fit:
       back: Takashiin
     sent_message_summary:
       destroy_button: Ota poies
+    heading:
+      my_inbox: Saapuneet
     mark:
       as_read: Viesti markeerattu luetuksi.
       as_unread: Viesti markeerattu lukemattomaksi.
     destroy:
       destroyed: Viesti otettu poies
   passwords:
-    lost_password:
+    new:
       title: Unohtunut salasana
       heading: Unohditko salasanasi?
       email address: 'E-postiatressi:'
@@ -830,8 +830,7 @@ fit:
     key:
       table:
         entry:
-          school:
-            1: yniversiteetti
+          university: yniversiteetti
     welcome:
       title: Tervetuloa!
       add_a_note:
index 8e8ac8620d24c9fe1c26f12a3975ed7b8c91439b..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: Frigory
 # Author: Fylip22
 # Author: Gaspard
+# Author: GeorgeKaplan
 # Author: Gileri
 # Author: Gomoko
 # Author: Gravitystorm
 # Author: Guilhelma
 # Author: Hashar
 # Author: IAlex
+# Author: Iketsi
 # Author: JB
 # Author: Jean-Frédéric
 # Author: JenyxGym
+# Author: Jg45
 # Author: Jiremek
 # Author: Jlrb+
 # Author: Koreller
@@ -89,6 +93,7 @@
 # Author: Vcalame
 # Author: Vega
 # Author: Verdy p
+# Author: Vikoula5
 # Author: Windes
 # Author: Wladek92
 # Author: Yodaspirine
@@ -135,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
@@ -781,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
@@ -1124,7 +1135,7 @@ fr:
           military: Zone militaire
           mine: Mine
           orchard: Verger
-          plant_nursery: Crèche d’usine
+          plant_nursery: Pépinière
           quarry: Carrière
           railway: Voie ferrée
           recreation_ground: Aire de jeux
@@ -1581,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
@@ -1872,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
@@ -1883,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}
@@ -1908,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
@@ -1934,13 +1945,20 @@ fr:
         vous connecter avec l’identifiant correct pour pouvoir le lire.
     sent_message_summary:
       destroy_button: Supprimer
+    heading:
+      my_inbox: Ma boîte de réception
+      my_outbox: Ma boîte d’envoi
+      muted_messages: Messages mis en sourdine
     mark:
       as_read: Message marqué comme lu
       as_unread: Message marqué comme non lu
+    unmute:
+      notice: Le message a été déplacé dans la boîte de réception
+      error: Le message n'a pas pu être déplacé vers la boîte de réception.
     destroy:
       destroyed: Message supprimé
   passwords:
-    lost_password:
+    new:
       title: Mot de passe perdu
       heading: Vous avez perdu votre mot de passe ?
       email address: 'Adresse de courriel :'
@@ -1948,13 +1966,16 @@ fr:
       help_text: Entrez l’adresse de courriel que vous avez utilisée à votre inscription,
         nous enverrons à cette adresse un lien que vous pourrez utiliser pour réinitialiser
         votre mot de passe.
+    create:
       notice email on way: Désolé que vous ayez perdu votre mot de passe :-( Un courriel
         vous a été envoyé pour que vous puissiez vite le réinitialiser.
       notice email cannot find: Cette adresse de courriel est introuvable, désolé.
-    reset_password:
+    edit:
       title: Réinitialiser le mot de passe
       heading: Réinitialiser le mot de passe de %{user}
       reset: Réinitialiser le mot de passe
+      flash token bad: Ce jeton est introuvable, veuillez vérifier l’URL.
+    update:
       flash changed: Votre mot de passe a été modifié.
       flash token bad: Ce jeton est introuvable, veuillez vérifier l’URL.
   preferences:
@@ -2064,6 +2085,7 @@ fr:
       image: Image
       alt: Texte alternatif
       url: URL
+      codeblock: Bloc de code
     richtext_field:
       edit: Modifier
       preview: Aperçu
@@ -2466,44 +2488,56 @@ fr:
           primary: Route principale
           secondary: Route secondaire
           unclassified: Route non classifiée
+          pedestrian: Rue piétonne
           track: Piste
           bridleway: Sentier équestre
           cycleway: Piste cyclable
           cycleway_national: Itinéraire cyclable national
           cycleway_regional: Itinéraire cyclable régional
           cycleway_local: Itinéraire cyclable local
+          cycleway_mtb: Chemin de vélo de montagne
           footway: Chemin piéton
           rail: Voie de chemin de fer
+          train: Train
           subway: Ligne de métro
-          tram:
-          - Voie ferrée légère
-          - tramway
-          cable:
-          - Téléphérique
-          - télésiège
-          runway:
-          - Piste d’aéroport
-          - piste de circulation d’un aéroport
-          apron:
-          - Stationnement d’avions
-          - terminal
+          ferry: Ferry
+          light_rail: Voie ferrée légère
+          tram: Tramway
+          trolleybus: Trolleybus
+          bus: Bus
+          cable_car: Téléphérique
+          chair_lift: Télésiège
+          runway: Piste d’aéroport
+          taxiway: Piste de circulation d'un aéroport
+          apron: Stationnement d’avions
           admin: Limite administrative
+          capital: Capitale
+          city: Ville
+          orchard: Verger
+          vineyard: Vignoble
           forest: Forêt
           wood: Bois
+          farmland: Terres agricoles
+          grass: Pelouse
+          meadow: Prairie
+          bare_rock: Roche nue
+          sand: Sable
           golf: Parcours de golf
           park: Parc
+          common: Espace commun
+          built_up: Zone bâtie
           resident: Zone résidentielle
-          common:
-          - Espace commun
-          - prairie
-          - jardin
           retail: Zone de commerce
           industrial: Zone industrielle
           commercial: Zone tertiaire
           heathland: Lande
-          lake:
-          - Lac
-          - bassin de retenue
+          scrubland: Fruticée
+          lake: Lac
+          reservoir: Réservoir
+          intermittent_water: plan d’eau intermittent
+          glacier: Glacier
+          reef: Récif
+          wetland: Zone humide
           farm: Zone agricole
           brownfield: Zone de démolition
           cemetery: Cimetière
@@ -2512,19 +2546,20 @@ fr:
           centre: Centre sportif
           reserve: Réserve naturelle
           military: Zone militaire
-          school:
-          - École
-          - université
+          school: École
+          university: Université
+          hospital: Hôpital
           building: Bâtiment important
           station: Gare ferroviaire
-          summit:
-          - Sommet
-          - pic
+          summit: Sommet
+          peak: Pic
           tunnel: Bordure pointillée = tunnel
           bridge: Bord noir = pont
           private: Accès privé
           destination: Accès réservé aux riverains
           construction: Routes en construction
+          bus_stop: Arrêt de bus
+          stop: Arrêter
           bicycle_shop: Magasin de vélos
           bicycle_parking: Parking à vélos
           toilets: Toilettes
@@ -2740,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
@@ -2870,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 ?
@@ -3163,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} »
@@ -3200,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 e29af0f601a575d73bf9452461a790f54b92bced..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,24 +1095,29 @@ fur:
       back: Indaûr
     sent_message_summary:
       destroy_button: Elimine
+    heading:
+      my_inbox: I miei messaçs in jentrade
+      my_outbox: I miei messaçs in jessude
     mark:
       as_read: Messaç segnât come za let
       as_unread: Messaç segnât come di lei
     destroy:
       destroyed: Messaç eliminât
   passwords:
-    lost_password:
+    new:
       title: Password pierdude
       heading: Âstu pierdût la password?
       email address: 'Direzion di pueste:'
       new password button: Azere la password
       help_text: Scrîf la direzion di pueste eletroniche che tu âs doprât par iscrivîti
         e ti mandarin un leam par tornâ a impuestâ la tô password.
+    create:
       notice email cannot find: No vin podût cjatâ la tô direzion di pueste, nus displâs.
-    reset_password:
+    edit:
       title: Azere la password
       heading: Azere la password par %{user}
       reset: Azere la password
+    update:
       flash changed: La tô password e je stade cambiade.
   preferences:
     show:
@@ -1098,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:
@@ -1125,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
@@ -1143,6 +1196,8 @@ fur:
       title: Jes
       heading: Va fûr di OpenStreetMap
       logout_button: Jes
+    suspended_flash:
+      support: assistence
   shared:
     markdown_help:
       link: Leam
@@ -1157,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:
@@ -1171,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.
@@ -1242,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:
@@ -1266,52 +1338,62 @@ fur:
           primary: Strade primarie
           secondary: Strade secondarie
           unclassified: Strade no classificade
+          pedestrian: Strade pedonâl
+          track: Piste
           rail: Ferade
           subway: Metropolitane
-          tram:
-          - Metropolitana leggera
-          - tram
-          runway:
-          - Piste dal aeropuart
-          apron:
-            1: terminâl
+          ferry: Traghet
+          tram: Tram
+          runway: Piste dal aeropuart
           admin: Confin aministratîf
           forest: Bosc
+          grass: Prât
+          meadow: Prâts
+          sand: Savalon
           golf: Troi di golf
           park: Parc
+          common: Comugnâi
           resident: Zone residenziâl
-          common:
-          - Comugnâi
-          - prâts
           retail: Zone di buteghis
           industrial: Zone industriâl
           commercial: Aree comerciâl
-          lake:
-          - Lâc
+          lake: Lâc
           cemetery: Simiteri
           pitch: Cjamp sportîf
           centre: Centri sportîf
           reserve: Riserve naturâl
           military: Zone militâr
-          school:
-          - Scuele
-          - universitât
+          school: Scuele
+          university: Universitât
+          hospital: Ospedâl
           station: stazion de ferade
           tunnel: Rie a trats = galarie
           bridge: Rie nere = puint
           private: Acès privât
           construction: Stradis in costruzion
+          bus_stop: Fermade autobus
+          stop: Fermade
+          bicycle_shop: Buteghe di bicicletis
     welcome:
       title: Benvignût!
       whats_on_the_map:
         title: Ce ch'al è su la mape
+      basic_terms:
+        node: grop
+        way: vie
+        tag: etichete
+      rules:
+        title: Regulis!
       start_mapping: Scomence a mapâ
       add_a_note:
         title: No tu âs timp par fâ i cambiaments? Zonte une note!
     communities:
       title: Comunitâts
+      other_groups:
+        title: Altris grups
   traces:
     new:
+      upload_trace: Cjame percors GPS
       visibility_help: ce vuelial dî?
       help: Jutori
     create:
@@ -1337,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:'
@@ -1354,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
@@ -1367,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
@@ -1455,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:
@@ -1596,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}
@@ -1633,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
@@ -1650,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.
@@ -1698,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
@@ -1710,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
@@ -1733,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 00a26d0db6a477e9189aebcd55d7845877f4a37e..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,13 +1712,16 @@ fy:
         om it lêze te kinnen.
     sent_message_summary:
       destroy_button: Wiskje
+    heading:
+      my_inbox: Myn ynfek
+      my_outbox: Myn útfek
     mark:
       as_read: Berjocht as lêzen oanmurken
       as_unread: Berjocht as net-lêzen oanmurken
     destroy:
       destroyed: Berjocht wiske
   passwords:
-    lost_password:
+    new:
       title: Wachtwurd kwyt
       heading: Wachtwurd fergetten?
       email address: 'E-mailadres:'
@@ -1731,15 +1729,17 @@ fy:
       help_text: Folje it e-mailadres yn dat jo by it ynskriuwen brûkt hawwe. Wy stjoere
         der dan in keppeling hinne dy't jo brûke kinne om jo wachtwurd op 'e nij yn
         te stellen.
+    create:
       notice email on way: Spitich dat jo 'm kwyt binne :-( mar in e-mail is ûnderweis,
         dat jo kinne gau in nijenien ynstelle.
       notice email cannot find: Koe dat e-mailadres net fine, spitich.
-    reset_password:
+    edit:
       title: Nij wachtwurd
       heading: Wachtwurd op 'e nij ynstelle foar %{user}
       reset: Nij wachtwurd
-      flash changed: Jo wachtwurd is feroare.
       flash token bad: Haw dy kaai net fûn, de URL efkes neisjen?
+    update:
+      flash changed: Jo wachtwurd is feroare.
   preferences:
     show:
       title: Myn foarkarren
@@ -2034,35 +2034,24 @@ fy:
           footway: Fuotpaad
           rail: Spoarwei
           subway: Metrospoar
-          tram:
-          - Sneltrem
-          - trem
-          cable:
-          - Kabelbaan
-          - stuoltsjelift
-          runway:
-          - Start-/lânings-
-          - taksybaan lofthaven
-          apron:
-          - Platfoarm
-          - passazjiershal lofth.
+          cable_car: Kabelbaan
+          chair_lift: stuoltsjelift
+          runway: Start-/lânings-
+          taxiway: taksybaan lofthaven
+          apron: Platfoarm
           admin: Bestjoerlike grins
           forest: Bosk
           wood: Wâld
           golf: Golfbaan
           park: Park
+          common: Miente
           resident: Wengebiet
-          common:
-          - Miente
-          - greide
-          - tún
           retail: Winkelgebiet
           industrial: Yndustrygebiet
           commercial: Kommersjeel gebiet
           heathland: Heidelân
-          lake:
-          - Mar
-          - opslachmar
+          lake: Mar
+          reservoir: opslachmar
           farm: Boerepleats
           brownfield: Braaklân
           cemetery: Begraafplak
@@ -2071,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 7b89a21798b2bb92eac6787c3c4faa34bf4e0167..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,30 +1286,34 @@ ga:
         oiread. Logáil isteach mar an t-úsáideoir ceart chun é a léamh.
     sent_message_summary:
       destroy_button: Scrios
+    heading:
+      my_inbox: Mo Bhosca Isteach
     mark:
       as_read: Teachtaireacht marcáilte mar léite
       as_unread: Teachtaireacht marcáilte mar neamhléite
     destroy:
       destroyed: Teachtaireacht scriosta
   passwords:
-    lost_password:
+    new:
       title: Focal faire caillte
       heading: Focal Faire Caillte?
       email address: 'Seoladh ríomhphoist:'
       new password button: Athshocraigh an focal faire
       help_text: Iontráil an seoladh ríomhphoist a d'úsáid tú le clárú, agus seolfaimid
         nasc chugat a bheidh tú in ann a úsáid chun do phasfhocal a athshocrú.
+    create:
       notice email on way: Is oth linn gur chaill tú é :-( ach tá ríomhphost ar an
         mbealach chugat le go mbeidh tú in ann é a athshocrú go luath.
       notice email cannot find: Níorbh fhéidir an seoladh ríomhphoist sin a aimsiú,
         ár leithscéil faoi sin.
-    reset_password:
+    edit:
       title: Focal faire a athshocrú
       heading: Focal Faire le haghaidh %{user} a Athshocrú
       reset: Athshocraigh an Focal Faire
-      flash changed: Athraíodh d'fhocal faire.
       flash token bad: Níor aimsíodh an ceadchomhartha sin, seiceáil an bhfuil an
         URL cruinn?
+    update:
+      flash changed: Athraíodh d'fhocal faire.
   profiles:
     edit:
       image: Íomhá
@@ -1541,34 +1543,24 @@ ga:
           footway: Cosán
           rail: Iarnród
           subway: Meitreo
-          tram:
-          - Iarnród Éadrom
-          - tram
-          cable:
-          - Carr cábla
-          - cathaoir chábla
-          runway:
-          - Rúidbhealach Aerfoirt
-          - bealach innealta
-          apron:
-          - Naprún Aerfoirt
-          - críochfort
+          cable_car: Carr cábla
+          chair_lift: cathaoir chábla
+          runway: Rúidbhealach Aerfoirt
+          taxiway: bealach innealta
+          apron: Naprún Aerfoirt
           admin: Teorainn riaracháin
           forest: Foraois
           wood: Coill
           golf: Galfchúrsa
           park: Páirc
+          common: Coimín
           resident: Ceantar cónaithe
-          common:
-          - Coimín
-          - móinéar
           retail: Limistéar miondíola
           industrial: Limistéar tionsclaíoch
           commercial: Limistéar tráchtála
           heathland: Móinteach/fraochmhá
-          lake:
-          - Loch
-          - taiscumar
+          lake: Loch
+          reservoir: taiscumar
           farm: Feirm
           brownfield: Láithreán athfhorbraíochta
           cemetery: Reilig
@@ -1577,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 0d026348379bcf9a79bf1d12e0aaf1e014dcbfad..7f9eb131c22f77319df7594799b8a787b136ba01 100644 (file)
 # Messages for kréyòl Gwadloup (kréyòl Gwadloup)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Istwalezanti
 # Author: Léon973
 ---
 gcf:
+  helpers:
+    submit:
+      diary_comment:
+        create: Komantasyon
+      diary_entry:
+        create: Voyé
+      issue_comment:
+        create: Jouté komantasyon
+      message:
+        create: Voyé
   activerecord:
+    models:
+      country: Péyi
+      friend: Zanmi
+      language: Lang
+      message: Mésaj
+      user: Itilizatè
+      user_preference: Sa itilizatè-la simyé
     attributes:
+      client_application:
+        allow_write_api: Modifyé kat-la
+      diary_entry:
+        user: Itilizatè
+        latitude: latitid
+        longitude: lonjitid
+        language_code: Lang
+      friend:
+        user: Itilizatè
+        friend: Sendika
+      trace:
+        user: Itilizatè
+        latitude: Latitid
+        longitude: Lonjitid
       user:
         home_lat: 'Latitid:'
-        home_lon: 'Longitid:'
+        home_lon: 'Lonjitid:'
+        languages: Lang ou simyé
+        pass_crypt: Kòd a-w
+        pass_crypt_confirmation: Konfimé kòd a-w la
     help:
       user:
         new_email: (Pa janmen maké piblikman)
+  auth:
+    providers:
+      wikipedia: Wikipédya
+  api:
+    notes:
+      entry:
+        comment: Komantasyon
+  account:
+    deletions:
+      show:
+        title: Néyantizé kont a-w la
+        warning: Penga! Si-w ka néyantizé kont a-w, ou ka pèdi-y poubon é ou pé ké
+          pésa woutini-y ankò.
+        delete_account: Néyantizé on kont
+        delete_introduction: |-
+          Ou pé NÉYANTIZÉ kont OpenStreetMap a-w èvè bouton-la.
+          Kanmensa ou pou sav sa:
+        delete_display_name: Tinon a-w la ké néyantizé, é nenpòt kimoun ké pé sèvi
+          épi-y èvè on dòt kont.
+        retain_caveats: 'Kanmenmsa, OpenStreetMap ké woutyenn dotwa kamo asi-w, menmsi
+          sé aprédavwa ou néyantizé kont a-w la:'
+        retain_email: Nou ké chonjé email a-w la.
+        recent_editing_html: |-
+          Davwa ou sòti modifyé biten, nou pé pa néyantizé kont a-w ankò.
+          Nou ké pé fè-y adan %{time}
+        confirm_delete: Ès ou sèkten?
   accounts:
     edit:
+      title: Modifyé kont a-w la
       my settings: Mes options
+      openid:
+        link text: Ka sa yé?
       public editing:
         enabled: Aktif. Y pa anonnim, y pé édité doné.
         enabled link text: Ka sa yé?
         disabled: Inaktif y pé pa édité doné ; tout édision pasé anonim.
-        disabled link text: Poukwa an pé pa édité?
+        disabled link text: Pouki an pé pa modifyé?
+      contributor terms:
+        link text: Ka sa yé?
       save changes button: Enrèjisré tout chanjman
+      delete_account: Néyantizé kont a-w...
     go_public:
-      heading: 'Édision piblik:'
+      heading: 'Édisyon piblik:'
+      currently_not_public: Konyéla, Ponmoun pa konnèt aki-w lè ou ka modifyé on biten,
+        larèstan itilizatè pa sav voyé-w mésaj é yo pé pa sav ola ou yé. Pou montré
+        sa ou modifyé é kité larèstan itilizatè palé ba-w asi twèl-la, Pijé asi bouton-la.
       make_edits_public_button: Mèt tou sa an fè piblik
     update:
       success_confirm_needed: Enfowmasion asi itilisatè la bien anrèjistré. Gadé bwet
         imél aw pou konfirmé adres nouvo imél aw
       success: Efowmasion asi itilisatè la bien anrejistré.
+    destroy:
+      success: Kont néyantizé.
   browse:
+    no_comment: (pon komantasyon)
+    download_xml: Chantyé XML
+    location: 'Ki koté:'
     changeset:
+      comment: Komantasyon (%{count})
+      hidden_comment_by_html: Komantasyon ou dévwè a %{user} %{time_ago}
+      comment_by_html: Komantasyon a %{user} %{time_ago}
       changesetxml: Niméwo Chanjeman XML
       osmchangexml: osmChanjeman XML
+      join_discussion: Konèkté-w pou jwenn bokantaj-la
+      discussion: Bokantaj
     containing_relation:
       entry_html: Rèlasion %{relation_name}
       entry_role_html: Rèlasion %{relation_name} (adan wol %{relation_role})
@@ -40,92 +120,353 @@ gcf:
     start_rjs:
       load_data: Chajé sé doné la
       loading: Y ka chajé...
+    tag_details:
+      wikipedia_link: Kotéfèy %{page} asi Wikipégya
+      telephone_link: Kriyé %{phone_number}
+    query:
+      introduction: Pijé asi kat-la pou jwenn biten toupréla.
+      nearby: Biten pa lwen
+  changesets:
+    changeset_paging_nav:
+      showing_page: Kotéfèy %{page}
+      previous: Pwochenn
+    changesets:
+      comment: Komantasyon
   dashboards:
     contact:
       km away: '%{count} km'
     popup:
       your location: Koté ou yé
       nearby mapper: Arpantè owa aw
+      friend: Zanmi
     show:
+      my friends: Zanmi a-w
       no friends: Ou poko ni pon zanmi
-      nearby users: 'Itilizatè owa aw :'
-      no nearby users: Ou poko ni itilizatè owa aw.
+      nearby users: 'Itilizatè owa a-w :'
+      no nearby users: Ou poko ni itilizatè owa a-w.
   diary_entries:
     new:
       title: Nouvel nèf an jounal la
     form:
       location: 'Ki koté:'
-      use_map_link: Sèvi èvè kat la
+      use_map_link: Sèvi èvè kat-la
     index:
       new: Nouvel nèf an jounal la
-      new_title: Mèt on nouvel nèf an jounal aw
-      no_entries: Pa ni nouvel an jounal aw
+      new_title: Mèt on nouvèl nèf an jounal a-w
+      my_diary: Jounal a-w la
+      no_entries: Pa ni nouvèl an jounal a-w
       recent_entries: 'Nouvel fré:'
-      older_entries: Nouvel rasi
-      newer_entries: Nouvel pi fré
+      older_entries: Nouvèl rasi
+      newer_entries: Nouvèl pi fré
     edit:
       marker_text: Ola jounal la ka koumansé
+    show:
+      leave_a_comment: Kité on komantasyon
     no_such_entry:
-      heading: 'Pa ti ni nouvel èvè niméwo la sa : %{id}'
-      body: Woy, pa ti ni pon nouvel adan jounal la ouben komantè èvè niméwo la sa
-        %{id}. Kontrolé lòtograf la ouben lien la ou kliké asiy la pa bon.
+      heading: 'Pa tini nouvel èvè niméwo-lasa : %{id}'
+      body: Woy, pa tini pon nouvèl adan jounal la ouben komantè èvè niméwo lasa %{id}.
+        Kontwolé lòtograf la ouben lyen la ou kliké asiy la pa bon.
     diary_entry:
       posted_by_html: Sé %{link_user} ki voyé sa , koté %{created} i maké an %{language_link}
-      comment_link: Palé asi nouvel la sa
-      reply_link: Réponn nouvel la sa
+      comment_link: Palé asi nouvèl-lasa
+      reply_link: Réponn nouvèl-lasa
       comment_count:
         one: On Komantè
         other: '%{count} Komantè'
-      edit_link: Modifié nouvel la sa
+      no_comments: Pa ni komantasyon
+      edit_link: Modifyé nouvèl-lasa
     diary_comment:
       comment_from_html: Komantè a %{link_user} koté %{comment_created_at}
+      hide_link: Dévwè komantasyon-lasa
+    location:
+      view: Vwè
+    comments:
+      comment: Komantasyon
+      older_comments: Pli vyé komantasyon
+  doorkeeper:
+    scopes:
+      phone: Vwè liméwo a téléfòn a-w
+  errors:
+    forbidden:
+      title: Défandi
+  friendships:
+    make_friend:
+      heading: Mèt %{user} adan sé zanmi a-w la?
+      button: Jouté on zanmi
+      success: Alè-la %{name} sé sendika a-w la!
+      failed: Malérèzsò, Zingchap toupannan joutaj a %{name} adan sé zanmi a-w la
+      already_a_friend: '%{name} ja zanmi a-w'
+      limit_exceeded: |-
+        Pa ni enpé tan ou jwenn zanmi kon tilili.
+        Atann tibwen avan ou ka séyé trapé dòt ankò.
+    remove_friend:
+      heading: Kasé-lo èvè %{user}?
+      button: Woté on zanmi
+      success: '%{name} pa zanmi a-w ankò.'
+      not_a_friend: '%{name} pa zanmi a-w'
+  geocoder:
+    search_osm_nominatim:
+      prefix:
+        aerialway:
+          chair_lift: Sizé a kab
+        aeroway:
+          aerodrome: Layodwòm
+          runway: Pis a dékolaj
+          taxiway: Koulwa a avyon
+          terminal: Tèminal a layopò
+        amenity:
+          bench: ban-fennyan
+          bicycle_rental: Lwéyaj a biskèt
+          boat_rental: Lwéyaj a bato
+          brothel: Kaz a bòbò
+          bus_station: Istòp a bis
+          cinema: Siléma
+          clock: Lòlòj
+          dentist: Dòktè a dan
+          doctors: Dòktè
+          hospital: Lopital
+          kindergarten: Tipoulayé
+          language_school: Lékòl a lang
+          library: Kaz a Liv
+          music_school: Lékòl a mizik
+          nightclub: Bwat
+          parking: Ga
+          pharmacy: Fanmasi
+          police: Manblo
+          prison: Lajòl
+          school: Lékòl
+          townhall: Lanméri
+          waste_basket: Bwètazòdi
+        bridge:
+          "yes": Pon
+        building:
+          church: Batiman a Légliz
+          hospital: Batiman a lopital
+          hotel: Batiman a Lotèl
+          house: Kaz
+          kindergarten: Batiman a tipoulayé
+          roof: Fètay
+          ruins: Batiman Kanni
+          school: Batiman lékòl
+          "yes": Batiman
+        emergency:
+          defibrillator: Bouwèkyè
+          siren: Kòn
+        highway:
+          cycleway: Chimen a biskèt
+          motorway: Lotowout
+          motorway_junction: Britèl lotowout
+          motorway_link: Lotowout
+          primary: Chimen a gouvèlman
+          primary_link: Chimen a gouvèlman
+          road: Chimen
+          speed_camera: Rada
+          street_lamp: Révèbè
+          traffic_mirror: Glas a lari
+          trunk: Wokad
+          trunk_link: Wokad
+          unclassified: Chimen san kad
+          "yes": Wout
+        historic:
+          aircraft: Vyé avyon
+          bomb_crater: Tou a dyab fèt parapòt a bonm
+          cannon: Kannon
+          castle: Chato
+          church: Légliz
+          house: Kaz
+          railway: Chimen fè a listwa
+          ruins: Rèstan
+          tower: Tou
+          "yes": Vi a listwa
+        junction:
+          "yes": Fouchèt a Chimen
+        landuse:
+          cemetery: Simityè
+          forest: Granbwa
+          grass: Zèb
+          railway: Chimen fè
+          reservoir: Rézèvwa
+        leisure:
+          garden: Haden
+          stadium: Istad
+        man_made:
+          bridge: Pon
+          flagpole: lakomèt
+          snow_cannon: Kannon a lannèj
+          storage_tank: Sitèn
+          tower: Tou
+          windmill: Moulen
+          works: Lizin
+        natural:
+          bay: Lans
+          beach: Bòdlanmè
+          cliff: Falèz
+          crater: Tou a dyab
+          forest: Granbwa
+          geyser: Tijaj
+          hill: Mòn
+          island: Lilèt
+          mud: Labou
+          peninsula: Pwent
+          rock: Wòch
+          sand: Sab
+          tree: Pyébwa
+          volcano: Vòlkan
+          water: Glo
+        place:
+          archipelago: bann-zil
+          city: Vil prensipal
+          country: Péyi
+          house: Kaz
+          island: Lilèt
+          islet: Tililèt
+          locality: Koté
+          sea: Lanmè
+          town: Vil
+          village: Vilaj
+          "yes": Koté
+        railway:
+          construction: Chimen fè yo ka konstwi
+          halt: Laga
+          junction: Fouchèt a chimen fè
+          level_crossing: Janbaj féwovyè
+          rail: Chimen fè
+        shop:
+          bicycle: Boutik a bisiklèt
+          books: Boutik a liv
+          cheese: Boutik a fomaj
+          florist: Boutik a flè
+          mall: bann-boutik
+          optician: Boutik a linèt
+          perfumery: Boutik a losyon
+          seafood: Manjé lannè
+          shoes: Boutik a Soulyé
+          "yes": Lolo
+        tourism:
+          hotel: Lotèl
+          information: Kamo
+          museum: Mizé
+        tunnel:
+          "yes": Tinèl
+        waterway:
+          canal: Kannal
+          drain: Dalo
+          river: Rivyè
+          stream: Ravin
+          waterfall: Sodo
+      types:
+        cities: Vil prensipal
+        towns: Vil
+  issues:
+    index:
+      search: Chaché
+      states:
+        open: Ouvè
+    show:
+      ignore: Dévwè
+  reports:
+    new:
+      categories:
+        diary_entry:
+          other_label: Dòt
+        diary_comment:
+          other_label: Dòt
+        user:
+          other_label: Dòt
+        note:
+          other_label: Dòt
   layouts:
+    home: Ay akaz
     logout: Chapé
     log_in: Rantré
-    sign_up: Enskriw
+    sign_up: Enskri-w
+    start_mapping: Koumansé kataj-la
     edit: Modifié
     history: Istwa sa ou fè
     export: Voyé déwò
     gps_traces: Chimen GPS
     user_diaries: Jounal
     tag_line: Lyannaj pou kat lib
+    intro_header: Kontan vwè-w asi OpenStreetMap!
+    intro_text: Openstreetmap, sé on kat a lèmonn-la ki fèt parapòt a moun kon-w é
+      lib pou sèvi épi-y évè on lisans lib.
     osm_offline: Base a doné a OpenStreetMap dékonekté atchelman ; Yo ka fè on gwo
       travay enpòtan asi-y pou-y maché bien.
     osm_read_only: Atchelman ou pé li selamn base a doné a OpenStreetMap ; Yo ka fè
       on gwo travay enpòtan asi-y pou-y maché bien.
     donate: Ba OpenStreetMap on Fòs, %{link} Pou fè matériel la vansé.
+    help: Anmwé
     make_a_donation:
       text: Ba OpenStreetMap On Fòs
+    more: Plis
+  user_mailer:
+    note_comment_notification:
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} voyé on komantasyon asi on biten
+          ou maké'
+        subject_other: '[OpenStreetMap] %{commenter} voyé on komantasyon asi on maké
+          ki ka kriyé-w'
+        your_note: '%{commenter} kité on komantasyon asi on biten ou maké asi kat-la
+          ora a %{place}'
+        your_note_html: '%{commenter} lésé on komantasyon asi on biten ou maké asi
+          kat-la pasi %{place}'
+        commented_note_html: '%{commenter} kité on komantasyon anlè on maké a kat
+          ou konmanté. Maké-la ora a %{place}.'
+    changeset_comment_notification:
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} voyé on komantasyon asi yonn a
+          krèy a modifikasyon a-w'
+        subject_other: '[OpenStreetMap] %{commenter} voyé on komantasyon asi on modifikasyon
+          i ka kriyé-w'
   confirmations:
     confirm:
       heading: Konfirmé kont a itilizatè la
       press confirm button: Apiyé asi bouton la ki an ba pou konfirmé kont aw aktif
         menm.
       button: Konfirmé
+      click_here: pijé kotésit
     confirm_email:
       heading: Konfirmé chanjman a adres imél aw
       press confirm button: Apiyé asi bouton la ki an ba pou konfirmé nouvo adres
         imél aw.
       button: Konfirmé
+  messages:
+    new:
+      send_message_to_html: Voyé on dòt mésaj ba %{name}
   passwords:
-    lost_password:
+    new:
       heading: Ou pèd kòd aw?
       email address: 'Adres imél aw :'
       new password button: Voyé on nouvo kòd
+  preferences:
+    show:
+      title: Sa ou simyé
+      preferred_languages: Lang ou pisimyé
   profiles:
     edit:
+      gravatar:
+        gravatar: Sèvi épi Gravatar
+        what_is_gravatar: Ka ki Gravatar?
+        disabled: Yo étenn Gravatar.
       home location: 'La ou ka rété :'
       no home location: Ou po ko mèt la ou ka rété.
       update home location on click: Eskè y fo modifié la ou ka rété lè ou ka kliké
         asi kat la?
   sessions:
     new:
+      title: Konèkté-w
       heading: Konekté
       email or username: 'Adres imél ouben nom itilizaté aw :'
       password: 'Kòd aw:'
-      lost password link: Ou pèd kòd aw?
+      lost password link: Ou pèd kòd a-w?
       login_button: Konektéw
+      auth_providers:
+        wikipedia:
+          title: Konèkté-w épi Wikipédya
   site:
+    copyright:
+      native:
+        mapping_link: koumansé kataj-la
     index:
       js_1: Ou ka sèvi èvè on navigatè ki pa ka sipòté Javascript ouben Javascript
         éten.
@@ -144,9 +485,34 @@ gcf:
       search: Chèché
       where_am_i: Ki moun an yé?
       submit_text: Voyé
+    key:
+      table:
+        entry:
+          train: Tren
+          forest: Granbwa
+          grass: Zèb
+          cemetery: Simityè
+          school: Lékòl
+          hospital: Lopital
+    welcome:
+      rules:
+        title: Larèl-la!
+      add_a_note:
+        the_map: Kat-la
+  traces:
+    new:
+      help: Anmwé
+  oauth_clients:
+    show:
+      confirm: Ès ou sèkten?
   users:
     new:
       no_auto_account_create: Malérezman, alè kilé, nou pé pa ouvè kont automatikman.
+    terms:
+      legale_names:
+        france: Frans
+        italy: Itali
+        rest_of_world: Larèstan a lèmonn-la
     no_such_user:
       body: Malérezman, pa ti ni pon itilisatè èvè non la sa %{user}. Kontrolé lòtograf
         la ouben lien la ou kliké asiy la pa bon.
@@ -154,7 +520,9 @@ gcf:
       my diary: Jounal an mwen
       my edits: Édision an mwen
       my traces: Chimen an mwen
+      my messages: Sé mésaj a-w la
       my settings: Opsion an mwen
+      my_preferences: Sa ou simyé
       send message: Voyé on mésaj
       diary: Jounal
       edits: Édision
@@ -164,4 +532,33 @@ gcf:
       mapper since: 'Arpantè dèpi:'
     go_public:
       flash success: Tou sa ou fè jis alè ki lé piblik ou pa otorizé édité.
+  user_blocks:
+    show:
+      confirm: Ès ou sèkten?
+  notes:
+    index:
+      last_changed: Dènyé lèwvwè yo modifyé-y
+  javascripts:
+    share:
+      title: Simé
+    map:
+      locate:
+        title: Montré la ou yé
+    site:
+      edit_tooltip: Modifyé kat-la
+      createnote_tooltip: Jouté on komantasyon asi kat-la
+    changesets:
+      show:
+        comment: Komantasyon
+    directions:
+      engines:
+        fossgis_valhalla_bicycle: biskèt (Valhalla)
+      errors:
+        no_place: Malérèzsò, yo pa sav ola '%{place}' yé.
+      instructions:
+        continue_without_exit: Kontinyé asi %{name}
+        slight_right_without_exit: Touné tibwen an dwèt a-w asi %{name}
+  redactions:
+    show:
+      confirm: Ès ou sèkten?
 ...
index eb6f77f98d952026eb8857be828c6a8aebf22883..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,13 +1124,15 @@ gd:
         an clàraich thu a-steach 'na chleachdaiche a bu chòir airson a leughadh.
     sent_message_summary:
       destroy_button: Sguab às
+    heading:
+      my_inbox: Am bogsa a-steach agam
     mark:
       as_read: Chuir thu comharra gun deach an teachdaireachd a leughadh
       as_unread: Chuir thu comharra nach deach an teachdaireachd a leughadh
     destroy:
       destroyed: Chaidh an teachdaireachd a sguabadh às
   passwords:
-    lost_password:
+    new:
       title: Facal-faire air chall
       heading: Na chaill thu am facal-faire agad?
       email address: 'Seòladh puist-d:'
@@ -1139,17 +1140,19 @@ gd:
       help_text: Cuir a-steach an seòladh puist-d a chleachd thu gus an cunntas agad
         a chlàradh agus cuiridh sinn post-d dha as urrainn dhut cleachdadh gus am
         facal-faire agad ath-shuidheachadh.
+    create:
       notice email on way: Tha sinn duilich gun do chaill thu e :-( ach tha post-d
         gu bhith tighinn thugad ach an urrainn dhut ath-shuidheachadh a dh'aithghearr.
       notice email cannot find: Duilich ach cha do rinn sinn lorg air an t-seòladh
         puist-d ud.
-    reset_password:
+    edit:
       title: Ath-shuidhich am facal-faire
       heading: Ath-shuidhich am facal-faire aig %{user}
       reset: Ath-shuidhich am facal-faire
-      flash changed: Chaidh am facal-faire agad atharrachadh.
       flash token bad: Cha do rinn sinn lorg air an tòcan ud, an toir thu sùil air
         an URL?
+    update:
+      flash changed: Chaidh am facal-faire agad atharrachadh.
   profiles:
     edit:
       image: 'Dealbh:'
@@ -1395,34 +1398,24 @@ gd:
           footway: Àrainn-choisichean
           rail: Rèile
           subway: Meatro
-          tram:
-          - Rèile aotrom
-          - Trama
-          cable:
-          - Carbad-càbaill
-          - Lioft-sèitheir
-          runway:
-          - Raon-laighe puirt-adhair
-          - Raon-cuairteachaidh
-          apron:
-          - Aparan puirt-adhair
-          - Tèirmineal
+          cable_car: Carbad-càbaill
+          chair_lift: Lioft-sèitheir
+          runway: Raon-laighe puirt-adhair
+          taxiway: Raon-cuairteachaidh
+          apron: Aparan puirt-adhair
           admin: Crìoch rianachd
           forest: Coille
           wood: Coille
           golf: Raon goilf
           park: Pàirc
+          common: Coitcheann
           resident: Raon-còmhnaidh
-          common:
-          - Coitcheann
-          - Faiche
           retail: Raon bhuitean
           industrial: Raon gnìomhachais
           commercial: Raon malairt
           heathland: Aonach
-          lake:
-          - Loch
-          - Loch-tasgaidh
+          lake: Loch
+          reservoir: Loch-tasgaidh
           farm: Tuathanas
           brownfield: Fearann fàs
           cemetery: Cladh
@@ -1431,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
@@ -1658,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 dd0a9b2f5fe4766de74c33d40d60286ef404a59a..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,13 +1837,20 @@ gl:
         correcto para ler a resposta.
     sent_message_summary:
       destroy_button: Eliminar
+    heading:
+      my_inbox: A miña caixa de entrada
+      my_outbox: Caixa de saída
+      muted_messages: Mensaxes silenciadas
     mark:
       as_read: Mensaxe marcada coma lida
       as_unread: Mensaxe marcada coma non lida
+    unmute:
+      notice: A mensaxe moveuse á caixa de entrada
+      error: Non se puido mover a mensaxe á caixa de entrada.
     destroy:
       destroyed: Mensaxe eliminada
   passwords:
-    lost_password:
+    new:
       title: Contrasinal perdido
       heading: Esqueciches o contrasinal?
       email address: 'Enderezo de correo electrónico:'
@@ -1840,16 +1858,20 @@ gl:
       help_text: Escribe o enderezo de correo electrónico que empregaches para te
         rexistrares. Enviarémosche unha ligazón que poderás empregar para restablecer
         o teu contrasinal.
+    create:
       notice email on way: Por desgraza perdeuno, pero hai en camiño unha mensaxe
         de correo electrónico ca que o poderá restabelecelo axiña.
       notice email cannot find: Non se puido atopar o enderezo de correo electrónico.
-    reset_password:
+    edit:
       title: Restablecer o contrasinal
       heading: Restablecer o contrasinal de %{user}
       reset: Restablecer o contrasinal
-      flash changed: Mudouse o teu contrasinal.
       flash token bad: Non se atopou o pase. Quizabes tería que comprobar o enderezo
         URL.
+    update:
+      flash changed: Mudouse o teu contrasinal.
+      flash token bad: Non se atopou o pase. Quizais deberías comprobar o enderezo
+        URL.
   preferences:
     show:
       title: As miñas preferencias
@@ -1954,6 +1976,7 @@ gl:
       image: Imaxe
       alt: Texto alternativo
       url: URL
+      codeblock: Segmento de código
     richtext_field:
       edit: Editar
       preview: Vista previa
@@ -2348,44 +2371,56 @@ gl:
           primary: Estrada primaria
           secondary: Estrada secundaria
           unclassified: Estrada sen clasificar
+          pedestrian: Camiño peonil
           track: Pista
           bridleway: Pista de cabalos
           cycleway: Senda ciclista
           cycleway_national: Carril bici nacional
           cycleway_regional: Carril bici rexional
           cycleway_local: Carril bici local
+          cycleway_mtb: Ruta de bicicleta de montaña
           footway: Senda peonil
           rail: Ferrocarril
+          train: Tren
           subway: Metro
-          tram:
-          - Metro lixeiro
-          - tranvía
-          cable:
-          - Teleférico
-          - telecadeira
-          runway:
-          - Pista do aeroporto
-          - vía de circulación do aeroporto
-          apron:
-          - Plataforma do aeroporto
-          - terminal
+          ferry: Transbordador
+          light_rail: Metro lixeiro
+          tram: Tranvía
+          trolleybus: Trolebús
+          bus: Autobús
+          cable_car: Teleférico
+          chair_lift: Telecadeira
+          runway: Pista do aeroporto
+          taxiway: Vía de circulación do aeroporto
+          apron: Plataforma do aeroporto
           admin: Límite administrativo
+          capital: Capital
+          city: Cidade
+          orchard: Horta
+          vineyard: Viñedo
           forest: Bosque
           wood: Bosque
+          farmland: Terra de labranza
+          grass: Herba
+          meadow: Pradaría
+          bare_rock: Rocha núa
+          sand: Area
           golf: Campo de golf
           park: Parque
+          common: Espazo común
+          built_up: Zona edificada
           resident: Zona residencial
-          common:
-          - Espazo común
-          - pradaría
-          - xardín
           retail: Zona comercial
           industrial: Zona industrial
           commercial: Zona de oficinas
           heathland: Breixeira
-          lake:
-          - Lagoa
-          - encoro
+          scrubland: Matogueira
+          lake: Lagoa
+          reservoir: Encoro
+          intermittent_water: Masa de auga intermitente
+          glacier: Glaciar
+          reef: Arrecife
+          wetland: Pantano
           farm: Granxa
           brownfield: Lugar baldío
           cemetery: Cemiterio
@@ -2394,19 +2429,20 @@ gl:
           centre: Centro deportivo
           reserve: Reserva natural
           military: Zona militar
-          school:
-          - Escola
-          - universidade
+          school: Escola
+          university: Universidade
+          hospital: Hospital
           building: Edificio significativo
           station: Estación de ferrocarrís
-          summit:
-          - Cumio
-          - cume
+          summit: Cumio
+          peak: Cume
           tunnel: Bordo a raias = túnel
           bridge: Bordo negro = ponte
           private: Acceso privado
           destination: Acceso a destino
           construction: Estradas baixo construción
+          bus_stop: Parada de bus
+          stop: Parada
           bicycle_shop: Tenda de bicicletas
           bicycle_parking: Aparcadoiro de bicicletas
           toilets: Servizos
@@ -2609,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
@@ -2645,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:
@@ -2656,7 +2694,7 @@ gl:
       title: Detalles OAuth para %{app_name}
       key: 'Chave ou clave do consumidor:'
       secret: 'Pregunta secreta do consumidor:'
-      url: 'Solicitar unha URL de pase:'
+      url: 'URL do pase da solicitude:'
       access_url: 'Acceder á URL do pase:'
       authorize_url: 'Autorizar a URL:'
       support_notice: Soportamos HMAC-SHA1 (recomendado) e sinaturas RSA-SHA1.
@@ -2734,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?
@@ -2818,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
@@ -2849,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
@@ -2958,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.
@@ -3017,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}
@@ -3053,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
@@ -3174,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.ª
@@ -3257,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í
@@ -3268,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 ac44d7f59f06954676e245ce86cdd2b3d234d444..c5475f3d654894a6606d44b895d6828e014234b7 100644 (file)
@@ -185,12 +185,13 @@ gsw:
       success: Dyy E-Mail-Adräss isch bstetigt wore, dankschen fir s Regischtriere!
       failure: E E-Mail-Adräss isch scho mit däm Link bstetigt wore.
   passwords:
-    reset_password:
+    edit:
       title: Passwort zrucksetze
       heading: Passwort fir %{user} zrucksetze
       reset: Passwort zrucksetze
-      flash changed: Dyy Passwort isch gänderet wore.
       flash token bad: Mir hän des Chirzel leider nit chenne finde. Iberprief d URL.
+    update:
+      flash changed: Dyy Passwort isch gänderet wore.
   traces:
     visibility:
       private: Privat (nume as anonymi, nit sortierti Pinkt ohni Zytstämpfel aazeigt)
index e5a7c2e03574ec61278d829a37d93e5372d8a646..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: ללא
@@ -361,8 +364,8 @@ he:
         כברירת מחדל.
       make_edits_public_button: להפוך את כל עריכותיי לציבוריות
     update:
-      success_confirm_needed: מידע על המשתמש עודכן בהצלחה. נא לבדוק את תיבת הדוא"ל
-        כדי לאמת את הדוא"ל החדש.
+      success_confirm_needed: מידע על המשתמש עודכן בהצלחה. נא לבדוק את תיבת הדוא״ל
+        כדי לאמת את הדוא״ל החדש.
       success: פרטי המשתמש עודכנו בהצלחה.
     destroy:
       success: חשבון נמחק.
@@ -1183,7 +1186,7 @@ he:
           fjord: פיורד
           forest: יער
           geyser: גייזר
-          glacier: קרחון
+          glacier: קרחון יבשתי
           grassland: ערבה
           heath: בתה
           hill: גבעה
@@ -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: פתיחה מחדש
@@ -1764,7 +1767,7 @@ he:
       success: חשבונך אושר, תודה שנרשמת!
       already active: החשבון הזה כבר אושר.
       unknown token: נראה שקוד האישור הזה פג או שאינו קיים.
-      resend_html: אם צריך שנשלח לך שוב את דוא"ל האישור, %{reconfirm_link}.
+      resend_html: אם צריך שנשלח לך שוב את דוא״ל האישור, %{reconfirm_link}.
       click_here: נא ללחוץ כאן
     confirm_resend:
       failure: משתמש %{name} לא נמצא.
@@ -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,28 +1847,38 @@ he:
         נא להיכנס בחשבון הנכון כדי ללקרוא אותה.
     sent_message_summary:
       destroy_button: מחיקה
+    heading:
+      my_inbox: תיבת הדואר הנכנס שלי
+      my_outbox: תיבת הדואר היוצא שלי
+      muted_messages: הודעות מושתקות
     mark:
       as_read: ההודעה סומנה כהודעה שנקראה
       as_unread: ההודעה סומנה כהודעה שלא נקראה
+    unmute:
+      notice: הודעה הועברה לדואר הנכנס
+      error: אי אפשר להעביר את ההודעה לדואר הנכנס.
     destroy:
       destroyed: ההודעה נמחקה
   passwords:
-    lost_password:
+    new:
       title: הסיסמה הלכה לאיבוד
       heading: שכחת סיסמה?
       email address: 'כתובת דוא״ל:'
       new password button: נא לשלוח לי סיסמה חדשה
       help_text: נא להזין את כתובת הדוא״ל שהשתמשת בה כדי להירשם. אנו נשלח אליה קישור
         שאפשר להשתמש בו כדי לאפס את סיסמתך.
+    create:
       notice email on way: אנו מצטערים לשמוע שאיבדת אותה :-( אבל נשלח לדואר האלקטרוני
         שלך מכתב שבאמצעותו אפשר לאפס אותה.
       notice email cannot find: סליחה, הכתובת הזאת לא נמצאה.
-    reset_password:
+    edit:
       title: איפוס סיסמה
       heading: איפוס הסיסמה עבור %{user}
       reset: איפוס הסיסמה
-      flash changed: סיסמתך שונתה.
       flash token bad: לא מצאנו את האסימון ההוא, אולי בדיקת הכתובת תעזור?
+    update:
+      flash changed: סיסמתך שונתה.
+      flash token bad: האסימון לא נמצא, אולי משהו עם הכתובת?
   preferences:
     show:
       title: ההעדפות שלי
@@ -1963,6 +1981,7 @@ he:
       image: תמונה
       alt: טקסט חלופי
       url: כתובת URL
+      codeblock: קטע קוד
     richtext_field:
       edit: עריכה
       preview: תצוגה מקדימה
@@ -2062,9 +2081,9 @@ he:
         credit_3_attribution_guidelines: הנחיות ייחוס
         credit_4_1_html: |-
           כדי להבהיר שהנתונים זמינים לפי תנאי רישיון מסד הנתונים הפתוח, באפשרותך לקשר ל%{this_copyright_page_link}.
-          ×\9c×\97×\9c×\95פ×\99×\9f, ×\95×\9b×\93ר×\99ש×\94 ×\90×\9d OSM ×\9e×\95פץ ×¢×\9cÖ¾×\99×\93×\99×\9a ×\91צ×\95רת × ×ª×\95× ×\99×\9d, ×\91×\90פשר×\95ת×\9a ×\9cתת שם ולקשר ישירות לרישיון (או רישיונות). באמצעי אחסון שבהם קישורים אינם אפשריים (למשל עבודות מודפסות), אנו מציעים לך להפנות את הקוראים שלך לאתר openstreetmap.org (אולי על‏‏־ידי הרחבת
-          "OpenStreetMap" לכתובת המלאה הזאת) ולאתר opendatacommons.org.
-          ×\91×\93×\95×\92×\9e×\94 ×\94×\96×\90ת, ×\94קר×\93×\99×\98 ×\9e×\95פ×\99×¢ בפינת המפה.
+          ×\9c×\97×\9c×\95פ×\99×\9f, ×\95×\9b×\93ר×\99ש×\94 ×\90×\9d OSM ×\9e×\95פץ ×¢×\9cÖ¾×\99×\93×\99×\9a ×\91צ×\95רת × ×ª×\95× ×\99×\9d, ×\90פשר ×\9cספק שם ולקשר ישירות לרישיון (או רישיונות). באמצעי אחסון שבהם קישורים אינם אפשריים (למשל עבודות מודפסות), אנו מציעים לך להפנות את הקוראים שלך לאתר openstreetmap.org (אולי על‏‏־ידי הרחבת
+          ‚OpenStreetMap’ לכתובת המלאה הזאת) ולאתר opendatacommons.org.
+          ×\91×\93×\95×\92×\9e×\94 ×\94×\96×\90ת, ×\94ת×\95×\93×\95ת ×\9e×\95פ×\99×¢×\95ת בפינת המפה.
         credit_4_1_this_copyright_page: דף זכויות היוצרים הזה
         attribution_example:
           alt: דוגמה לצורה הנכונה לתת ייחוס ל־OpenStreetMap באתר האינטרנט
@@ -2342,44 +2361,56 @@ he:
           primary: כביש ראשי
           secondary: כביש משני
           unclassified: דרך לא מסווגת
+          pedestrian: דרך להולכי רגל
           track: מסלול
           bridleway: מסלול לרכיבת סוסים
           cycleway: דרך לאופניים
           cycleway_national: מסלול אופניים לאומי
           cycleway_regional: מסלול אופניים אזורי
           cycleway_local: מסלול אופניים מקומי
+          cycleway_mtb: מסלול אופני הרים
           footway: שביל להולכי רגל
           rail: מסילת ברזל
+          train: רכבת
           subway: רכבת תחתית
-          tram:
-          - רכבת קלה
-          - חשמלית
-          cable:
-          - רכבל
-          - מעלית סקי
-          runway:
-          - מסלול נחיתה
-          - דרך למוניות
-          apron:
-          - רחבת חניה למטוסים
-          - מסוף
+          ferry: מעבורת
+          light_rail: רכבת קלה
+          tram: חשמלית
+          trolleybus: טרוליבוס
+          bus: אוטובוס
+          cable_car: רכבל
+          chair_lift: רכבל מושבים
+          runway: מסלול נחיתה
+          taxiway: מסלול הסעה
+          apron: רחבת חניה למטוסים
           admin: גבול שטח שיפוט
+          capital: בירה
+          city: עיר
+          orchard: מטע
+          vineyard: כרם
           forest: יער
           wood: חורשה
+          farmland: שטח חקלאי
+          grass: דשא
+          meadow: אחו
+          bare_rock: סלע חשוף
+          sand: חול
           golf: מסלול גולף
           park: פארק
+          common: מרעה
+          built_up: שטח בנוי
           resident: אזור מגורים
-          common:
-          - מרעה
-          - מרעה
-          - גן
           retail: אזור קמעונאי
           industrial: אזור תעשייה
           commercial: אזור מסחרי
           heathland: שדה פרא
-          lake:
-          - אגם
-          - מאגר
+          scrubland: בתה
+          lake: אגם
+          reservoir: מאגר
+          intermittent_water: גוף מים תקופתי
+          glacier: קרחון יבשתי
+          reef: שונית
+          wetland: ביצה
           farm: חווה
           brownfield: אזור תעשייה נטוש
           cemetery: בית עלמין
@@ -2388,19 +2419,20 @@ he:
           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: שירותים
@@ -2590,6 +2622,7 @@ he:
       oauth1_settings: הגדרות OAuth 1
       oauth2_applications: יישומי OAuth 2
       oauth2_authorizations: אישורי OAuth 2
+      muted_users: משתמשים מושתקים
   oauth:
     authorize:
       title: אישור הגישה לחשבון שלך
@@ -2626,6 +2659,7 @@ he:
       read_gpx: לקרוא את מסלולי ה־GPS הפרטיים שלך
       write_gpx: להעלות מסלולי GPS
       write_notes: לשנות הערות
+      write_redactions: שינוי נתוני המפה
       read_email: לקרוא את כתובת הדוא"ל של המשתמש
       skip_authorization: לאשר את היישום אוטומטית
   oauth_clients:
@@ -2730,7 +2764,7 @@ he:
       display name description: שם המשתמש שלך, שמוצג בפומבי. אפשר לשנות את זה בהעדפות
         שלך.
       external auth: 'אימות עם צד שלישי:'
-      use external auth: '×\9c×\97×\9c×\95פ×\99×\9f, ×\94שת×\9eש×\95 ×\91צד שלישי כדי להיכנס:'
+      use external auth: '×\9c×\97×\9c×\95פ×\99×\9f, ×\90פשר ×\9c×\94שת×\9eש ×\91×\92×\95ר×\9e×\99 צד שלישי כדי להיכנס:'
       auth no password: עם אימות צד שלישי אין צורך בסיסמה, אבל כלים נוספים או שרת
         יכולים להזדקק לכזה.
       continue: הרשמה
@@ -2738,7 +2772,7 @@ he:
       email_confirmation_help_html: הכתובת שלך אינה מוצגת בפומבי, ר' את %{privacy_policy_link}
         שלנו למידע נוסף.
       privacy_policy: מדיניות הפרטיות
-      privacy_policy_title: מדיניות הפרטיות של OSMF כולל סעיף על כתובות דוא"ל
+      privacy_policy_title: מדיניות הפרטיות של OSMF כוללת סעיף על כתובות דוא״ל
     terms:
       title: תנאים
       heading: תנאים
@@ -2790,6 +2824,8 @@ he:
       my_dashboard: לוח הבקרה שלי
       blocks on me: מתי חסמו אותי
       blocks by me: מתי חסמתי
+      create_mute: השתקת המשתמש הזה
+      destroy_mute: ביטול השתקת המשתמש הזה
       edit_profile: עריכת פרופיל
       send message: שליחת הודעה
       diary: יומן
@@ -2990,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}
@@ -3026,6 +3088,7 @@ he:
       reactivate: הפעלה מחדש
       comment_and_resolve: להגיב ולפתור
       comment: להגיב
+      log_in_to_comment: יש להיכנס כדי להגיב על ההערה הזאת
       report_link_html: אם ההערה הזאת מכילה מידע רגיש שיש להסיר, אפשר %{link}.
       other_problems_resolve: עבור כל שאר הבעיות עם ההערה, נא לפתור אותה בעצמך באמצעות
         הערה.
@@ -3113,10 +3176,10 @@ he:
       edit_disabled_tooltip: להתקרב כדי לערוך את המפה
       createnote_tooltip: הוספת הערה למפה
       createnote_disabled_tooltip: נא להתקרב כדי להוסיף הערה למפה
-      map_notes_zoom_in_tooltip: ×\94תקר×\91×\95ת כדי לראות הערות על המפה
-      map_data_zoom_in_tooltip: ×\99ש ×\9cקר×\91 ×\90ת ×\94×\9eפ×\94 כדי לראות נתוני מפה
+      map_notes_zoom_in_tooltip: ×\99ש ×\9c×\94תקר×\91 כדי לראות הערות על המפה
+      map_data_zoom_in_tooltip: ×\99ש ×\9c×\94תקר×\91 כדי לראות נתוני מפה
       queryfeature_tooltip: שאילתת ישויות
-      queryfeature_disabled_tooltip: ×ª×§×¨×\99ב כדי להריץ שאילתת ישויות
+      queryfeature_disabled_tooltip: ×\99ש ×\9c×\94תקרב כדי להריץ שאילתת ישויות
       embed_html_disabled: הטבעת HTML אינה זמינה בשכבת המפה הזאת
     changesets:
       show:
index b9ade646979523abb22ba43f2e5d78d29a48399c..923e60ef0e33e2f5e0d6432a5459bf32edf9d4a6 100644 (file)
@@ -930,10 +930,10 @@ hi:
     destroy:
       destroyed: संदेश खात्मा
   passwords:
-    lost_password:
+    new:
       title: lost password
       new password button: Send me a new password
-    reset_password:
+    edit:
       title: reset password
   profiles:
     edit:
@@ -983,26 +983,27 @@ hi:
           footway: पगडंडी
           rail: रेलवे
           subway: उपमार्ग
-          cable:
-          - केबल कार
-          runway:
-          - एयरपोर्ट रनवे
+          bus: बस
+          cable_car: केबल कार
+          runway: एयरपोर्ट रनवे
           forest: वन
           wood: लकड़ी
+          grass: घास
+          sand: रेत
           golf: गोल्फ मैदान
           park: पार्क
           resident: रिहायशी क्षेत्र
           industrial: औद्योगिक क्षेत्र
-          lake:
-          - झील
+          lake: झील
           farm: खेत
           cemetery: कब्रिस्तान
           allotments: आवंटन
-          school:
-          - पाठशाला
-          - विश्वविद्यालय
+          school: पाठशाला
+          university: विश्वविद्यालय
+          hospital: अस्पताल
           building: महत्वपूर्ण भवन
           station: रेलवे स्टेशन
+          stop: रोकें
   traces:
     new:
       visibility_help: इसका क्या मतलब है?
index c497084f0e8d5f29a851742ffc712ad825663c4a..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,28 +1190,32 @@ hr:
         kao ispravan korisnik kako bi ste pročitali.'
     sent_message_summary:
       destroy_button: Obriši
+    heading:
+      my_inbox: Dolazna pošta
     mark:
       as_read: Poruka označena pročitanom
       as_unread: Poruka označena nepročitanom
     destroy:
       destroyed: Poruka obrisana
   passwords:
-    lost_password:
+    new:
       title: Izgubljena zaporka
       heading: Zaboravljena zaporka?
       email address: 'Email adresa:'
       new password button: Reset lozinke
       help_text: Unesite email adresu koju ste koristili za otvaranje računa i poslati
         ćemo vam poveznicu kojom možete resetirati zaporku.
+    create:
       notice email on way: Žao mi je što ste je izgubili :-( ali email je na putu
         tako da je možete resetirati uskoro.
       notice email cannot find: Ne mogu pronaći email adresu.
-    reset_password:
+    edit:
       title: Reset lozinke
       heading: Reset lozinke za %{user}
       reset: Reset lozinke
-      flash changed: Vaša lozinka je promjenjena.
       flash token bad: Nije pronađen takav token, provjeri URL?
+    update:
+      flash changed: Vaša lozinka je promjenjena.
   profiles:
     edit:
       image: 'Slika:'
@@ -1423,34 +1425,24 @@ hr:
           footway: Pješačka staza
           rail: Željeznica
           subway: Podzemna željeznica
-          tram:
-          - Laka željeznica
-          - tramvaj
-          cable:
-          - Kabinska žičara
-          - sedežnica
-          runway:
-          - Aerodromska pista
-          - aerodromske ceste (za avione)
-          apron:
-          - Parking za avione (apron)
-          - terminal
+          cable_car: Kabinska žičara
+          chair_lift: sedežnica
+          runway: Aerodromska pista
+          taxiway: aerodromske ceste (za avione)
+          apron: Parking za avione (apron)
           admin: Administrativna granica
           forest: Šuma (održavane, od šumarije)
           wood: Šume (prirodne, neodržavane)
           golf: Golf teren
           park: Park
+          common: Travnjaci
           resident: Stambeno područje
-          common:
-          - Travnjaci
-          - livade
           retail: Maloprodajno područje
           industrial: Industrijsko područje
           commercial: Poslovno područje
           heathland: Gustiš, makija, grmlje
-          lake:
-          - Jezero
-          - rezervoar
+          lake: Jezero
+          reservoir: rezervoar
           farm: Polja, farme, njive
           brownfield: Gradilište
           cemetery: Groblje
@@ -1459,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 caa9f52768c988c3cc57f2478e08e3d24f772215..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,28 +1694,33 @@ hsb:
         na druheho wužiwarja pósłana. Prošu přizjew so z prawym kontom, zo by ju čitał(a).
     sent_message_summary:
       destroy_button: Wotstronić
+    heading:
+      my_inbox: Moja póšta
+      my_outbox: Mój póstowy wuchad
     mark:
       as_read: Powěsć jako přečitanu markěrowana
       as_unread: Powěsć jako njepřečitanu markěrowana
     destroy:
       destroyed: Powěsć wotstronjena
   passwords:
-    lost_password:
+    new:
       title: Hesło zabyte
       heading: Sy hesło zabył?
       email address: 'E-mejlowa adresa:'
       new password button: Hesło wróćo stajić
       help_text: Zapódaj mejlowu adresu, kotruž sy za registrowanje wužił, pósćelemy
         wotkaz na nju, kotryž móžeš za wróćostajenje hesła wužić.
+    create:
       notice email on way: Sy jo zabył :-(, ale e-mejl je po puću, zo by móhł jo borze
         wróćo stajić.
       notice email cannot find: Wodaj, ale njemóžachmy tutu e-mejlowu adresu namakać.
-    reset_password:
+    edit:
       title: Hesło wróćo stajić
       heading: Hesło za wužiwarja %{user} wróćo stajić
       reset: Hesło wróćo stajić
-      flash changed: Twoje hesło je so změniło.
       flash token bad: Njemóžachmy tutón kod namakać, prošu přepruwuj URL.
+    update:
+      flash changed: Twoje hesło je so změniło.
   preferences:
     show:
       title: Moje nastajenja
@@ -2007,34 +2007,24 @@ hsb:
           footway: Chódnik
           rail: Železnica
           subway: Podzemska železnica
-          tram:
-          - Měšćanska železnica
-          - nadróžna
-          cable:
-          - Kablowa nadróžna
-          - sydłowy lift
-          runway:
-          - Přizemišćo
-          - lětadłowa jězdnja
-          apron:
-          - Lětanišćowe předpolo
-          - terminal
+          cable_car: Kablowa nadróžna
+          chair_lift: sydłowy lift
+          runway: Přizemišćo
+          taxiway: lětadłowa jězdnja
+          apron: Lětanišćowe předpolo
           admin: Zarjadniska hranica
           forest: Hajina
           wood: Lěs
           golf: Golfownišćo
           park: Park
+          common: Powšitkowny
           resident: Bydlenski wobwod
-          common:
-          - Powšitkowny
-          - łuka
           retail: Nakupowanišćo
           industrial: Industrijowa kónčina
           commercial: Přemysłowa kónčina
           heathland: Hola
-          lake:
-          - Jězor
-          - spjaty jězor
+          lake: Jězor
+          reservoir: spjaty jězor
           farm: Farma
           brownfield: Industrijowe lado
           cemetery: Kěrchow
@@ -2043,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 c87f3904f0fef872e4d8d78c00fbc2097e8eb9c7..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,28 +1812,36 @@ hu:
         be a helyes felhasználónévvel.
     sent_message_summary:
       destroy_button: Törlés
+    heading:
+      my_inbox: Beérkezett üzenetek
+      my_outbox: Elküldött üzenetek
+      muted_messages: Elnémított üzenetek
     mark:
       as_read: Üzenet megjelölve olvasottként
       as_unread: Üzenet megjelölve olvasatlanként
+    unmute:
+      notice: Az üzenet átkerült a Beérkezett üzenetek mappába
     destroy:
       destroyed: Üzenet törölve
   passwords:
-    lost_password:
+    new:
       title: Elvesztett jelszó
       heading: Elfelejtetted jelszavad?
       email address: 'E-mail-cím:'
       new password button: Jelszó alaphelyzetbe állítása
       help_text: Add meg az e-mail-címed, amellyel regisztráltál. Küldeni fogunk egy
         hivatkozást, amellyel visszaállíthatod a jelszavad.
+    create:
       notice email on way: Sajnáljuk, hogy elvesztetted :-( de már úton van egy e-mail,
         így nemsokára alaphelyzetbe állíthatod.
       notice email cannot find: Sajnáljuk, az e-mail-cím nem található.
-    reset_password:
+    edit:
       title: Jelszó alaphelyzetbe állítása
       heading: '%{user} jelszavának alaphelyzetbe állítása'
       reset: Jelszó alaphelyzetbe állítása
-      flash changed: Jelszavad megváltozott.
       flash token bad: Nem találtad meg a tokent? Esetleg ellenőrizd az URL-t.
+    update:
+      flash changed: Jelszavad megváltozott.
   preferences:
     show:
       title: Megjelenési beállítások
@@ -1862,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:
@@ -2062,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
@@ -2074,6 +2097,7 @@ hu:
           ne adjanak hozzá adatokat egyetlen szerzői jogvédett forrásból se (pl. Google
           Térkép vagy nyomtatott térképek) a szerzői jog tulajdonosának kifejezett
           engedélye nélkül.
+        trademarks_title: Védjegyek
     index:
       js_1: Vagy egy olyan böngészőt használsz, amely nem támogatja a JavaScriptet,
         vagy letiltottad a JavaScriptet.
@@ -2149,6 +2173,7 @@ hu:
             és kijavítod az adatot saját magad.
       other_concerns:
         title: Egyéb aggályok
+        copyright: szerzői jogi oldal
     help:
       title: Segítségkérés
       introduction: Az OpenStreetMap számos anyagot kínál fel ahhoz, hogy ismerkedj
@@ -2221,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
@@ -2229,36 +2255,43 @@ hu:
           cycleway_local: Helyi kerékpárút
           footway: Gyalogút
           rail: Vasút
+          train: Vonat
           subway: Metró
-          tram:
-          - HÉV
-          - villamos
-          cable:
-          - Nagykabinos felvonó
-          - függőszékes felvonó
-          runway:
-          - Kifutópálya
-          - gurulóút
-          apron:
-          - Forgalmi előtér
-          - utasterminál
+          ferry: Komp
+          light_rail: HÉV
+          tram: Villamos
+          trolleybus: Trolibusz
+          bus: Busz
+          cable_car: Nagykabinos felvonó
+          chair_lift: Ülőlift
+          runway: Kifutópálya
+          taxiway: Gurulóút
+          apron: Forgalmi előtér
           admin: Közigazgatási határ
+          orchard: Gyümölcsös
+          vineyard: Szőlő
           forest: Erdő
-          wood: Erdő
+          wood: Természetes erdő
+          farmland: Mezőgazdasági terület
+          grass: Fű
+          meadow: Rét
+          bare_rock: Csupasz szikla
+          sand: Homok
           golf: Golfpálya
           park: Park
+          common: Füves terület
+          built_up: Beépített terület
           resident: Gyalogos övezet
-          common:
-          - Füves terület
-          - rét
-          - kert
           retail: Kereskedelmi terület
           industrial: Ipari terület
           commercial: Kereskedelmi terület
           heathland: Fenyér
-          lake:
-          - Tó
-          - víztározó
+          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ő
@@ -2267,19 +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
@@ -2323,6 +2357,7 @@ hu:
         imports: Importálások
         automated_edits: automatizált szerkesztések
       start_mapping: Térképezés indítása
+      continue_authorization: Engedélyezés folytatása
       add_a_note:
         title: Nincs időd szerkeszteni? Küldj be jegyzetet!
         para_1: Ha valami apróságot szeretnél kijavíttatni és nincs időd regisztrálni
index 5281dd4ab9db1be483e675ea68119b7e147866af..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,26 +1813,32 @@ 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
     destroy:
       destroyed: Message delite
   passwords:
-    lost_password:
+    new:
       title: Contrasigno perdite
       heading: Contrasigno oblidate?
       email address: 'Adresse de e-mail:'
       new password button: Reinitialisar contrasigno
       help_text: Entra le adresse de e-mail que tu usava pro inscriber te, e nos te
         inviara un ligamine que tu pote usar pro reinitialisar tu contrasigno.
+    create:
       notice email on way: Es infortunate que tu lo perdeva :-( ma nos te ha inviate
         un e-mail que te permittera de reinitialisar lo.
       notice email cannot find: Non poteva trovar iste adresse de e-mail, pardono.
-    reset_password:
+    edit:
       title: Reinitialisar contrasigno
       heading: Reinitialisar le contrasigno de %{user}
       reset: Reinitialisar contrasigno
+      flash token bad: Token non trovate. Verifica le URL.
+    update:
       flash changed: Tu contrasigno ha essite cambiate.
       flash token bad: Token non trovate. Verifica le URL.
   preferences:
@@ -2330,36 +2331,44 @@ ia:
           cycleway_local: Pista cyclabile local
           footway: Sentiero pro pedones
           rail: Ferrovia
+          train: Traino
           subway: Metro
-          tram:
-          - Ferrovia legier
-          - tram
-          cable:
-          - Telepherico
-          - Telesedia
-          runway:
-          - Pista de aeroporto
-          - via de circulation pro aviones
-          apron:
-          - Platteforma pro aviones
-          - terminal
+          ferry: Ferry-boat
+          light_rail: Ferrovia legier
+          tram: Tram
+          trolleybus: Trolleybus
+          bus: Autobus
+          cable_car: Telepherico
+          chair_lift: Telesedia
+          runway: Pista de aeroporto
+          taxiway: Via de circulation pro aviones
+          apron: Platteforma pro aviones
           admin: Limite administrative
+          orchard: Verdiero
+          vineyard: Vinia
           forest: Foreste
           wood: Bosco
+          farmland: Terra agricole
+          grass: Herba
+          meadow: Prato
+          bare_rock: Rocca nude
+          sand: Sablo
           golf: Percurso de golf
           park: Parco
+          common: Commun
+          built_up: Area edificate
           resident: Area residential
-          common:
-          - Commun
-          - prato
-          - jardin
           retail: Zona de commercio al detalio
           industrial: Area industrial
           commercial: Area commercial
           heathland: Landa
-          lake:
-          - Laco
-          - bassino
+          scrubland: Terreno de brossas
+          lake: Laco
+          reservoir: Reservoir
+          intermittent_water: Massa de aqua intermittente
+          glacier: Glaciero
+          reef: Scolio
+          wetland: Terra humide
           farm: Ferma
           brownfield: Terra in reposo
           cemetery: Cemeterio
@@ -2368,19 +2377,20 @@ ia:
           centre: Centro de sport
           reserve: Reserva natural
           military: Area militar
-          school:
-          - Schola
-          - universitate
+          school: Schola
+          university: Universitate
+          hospital: Hospital
           building: Edificio significante
           station: Station ferroviari
-          summit:
-          - Summitate
-          - picco
+          summit: Summitate
+          peak: Picco
           tunnel: Bordo a lineettas = tunnel
           bridge: Bordo nigre = ponte
           private: Accesso private
           destination: Traffico local
           construction: Vias in construction
+          bus_stop: Halto de autobus
+          stop: Halto
           bicycle_shop: Magazin de bicyclettas
           bicycle_parking: Parcamento de bicyclettas
           toilets: Toilettes
@@ -2424,6 +2434,7 @@ ia:
         imports: Importationes
         automated_edits: Modificationes automatisate
       start_mapping: comenciar le cartographia
+      continue_authorization: Continuar autorisation
       add_a_note:
         title: Non ha tempore pro modificar? Adde un nota!
         para_1: Si tu vole meliorar un micre cosa e non ha le tempore pro crear un
@@ -3117,6 +3128,8 @@ ia:
       map_data_zoom_in_tooltip: Face zoom avante pro vider le datos del carta
       queryfeature_tooltip: Cercar objectos
       queryfeature_disabled_tooltip: Face zoom avante pro cercar objectos
+      embed_html_disabled: Le incastration de HTML non es disponibile pro iste strato
+        cartographic
     changesets:
       show:
         comment: Commento
index 14b3308371ffc257cba9afc2d441ba7782ed9b0b..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,13 +1798,16 @@ 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
     destroy:
       destroyed: Pesan dihapus
   passwords:
-    lost_password:
+    new:
       title: Kehilangan kata sandi
       heading: Lupa Kata Sandi?
       email address: 'Alamat Email:'
@@ -1817,15 +1815,17 @@ id:
       help_text: Masukkan alamat email yang Anda gunakan untuk mendaftar, kami akan
         mengirim link ke alamat tersebut yang dapat Anda gunakan untuk menyetel ulang
         kata sandi Anda.
+    create:
       notice email on way: Maaf sudah hilang :-( namun sebuah email telah dikirimkan
         agar Anda dapat segera mengatur ulang.
       notice email cannot find: Tidak dapat menemukan alamat email tersebut, maaf.
-    reset_password:
+    edit:
       title: Setel ulang kata sandi
       heading: Setel ulang kata sandi untuk %{user}
       reset: Setel Ulang Kata Sandi
-      flash changed: Kata sandi Anda telah diubah.
       flash token bad: Tidak dapat menemukan token tersebut, cek URL nya mungkin?
+    update:
+      flash changed: Kata sandi Anda telah diubah.
   preferences:
     show:
       title: Preferensi Saya
@@ -2291,35 +2291,24 @@ id:
           footway: Jalan Setapak
           rail: Rel Kereta
           subway: Kereta bawah tanah
-          tram:
-          - Kereta listrik
-          - trem
-          cable:
-          - Kereta Kabel
-          - Kereta Gantung
-          runway:
-          - Landasan bandara
-          - landas hubung
-          apron:
-          - Tempat Parkir Pesawat
-          - terminal
+          cable_car: Kereta Kabel
+          chair_lift: Kereta Gantung
+          runway: Landasan bandara
+          taxiway: landas hubung
+          apron: Tempat Parkir Pesawat
           admin: Batas administrasi
           forest: Hutan
           wood: Kayu
           golf: Lapangan Golf
           park: Taman
+          common: Umum
           resident: Area Permukiman
-          common:
-          - Umum
-          - Padang rumput
-          - kebun
           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
@@ -2328,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 638a1e31b74b4a9b447a5e50b097278334b32023..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,27 +1806,32 @@ is:
         notanda til að geta svarað.
     sent_message_summary:
       destroy_button: Eyða
+    heading:
+      my_inbox: Innhólfið mitt
+      my_outbox: Úthólfið mitt
     mark:
       as_read: Skilaboðin voru merkt sem lesin
       as_unread: Skilaboðin voru merkt sem ólesin
     destroy:
       destroyed: Skilaboðunum var eytt
   passwords:
-    lost_password:
+    new:
       title: Glatað lykilorð
       heading: Gleymt lykilorð?
       email address: 'Tölvupóstfang:'
       new password button: Endurstilla lykilorð
       help_text: Sláðu inn netfangið sem þú skráðir þig með, við munum senda tengil
         á það sem þú getur notað til að breyta lykilorðinu þínu.
+    create:
       notice email on way: Nýtt lykilorð er á leiðinni í innhólfið þitt.
       notice email cannot find: Þetta netfang fannst ekki.
-    reset_password:
+    edit:
       title: Endurstilla lykilorð
       heading: Endurstilla lykilorð fyrir %{user}
       reset: Endurstilla lykilorð
-      flash changed: Lykilorðinu þínu hefur verið breytt
       flash token bad: Þessi leynistrengur fannst ekki, kannski er slóðin röng?
+    update:
+      flash changed: Lykilorðinu þínu hefur verið breytt
   preferences:
     show:
       title: Kjörstillingar
@@ -2367,35 +2367,24 @@ is:
           footway: Gönguleið
           rail: Lestarteinar
           subway: Neðanjarðarlest
-          tram:
-          - Léttlest
-          - sporvagn
-          cable:
-          - Kláflyfta
-          - stólalyfta
-          runway:
-          - Flugbraut
-          - akstursbraut
-          apron:
-          - Flughlað
-          - flugstöð
+          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
           wood: Náttúrulegur skógur
           golf: Golfvöllur
           park: Almenningsgarður
+          common: Almenningur
           resident: Íbúðasvæði
-          common:
-          - Almenningur
-          - lundur
-          - garður
           retail: Smásölusvæði
           industrial: Iðnaðarsvæði
           commercial: Verslunarsvæði
           heathland: Heiðalönd
-          lake:
-          - Vatn
-          - uppistöðulón
+          lake: Vatn
+          reservoir: uppistöðulón
           farm: Bóndabær
           brownfield: Nýbyggingarsvæði
           cemetery: Grafreitur
@@ -2404,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 049a556ab362ed9a1a818fa6466b9aee6204e1b7..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,13 +1879,20 @@ it:
         accedi con l'utenza interessata.
     sent_message_summary:
       destroy_button: Cancella
+    heading:
+      my_inbox: Posta in arrivo
+      my_outbox: Posta in uscita
+      muted_messages: Messaggi silenziati
     mark:
       as_read: Messaggio marcato come già letto
       as_unread: Messaggio marcato come non letto
+    unmute:
+      notice: Il messaggio è stato spostato nella Posta in arrivo
+      error: Non è stato possibile spostare il messaggio nella Posta in arrivo.
     destroy:
       destroyed: Messaggio eliminato
   passwords:
-    lost_password:
+    new:
       title: password persa
       heading: Password dimenticata?
       email address: 'Indirizzo email:'
@@ -1884,17 +1900,20 @@ it:
       help_text: Inserire l'indirizzo email che si è utilizzato per l'iscrizione,
         a cui verrà inviato un collegamento che permetterà la reimpostazione della
         propria password.
+    create:
       notice email on way: Siamo spiacenti che tu l'abbia persa :-( ma una email ti
         è stata spedita in modo che tu la possa presto reimpostare.
       notice email cannot find: Spiacenti, ma non è possibile trovare l'indirizzo
         email.
-    reset_password:
+    edit:
       title: Reimposta password
       heading: Reimposta password per %{user}
       reset: Reimposta password
-      flash changed: La propria password è stata modificata.
       flash token bad: Non è stato possibile trovare il codice. Controllare l'indirizzo
         URL.
+    update:
+      flash changed: La propria password è stata modificata.
+      flash token bad: Non è stato trovato quel token, controlla l'URL forse?
   preferences:
     show:
       title: Preferenze
@@ -1998,6 +2017,7 @@ it:
       image: Immagine
       alt: Testo alternativo
       url: URL
+      codeblock: Blocco di codice
     richtext_field:
       edit: Modifica
       preview: Anteprima
@@ -2134,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
@@ -2367,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:
-          - Metropolitana leggera
-          - tram
-          cable:
-          - Funivia
-          - seggiovia
-          runway:
-          - Pista di decollo/atterraggio
-          - pista di rullaggio
-          apron:
-          - Area di parcheggio aeroportuale
-          - terminal
+          ferry: Traghetto
+          light_rail: Metropolitana leggera
+          tram: Tram
+          trolleybus: Filobus
+          bus: Autobus
+          cable_car: Funivia
+          chair_lift: Seggiovia
+          runway: Pista di decollo/atterraggio
+          taxiway: Pista di rullaggio
+          apron: Area di parcheggio aeroportuale
           admin: Confine amministrativo
+          capital: Capitale
+          city: Città
+          orchard: Frutteto
+          vineyard: Vigneto
           forest: Foresta
           wood: Bosco
+          farmland: Terreno agricolo
+          grass: Prato
+          meadow: Prato
+          bare_rock: Roccia nuda
+          sand: Sabbia
           golf: Campo da golf
           park: Parco
+          common: Area comune
           resident: Zona residenziale
-          common:
-          - Area comune
-          - prato
-          - giardino
           retail: Zona con negozi
           industrial: Zona industriale
           commercial: Zona di uffici
           heathland: Brughiera
-          lake:
-          - Lago
-          - riserva d'acqua
+          scrubland: Macchia
+          lake: Lago
+          reservoir: Riserva idrica
+          intermittent_water: Corpo idrico intermittente
+          glacier: Ghiacciaio
+          reef: Scogliera
+          wetland: Zona umida
           farm: Azienda agricola
           brownfield: Area soggetta ad interventi di ridestinazione d'uso
           cemetery: Cimitero
@@ -2413,19 +2448,20 @@ 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
           toilets: Bagni pubblici
@@ -2471,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
@@ -2638,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
@@ -2847,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
@@ -2878,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
@@ -2987,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.
@@ -3045,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}
@@ -3081,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
@@ -3172,6 +3249,8 @@ it:
       map_data_zoom_in_tooltip: Zooma per vedere i dati della mappa
       queryfeature_tooltip: Ricerca di elementi
       queryfeature_disabled_tooltip: Ingrandisci per ricercare elementi
+      embed_html_disabled: L'incorporamento HTML non è disponibile per questo livello
+        mappa
     changesets:
       show:
         comment: Commenta
index 71b055ca0e22950351bc80b97f660a09f8ec096d..127ec058de69446405c90b04ff8b01583a8f82b9 100644 (file)
@@ -12,6 +12,7 @@
 # Author: Ffff23
 # Author: Foomin10
 # Author: Fryed-peach
+# Author: Great ones
 # Author: Hayashi
 # Author: Higa4
 # Author: Hiro884
@@ -274,6 +275,7 @@ ja:
         reopened_at_by_html: '%{user}さんが%{when}に再開'
       rss:
         title: OpenStreetMap メモ
+        description_all: 報告されたメモ、コメントされたメモ、または閉じられたメモのリスト
         description_area: あなたのエリア [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
           に関する注記で報告済みまたはコメント付きあるいは解決済みの一覧
         description_item: メモ %{id} の RSS フィード
@@ -300,6 +302,7 @@ ja:
         retain_notes: 日記のエントリと日記のコメントがある場合は保持されますが、表示されません。
         retain_changeset_discussions: 変更セットのディスカッションがあれば、保持されます。
         retain_email: メールアドレスは保持されます。
+        recent_editing_html: 最近編集したため、現在アカウントを削除できません。 %{time}以内に削除可能になります。
         confirm_delete: 本当によろしいですか?
         cancel: キャンセル
   accounts:
@@ -329,7 +332,12 @@ ja:
       delete_account: アカウントを削除
     go_public:
       heading: 公開編集
+      currently_not_public: 現在、あなたの編集内容は匿名であり、他の人があなたにメッセージを送ったり、あなたの位置情報を確認したりすることはできません。編集内容を表示し、Web
+        サイトを通じて他の人があなたに連絡できるようにするには、下のボタンをクリックしてください。
+      only_public_can_edit: 0.6 API 変更以来,地図データを公開ユーザーだけが編集できます.
       find_out_why: 理由を明らかにする
+      email_not_revealed: あなたのメールアドレスが公開されることはありません
+      not_reversible: このアクションを元に戻すことはできず、すべての新規ユーザーはデフォルトで公開になります。
       make_edits_public_button: 自分の編集をすべて公開する
     update:
       success_confirm_needed: 利用者情報を更新しました。新着メールを確認して新しいメール アドレスを検証してください。
@@ -1419,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: 再開
@@ -1647,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: 既読にする
@@ -1677,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:
@@ -1697,26 +1700,31 @@ ja:
       wrong_user: あなたは「%{user}」としてログインしていますが、閲覧しようとしたメッセージは、この利用者が送信したものでも、この利用者宛てのものでもありません。メッセージを閲覧するには、正しいユーザーとしてログインしてください。
     sent_message_summary:
       destroy_button: 削除
+    heading:
+      my_inbox: 自分の受信箱
+      my_outbox: 自分の送信ボックス
     mark:
       as_read: 既読メッセージ
       as_unread: 未読メッセージ
     destroy:
       destroyed: メッセージを削除しました
   passwords:
-    lost_password:
+    new:
       title: パスワードを忘れた
       heading: パスワードを忘れた場合はこちら
       email address: 'メール アドレス:'
       new password button: パスワードを再設定
       help_text: ユーザー登録に使用したメール アドレスを入力してください。そのアドレス宛に、パスワードを再設定するためのリンクをお送りします。
+    create:
       notice email on way: すみません。紛失してしまいました :-( しかし、メールをお送りしたので、すぐにリセットできるでしょう。
       notice email cannot find: 申し訳ありませんが、このメール アドレスは見つかりません。
-    reset_password:
+    edit:
       title: パスワードの再設定
       heading: '%{user} のパスワードのリセット'
       reset: パスワードを初期化
-      flash changed: あなたのパスワードは変更されました。
       flash token bad: キーワードが見つかりません。URL を確認してください。
+    update:
+      flash changed: あなたのパスワードは変更されました。
   preferences:
     show:
       title: 個人設定
@@ -2017,35 +2025,24 @@ ja:
           footway: 歩道
           rail: 鉄道
           subway: 地下鉄
-          tram:
-          - 軽便鉄道
-          - 路面電車
-          cable:
-          - 交走式ロープウェイ
-          - チェアリフト
-          runway:
-          - 空港滑走路
-          - 空港誘導路
-          apron:
-          - 空港ビル
-          - 空港ターミナル
+          cable_car: 交走式ロープウェイ
+          chair_lift: チェアリフト
+          runway: 空港滑走路
+          taxiway: 空港誘導路
+          apron: 空港ビル
           admin: 行政境界
           forest: 森
           wood: 森林
           golf: ゴルフ場
           park: 公園
+          common: 共有地
           resident: 住宅地
-          common:
-          - 共有地
-          - 牧草地
-          - 庭園
           retail: 小売業地域
           industrial: 工業地域
           commercial: オフィス地域
           heathland: 荒地
-          lake:
-          - 湖
-          - 溜池
+          lake: 湖
+          reservoir: 溜池
           farm: 農牧場
           brownfield: 褐色地
           cemetery: 墓地
@@ -2054,14 +2051,12 @@ ja:
           centre: スポーツセンター
           reserve: 自然保護区
           military: 軍用地域
-          school:
-          - 学校
-          - 大学
+          school: 学校
+          university: 大学
           building: 重要建造物
           station: 鉄道駅
-          summit:
-          - 山脈
-          - 山頂
+          summit: 山脈
+          peak: 山頂
           tunnel: 点線の枠 = トンネル
           bridge: 黒枠 = 橋梁
           private: 私的通行
@@ -2391,6 +2386,7 @@ ja:
       my_dashboard: 私のダッシュボード
       blocks on me: 自分に与えられたブロック
       blocks by me: 自分が実行したブロック
+      create_mute: この利用者をミュートする
       edit_profile: プロフィールを編集
       send message: メッセージを送信
       diary: 日記
index da1e87d99bf5897f33517e7df1cb294bcda352fc..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,17 +848,19 @@ ka:
         როგორც შესაბამისი მომხმარებელი, რათა წაიკითხოთ ის.
     sent_message_summary:
       destroy_button: წაშლა
+    heading:
+      my_inbox: ჩემი მიღებული
     mark:
       as_read: შეტყობინება მონიშნულია როგორც წაკითხული
       as_unread: შეტყობინება მონიშნულია როგორც წაუკითხავი
     destroy:
       destroyed: შეტყობინება წაშლილია
   passwords:
-    lost_password:
+    new:
       title: პაროლის აღდგენა
       heading: დაგავიწყდათ პაროლი?
       email address: 'ელ. ფოსტის მისამართი:'
-    reset_password:
+    update:
       flash changed: თქვენი პაროლი შეიცვალა.
   profiles:
     edit:
@@ -942,14 +942,8 @@ ka:
           footway: საფეხმავლო გზა
           rail: რკინიგზა
           subway: მეტრო
-          tram:
-            1: ტრამვაი
-          cable:
-          - საბაგირო გზა
-          runway:
-          - აეროპორტის ასაფრენ-დასაფრენი ბილიკი
-          apron:
-            1: ტერმინალი
+          cable_car: საბაგირო გზა
+          runway: აეროპორტის ასაფრენ-დასაფრენი ბილიკი
           admin: ადმინისტრაციული საზღვარი
           forest: ტყე
           wood: ტყე
@@ -957,22 +951,19 @@ ka:
           park: პარკი
           resident: საცხოვრებელი ტერიტორია
           commercial: კომერციული ტერიტორია
-          lake:
-          - ტბა
-          - წყალსაცავი
+          lake: ტბა
+          reservoir: წყალსაცავი
           farm: ფერმა
           cemetery: სასაფლაო
           pitch: სპორტული მოედანი
           centre: სპორტული ცენტრი
           reserve: ნაკრძალი
           military: სამხედრო ტერიტორია
-          school:
-          - სკოლა
-          - უნივერსიტეტი
+          school: სკოლა
+          university: უნივერსიტეტი
           station: რკინიგზის სადგური
-          summit:
-          - მწვერვალი
-          - პიკი
+          summit: მწვერვალი
+          peak: პიკი
   traces:
     new:
       visibility_help: ეს რას ნიშნავს?
index 434ed18f3bc1e14e6cd6abede0cbd1235052ca2f..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,23 +932,26 @@ kab:
       back: Uɣal
     sent_message_summary:
       destroy_button: Kkes
+    heading:
+      my_inbox: Tanaka-iw n urmas
     mark:
       as_read: Izen yettwacred yettwaɣra
       as_unread: Izen yettwacred ur yettwaɣra ara
     destroy:
       destroyed: Izen yettwakkes
   passwords:
-    lost_password:
+    new:
       title: Awal uffir iṛuḥ
       heading: Tettuḍ awal uffir?
       email address: 'Tansa imayl:'
       new password button: Ales awennez n wawal uffir
-    reset_password:
+    edit:
       title: Ales awennez n wawal uffir
       heading: Ales awennez n wawal uffir i %{user}
       reset: Ales awennez n wawal uffir
-      flash changed: Awal-ik uffir ibeddel.
       flash token bad: Ajiṭun-agi ulac-it, ahat tuccḍa di tansa URL?
+    update:
+      flash changed: Awal-ik uffir ibeddel.
   profiles:
     edit:
       image: 'Tugna:'
@@ -1120,11 +1121,9 @@ kab:
       table:
         entry:
           forest: Tiẓgi
-          lake:
-          - Amdun
-          school:
-          - Aɣerbaz
-          - Tasdawit
+          lake: Amdun
+          school: Aɣerbaz
+          university: Tasdawit
     welcome:
       title: Anṣuf!
       whats_on_the_map:
index 9a7569784c77e2777ff004e2f75389aa42836543..918147ef58686d532e944570c02d0b50c4be92b5 100644 (file)
@@ -852,7 +852,7 @@ kk-cyrl:
     lost_password:
       subject: '[OpenStreetMap] Құпиясөзді арылту сұранысы'
   messages:
-    inbox:
+    messages_table:
       subject: Тақырып
     message_summary:
       unread_button: Оқылмаған деп белгілеу
@@ -866,10 +866,11 @@ kk-cyrl:
     sent_message_summary:
       destroy_button: Жою
   passwords:
-    lost_password:
+    new:
       email address: 'Е-пошта мекенжайы:'
-    reset_password:
+    edit:
       title: Құпиясөзді арылту
+    update:
       flash changed: Құпия сөзіңіз өзгертілді.
   preferences:
     show:
@@ -971,36 +972,26 @@ kk-cyrl:
           unclassified: Жергілікті жол
           rail: Темір жол
           subway: Метро
-          tram:
-          - Жеңіл рельсті көлік
-          apron:
-          - Әуежай перроны
-          - терминал
+          apron: Әуежай перроны
           admin: Әкімшілік шекара
           forest: Орман
           golf: Гольф алаңы
           park: Саябақ
           resident: Тұрғын аудан
-          common:
-            1: шабындық
-            2: бақ
           retail: Сауда аймағы
           industrial: Өнеркәсіп аймағы
-          lake:
-          - Көл
+          lake: Көл
           farm: Ферма
           cemetery: Зират
           allotments: Саяжайлар
           pitch: Спорт алаңы
           centre: Спорт орталығы
           military: Әскери аймақ
-          school:
-          - Мектеп
-          - университет
+          school: Мектеп
+          university: университет
           building: Елеулі ғимарат
           station: Темір жол бекеті
-          summit:
-            1: шың
+          peak: шың
           bicycle_shop: Велосипед дүкені
           toilets: Дәретхана
     welcome:
index d32001d7b5675f6a0fd5b3549671c8291e2ad8eb..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: កត់ឈ្មោះចូល
@@ -726,17 +723,14 @@ km:
           cycleway_local: ផ្លូវទោចក្រយានតំបន់
           rail: ផ្លូវដែក
           subway: ផ្លូវដែកក្រោមដី
-          tram:
-          - ផ្លូវដែកធុនស្រាល
           admin: ព្រំដែនរដ្ឋបាល
           forest: ព្រៃឈើ​
           park: ឧទ្យាន​
           industrial: តំបន់ឧស្សាហកម្ម​
           farm: កសិដ្ឋាន​
           centre: មជ្ឈមណ្ឌល​កីឡា​
-          school:
-          - សាលារៀន​
-          - សាកលវិទ្យាល័យ​
+          school: សាលារៀន​
+          university: សាកលវិទ្យាល័យ​
           station: ស្ថានីយ៍ផ្លូវដែក
   traces:
     new:
index 21f4cd062a1c6894919d0344f3d2eb8154539990..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: ಸಂದೇಶವನ್ನು ಓದಿ
@@ -747,9 +745,9 @@ kn:
     destroy:
       destroyed: ಸಂದೇಶವನ್ನು ಅಳಿಸಿ ಹಾಕಲಾಗಿದೆ
   passwords:
-    lost_password:
+    new:
       email address: 'ಮಿಂಚಂಚೆ ವಿಳಾಸ:'
-    reset_password:
+    update:
       flash changed: ನಿಮ್ಮ ಪ್ರವೇಶಪದವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ.
   preferences:
     show:
@@ -873,14 +871,12 @@ kn:
           forest: ಅರಣ್ಯ
           park: ಉದ್ಯಾನ
           resident: ವಾಸ ಮಾಡುವ ಸ್ಥಳ
-          lake:
-          - ಕೆರೆ
-          - ಅಣೆಕಟ್ಟು
+          lake: ಕೆರೆ
+          reservoir: ಅಣೆಕಟ್ಟು
           farm: ಒಕ್ಕಲು ಜಮೀನು
           cemetery: ಸ್ಮಾಶಾಣ
-          school:
-          - ಪಾಠಶಾಲೆ
-          - ವಿಶ್ವವಿದ್ಯಾಲಯ
+          school: ಪಾಠಶಾಲೆ
+          university: ವಿಶ್ವವಿದ್ಯಾಲಯ
           station: ರೈಲು ನಿಲ್ದಾಣ
     welcome:
       title: ಸುಸ್ವಾಗತ!
index 62ccce407c1555db3954adc4220207735cf05ff1..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,26 +1701,31 @@ ko:
         올바른 사용자로 로그인하세요.'
     sent_message_summary:
       destroy_button: 삭제
+    heading:
+      my_inbox: 받은 쪽지함
+      my_outbox: 보낸 쪽지함
     mark:
       as_read: 메시지를 읽은 것으로 표시
       as_unread: 메시지를 읽지 않은 것으로 표시
     destroy:
       destroyed: 메시지가 삭제됨
   passwords:
-    lost_password:
+    new:
       title: 잊어버린 비밀번호
       heading: 비밀번호를 잊으셨나요?
       email address: '이메일 주소:'
       new password button: 비밀번호 재설정
       help_text: 가입할 때 사용한 이메일 주소를 입력하세요, 비밀번호를 재설정하여 사용할 수 있는 링크를 보내드립니다.
+    create:
       notice email on way: 비밀번호를 잊었다니, 안타깝습니다 :-( 비밀번호 재설정을 할 수 있도록 이메일이 발송되었습니다.
       notice email cannot find: 이메일 주소를 찾지 못해 죄송합니다.
-    reset_password:
+    edit:
       title: 비밀번호 재설정
       heading: '%{user}의 비밀번호 재설정'
       reset: 비밀번호 재설정
-      flash changed: 비밀번호가 바뀌었습니다.
       flash token bad: 토큰을 찾지 못했습니다. URL을 확인했습니까?
+    update:
+      flash changed: 비밀번호가 바뀌었습니다.
   preferences:
     show:
       title: 내 환경 설정
@@ -1828,6 +1828,7 @@ ko:
       image: 이미지
       alt: 대체 텍스트
       url: URL
+      codeblock: 코드 블록
     richtext_field:
       edit: 편집
       preview: 미리 보기
@@ -2155,35 +2156,24 @@ ko:
           footway: 보도
           rail: 철도
           subway: 지하철
-          tram:
-          - 경전철
-          - 노면 전차
-          cable:
-          - 케이블 카
-          - 체어 리프트
-          runway:
-          - 공항 활주로
-          - 공항 유도로
-          apron:
-          - 공항 계류장
-          - 터미널
+          cable_car: 케이블 카
+          chair_lift: 체어 리프트
+          runway: 공항 활주로
+          taxiway: 공항 유도로
+          apron: 공항 계류장
           admin: 행정 구역 경계
           forest: 숲
           wood: 산림
           golf: 골프장
           park: 공원
+          common: 공유지
           resident: 주거 지역
-          common:
-          - 공유지
-          - 목초지
-          - 정원
           retail: 소매 지역
           industrial: 산업 지역
           commercial: 상업/관공서 지역
           heathland: 황무지
-          lake:
-          - 호수
-          - 저수지
+          lake: 호수
+          reservoir: 저수지
           farm: 농장
           brownfield: 재개발지역
           cemetery: 묘역
@@ -2192,14 +2182,12 @@ ko:
           centre: 스포츠 센터
           reserve: 자연 보호구역
           military: 군사 지역
-          school:
-          - 학교
-          - 대학
+          school: 학교
+          university: 대학
           building: 주요 건물
           station: 철도역
-          summit:
-          - 산꼭대기
-          - 봉우리
+          summit: 산꼭대기
+          peak: 봉우리
           tunnel: 점선 테두리 = 터널
           bridge: 검은 테두리 = 다리
           private: 개인 통행
@@ -2501,6 +2489,7 @@ ko:
       application: 애플리케이션
       permissions: 권한
       no_applications_html: 아직 %{oauth2} 애플리케이션을 승인하지 않았습니다.
+      oauth_2: OAuth 2
     application:
       revoke: 접근 취소
       confirm_revoke: 이 애플리케이션에 대한 액세스 권한을 취소하시겠습니까?
index 3cf67f7b5c98e144885fc98c11d752d0b49ce011..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}?
@@ -204,14 +205,15 @@ ksh:
     sent_message_summary:
       destroy_button: Fottschmiiße
   passwords:
-    lost_password:
+    new:
       title: Verloore Paßwoot
       heading: Paßwoot verjäße?
       email address: 'De Adräß för de e-mail:'
       new password button: Paßwoot neu säze
-    reset_password:
+    edit:
       title: Paßwoot neu säze
       reset: Paßwoot neu säze
+    update:
       flash changed: Ding Paßwoot es jeändert.
   sessions:
     new:
@@ -277,34 +279,24 @@ ksh:
           footway: Fohßwääsch udder Päddsche
           rail: Eiserbahn
           subway: U-Bahn
-          tram:
-          - Klëijnbahn
-          - Strohßebahn
-          cable:
-          - Seilbahn
-          - Sässelbahn
-          runway:
-          - Startbahn, Landebahn
-          - Rollwääsch om Fluchhaaven
-          apron:
-          - Halldepläz om Fluchveäld
-          - Terminal em Fluchhaaven
+          cable_car: Seilbahn
+          chair_lift: Sässelbahn
+          runway: Startbahn, Landebahn
+          taxiway: Rollwääsch om Fluchhaaven
+          apron: Halldepläz om Fluchveäld
           admin: Verwalldongsjränz
           forest: Wald, Bösch
           wood: Urwald
           golf: Jolfplaz
           park: Park
+          common: öffentlesch Land
           resident: Wohnjebeet
-          common:
-          - öffentlesch Land
-          - Wiß
           retail: Einkaufszentrum
           industrial: Industriejebeet
           commercial: Jewerbejebeet
           heathland: Heed
-          lake:
-          - See, Wejer
-          - Stausee
+          lake: See, Wejer
+          reservoir: Stausee
           farm: Buurehoff
           brownfield: Industriebrachland
           cemetery: Friedhoff
@@ -313,14 +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 5e53c06d12798c83c4ed63b72948ec307a45ecab..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,29 +1782,34 @@ ku-Latn:
         Xêra xwe ji bo xwendinê wekî bikarhênerê rast têbikeve.
     sent_message_summary:
       destroy_button: Jê bibe
+    heading:
+      my_inbox: Qutiya min a hatiyan
+      my_outbox: Çûdanka min
     mark:
       as_read: Peyam wek xwendî hate nîşankirin
       as_unread: Peyam wek nexwendî hate nîşankirin
     destroy:
       destroyed: Payam hate jêbirin
   passwords:
-    lost_password:
+    new:
       title: Şîfreya wenda
       heading: Te şîfreya xwe ji bîr kir?
       email address: 'Navnîşana E-peyamê:'
       new password button: Şîfreyê nû bike
       help_text: E-peyama ku te pê xwe qeydkiribû binivîse, em ê ji te re lînkek bişînin
         tu yê bi wê lînkê bikaribî şîfreya xwe nû bikî.
+    create:
       notice email on way: Bibore, te wê wenda kir :-( lê belê e-peyamekî nû di rê
         de ye. Lewma tu dikarî di nêz de wê nû bikî.
       notice email cannot find: Bibore, ev adrêsa e-peyamê nehate dîtin.
-    reset_password:
+    edit:
       title: Şîfreyê nû bike
       heading: Şîfreyê nû bike ji bo %{user}
       reset: Şîfreyê nû bike
-      flash changed: Şîfreya te hate guhartin.
       flash token bad: Eger te vê sembolê nedîtibe, belkî jî divê tu URLyê kontrol
         bikî?
+    update:
+      flash changed: Şîfreya te hate guhartin.
   preferences:
     show:
       title: Tercîhên min
@@ -2110,35 +2122,24 @@ ku-Latn:
           footway: Rêya peyayan
           rail: Rêhesin
           subway: Metro
-          tram:
-          - Rêya trênê yê bi xeta teng
-          - tramway
-          cable:
-          - Teleferîk
-          - teleferîk
-          runway:
-          - Pîsta balafirgehê
-          - rêya balafirgehê yê çûnûhatinê
-          apron:
-          - Aprona balafirgehê
-          - termînal
+          cable_car: Teleferîk
+          chair_lift: Teleferîk
+          runway: Pîsta balafirgehê
+          taxiway: Rêya balafirgehê yê çûnûhatinê
+          apron: Aprona balafirgehê
           admin: Sînorê îdarî
           forest: Daristan
-          wood: Daristan
+          wood: Daristan (bêçavdêrî, wek-xwe-hêlayî)
           golf: Cihê golfê
           park: Park
+          common: Erda mişterek
           resident: Cihê îkametê
-          common:
-          - Erda mişterek
-          - mêrg
-          - bexçe
           retail: Saheya Perakendeyê (Maxazayan)
           industrial: Cihê endustriyê
           commercial: Herêma bazirganiyê
           heathland: Erdê qeraç
-          lake:
-          - Gol
-          - mexzen
+          lake: Gol
+          reservoir: Gola sûnî
           farm: Cotgeh
           brownfield: Erdê vala
           cemetery: Gorristan
@@ -2147,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
@@ -2258,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 e23c73132b2c1cf1b5f6bdc036a509968105fa25..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,13 +1753,16 @@ lb:
         mat dem richtege Benotzer un.
     sent_message_summary:
       destroy_button: Läschen
+    heading:
+      my_inbox: Mäi Postagang
+      my_outbox: Mäi Postausgang
     mark:
       as_read: Message als gelies markéiert
       as_unread: Message als net gelies markéiert
     destroy:
       destroyed: Message geläscht
   passwords:
-    lost_password:
+    new:
       title: Passwuert vergiess
       heading: Passwuert vergiess?
       email address: 'E-Mail-Adress:'
@@ -1765,16 +1770,18 @@ lb:
       help_text: Wannechgelift gëff deng E-Mail-Adress an, mat däers du dech ugemellt
         has. Mir wäerten dir dann e Link schécken, mat dems du däi Passwuert zerécksetze
         kanns.
+    create:
       notice email on way: Eng E-Mail mat Hiweiser fir d'Zerécksetze vum Passwuert
         gouf un dech versent.
       notice email cannot find: Déi E-Mail-Adress konnt net fonnt ginn, pardon.
-    reset_password:
+    edit:
       title: Passwuert zrécksetzen
       heading: Passwuert fir %{user} zrécksetzen
       reset: Passwuert zrécksetzen
-      flash changed: Äert Passwuert gouf geännert.
       flash token bad: Mir konnten dëst Kierzel leider net fannen. Du hues dech méiglecherweis
         vertippt oder du hues en ongëltege Link opgemaach.
+    update:
+      flash changed: Äert Passwuert gouf geännert.
   preferences:
     show:
       title: Meng Benotzerastellungen
@@ -1896,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:
@@ -2023,6 +2031,7 @@ lb:
           main_road: Haaptstrooss
           secondary: Niewestrooss
           unclassified: Net klasséiert Strooss
+          pedestrian: Foussgängerwee
           track: Spuer
           bridleway: Wee fir Päerd
           cycleway: Vëlospiste
@@ -2031,32 +2040,33 @@ lb:
           cycleway_local: Lokale Vëloswee
           footway: Fousswee
           rail: Eisebunn
+          train: Zuch
           subway: Metro
-          tram:
-            1: Tram
-          cable:
-          - Seelbunn
-          - Sessellift
-          runway:
-          - Start- a Landebunn
-          - Rullbunn
-          apron:
-            1: Terminal
+          ferry: Fär
+          tram: Tram
+          bus: Bus
+          cable_car: Seelbunn
+          chair_lift: Sessellift
+          runway: Start- a Landebunn
+          taxiway: Rullbunn
           admin: Verwaltungsgrenz
+          capital: Haaptstad
+          city: Stad
+          orchard: Bongert
+          vineyard: Wéngert
           forest: Bësch
           wood: Bësch
+          grass: Wiss
+          sand: Sand
           golf: Golfterrain
           park: Park
-          common:
-          - ëffentlech Gréngfläch (brit.)
-          - Wiss
-          - Gaart
+          common: ëffentlech Gréngfläch (brit.)
           retail: Akaafszentrum
           industrial: Industriezone
           commercial: Commercëgebitt
           heathland: Heed
-          lake:
-          - Séi
+          lake: Séi
+          glacier: Gletscher
           farm: Bauerenhaff
           brownfield: Broochland
           cemetery: Kierfecht
@@ -2065,16 +2075,16 @@ lb:
           centre: Sportszenter
           reserve: Naturschutzgebitt
           military: Militärgebitt
-          school:
-          - Schoul
-          - Universitéit
+          school: Schoul
+          university: Universitéit
+          hospital: Spidol
           building: Bedeitend Gebai
           station: Gare (Eisebunn)
-          summit:
-          - Spëtzt
+          summit: Spëtzt
           private: Privaten Terrain
           destination: Nëmme fir Leit mat Uleies
           construction: Stroossen am Bau
+          bus_stop: Busarrêt
           bicycle_shop: Vëlosgeschäft
           bicycle_parking: Vëlosparking
           toilets: Toiletten
@@ -2247,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
@@ -2406,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 a47ba27dbc52669cd9c3c5207c7c0969f7e1048b..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,13 +1714,16 @@ 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
     destroy:
       destroyed: Pranešimas ištrintas
   passwords:
-    lost_password:
+    new:
       title: Pamiršau slaptažodį
       heading: Pamiršote slaptažodį?
       email address: 'E-pašto adresas:'
@@ -1733,15 +1731,17 @@ lt:
       help_text: Įveskite elektroninio pašto adresą, kurį naudojote užsiregistruodami.
         Mes atsiųsime nuorodą į elektroninį paštą, kurią galėsite naudoti norėdami
         iš naujo nustatyti slaptažodį.
+    create:
       notice email on way: Apgailestaujame, kad praradote slaptažodį :-( bet elektroninis
         laiškas jau išsiųstas, tad greitai slaptažodį atstatysite.
       notice email cannot find: Gaila, bet toks e-pašto adresas nerastas.
-    reset_password:
+    edit:
       title: Iš naujo nustatyti slaptažodį
       heading: Iš naujo nustatyti naudotojo %{user} slaptažodį
       reset: Iš naujo nustatyti slaptažodį
-      flash changed: Jūsų slaptažodis sėkmingai pakeistas.
       flash token bad: Ženklas nerastas, galbūt bloga nuoroda?
+    update:
+      flash changed: Jūsų slaptažodis sėkmingai pakeistas.
   preferences:
     show:
       title: Mano parinktys
@@ -2078,34 +2078,24 @@ lt:
           footway: Pėsčiųjų takas
           rail: Geležinkelis
           subway: Metropoliteno linija
-          tram:
-          - Lengvasis geležinkelis
-          - tramvajus
-          cable:
-          - Lyno keltuvas
-          - keltuvas
-          runway:
-          - Kilimo takas
-          - Riedėjimo takas
-          apron:
-          - Oro uosto lėktuvų aikštelė
-          - terminalas
+          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
           wood: Medžių teritorija
           golf: Golfo laukas
           park: Parkas
+          common: Bendras
           resident: Gyvenamoji zona
-          common:
-          - Bendras
-          - pieva
           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
@@ -2114,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 62e4fa3df569cb6b08de656162cfb286620e8eae..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,28 +1399,33 @@ lv:
         lai izlasītu to.
     sent_message_summary:
       destroy_button: Dzēst
+    heading:
+      my_inbox: Mana iesūtne
+      my_outbox: Mana izsūtne
     mark:
       as_read: Ziņa atzīmēta kā lasīta
       as_unread: Ziņa atzīmēta kā nelasīta
     destroy:
       destroyed: Ziņa izdzēsta
   passwords:
-    lost_password:
+    new:
       title: Aizmirsāt paroli
       heading: Aizmirsi paroli?
       email address: 'E-pasta adrese:'
       new password button: Atiestatīt paroli
       help_text: Ievadiet e-pasta adresi, kuru izmantojāt, lai reģistrētos, mēs Jums
         nosūtīsim saiti uz to, lai Jūs varētu atjaunot savu paroli.
+    create:
       notice email on way: Atvaino, tu to pazaudēji :-( , bet e-pasts jau ir ceļā,
         lai tu viņu drīz varētu atjaunot.
       notice email cannot find: Atvaino, nevaru atrast šo epasta adresi.
-    reset_password:
+    edit:
       title: Atiestatīt paroli
       heading: Atcelt %{user} paroli
       reset: Atcelt paroli
-      flash changed: Jūsu parole ir nomainīta.
       flash token bad: Neatradu to pilnvaru, varbūt pārbaudi URL?
+    update:
+      flash changed: Jūsu parole ir nomainīta.
   preferences:
     show:
       title: Mani uzstādījumi
@@ -1710,35 +1719,24 @@ lv:
           footway: Gājēju ceļš
           rail: Dzelzceļš
           subway: Metro
-          tram:
-          - Tramvaja sliedes
-          - Tramvajs
-          cable:
-          - Trošu ceļš
-          - krēslu pacēlājs
-          runway:
-          - Lidostas skrejceļš
-          - manevrēšanas ceļš
-          apron:
-          - Lidostas rampa
-          - termināls
+          cable_car: Trošu ceļš
+          chair_lift: krēslu pacēlājs
+          runway: Lidostas skrejceļš
+          taxiway: manevrēšanas ceļš
+          apron: Lidostas rampa
           admin: Administratīvā robeža
           forest: Mežs
           wood: Pirmatnējs mežs
           golf: Golfa laukums
           park: Parks
+          common: Koplietošanas zeme
           resident: Dzīvojamā zona
-          common:
-          - Koplietošanas zeme
-          - Pļava
-          - dārzs
           retail: Mazumtirdzniecības zona
           industrial: Rūpniecības zona
           commercial: Tirdzniecības zona
           heathland: Tīrelis
-          lake:
-          - Ezeri
-          - ūdenskrātuves
+          lake: Ezeri
+          reservoir: ūdenskrātuves
           farm: Saimniecība
           brownfield: Nekopta vieta
           cemetery: Kapsēta
@@ -1747,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 a54ed02ab92d77e3adb6a6dbe301e282576675fc..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:
@@ -1162,7 +1168,7 @@ mk:
           valley: Долина
           volcano: Вулкан
           water: Вода
-          wetland: Мочуриште
+          wetland: Моклиште
           wood: Шума
           "yes": Природен елемент
         office:
@@ -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,26 +1813,36 @@ mk:
         име за да ја прочитате.
     sent_message_summary:
       destroy_button: Избриши
+    heading:
+      my_inbox: Примени
+      my_outbox: Моја излезна пошта
+      muted_messages: Замолкнати пораки
     mark:
       as_read: Пораката е означена како прочитана
       as_unread: Пораката е означена како непрочитана
+    unmute:
+      notice: Пораката е преместена во Примени
+      error: Пораката не можеше да се премести во Примени.
     destroy:
       destroyed: Пораката е избришана
   passwords:
-    lost_password:
+    new:
       title: Загубена лозинка
       heading: Ја заборавивте лозинката?
       email address: 'Е-пошта:'
       new password button: Смени лозинка
       help_text: Внесете ја е-поштенската адреса со која се зачленивте, и ќе ви пратиме
         врска каде ќе наведете нова лозинка.
+    create:
       notice email on way: Жалиме, ова истече :-( но ви пративме нова порака на е-пошта,
         па наскоро повторно ќе можете да ја смените.
       notice email cannot find: Жалам, не можев да ја пронајдам таа адреса
-    reset_password:
+    edit:
       title: Смени лозинка
       heading: Смени лозинка за %{user}
       reset: Смени лозинка
+      flash token bad: Не ја пронајдов таа шифра. Проверете ја URL-адресата.
+    update:
       flash changed: Лозинката ви е сменета.
       flash token bad: Не ја пронајдов таа шифра. Проверете ја URL-адресата.
   preferences:
@@ -1929,6 +1950,7 @@ mk:
       image: Слика
       alt: Алтернативен текст
       url: URL
+      codeblock: Коден блок
     richtext_field:
       edit: Уреди
       preview: Преглед
@@ -2308,44 +2330,56 @@ mk:
           primary: Главен пат
           secondary: Спореден пат
           unclassified: Некласификуван пат
+          pedestrian: Пешачки пат
           track: Патека
           bridleway: Пешачко-влечен пат
           cycleway: Велосипедска патека
           cycleway_national: Државна велосипедска патека
           cycleway_regional: Регионална велосипедска патека
           cycleway_local: Месна велосипедска патека
+          cycleway_mtb: Пат за планински велосипедизам
           footway: Пешачка патека
           rail: Железница
+          train: Воз
           subway: Метро
-          tram:
-          - Лека железница
-          - трамвај
-          cable:
-          - Клупна жичница
-          - клупна жичница
-          runway:
-          - Аеродромска писта
-          - рулажна патека
-          apron:
-          - Аеродромска платформа
-          - терминал
+          ferry: Траект
+          light_rail: Лека железница
+          tram: Трамвај
+          trolleybus: Тролејбус
+          bus: Автобус
+          cable_car: Клупна жичница
+          chair_lift: Клупна жичница
+          runway: Аеродромска писта
+          taxiway: Рулажна патека
+          apron: Аеродромска платформа
           admin: Административна граница
+          capital: Главен град
+          city: Град
+          orchard: Овоштарник
+          vineyard: Лозје
           forest: Шума
-          wood: Шумичка
+          wood: Шума
+          farmland: Земјоделско земјиште
+          grass: Трева
+          meadow: Ливада
+          bare_rock: Гола карпа
+          sand: Песок
           golf: Голф-терен
           park: Парк
+          common: Општествена земја
+          built_up: Изградено подрачје
           resident: Станбено подрачје
-          common:
-          - Општествена земја
-          - ливада
-          - градина
           retail: Трговско подрачје
           industrial: Индустриско подрачје
           commercial: Комерцијално подрачје
           heathland: Вресиште
-          lake:
-          - Езеро
-          - резервоар
+          scrubland: Шикара
+          lake: Езеро
+          reservoir: Резервоар
+          intermittent_water: Повремена водна површина
+          glacier: Ледник
+          reef: Гребен
+          wetland: Моклиште
           farm: Фарма
           brownfield: Запуштено подрачје
           cemetery: Гробишта
@@ -2354,19 +2388,20 @@ mk:
           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: Тоалет
@@ -2569,6 +2604,7 @@ mk:
       oauth1_settings: Поставки за OAuth 1
       oauth2_applications: Поставки за OAuth 2
       oauth2_authorizations: Овластувања за OAuth 2
+      muted_users: Замолкнати корисници
   oauth:
     authorize:
       title: Овластете пристап до вашата сметка
@@ -2605,6 +2641,7 @@ mk:
       read_gpx: Читање на приватни ГПС-траги
       write_gpx: Подигање на ГПС-траги
       write_notes: Менување на белешки
+      write_redactions: Прикриј податоци за картата
       read_email: Читање на корисничка е-пошта
       skip_authorization: Автоодобрување на прилог
   oauth_clients:
@@ -2693,6 +2730,7 @@ mk:
       application: Прилог
       permissions: Дозволи
       no_applications_html: Сè уште немате овластено ниеден %{oauth2}-прилог.
+      oauth_2: OAuth 2
     application:
       revoke: Одземи пристап
       confirm_revoke: Да го одземам пристапот за овој прилог?
@@ -2771,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: Дневник
@@ -2808,6 +2848,7 @@ mk:
           importer: Одземи увознички пристап
       block_history: Активни блокови
       moderator_history: Зададени блокови
+      revoke_all_blocks: Отповикај ги сите блокови
       comments: Коментари
       create_block: Блокирај го корисников
       activate_user: Активирај го корисников
@@ -2917,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: Активно додека не се најави корисникот.
@@ -2975,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}
@@ -3011,6 +3086,7 @@ mk:
       reactivate: Преактивирај
       comment_and_resolve: Коментирај и реши
       comment: Коментирај
+      log_in_to_comment: Најавете се за да коментирате на оваа белешка
       report_link_html: Доколку оваа белешка содржи чувствителни информации кои треба
         да се остранат, можете да %{link}.
       other_problems_resolve: За сите други проблеми со белешката, решете ги самите
index b8183b232ddf858878525ed3809b19a262c83b66..59955c5c6181b5caa5eecae123305518bbe52710 100644 (file)
@@ -546,7 +546,7 @@ mo:
     learn_more: Афлаць май мулте
     more: Май мулте
   passwords:
-    lost_password:
+    new:
       title: Рестабилиря паролей
       heading: Аць уйтат парола?
       email address: 'Адреса де поштэ електроникэ:'
index d59950796cc26b66512004688c0a472f516cffea..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,20 +980,23 @@ mr:
         सदस्य म्हणून दाखल व्हा.
     sent_message_summary:
       destroy_button: वगळा
+    heading:
+      my_inbox: माझी अंतर्पेटी
     mark:
       as_read: संदेश वाचला आहे अशी खूण केली
       as_unread: संदेश वाचला नाही अशी खूण केली
     destroy:
       destroyed: संदेश वगळला
   passwords:
-    lost_password:
+    new:
       heading: परवलीचा शब्द विसरला?
       email address: 'विपत्र पत्ता:'
       new password button: परवलीचा शब्द पुनर्स्थापित करा
-    reset_password:
+    edit:
       title: परवलीचा शब्द पुनर्स्थापित करा
       heading: '%{user}साठी परवलीचा शब्द पुनर्स्थापित करा'
       reset: परवलीचा शब्द पुनर्स्थापित करा
+    update:
       flash changed: आपला परवलीचा शब्द बदलण्यात आला आहे.
   preferences:
     show:
@@ -1171,33 +1172,23 @@ mr:
           footway: पदपथ
           rail: लोहमार्ग
           subway: मेट्रो
-          tram:
-          - हलकी रेल्वे
-          - ट्राम
-          cable:
-          - रज्जुमार्ग
-          - खुर्ची उद्वाहन
-          runway:
-          - विमानतळ धावपट्टी
-          - खेचमार्ग
-          apron:
-          - विमानतळावरील भरणतळ
-          - अग्र
+          cable_car: रज्जुमार्ग
+          chair_lift: खुर्ची उद्वाहन
+          runway: विमानतळ धावपट्टी
+          taxiway: खेचमार्ग
+          apron: विमानतळावरील भरणतळ
           admin: प्रशासकीय सीमा
           forest: वन
           wood: जंगल
           golf: गोल्फ कोर्स
           park: उद्यान
+          common: सार्वजनिक जमीन
           resident: निवासी क्षेत्र
-          common:
-          - सार्वजनिक जमीन
-          - कुरण
           retail: विक्री क्षेत्र
           industrial: औद्योगिक क्षेत्र
           commercial: वाणिज्यिक क्षेत्र
-          lake:
-          - तलाव
-          - जलाशय
+          lake: तलाव
+          reservoir: जलाशय
           farm: मळा
           cemetery: दफनभूमी
           allotments: वाटप
@@ -1205,14 +1196,12 @@ mr:
           centre: क्रीडाकेंद्र
           reserve: अभयारण्य
           military: लष्करी क्षेत्र
-          school:
-          - शाळा
-          - विद्यापीठ
+          school: शाळा
+          university: विद्यापीठ
           building: महत्वपूर्ण इमारत
           station: रेल्वे स्थानक
-          summit:
-          - शिखर
-          - शिखर
+          summit: शिखर
+          peak: शिखर
           tunnel: तुटक कड = बोगदा
           bridge: काळी कड = पूल
           private: खाजगी प्रवेश
index 170a239775921418d01df83e6993d34b62d91913..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,29 +1386,33 @@ ms:
         masuk sebagai pengguna yang betul untuk membacanya.
     sent_message_summary:
       destroy_button: Hapuskan
+    heading:
+      my_inbox: Peti masuk saya
     mark:
       as_read: Pesanan ditandai sebagai sudah dibaca
       as_unread: Pesanan ditandai sebagai belum dibaca
     destroy:
       destroyed: Pesanan dihapuskan
   passwords:
-    lost_password:
+    new:
       title: Terlupa kata laluan
       heading: Lupa Kata Laluan?
       email address: 'Alamat E-mel:'
       new password button: Set semula kata laluan
       help_text: Isikan alamat e-mel yang anda gunakan untuk mendaftar. Kami akan
         menge-melkan pautan untuk anda mengeset semula kata laluan anda.
+    create:
       notice email on way: Kesiannya anda sudah terlupa kata laluan :-( tetapi kami
         akan menghantar satu pesanan e-mel untuk anda mengesetnya semula tidak lama
         lagi.
       notice email cannot find: Maaf, alamat e-mel itu tidak dapat dijumpai.
-    reset_password:
+    edit:
       title: Set semula kata laluan
       heading: Set Semula Kata Laluan untuk %{user}
       reset: Set Semula Kata Laluan
-      flash changed: Kata laluan anda telah ditukar.
       flash token bad: Token itu tidak dijumpai; sila semak URL-nya.
+    update:
+      flash changed: Kata laluan anda telah ditukar.
   preferences:
     show:
       title: Keutamaan Saya
@@ -1722,34 +1724,24 @@ ms:
           footway: Laluan pejalan kaki
           rail: Landasan keretapi
           subway: Landasan bawah tanah
-          tram:
-          - Rel ringan
-          - tram
-          cable:
-          - Kereta kabel
-          - lif kerusi
-          runway:
-          - Landasan kapal terbang
-          - jalan rayap
-          apron:
-          - Kawasan gerak lapangan terbang
-          - terminal
+          cable_car: Kereta kabel
+          chair_lift: lif kerusi
+          runway: Landasan kapal terbang
+          taxiway: jalan rayap
+          apron: Kawasan gerak lapangan terbang
           admin: Sempadan pentadbiran
           forest: Hutan
           wood: Hutan kecil
           golf: Padang golf
           park: Taman
+          common: Tanah awam
           resident: Kawasan perumahan
-          common:
-          - Tanah awam
-          - padang rumput
           retail: Kawasan peruncitan
           industrial: Kawasan perindustrian
           commercial: Kawasan perdagangan
           heathland: Kawasan rawa
-          lake:
-          - Tasik
-          - takungan
+          lake: Tasik
+          reservoir: takungan
           farm: Ladang
           brownfield: Tanah terbiar
           cemetery: Perkuburan
@@ -1758,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 4e978e7c96aacf47836e2e48fb79e52de0fb668e..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: အကြောင်းပြန်ရန်
@@ -589,15 +588,16 @@ my:
     sent_message_summary:
       destroy_button: ဖျက်​ပါ​
   passwords:
-    lost_password:
+    new:
       title: စကားဝှက် ပျောက်ဆုံးသွား
       heading: စကားဝှက် မေ့နေပါသလား
       email address: 'အီးမေး လိပ်စာ :'
       new password button: စကားဝှက်ကို ပြန်ချိန်ရန်
-    reset_password:
+    edit:
       title: စကားဝှက်ကို ပြန်ချိန်ရန်
       heading: '%{user} အတွက် စကားဝှက်ကို ပြန်ချိန်ရန်'
       reset: စကားဝှက်ကို ပြန်ချိန်ရန်
+    update:
       flash changed: သင့်စကားဝှက်ကို ပြောင်းလဲပြီးပါပြီ
   sessions:
     new:
@@ -689,16 +689,13 @@ my:
           bridleway: မြင်းစီးလမ်း
           cycleway: စက်ဘီးသွားလမ်း
           rail: ရထားလမ်း
-          runway:
-          - လေယာဉ်ကွင်းပြေးလမ်း
+          runway: လေယာဉ်ကွင်းပြေးလမ်း
           forest: သစ်တော
           park: ပန်းခြံ
-          lake:
-          - ရေကန်
+          lake: ရေကန်
           cemetery: သုဿန်
-          school:
-          - ကျောင်း
-          - တက္ကသိုလ်
+          school: ကျောင်း
+          university: တက္ကသိုလ်
           station: ရထားဘူတာ
           construction: ဖောက်နေဆဲ လမ်းများ
           toilets: အိမ်သာများ
index 5f079b028c537bfb8a920fbd04413e161a94cedd..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,28 +1550,32 @@ 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
     destroy:
       destroyed: Melding slettet
   passwords:
-    lost_password:
+    new:
       title: Glemt passord
       heading: Glemt passord?
       email address: 'E-postadresse:'
       new password button: Nullstill passord
       help_text: Skriv inn e-postadressen du brukte for å registrere deg, og vi vil
         sende deg ei lenke som du kan bruke til å nullstille passordet ditt.
+    create:
       notice email on way: Synd at du mistet det, men en e-post er på vei slik at
         du kan tilbakestille det snart.
       notice email cannot find: Klarte ikke finne den e-postadressen. Beklager.
-    reset_password:
+    edit:
       title: Nullstill passord
       heading: Nullstill passord for %{user}
       reset: Nullstill passord
-      flash changed: Ditt passord er endret.
       flash token bad: Kunne ikke finne den nøkkelen. Sjekke URLen kanskje?
+    update:
+      flash changed: Ditt passord er endret.
   preferences:
     show:
       preferred_languages: Foretrukne språk
@@ -1840,34 +1841,24 @@ nb:
           footway: Gangvei
           rail: Jernbane
           subway: Undergrunnsbane
-          tram:
-          - Bybane
-          - trikk
-          cable:
-          - Kabelvogn
-          - stolheis
-          runway:
-          - Flystripe
-          - taksebane
-          apron:
-          - terminal
-          - terminal
+          cable_car: Kabelvogn
+          chair_lift: stolheis
+          runway: Flystripe
+          taxiway: taksebane
+          apron: terminal
           admin: Administrativ grense
           forest: Skog
           wood: Ved
           golf: Golfbane
           park: Park
+          common: Vanlig
           resident: Boligområde
-          common:
-          - Vanlig
-          - eng
           retail: Detaljsalgområde
           industrial: Industriområde
           commercial: Kommersielt område
           heathland: Heilandskap
-          lake:
-          - Innsjø
-          - reservoar
+          lake: Innsjø
+          reservoir: reservoar
           farm: Gård
           brownfield: Tidligere industriområde
           cemetery: Gravplass
@@ -1876,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 0a465ab790eb30b73f678d101702fd7977c8d9f1..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,25 +446,25 @@ nds:
       message_sent: Naricht afsennt
     outbox:
       title: Postfack Utgang
-      to: An
-      subject: Thema
-      date: Datum
     show:
       reply_button: Antern
     sent_message_summary:
       destroy_button: Wegdoon
+    heading:
+      my_inbox: Mien Postfack Ingang
     destroy:
       destroyed: Naricht wegdaan
   passwords:
-    lost_password:
+    new:
       title: Passwoord vergeten
       heading: Passwoord vergeten?
       email address: 'E-Mail-Adress:'
       new password button: Passwoord trüchsetten
-    reset_password:
+    edit:
       title: Passwoord trüchsetten
       heading: Passwoord för %{user} trüchsetten
       reset: Passwoord trüchsetten
+    update:
       flash changed: Dien Passwoord is nu ännert.
   profiles:
     edit:
@@ -519,34 +520,24 @@ nds:
           footway: Footpadd
           rail: Iesenbahn
           subway: U-Bahn
-          tram:
-          - Stadtbahn
-          - Stratenbahn
-          cable:
-          - Kavelbahn
-          - Skilift
-          runway:
-          - Fleger-Lannbahn
-          - Fleger-Rullweg
-          apron:
-          - Terminal
-          - Terminal
+          cable_car: Kavelbahn
+          chair_lift: Skilift
+          runway: Fleger-Lannbahn
+          taxiway: Fleger-Rullweg
+          apron: Terminal
           admin: Grenz
           forest: Forst
           wood: Woold
           golf: Golfplatz
           park: Park
+          common: Wisch
           resident: Wahnrebeed
-          common:
-          - Wisch
-          - Wisch
           retail: Ladenrebeed
           industrial: Industrierebeed
           commercial: Hannelsrebeed
           heathland: Heid
-          lake:
-          - See
-          - Stausee
+          lake: See
+          reservoir: Stausee
           farm: Buurnhoff
           brownfield: Industrie-Braakland
           cemetery: Karkhoff
@@ -555,14 +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 68536eaf8d71e889dd052d659d2975fac97b01d6..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,18 +851,21 @@ ne:
       back: पछाडि
     sent_message_summary:
       destroy_button: हटाउनुहोस्
+    heading:
+      my_inbox: मेरो इनबक्स
     destroy:
       destroyed: सन्देश मेटियो
   passwords:
-    lost_password:
+    new:
       title: पासवर्ड बिर्सियो
       heading: पासवर्ड बिर्सिनुभयो ?
       email address: 'इमेल ठेगाना:'
       new password button: प्रवेस शब्द परिवर्तन गर्ने
-    reset_password:
+    edit:
       title: प्रवेस शब्द परिवर्तन गर्ने
       heading: '%{user}को लागि प्रवेस शब्द परिवर्तन गर्ने'
       reset: नयाँ प्रवेशशव्द
+    update:
       flash changed: तपाईंको प्रवेश शब्द परिवर्तन गरिएको छ।
   profiles:
     edit:
@@ -990,25 +991,21 @@ ne:
           cycleway: साइकल मार्ग
           rail: रेलमार्ग
           subway: सबवे
-          cable:
-          - केबल कार
-          - कुर्सी लिफ्ट
+          cable_car: केबल कार
+          chair_lift: कुर्सी लिफ्ट
           forest: वन
           wood: कुञ्ज
           golf: गल्फ कोर्स
           park: उद्यान
           resident: आवासीय क्षेत्र
-          lake:
-          - ताल
-          - मुहान
+          lake: ताल
+          reservoir: मुहान
           farm: खेती
           cemetery: अन्त्यष्टी स्थल
-          school:
-          - विद्यालय
-          - विश्वविद्यालय
-          summit:
-          - शिखर
-          - शिखर
+          school: विद्यालय
+          university: विश्वविद्यालय
+          summit: शिखर
+          peak: शिखर
           bicycle_shop: साइकल पसल
           bicycle_parking: साकल पार्किङ
           toilets: शौचालय
index 2b66ed4173b420d1b82e2dfb27eca681470e6c53..a7c153a898b48a504ea930503fca9c74c23c6e68 100644 (file)
@@ -191,7 +191,7 @@ nl:
         details: Geef wat meer details over het probleem (verplicht).
       user:
         auth_provider: Authenticatiedienst
-        auth_uid: Authenticatie UID
+        auth_uid: Authenticatie-UID
         email: E-mail
         email_confirmation: E-mailbevestiging
         new_email: Nieuw e-mailadres
@@ -206,8 +206,9 @@ nl:
         pass_crypt_confirmation: Wachtwoord bevestigen
     help:
       doorkeeper/application:
-        confidential: Toepassing wordt gebruikt waar het clientgeheim vertrouwelijk
-          kan worden gehouden (native mobiele apps en éénpagina-apps zijn niet vertrouwelijk)
+        confidential: De applicatie wordt gebruikt waar het clientgeheim vertrouwelijk
+          kan worden gehouden (voor mobiele apparaten ontworpen apps en éénpagina-apps
+          zijn niet vertrouwelijk)
         redirect_uri: Gebruik één regel per URI
       trace:
         tagstring: kommagescheiden
@@ -1524,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
@@ -1815,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'
@@ -1824,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
@@ -1849,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
@@ -1875,13 +1871,16 @@ nl:
         Meld u aan als de juiste gebruiker om het te lezen.
     sent_message_summary:
       destroy_button: Verwijderen
+    heading:
+      my_inbox: Mijn Postvak IN
+      my_outbox: Mijn Postvak UIT
     mark:
       as_read: Gemarkeerd als gelezen
       as_unread: Gemarkeerd als ongelezen
     destroy:
       destroyed: Het bericht is verwijderd
   passwords:
-    lost_password:
+    new:
       title: Wachtwoord vergeten
       heading: Wachtwoord vergeten?
       email address: 'E-mailadres:'
@@ -1889,13 +1888,16 @@ nl:
       help_text: Voer het e-mailadres in dat u hebt opgegeven bij uw registratie.
         We sturen u dan een webkoppeling die u kunt gebruiken om uw wachtwoord opnieuw
         in te stellen.
+    create:
       notice email on way: Spijtig om te horen dat u het vergeten bent, maar er is
         een e-mail onderweg zodat u uw wachtwoord opnieuw kunt instellen.
       notice email cannot find: Dat e-mailadres kon helaas niet worden gevonden.
-    reset_password:
+    edit:
       title: Wachtwoord opnieuw instellen
       heading: Wachtwoord voor %{user} opnieuw instellen
       reset: Wachtwoord opnieuw instellen
+      flash token bad: Het token kon niet gevonden worden. Controleer de URL.
+    update:
       flash changed: Uw wachtwoord is gewijzigd.
       flash token bad: Het token kon niet gevonden worden. Controleer de URL.
   preferences:
@@ -2402,36 +2404,41 @@ nl:
           cycleway_local: Lokale fietsroute
           footway: Voetpad
           rail: Spoorweg
+          train: Trein
           subway: Metro
-          tram:
-          - Lightrail
-          - tram
-          cable:
-          - Kabelbaan
-          - stoeltjeslift
-          runway:
-          - Start- en landingsbaan
-          - taxibaan
-          apron:
-          - Luchthavenplatform
-          - terminal
+          ferry: Veerboot
+          light_rail: Lightrail
+          tram: Tram
+          trolleybus: Trolleybus
+          bus: Bus
+          cable_car: Kabelbaan
+          chair_lift: Stoeltjeslift
+          runway: Start- en landingsbaan
+          taxiway: Taxibaan
+          apron: Luchthavenplatform
           admin: Bestuurlijke grens
+          orchard: Boomgaard
+          vineyard: Wijngaard
           forest: Bos
           wood: Bos
+          farmland: Landbouwgrond
+          grass: Gras
+          meadow: Weide
+          bare_rock: Kale rots
+          sand: Zand
           golf: Golfbaan
           park: Park
+          common: Gemene grond
+          built_up: Bebouwde kom
           resident: Woongebied
-          common:
-          - Gemene grond
-          - weide
-          - tuin
           retail: Winkelgebied
           industrial: Industriegebied
           commercial: Commercieel gebied
           heathland: Heide
-          lake:
-          - Meer
-          - reservoir
+          scrubland: Struikgewas
+          lake: Meer
+          reservoir: Reservoir
+          glacier: Gletsjer
           farm: Boerderij
           brownfield: Braakliggend terrein
           cemetery: Begraafplaats
@@ -2440,19 +2447,19 @@ nl:
           centre: Sportcentrum
           reserve: Natuurreservaat
           military: Militair gebied
-          school:
-          - School
-          - universiteit
+          school: School; universiteit
+          university: Universiteit
           building: Belangrijk gebouw
           station: Spoorwegstation
-          summit:
-          - Top
-          - piek
+          summit: Top
+          peak: Piek
           tunnel: Tunnel
           bridge: Brug
           private: Privétoegang
           destination: Bestemmingsverkeer
           construction: Weg in aanleg
+          bus_stop: Bushalte
+          stop: Halte
           bicycle_shop: Fietsenwinkel
           bicycle_parking: Fietsenstalling
           toilets: Toiletten
@@ -2498,6 +2505,7 @@ nl:
         imports: Importeringen
         automated_edits: Geautomatiseerde bewerkingen
       start_mapping: Beginnen met kaarten maken
+      continue_authorization: Doorgaan met autoriseren
       add_a_note:
         title: Geen tijd om te bewerken? Voeg een opmerking toe!
         para_1: Als u gewoon iets kleins wilt verbeteren en niet de tijd hebt om u
@@ -3008,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 2f022d90896470c0774e426cda8967308526a6e0..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,28 +1712,33 @@ nn:
         ikkje send til den brukaren. Logg inn som korrekt brukar for å lese.
     sent_message_summary:
       destroy_button: Slett
+    heading:
+      my_inbox: Mottekne
+      my_outbox: Sende
     mark:
       as_read: Melding markert som lese
       as_unread: Melding markert som ulese
     destroy:
       destroyed: Melding sletta
   passwords:
-    lost_password:
+    new:
       title: Gløymt passord
       heading: Gløymt passord?
       email address: 'E-postadresse:'
       new password button: Nullstill passord
       help_text: Skriv inn e-postadressa du brukte for å registrere deg, og me vil
         sende deg ei lenkje som du kan bruke til å nullstille passordet ditt.
+    create:
       notice email on way: Synd at du mista det, men ein e-post er på veg slik at
         du kan tilbakestille det snart.
       notice email cannot find: Klarte ikkje finne den e-postadressa. Beklagar.
-    reset_password:
+    edit:
       title: Nullstill passord
       heading: Nullstill passord for %{user}
       reset: Nullstill passord
-      flash changed: Passordet ditt er endra.
       flash token bad: Kunne ikkje finne den nøkkelen. Sjekke URLen kanskje?
+    update:
+      flash changed: Passordet ditt er endra.
   preferences:
     show:
       title: Innstillingar
@@ -2178,34 +2179,24 @@ nn:
           footway: Gangveg
           rail: Jernbane
           subway: Undergrunnsbane
-          tram:
-          - Bybane
-          - trikk
-          cable:
-          - Kabelvogn
-          - stolheis
-          runway:
-          - Flystripe
-          - taksebane
-          apron:
-          - terminal
-          - terminal
+          cable_car: Kabelvogn
+          chair_lift: stolheis
+          runway: Flystripe
+          taxiway: taksebane
+          apron: terminal
           admin: Administrativ grense
           forest: Skog
           wood: Ved
           golf: Golfbane
           park: Park
+          common: Vanleg
           resident: Boligområde
-          common:
-          - Vanleg
-          - snever
           retail: Detaljsalgområde
           industrial: Industriområde
           commercial: Kommersielt område
           heathland: Heilandskap
-          lake:
-          - Innsjø
-          - reservoar
+          lake: Innsjø
+          reservoir: reservoar
           farm: Gard
           brownfield: Tidlegare industriområde
           cemetery: Gravplass
@@ -2214,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
@@ -2417,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 846b4375e54e2c7b714412c5f8b6ca0c81ddf7ff..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,28 +1281,33 @@ nqo:
         ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߫ ߖߐ߲ߖߐ߲ ߘߌ߫ ߖߊ߰ߣߌ߲߫ ߛߴߌ ߘߌ߫ ߛߴߊ߬ ߘߐߞߊ߬ߙߊ߲߬ ߠߊ߫.
     sent_message_summary:
       destroy_button: ߊ߬ ߖߏ߬ߛߌ߬
+    heading:
+      my_inbox: ߒ ߠߊ߫ ߞߏ߲߬ߘߏ ߞߣߐߟߊ
+      my_outbox: ߒ ߠߊ߫ ߗߋߛߓߍ߫ ߗߋߣߍ߲
     mark:
       as_read: ߗߋߛߓߍ ߓߘߊ߫ ߣߐ߫ߣߐ߫ ߘߐ߬ߞߊ߬ߙߊ߲߬ߣߍ߲ ߘߌ߫
       as_unread: ߗߋߛߓߍ ߓߘߊ߫ ߣߐ߬ߣߐ߬ ߞߊ߬ߙߊ߲߬ߓߊߟߌ ߘߌ߫
     destroy:
       destroyed: ߗߋߛߓߍ ߓߘߊ߫ ߖߏ߬ߛߌ߫
   passwords:
-    lost_password:
+    new:
       title: ߓߣߐ߬ ߓߘߊ߫ ߞߍ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߘߐ߫
       heading: ߌ ߓߘߊ߫ ߢߌ߬ߣߊ߬ ߌ ߟߊ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߠߊ߫؟
       email address: 'ߢߎߡߍߙߋ߲߫ ߞߏ߲ߘߏ ߛߊ߲߬ߓߊ߬ߕߐ߮:'
       new password button: ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߬
       help_text: ߢ:ߞߏ߲ߘߏ ߟߊߘߏ߲߬ ߌ ߞߊ߬ ߡߍ߲ ߠߊߓߊ߯ߙߊ߫ ߞߵߌ ߜߊ߲߬ߞߎ߲߫߸ ߊ߲ ߘߌ߫ ߛߘߌ߬ߜߋ߲ ߗߴߌ
         ߡߵߊ߬ ߟߊ߫ ߌ ߘߴߏ߬ ߟߊߓߊ߯ߙߊ߫ ߞߵߌ ߟߊ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߫.
+    create:
       notice email on way: ߤߊߞߍ߬ߕߏ߫ ߌ ߓߘߊ߫ ߓߐߣߵߊ߬ ߘߐ߫:-(ߒ߬ߞߊ߬ ߗߋߛߓߍ ߘߏ߫ ߦߴߊ߬ ߞߣߐ߫
         ߏ߬ ߘߐ߫ ߌ ߘߌ߫ ߛߴߊ߬ ߡߊߦߟߍ߬ߡߊ߲߫ ߠߊ߫ ߖߏߣߊ߫.
       notice email cannot find: ߢ:ߞߏ߲ߘߏ ߛߊ߲߬ߓߊ߬ߕߐ߮ ߏ߬ ߕߴߛߋ߫ ߢߌߣߌ߲߫ ߠߊ߫߸ ߤߊߞߍ߬ߕߏ߫.
-    reset_password:
+    edit:
       title: ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߬
       heading: ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߫ %{user} ߦߋ߫
       reset: ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߬
-      flash changed: ߌ ߟߊ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߓߘߊ߫ ߓߊ߲߫ ߡߊߝߊ߬ߟߋ߲߬ ߠߊ߫.
       flash token bad: ߌ ߞߊߣߊ߬ ߖߐߟߐ߲ߞߐ ߏ߬ ߢߌߣߌ߲߫߸ URL ߡߊߝߟߍ߫ ߕߎ߬ߡߊ߬ߘߐ߫؟
+    update:
+      flash changed: ߌ ߟߊ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߓߘߊ߫ ߓߊ߲߫ ߡߊߝߊ߬ߟߋ߲߬ ߠߊ߫.
   preferences:
     show:
       title: ߒ ߠߊ߫ ߦߟߌߡߊߛߙߋ ߟߎ߬
@@ -1520,30 +1520,25 @@ nqo:
           footway: ߛߋ߲߬ߡߊ߬ߛߌߟߊ
           rail: ߣߍ߰ߛߌߟߊ
           subway: ߘߎ߰ߞߘߐ߬ߛߌߟߊ
-          cable:
-          - ߘߎ߲ߞߎߟߎ߲
-          runway:
-          - ߛߊ߲ߡߊߘߊ߲ ߓߏ߬ߙߌ߬ ߛߌߟߊ
-          - ߥߊߟߌߥߊߟߌ ߫ ߛߌߟߊ
+          cable_car: ߘߎ߲ߞߎߟߎ߲
+          runway: ߛߊ߲ߡߊߘߊ߲ ߓߏ߬ߙߌ߬ ߛߌߟߊ
+          taxiway: ߥߊߟߌߥߊߟߌ ߫ ߛߌߟߊ
           admin: ߓߐߕߏ߲߫ ߞߎ߲߬ߠߊ߬ߛߌ߰ߟߊ߬ߞߊ
           forest: ߕߎ
           wood: ߦߙߌ
+          common: ߘߍ߬ߒ߬ߡߊ߬ ߞߣߍ
           resident: ߡߐ߰ߘߐ߬ ߛߌߟߊ
-          common:
-          - ߘߍ߬ߒ߬ߡߊ߬ ߞߣߍ
           retail: ߖߎ߬ߟߦߊ߬ ߞߣߍ
           industrial: ߘߍ߲߰ߦߊ߬ߟߌ ߕߌ߲߬ߞߎߘߎ߲
           commercial: ߖߊ߬ߥߏ ߘߌ߲߬ߞߌߙߊ
-          lake:
-          - ߞߐ߰ߖߌ߬ߘߟߊ
+          lake: ߞߐ߰ߖߌ߬ߘߟߊ
           farm: ߝߏ߬ߘߏ
           cemetery: ߞߊߓߙߎߟߏ
           centre: ߝߊ߬ߘߌ߬ߡߊ߬ߞߟߏ ߕߊ߲ߓߊ߲
           reserve: ߛߎ߲ߞߎ߲ ߦߙߐ߫ ߟߊߕߏߣߍ߲
           military: ߣߊ߲߬ߕߌ߰ ߕߌ߲ߞߎߘߎ߲
-          school:
-          - ߞߊ߬ߙߊ߲߬ߕߊ
-          - ߖߊ߯ߓߘߊ
+          school: ߞߊ߬ߙߊ߲߬ߕߊ
+          university: ߖߊ߯ߓߘߊ
           station: ߣߍ߰ߛߌߟߊ ߟߐ߬ߘߊ߮
           construction: ߛߌߟߊ ߡߍ߲ ߟߊ ߦߴߌ ߘߐ߫
           bicycle_shop: ߣߍ߰ߛߏ߬ ߝߎ߲ߞߎ߲
index 4e5604c500fd9ef859dff3c40b3c30e97325ab3a..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,26 +1722,31 @@ oc:
         amb l'identificant corrècte per lo poder legir.
     sent_message_summary:
       destroy_button: Suprimir
+    heading:
+      my_inbox: Ma bóstia de recepcion
+      my_outbox: Mon mandador
     mark:
       as_read: Messatge marcat coma legit
       as_unread: Messatge marcat coma pas legit
     destroy:
       destroyed: Messatge suprimit
   passwords:
-    lost_password:
+    new:
       title: Senhal perdut
       heading: Avètz perdut vòstre senhal ?
       email address: 'Adreça de corrièr electronic :'
       new password button: Mandar un senhal novèl
+    create:
       notice email on way: Un e-mail vos es estat mandat per reïnicializar vòstre
         senhal.
       notice email cannot find: Adreça email introbabla, o planhèm.
-    reset_password:
+    edit:
       title: Reïnicializar lo senhal
       heading: Reïnicializar lo senhal de %{user}
       reset: Reïnicializar lo senhal
-      flash changed: Vòstre senhal es estat modificat.
       flash token bad: Avètz pas trobat aqueste geton, avètz verificat l'URL ?
+    update:
+      flash changed: Vòstre senhal es estat modificat.
   preferences:
     show:
       title: Preferéncias
@@ -2026,35 +2026,24 @@ oc:
           footway: Via pietonièra
           rail: Via ferrada
           subway: Linha de mètro
-          tram:
-          - Pichona via ferrada
-          - tram
-          cable:
-          - Teleferic
-          - telesèti
-          runway:
-          - Pista d'aeropòrt
-          - via de circulacion d'aeropòrt
-          apron:
-          - Estacionament d'avions
-          - terminal
+          cable_car: Teleferic
+          chair_lift: telesèti
+          runway: Pista d'aeropòrt
+          taxiway: via de circulacion d'aeropòrt
+          apron: Estacionament d'avions
           admin: Limit administratiu
           forest: Sèuva
           wood: Bòsc
           golf: Percors de gòlf
           park: Pargue
+          common: Espaci comun
           resident: Zòna residenciala
-          common:
-          - Espaci comun
-          - prada
-          - Jardin
           retail: Zòna de comèrci
           industrial: Zòna industriala
           commercial: Zòna terciària
           heathland: Landa
-          lake:
-          - Lac
-          - Sèrva
+          lake: Lac
+          reservoir: Sèrva
           farm: Zòna agricòla
           brownfield: Zòna rasada
           cemetery: Cementèri
@@ -2063,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 74e807cdcdd191ad57c73278d9e8333b67119ddb..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,17 +801,20 @@ pa:
       back: ਪਿੱਛੇ
     sent_message_summary:
       destroy_button: ਮਿਟਾਉ
+    heading:
+      my_inbox: ਮੇਰਾ ਇਨਬਾਕਸ
     destroy:
       destroyed: ਸੁਨੇਹਾ ਮਿਟਾਇਆ ਗਿਆ
   passwords:
-    lost_password:
+    new:
       title: ਪਛਾਣ ਸ਼ਬਦ ਗੁੰਮ ਗਿਆ
       heading: ਪਛਾਣ ਸ਼ਬਦ ਭੁੱਲ ਗਿਆ?
       email address: 'ਈਮੇਲ ਪਤਾ:'
       new password button: ਪਛਾਣ ਸ਼ਬਦ ਮੁੜ-ਸੈੱਟ ਕਰੋ
-    reset_password:
+    edit:
       title: ਪਛਾਣ ਸ਼ਬਦ ਮੁੜ-ਸੈੱਟ ਕਰੋ
       reset: ਪਛਾਣ ਸ਼ਬਦ ਮੁੜ-ਸੈੱਟ ਕਰੋ
+    update:
       flash changed: ਤੁਹਾਡਾ ਪਛਾਣ ਸ਼ਬਦ ਬਦਲਿਆ ਜਾ ਚੁੱਕਾ ਹੈ।
   profiles:
     edit:
@@ -933,47 +934,35 @@ pa:
           footway: ਪੈਦਲ ਰਾਹ
           rail: ਰੇਲਵੇ
           subway: ਸਬ-ਵੇਅ
-          tram:
-          - ਹਲਕੀ ਰੇਲ
-          - ਟਰਾਮ
-          cable:
-          - ਕੇਬਲ ਕਾਰ
-          - ਕੁਰਸੀ ਲਿਫ਼ਟ
-          runway:
-          - ਹਵਾਈ ਅੱਡੇ ਦੀ ਉਡਾਣ ਪੱਟੀ
-          - ਟੈਕਸੀਵੇਅ
-          apron:
-          - ਹਵਾਈ ਅੱਡੇ ਦਾ ਐਪਰਨ
-          - ਟਰਮੀਨਲ
+          cable_car: ਕੇਬਲ ਕਾਰ
+          chair_lift: ਕੁਰਸੀ ਲਿਫ਼ਟ
+          runway: ਹਵਾਈ ਅੱਡੇ ਦੀ ਉਡਾਣ ਪੱਟੀ
+          taxiway: ਟੈਕਸੀਵੇਅ
+          apron: ਹਵਾਈ ਅੱਡੇ ਦਾ ਐਪਰਨ
           admin: ਪ੍ਰਸ਼ਾਸਕੀ ਸਰਹੱਦ
           forest: ਜੰਗਲ
           wood: ਜੰਗਲ
           golf: ਗੋਲਫ਼ ਮੈਦਾਨ
           park: ਪਾਰਕ
+          common: ਸ਼ਾਮਲਾਟ
           resident: ਰਿਹਾਇਸ਼ੀ ਇਲਾਕਾ
-          common:
-          - ਸ਼ਾਮਲਾਟ
-          - ਚਰਗਾਹ
           retail: ਪਰਚੂਨ ਖੇਤਰ
           industrial: ਉਦਯੋਗਿਕ ਖੇਤਰ
           commercial: ਵਪਾਰਕ ਖੇਤਰ
-          lake:
-          - ਝੀਲ
-          - ਕੁੰਡ
+          lake: ਝੀਲ
+          reservoir: ਕੁੰਡ
           farm: ਖੇਤ
           cemetery: ਸ਼ਮਸ਼ਾਨ
           pitch: ਖੇਡ ਦੀ ਪਿੱਚ
           centre: ਖੇਡ ਕੇਂਦਰ
           reserve: ਕੁਦਰਤੀ ਰੱਖ
           military: ਫ਼ੌਜੀ ਇਲਾਕਾ
-          school:
-          - ਸਕੂਲ
-          - ਯੂਨੀਵਰਸਿਟੀ
+          school: ਸਕੂਲ
+          university: ਯੂਨੀਵਰਸਿਟੀ
           building: ਮਹੱਤਵਪੂਰਨ ਇਮਾਰਤ
           station: ਰੇਲਵੇ ਸਟੇਸ਼ਨ
-          summit:
-          - ਸਿਖਰ
-          - ਚੋਟੀ
+          summit: ਸਿਖਰ
+          peak: ਚੋਟੀ
           construction: ਉਸਾਰੀ ਹੇਠ ਸੜਕਾਂ
     welcome:
       title: ਜੀ ਆਇਆਂ ਨੂੰ!
index a75907e90bfff660a010bd256593ef2cf29af9f2..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,28 +1886,33 @@ pl:
         właściwy użytkownik, aby ją przeczytać.
     sent_message_summary:
       destroy_button: Usuń
+    heading:
+      my_inbox: wiadomości odebrane
+      my_outbox: wiadomości wysłane
     mark:
       as_read: Wiadomość została oznaczona jako przeczytana
       as_unread: Wiadomość została oznaczona jako nieprzeczytana
     destroy:
       destroyed: Wiadomość usunięta
   passwords:
-    lost_password:
+    new:
       title: Zgubione hasło
       heading: Zapomniałeś hasła?
       email address: 'Adres e-mail:'
       new password button: Wyczyść hasło
       help_text: Proszę wprowadzić adres e-mail używany do logowania. Zostanie wysłany
         na niego odnośnik służący do wyczyszczenia hasła.
+    create:
       notice email on way: Przykro nam z powodu utraty hasła. Wiadomość, która umożliwi
         jego wyczyszczenie, jest już w drodze.
       notice email cannot find: Niestety, nie odnaleziono tego adresu e-mail.
-    reset_password:
+    edit:
       title: Wyczyść hasło
       heading: Czyszczenie hasła użytkownika %{user}
       reset: Wyczyść hasło
-      flash changed: Hasło zostało zmienione.
       flash token bad: Nie znaleziono tokenu, sprawdź URL
+    update:
+      flash changed: Hasło zostało zmienione.
   preferences:
     show:
       title: Preferencje
@@ -2008,6 +2016,7 @@ pl:
       image: Obraz
       alt: Tekst alternatywny
       url: Adres URL
+      codeblock: Blok kodu
     richtext_field:
       edit: Edytuj
       preview: Podgląd
@@ -2119,6 +2128,7 @@ pl:
           (&copy; Department of Natural Resources Canada), CanVec (&copy; Department
           of Natural Resources Canada) i StatCan (Geography Division, Statistics Canada).'
         contributors_ca_canada: Kanada
+        contributors_cz_czechia: Czechy
         contributors_fi_credit_html: '%{finland}: Zawiera dane z National Land Survey
           of Finland''s Topographic Database i innych zbiorów danych, na podstawie
           %{nlsfi_license_link}.'
@@ -2330,36 +2340,32 @@ pl:
           cycleway_local: Droga rowerowa znaczenia lokalnego
           footway: Droga dla pieszych
           rail: Tor kolejowy
+          train: Kolej
           subway: Metro
-          tram:
-          - Kolej miejska
-          - tramwaj
-          cable:
-          - Kolej linowa
-          - wyciąg krzesełkowy
-          runway:
-          - Pas startowy
-          - kołowania
-          apron:
-          - Płyta lotniska
-          - terminal
+          ferry: Prom
+          light_rail: Kolej miejska
+          tram: Tramwaj
+          trolleybus: Trolejbus
+          bus: Autobus
+          cable_car: Kolej linowa
+          chair_lift: wyciąg krzesełkowy
+          runway: Pas startowy
+          taxiway: kołowania
+          apron: Płyta lotniska
           admin: Granica
           forest: Las
           wood: Drzewa
           golf: Pole golfowe
           park: Park
+          common: Pole
           resident: Teren mieszkalny
-          common:
-          - Pole
-          - łąka
-          - ogród
           retail: Zabudowa handlowo-usługowa
           industrial: Teren przemysłowy
           commercial: Teren komercyjny
           heathland: Wrzosowisko
-          lake:
-          - Jezioro
-          - zbiornik
+          lake: Jezioro
+          reservoir: zbiornik
+          glacier: Lodowiec
           farm: Gospodarstwo rolne
           brownfield: Teren powyburzeniowy
           cemetery: Cmentarz
@@ -2368,19 +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
@@ -3110,6 +3116,7 @@ pl:
       map_data_zoom_in_tooltip: Przybliż mapę, aby zobaczyć jej dane
       queryfeature_tooltip: Pobierz i wyświetl obiekty
       queryfeature_disabled_tooltip: Przybliż mapę, aby obejrzeć dane obiektów
+      embed_html_disabled: Osadzanie HTML nie jest dostępne dla tej warstwy mapy
     changesets:
       show:
         comment: Komentarz
index 848871cf658541e323c7a1f43261636ae05db87f..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,25 +1381,30 @@ pnb:
       back: پچھے
     sent_message_summary:
       destroy_button: مٹاؤ
+    heading:
+      my_inbox: اینباکس
+      my_outbox: میرا آؤٹباکس
     mark:
       as_read: سنیہا پڑھا نشان لایا گیا
       as_unread: سنیہا اݨ پڑھا نشان لایا گیا
     destroy:
       destroyed: سُنیہا مٹائا گیا
   passwords:
-    lost_password:
+    new:
       title: پاس‌ورڈ گُم گیا
       heading: پچھاݨ شبد بھّل گیا؟
       email address: 'ای‌میل پتہ:'
       new password button: پاس‌ورڈ فیر بݨایو
       help_text: تہاڈے ای‌میل دا پتہ جو پاس‌ورڈ فیر بݨاؤݨ دی کڑی بھیج سکاں‌گی اے۔
+    create:
       notice email on way: اچھا، ای‌میل تے مدد دی کڑی بھیجاں‌گی اے
       notice email cannot find: افسوس، اوہ ای‌میل دا پتہ نہیں لبھ سکیا
-    reset_password:
+    edit:
       title: پاس‌ورڈ فیر بݨایو
       reset: پاس‌ورڈ فیر بݨایو
-      flash changed: تہاڈے پاس‌ورڈ تبدیلی کیتی گئی سی۔
       flash token bad: ٹوکن نہیں لبھیا، خبر کڑی دا پتہ ویکھیو؟
+    update:
+      flash changed: تہاڈے پاس‌ورڈ تبدیلی کیتی گئی سی۔
   preferences:
     show:
       title: ترجیحاں
@@ -1657,35 +1657,24 @@ pnb:
           footway: فُت‌وے
           rail: ریلوے
           subway: سبوے
-          tram:
-          - ہلکی ریلوے
-          - ٹرام‌وے
-          cable:
-          - کیبل کار
-          - کُرسی لِفٹ
-          runway:
-          - ہوائی اڈے اُڈاݨ پٹی
-          - ٹیکسی‌وے
-          apron:
-          - ہوائی اڈے دا ایپرن
-          - ٹرمینل
+          cable_car: کیبل کار
+          chair_lift: کُرسی لِفٹ
+          runway: ہوائی اڈے اُڈاݨ پٹی
+          taxiway: ٹیکسی‌وے
+          apron: ہوائی اڈے دا ایپرن
           admin: پرشاسکی سرحد
           forest: رکھّ
           wood: جنگل
           golf: گولف مَیدان
           park: پارک
+          common: شاملاٹ
           resident: رہائشی کھیتر
-          common:
-          - شاملاٹ
-          - چرگاہ
-          - باغ
           retail: پرچون کھیتر
           industrial: سناتی کھیتر
           commercial: وپارک کھیتر
           heathland: ہیتھ
-          lake:
-          - جھیل
-          - کُنڈ
+          lake: جھیل
+          reservoir: کُنڈ
           farm: کھیت
           brownfield: براؤنفیلڈ
           cemetery: شمشان
@@ -1694,14 +1683,12 @@ pnb:
           centre: کھیڈ کیندر
           reserve: کُدرتی رکھّ
           military: فَوجی کھیتر
-          school:
-          - سکول
-          - یونیورستی
+          school: سکول
+          university: یونیورستی
           building: مہتوپورن عمارت
           station: ریلوے سٹیشن
-          summit:
-          - سکھر
-          - چوٹی
+          summit: سکھر
+          peak: چوٹی
           tunnel: سُرنگ (ڈیش لائیناں)
           bridge: پُل (کالیاں لائیناں)
           private: نِجی ورتوں
index 1ef959f570bd0d8e639492aaeba8efae0830aff2..413a13d754a0365ef5b515a511f05d38e10d84da 100644 (file)
@@ -310,22 +310,20 @@ ps:
     confirm_email:
       button: تاييد
   messages:
-    inbox:
+    messages_table:
       date: نېټه
     message_summary:
       reply_button: ځوابول
       destroy_button: ړنگول
     new:
       title: پيغام لېږل
-    outbox:
-      date: نېټه
     show:
       title: پيغام لوستل
       reply_button: ځواب
     sent_message_summary:
       destroy_button: ړنگول
   passwords:
-    lost_password:
+    new:
       heading: آيا پټنوم مو هېر شوی؟
       email address: 'برېښليک پته:'
   profiles:
@@ -372,15 +370,13 @@ ps:
         entry:
           forest: ځنگل
           park: پارک
-          lake:
-          - ډنډ
-          - زېرمتون
+          lake: ډنډ
+          reservoir: زېرمتون
           farm: کرونده
           cemetery: هديره
           military: پوځي سيمه
-          school:
-          - ښوونځی
-          - پوهنتون
+          school: ښوونځی
+          university: پوهنتون
   traces:
     new:
       visibility_help: دا څه مانا لري؟
index 7d7f84ab700a70b7a6ca7045be831ee4cdbec572..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,29 +1863,39 @@ pt-PT:
         correta para poderes ler a mensagem.
     sent_message_summary:
       destroy_button: Eliminar
+    heading:
+      my_inbox: Caixa de entrada
+      my_outbox: Caixa de saída
+      muted_messages: Mensagens silenciadas
     mark:
       as_read: Mensagem marcada como lida
       as_unread: Mensagem marcada como não lida
+    unmute:
+      notice: A mensagem foi movida para a caixa de entrada
+      error: A mensagem não pôde ser movida para a caixa de entrada.
     destroy:
       destroyed: Mensagem eliminada
   passwords:
-    lost_password:
+    new:
       title: Palavra-passe esquecida
       heading: Esqueceste a palavra-passe?
       email address: 'Endereço eletrónico:'
       new password button: Repor palavra-passe
       help_text: Introduz o endereço de correio eletrónico que usaste para criar a
         conta. Enviar-te-emos uma ligação que poderás usar para repor a palavra-passe.
+    create:
       notice email on way: Lamentamos que a tenhas perdido :-( mas já te enviámos
         um e-mail para que possas repô-la em breve.
       notice email cannot find: Lamentamos, mas não foi possível encontrar esse endereço
         eletrónico.
-    reset_password:
+    edit:
       title: Repor palavra-passe
       heading: Repor palavra-passe para %{user}
       reset: Repor palavra-passe
-      flash changed: A tua palavra-passe foi alterada.
       flash token bad: Não encontrámos esse token. Confere o URL, por favor.
+    update:
+      flash changed: A tua palavra-passe foi alterada.
+      flash token bad: O token não foi encontrado. Talvez devas conferir o URL?
   preferences:
     show:
       title: Preferências
@@ -2346,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
@@ -2354,36 +2374,44 @@ pt-PT:
           cycleway_local: Ciclovia local
           footway: Via pedonal
           rail: Ferrovia
+          train: Comboio
           subway: Metropolitano
-          tram:
-          - Metropolitano de superfície
-          - elétrico
-          cable:
-          - Teleférico
-          - telecadeira
-          runway:
-          - Pista de aviação
-          - Via de circulação
-          apron:
-          - Estacionamento de aviões
-          - terminal de aeroporto
+          ferry: Ferry
+          light_rail: Comboio ligeiro
+          tram: Elétrico
+          trolleybus: Troleicarro
+          bus: Autocarro
+          cable_car: Teleférico
+          chair_lift: Teleférico
+          runway: Pista de aviação
+          taxiway: Via de circulação
+          apron: Estacionamento de aviões
           admin: Fronteira administrativa
+          orchard: Pomar
+          vineyard: Vinha
           forest: Floresta gerida
           wood: Bosque
+          farmland: Terreno agrícola
+          grass: Relva
+          meadow: Prado
+          bare_rock: Rocha exposta
+          sand: Areia
           golf: Campo de golfe
           park: Parque público
+          common: Terrenos comunitários
+          built_up: Zona edificada
           resident: Área residencial
-          common:
-          - Terrenos comunitários
-          - prado
-          - Jardim
           retail: Área de retalho
           industrial: Área industrial
           commercial: Área comercial
           heathland: Charneca
-          lake:
-          - Lago
-          - reservatório hidrográfico
+          scrubland: Matagal
+          lake: Lago
+          reservoir: Reservatório
+          intermittent_water: Corpo de água intermitente
+          glacier: Glaciar
+          reef: Recife
+          wetland: Zona húmida
           farm: Quinta
           brownfield: Baldio industrial
           cemetery: Cemitério
@@ -2392,19 +2420,20 @@ 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
           destination: Acesso explícito ao local
           construction: Estradas em construção
+          bus_stop: Paragem de autocarro
+          stop: Paragem
           bicycle_shop: Loja de bicicletas
           bicycle_parking: Estacionamento de bicicletas
           toilets: Casas de banho
@@ -2608,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
@@ -2645,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:
@@ -2823,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
@@ -3023,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 cc27269ba33d1793b68c4c373c87e4cf041edad9..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,28 +1858,33 @@ 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
     destroy:
       destroyed: Mensagem apagada
   passwords:
-    lost_password:
+    new:
       title: Senha esquecida
       heading: Esqueceu sua senha?
       email address: 'Endereço de E-mail:'
       new password button: Redefinir senha
       help_text: Digite o endereço de e-mail que você usou para se conectar e enviaremos
         um link que você poderá usar para redefinir a sua senha.
+    create:
       notice email on way: Um e-mail foi enviado para que você possa escolher outra
         senha.
       notice email cannot find: Não foi possível encontrar esse endereço de e-mail.
-    reset_password:
+    edit:
       title: Redefinir senha
       heading: Redefinir Senha de %{user}
       reset: Redefinir Senha
-      flash changed: Sua senha foi alterada.
       flash token bad: O código não confere, verifique a URL.
+    update:
+      flash changed: Sua senha foi alterada.
   preferences:
     show:
       title: Minhas preferências
@@ -2375,35 +2376,26 @@ pt:
           footway: Caminho de pedestre
           rail: Ferrovia
           subway: Metrô
-          tram:
-          - Ferrovia metropolitana
-          - bonde
-          cable:
-          - Bonde aéreo
-          - telecadeira
-          runway:
-          - Pista de Pouso
-          - pista de taxiamento
-          apron:
-          - Pátio de aeródromo
-          - terminal
+          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
+          vineyard: Vinha
           forest: Floresta manejada
           wood: Bosque nativo
+          meadow: Prado
           golf: Campo de golfe
           park: Parque
+          common: Baldio comunitário
           resident: Área residencial
-          common:
-          - Baldio comunitário
-          - prado
-          - Jardim
           retail: Área de varejo
           industrial: Área industrial
           commercial: Área de negócios
           heathland: Urzal
-          lake:
-          - Lago
-          - lago artificial
+          lake: Lago
+          reservoir: Reservatório
           farm: Lavoura
           brownfield: Terreno abandonado
           cemetery: Cemitério secular
@@ -2412,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
@@ -2664,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 4dd7a9bbf0240a5a7f067646134d39a52415f42c..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,28 +1841,34 @@ ro:
         ca utilizatorul corect pentru a-l citi.
     sent_message_summary:
       destroy_button: Șterge
+    heading:
+      my_inbox: Mesaje primite
+      my_outbox: Mesaje trimise
     mark:
       as_read: Mesaj marcat ca fiind citit
       as_unread: Mesaj marcat ca necitit
     destroy:
       destroyed: Mesaj șters
   passwords:
-    lost_password:
+    new:
       title: Parola pierdută
       heading: Ai uitat parola?
       email address: 'Adresa de e-mail:'
       new password button: Resetare parolă
       help_text: Introduceți adresa de e-mail pe care ați utilizat-o pentru a vă înscrie,
         vom trimite un link la aceasta pe care îl puteți utiliza pentru a reseta parola.
+    create:
       notice email on way: Ne pare rău că ați pierdut-o :-( dar un e-mail este pe
         drum, astfel încât să puteți să-l resetați în curând.
       notice email cannot find: Nu am putut găsi adresa de e-mail, îmi pare rău.
-    reset_password:
+    edit:
       title: Resetare parolă
       heading: Resetați parola pentru %{user}
       reset: Resetează parola
-      flash changed: Parola dumneavoastră a fost schimbată.
       flash token bad: Nu ați găsit acel simbol, verificați adresa URL?
+    update:
+      flash changed: Parola dumneavoastră a fost schimbată.
+      flash token bad: Nu s-a găsit acel simbol, poate verificați adresa URL?
   preferences:
     show:
       title: Preferințe
@@ -1962,6 +1973,7 @@ ro:
       image: Imagine
       alt: Text alternativ
       url: URL
+      codeblock: Bloc cod sursă
     richtext_field:
       edit: Editează
       preview: Previzualizare
@@ -2113,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
@@ -2350,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
@@ -2358,36 +2374,41 @@ ro:
           cycleway_local: Rețeaua locală de ciclism
           footway: Trotuar
           rail: Cale ferată
+          train: Tren
           subway: Stație de metrou
-          tram:
-          - Metrou
-          - tramvai
-          cable:
-          - Telecabină
-          - Telescaun
-          runway:
-          - Pistă de Aeroport
-          - taxiway
-          apron:
-          - Aeronavă
-          - terminal
+          ferry: Feribot
+          tram: Tramvai
+          trolleybus: Troleibuz
+          bus: Autobuz
+          cable_car: Telecabină
+          chair_lift: Telescaun
+          runway: Pistă de Aeroport
+          taxiway: taxiway
+          apron: Aeronavă
           admin: Graniță administrativă
+          orchard: Livadă
+          vineyard: Podgorie
           forest: Pădure
           wood: Lemn
+          farmland: Teren agricol
+          grass: Iarbă
+          meadow: Luncă
+          bare_rock: Stâncă goală
+          sand: Nisip
           golf: Teren de golf
           park: Parc
+          common: Comun
+          built_up: Zonă construită
           resident: Zonă rezidențială
-          common:
-          - Comun
-          - luncă
-          - grădină
           retail: Spațiul de retail
           industrial: Zonă industrială
           commercial: Zonă comercială
           heathland: Landă
-          lake:
-          - Lac
-          - Rezervor
+          lake: Lac
+          reservoir: Rezervor
+          intermittent_water: Corp de apă intermitent
+          glacier: Ghețar
+          reef: Recif
           farm: Fermă
           brownfield: Terenuri industriale dezafectate
           cemetery: Cimitir
@@ -2396,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
@@ -2454,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: |-
@@ -2650,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:
@@ -2740,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?
@@ -2846,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
@@ -3031,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}
@@ -3160,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 55c84d5333eaaeeff3dc4b16749e56d3e0a44c6f..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,28 +1880,33 @@ ru:
         вашему вопросу пользователь, чтобы прочитать его.
     sent_message_summary:
       destroy_button: Удалить
+    heading:
+      my_inbox: Мои входящие
+      my_outbox: Мои исходящие
     mark:
       as_read: Сообщение отмечено как прочитанное
       as_unread: Сообщение отмечено как непрочитанное
     destroy:
       destroyed: Сообщение удалено
   passwords:
-    lost_password:
+    new:
       title: Восстановление пароля
       heading: Забыли пароль?
       email address: 'Адрес электронной почты:'
       new password button: Вышлите мне новый пароль
       help_text: Введите адрес вашей электронной почты, который вы использовали для
         подписки, и мы вышлем инструкции, как можно обновить ваш пароль.
+    create:
       notice email on way: Жаль, что вы потеряли пароль :-( но ничего, скоро придёт
         письмо и вы сможете поменять свой пароль.
       notice email cannot find: Такой адрес не зарегистрирован.
-    reset_password:
+    edit:
       title: Повторная установка пароля
       heading: Повторная установка пароля для %{user}
       reset: Установить пароль
-      flash changed: Ваш пароль был изменён.
       flash token bad: Невозможно найти такой код подтверждения, проверьте ссылку.
+    update:
+      flash changed: Ваш пароль был изменён.
   preferences:
     show:
       title: Мои предпочтения
@@ -2310,36 +2312,37 @@ ru:
           cycleway_local: Велодорожка местного значения
           footway: Пешеходная дорожка
           rail: Железная дорога
+          train: Поезд
           subway: Линия метро
-          tram:
-          - Легкорельсовый транспорт
-          - трамвай
-          cable:
-          - Канатная дорога
-          - кресельный подъёмник
-          runway:
-          - Взлётно-посадочная полоса аэропорта
-          - рулёжная дорожка
-          apron:
-          - Перрон аэродрома
-          - терминал
+          ferry: Паром
+          tram: Трамвай
+          trolleybus: Троллейбус
+          bus: Автобус
+          cable_car: Канатная дорога
+          chair_lift: кресельный подъёмник
+          runway: Взлётно-посадочная полоса аэропорта
+          taxiway: рулёжная дорожка
+          apron: Перрон аэродрома
           admin: Административная граница
+          orchard: Фруктовый сад
+          vineyard: Виноградник
           forest: Лес
           wood: Роща
+          farmland: Сельхозугодья
+          grass: Трава
+          meadow: Луг
           golf: Площадка для гольфа
           park: Парк
+          common: Общественная земля
+          built_up: Площадь застройки
           resident: Жилой район
-          common:
-          - Общественная земля
-          - луг
-          - сад
           retail: Торговый район
           industrial: Промышленный район
           commercial: Коммерческий район
           heathland: Вересковая пустошь
-          lake:
-          - Озеро
-          - водохранилище
+          lake: Озеро
+          reservoir: Водохранилище
+          glacier: Ледник
           farm: Ферма
           brownfield: Расчистка под застройку
           cemetery: Кладбище
@@ -2348,19 +2351,19 @@ ru:
           centre: Спортивный центр
           reserve: Заповедник
           military: Военная территория
-          school:
-          - Школа
-          - университет
+          school: Школа, университет
+          university: Университет
+          hospital: Больница
           building: Значительное здание
           station: Железнодорожная станция
-          summit:
-          - Вершина
-          - пик
+          summit: Вершина
+          peak: Вершина горы
           tunnel: Туннель (пунктир)
           bridge: Мост (жирная линия)
           private: Частный доступ
           destination: Целевой доступ
           construction: Строительство дороги
+          bus_stop: Автобусная остановка
           bicycle_shop: Магазин велосипедов
           bicycle_parking: Парковка для велосипедов
           toilets: Туалет
@@ -2978,6 +2981,13 @@ ru:
       showing_page: Страница %{page}
       next: Следующая →
       previous: ← Предыдущая
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: Действия
+        tbody:
+          send_message: Отправить сообщение
   notes:
     index:
       title: Заметки, созданные или прокомментированный участником %{user}
index c48c8e850a534f8dd36a6b33c14757fa2e33d800..33883d2ba4980ad80b5b9a6537c12203aa1186d6 100644 (file)
@@ -505,26 +505,23 @@ sat:
     confirm_email:
       button: ᱜᱚᱴᱟᱭ ᱢᱮ
   messages:
-    inbox:
+    messages_table:
       subject: ᱵᱤᱥᱚᱭ
       date: ᱢᱟᱹᱦᱤᱛ
     message_summary:
       destroy_button: ᱜᱮᱫ ᱜᱤᱰᱤ
     new:
       title: ᱠᱷᱚᱵᱚᱨ ᱠᱩᱞ ᱢᱮ
-    outbox:
-      subject: ᱵᱤᱥᱚᱭ
-      date: ᱢᱟᱹᱦᱤᱛ
     show:
       destroy_button: ᱜᱮᱫ ᱜᱤᱰᱤ
       back: ᱛᱟᱭᱚᱢ
     sent_message_summary:
       destroy_button: ᱜᱮᱫ ᱜᱤᱰᱤ
   passwords:
-    lost_password:
+    new:
       title: ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱟᱫ ᱠᱮᱫᱟᱢ
       email address: 'ᱤᱢᱮᱞ ᱴᱷᱤᱠᱟᱹᱬᱟ:'
-    reset_password:
+    update:
       flash changed: ᱟᱢᱟᱜ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱫᱚ ᱵᱚᱫᱚᱞᱮᱱᱟ ᱾
   profiles:
     edit:
@@ -589,8 +586,7 @@ sat:
           forest: ᱵᱤᱨ
           wood: ᱠᱟᱴᱷ
           park: ᱵᱟᱜᱟᱱ
-          school:
-          - ᱤᱛᱩᱱ ᱟᱥᱲᱟ
+          school: ᱤᱛᱩᱱ ᱟᱥᱲᱟ
           bicycle_shop: ᱥᱟᱭᱠᱤᱞ ᱫᱩᱠᱟᱹᱱ
           bicycle_parking: ᱥᱟᱭᱠᱤᱞ ᱯᱟᱨᱠᱤᱝ
           toilets: ᱴᱚᱭᱞᱮᱴᱠᱚ
index 7d5b6c6cef746787d752c86e1f477e663fa3eadf..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,13 +1825,16 @@ sc:
         s'utente curretu pro lu lèghere.
     sent_message_summary:
       destroy_button: Cantzella
+    heading:
+      my_inbox: Posta in intrada mea
+      my_outbox: Posta in essida mea
     mark:
       as_read: Messàgiu marcadu comente lèghidu
       as_unread: Messàgiu marcadu comente non lèghidu
     destroy:
       destroyed: Messàgiu iscantzelladu
   passwords:
-    lost_password:
+    new:
       title: Crae de intrada pèrdida
       heading: Ais ismentigadu sa crae de intrada?
       email address: 'Indiritzu de posta eletrònica:'
@@ -1844,16 +1842,18 @@ sc:
       help_text: Inserta s'indiritzu de posta chi as impreadu pro ti registrare, l'amus
         a imbiare unu ligàmene chi as a pòdere impreare pro ripristinare sa crae de
         intrada tua.
+    create:
       notice email on way: Nos dispraghet chi l'apas pèrdida :-( ma t'amus imbiadu
         unu messàgiu de posta eletrònica pro chi la potzas ripristinare.
       notice email cannot find: A dolu mannu non semus resèssidos a agatare custu
         indiritzu de posta eletrònica.
-    reset_password:
+    edit:
       title: Riprìstina sa crae de intrada
       heading: Riprìstina sa crae de intrada pro %{user}
       reset: Riprìstina sa crae de intrada
-      flash changed: Sa crae de intrada tua est istada mudada.
       flash token bad: No amus agatadu custu getone, proa a verificare s'URL.
+    update:
+      flash changed: Sa crae de intrada tua est istada mudada.
   preferences:
     show:
       title: Preferèntzias meas
@@ -2361,35 +2361,24 @@ sc:
           footway: Caminu pro pedones
           rail: Ferrovia
           subway: Metropolitana
-          tram:
-          - Trenu lèbiu/metropolitana lèbia
-          - Tram
-          cable:
-          - Funivia
-          - ascensore carrotzina
-          runway:
-          - Pista de aeroportu
-          - carrera de furriada
-          apron:
-          - Àrea de parchègiu de sos aèreos
-          - terminale
+          cable_car: Funivia
+          chair_lift: ascensore carrotzina
+          runway: Pista de aeroportu
+          taxiway: carrera de furriada
+          apron: Àrea de parchègiu de sos aèreos
           admin: Làcana amministrativa
           forest: Litu
           wood: Buscu
           golf: Campu de golf
           park: Parcu
+          common: Comunu
           resident: Àrea de residèntzia
-          common:
-          - Comunu
-          - pradu
-          - giardinu
           retail: Àrea cummertziale
           industrial: Àrea industriale
           commercial: Àrea cummertziale
           heathland: Istruvina
-          lake:
-          - Lagu
-          - riserva de abba
+          lake: Lagu
+          reservoir: riserva de abba
           farm: Fatoria
           brownfield: Terrinu industriale abbandonadu
           cemetery: Campusantu
@@ -2398,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 2d445a4da5eccc8803b884433d2432566cc6f8b4..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,28 +1231,32 @@ scn:
         fu mannatu a dd'utenti. Pi favuri trasi comu l'utenti giustu pi putiri liggìrilu.
     sent_message_summary:
       destroy_button: Cancella
+    heading:
+      my_inbox: La mè posta arrivata
     mark:
       as_read: Missaggiu signatu comu già liggiutu
       as_unread: Missaggiu marcatu comu di lèggiri
     destroy:
       destroyed: Missaggiu cancillatu
   passwords:
-    lost_password:
+    new:
       title: Palora d'òrdini pirduta
       heading: Ti scurdasti la palora d'òrdini?
       email address: 'Nnirizzu di posta elittrònica:'
       new password button: Azzera la palora d'òrdini
       help_text: Scrivi lu nnirizzu di posta elittrònica c'adupirasti quannu ti scrivisti,
         e ci mannamu nu culligamentu chi poi adupirari p'azzirari la tò palora d'òrdini.
+    create:
       notice email on way: Ni dispiaci chi la pirdisti :-( pirò ti sta arrivannu nu
         missaggiu di posta elittrònica pi menzu dû quali prestu la poi azzirari.
       notice email cannot find: Putroppu nun s'attrova stu nnirizzu di posta elittrònica.
-    reset_password:
+    edit:
       title: Azzera la palora d'òrdini
       heading: Azziramentu dâ palora d'òrdini di %{user}
       reset: Azzera la palora d'òrdini
-      flash changed: La tò palora d'òrdini fu canciata.
       flash token bad: Stu còdici nun s'attrova, pirchì nun cuntrolli l'URL?
+    update:
+      flash changed: La tò palora d'òrdini fu canciata.
   preferences:
     show:
       title: Li mè prifirenzi
@@ -1514,34 +1525,24 @@ scn:
           footway: Caminu pidunali
           rail: Ferruvìa
           subway: Mitrupulitana
-          tram:
-          - Mitrupulitana leggia
-          - tram
-          cable:
-          - Funivìa
-          - seggiuvìa
-          runway:
-          - Pista d’attirraggiu
-          - pista di rullaggiu
-          apron:
-          - Ària di parcheggiu ariupurtuali
-          - terminal
+          cable_car: Funivìa
+          chair_lift: seggiuvìa
+          runway: Pista d’attirraggiu
+          taxiway: pista di rullaggiu
+          apron: Ària di parcheggiu ariupurtuali
           admin: Cunfini amministrativu
           forest: Furesta
           wood: Voscu
           golf: Campu di golf
           park: Villa
+          common: Cumuni
           resident: Zona risidinziali
-          common:
-          - Cumuni
-          - Pratu
           retail: Zona di nigozzî
           industrial: Zona nnustriali
           commercial: Zona cummirciali
           heathland: Brughiera
-          lake:
-          - Lacu
-          - lacu artificiali
+          lake: Lacu
+          reservoir: lacu artificiali
           farm: Massarìa
           brownfield: Zona di bunìfica
           cemetery: Cimiteru
@@ -1550,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 b297330bf639577c04ad4117f232842159186a7c..70c9a09cb4d11351e17e02915d1db5ad995624b5 100644 (file)
@@ -797,7 +797,7 @@ sco:
         subject_other: '[OpenStreetMap] %{commenter} haes commentit on a note ye are
           interestit in'
   passwords:
-    lost_password:
+    new:
       title: Lost password
       heading: Forgotten Passwird?
   sessions:
@@ -923,13 +923,11 @@ sco:
           retail: Retail aurie
           industrial: Industrial aurie
           commercial: Commercial aurie
-          lake:
-          - Loch
+          lake: Loch
           farm: Ferm
           military: Militar aurie
-          school:
-          - Schuil
-          - varsity
+          school: Schuil
+          university: varsity
           building: Signeeficant biggin
     welcome:
       title: Walcome!
index b529925dfa972b8e37a058cacbb78d08ff3673ca..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,34 +729,24 @@ sh:
           footway: Pješačka staza
           rail: Željeznica
           subway: Podzemna željeznica
-          tram:
-          - Laka željeznica
-          - tramvaj
-          cable:
-          - Kabinska žičara
-          - sedežnica
-          runway:
-          - Aerodromska pista
-          - rulna staza
-          apron:
-          - Parking za avione
-          - terminal
+          cable_car: Kabinska žičara
+          chair_lift: sedežnica
+          runway: Aerodromska pista
+          taxiway: rulna staza
+          apron: Parking za avione
           admin: Administrativna granica
           forest: Šuma
           wood: Šume (prirodne, neodržavane)
           golf: Golf teren
           park: Park
+          common: Travnjaci
           resident: Stambeno područje
-          common:
-          - Travnjaci
-          - livada
           retail: Maloprodajno područje
           industrial: Industrijsko područje
           commercial: Poslovno područje
           heathland: Vriština
-          lake:
-          - Jezero
-          - rezervoar
+          lake: Jezero
+          reservoir: rezervoar
           farm: Farma
           brownfield: Gradilište
           cemetery: Groblje
@@ -766,14 +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 5f075a8127b93f779ed6626ce970ed1848d90237..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,28 +1701,33 @@ sk:
         sa pod príslušným kontom.
     sent_message_summary:
       destroy_button: Zmazať
+    heading:
+      my_inbox: Doručená pošta
+      my_outbox: Odoslané
     mark:
       as_read: Správa označená ako prečítaná
       as_unread: Správa označená ako neprečítaná
     destroy:
       destroyed: Správa vymazaná
   passwords:
-    lost_password:
+    new:
       title: Stratené heslo
       heading: Zabudli ste heslo?
       email address: 'E-mailová adresa:'
       new password button: Resetnúť heslo
       help_text: Vložte emailovú adresu, ktorú ste uviedli pri registrácii, pošleme
         vám odkaz, pomocou ktorého si budete môcť nastaviť nové heslo.
+    create:
       notice email on way: Škoda zabudnutého hesla :-( ale e-mail je už na ceste,
         takže si čoskoro budete môcť zvoliť nové.
       notice email cannot find: Ľutujeme, túto e-mailovú adresu nie je možné nájsť.
-    reset_password:
+    edit:
       title: Resetnúť heslo
       heading: Resetnúť heslo pre %{user}
       reset: Vynulovať heslo
-      flash changed: Vaše heslo bolo zmenené.
       flash token bad: Zodpovedajúci kód nebol nájdený, skontrolujte prípadne URL.
+    update:
+      flash changed: Vaše heslo bolo zmenené.
   preferences:
     show:
       title: Moje predvoľby
@@ -2119,34 +2119,24 @@ sk:
           footway: Chodník pre peších
           rail: Železnica
           subway: Metro
-          tram:
-          - Rýchloelektrička
-          - električka
-          cable:
-          - Lanovka
-          - sedačková lanovka
-          runway:
-          - Letisková dráha
-          - pojazdová dráha
-          apron:
-          - Letisková odbavovacia plocha
-          - terminál
+          cable_car: Lanovka
+          chair_lift: sedačková lanovka
+          runway: Letisková dráha
+          taxiway: pojazdová dráha
+          apron: Letisková odbavovacia plocha
           admin: Administratívne hranice
           forest: Les (udržiavaný)
           wood: Les (neudržiavaný)
           golf: Golfové ihrisko
           park: Park
+          common: Pastvina
           resident: Obytná oblasť
-          common:
-          - Pastvina
-          - lúka
           retail: Nákupná oblasť
           industrial: Priemyselná oblasť
           commercial: Komerčná oblasť
           heathland: Vresovisko
-          lake:
-          - Jazero
-          - nádrž
+          lake: Jazero
+          reservoir: nádrž
           farm: Farma
           brownfield: Zborenisko
           cemetery: Cintorín
@@ -2155,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 4fba080b7cdba0052eb578398e834fc880a097e5..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,15 +1069,19 @@ skr-arab:
       back: پچھوں
     sent_message_summary:
       destroy_button: مٹاؤ
+    heading:
+      my_inbox: میݙا انباکس
+      my_outbox: میݙا آؤٹ باکس
     destroy:
       destroyed: سنیہا مٹ ڳیا
   passwords:
-    lost_password:
+    new:
       email address: 'ای میل پتہ:'
       new password button: پاس ورڈ ولدا ٹھیک کرو
-    reset_password:
+    edit:
       title: پاس ورڈ ولدا ٹھیک کرو
       reset: پاس ورڈ ولدا ٹھیک کرو
+    update:
       flash changed: تہاݙا پاس ورڈ تبدیل تھی ڳیا۔
   preferences:
     show:
@@ -1213,29 +1219,39 @@ skr-arab:
       table:
         entry:
           track: ٹرَیک
-          tram:
-            1: ٹرام
-          cable:
-          - کیبل کار
-          - چیئر لفٹ
+          train: ڳَݙی
+          light_rail: لائٹ ریل
+          tram: ٹرام
+          trolleybus: ٹرالی بس
+          bus: بس
+          cable_car: کیبل کار
+          chair_lift: چیئر لفٹ
+          taxiway: ٹیکسی دا راہ
+          capital: دار الحکومت
+          city: شَہر
+          orchard: بغیچا
           forest: جنگل
           wood: لکڑ
+          grass: گھا
+          meadow: چراگاہ
+          sand: ریت
           golf: گولف مَیدان
           park: پارک
-          common:
-          - وقف
-          - چراگاہ
-          - باغ
+          common: وقف
           retail: پرچون علاقہ
           industrial: صنعتی علاقہ
           commercial: کمرشل ایریا
-          lake:
-          - جھیل
+          lake: جھیل
+          reservoir: ذخائر
+          glacier: گلیشیئر
           farm: کھیت
-          school:
-          - سکول
-          - یونی ورسٹی
+          school: سکول
+          university: یونی ورسٹی
+          hospital: ہسپتال
           station: ریلوے ٹیشݨ
+          peak: چوٹی
+          bus_stop: بساں دا اݙا
+          stop: اݙہ
     welcome:
       title: ست بسم اللہ!
       basic_terms:
@@ -1322,6 +1338,13 @@ skr-arab:
     block:
       show: ݙِکھاؤ
       edit: تبدیلی کرو
+  user_mutes:
+    index:
+      table:
+        thead:
+          actions: عمل
+        tbody:
+          send_message: سنیہا پٹھو
   notes:
     index:
       subheading_submitted: جمع تھی ڳیا
index 0708a3722feddb131bd40154fb99d432911dd039..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,27 +1882,38 @@ sl:
         ni bilo poslano vam. Prosimo, prijavite se, kot pravi uporabnik za branje.
     sent_message_summary:
       destroy_button: Izbriši
+    heading:
+      my_inbox: Prejeta pošta
+      my_outbox: Poslana pošta
+      muted_messages: Utišana sporočila
     mark:
       as_read: Sporočilo označeno kot prebrano
       as_unread: Sporočilo označeno kot neprebrano
+    unmute:
+      notice: Sporočilo je bilo prestavljeno v mapo »Prejeto«.
+      error: Sporočila ni bilo mogoče premakniti v mapo »Prejeto«.
     destroy:
       destroyed: Sporočilo izbrisano
   passwords:
-    lost_password:
+    new:
       title: pozabljeno geslo
       heading: Ste pozabili geslo?
       email address: 'E-poštni naslov:'
       new password button: Pošlji mi novo geslo
       help_text: Vpišite e-poštni naslov, s katerim ste se registrirali. Poslali vam
         bomo povezavo za ponastavitev gesla.
+    create:
       notice email on way: E-pismo z vsemi potrebnimi podatki za nastavitev novega
         gesla je že na poti.
       notice email cannot find: Oprostite, toda vnesenega e-poštnega naslova ni bilo
         mogoče najti.
-    reset_password:
+    edit:
       title: Ponastavitev gesla
       heading: Ponastavi geslo za %{user}
       reset: Ponastavitev gesla
+      flash token bad: Tega žetona ni bilo mogoče najti.  Predlagamo, da preverite
+        naslov URL.
+    update:
       flash changed: Vaše geslo je bilo spremenjeno.
       flash token bad: Tega žetona ni bilo mogoče najti.  Predlagamo, da preverite
         naslov URL.
@@ -1997,6 +2019,7 @@ sl:
       image: Slika
       alt: nadomestno besedilo
       url: URL
+      codeblock: Blok kode
     richtext_field:
       edit: Uredi
       preview: Predogled
@@ -2383,44 +2406,56 @@ sl:
           primary: Glavna cesta
           secondary: Regionalna cesta
           unclassified: Ostale ceste izven naselij
+          pedestrian: Pot za pešce
           track: Kolovoz
           bridleway: Jahalna pot
           cycleway: Kolesarska steza
           cycleway_national: Nacionalna kolesarska steza
           cycleway_regional: Regionalna kolesarska steza
           cycleway_local: Krajevna kolesarska steza
+          cycleway_mtb: Gorskokolesarska pot
           footway: Pešpot
           rail: Železnica
+          train: Vlak
           subway: Podzemna železnica
-          tram:
-          - Mestna železnica
-          - tramvaj
-          cable:
-          - Nihalka
-          - sedežnica
-          runway:
-          - Vzletno-pristajalna steza
-          - povezave
-          apron:
-          - Letališka ploščad
-          - terminal
+          ferry: Trajekt
+          light_rail: Lahka železnica
+          tram: Tramvaj
+          trolleybus: Trolejbus
+          bus: Avtobus
+          cable_car: Nihalka
+          chair_lift: Sedežnica
+          runway: Vzletno-pristajalna steza
+          taxiway: Vozna steza
+          apron: Letališka ploščad
           admin: Upravna razmejitev
+          capital: Glavno mesto
+          city: Mesto
+          orchard: Sadovnjak
+          vineyard: Vinograd
           forest: Gozd
-          wood: Pragozd
+          wood: Gozd
+          farmland: Kmetijsko zemljišče
+          grass: Trava
+          meadow: Travnik
+          bare_rock: Gola skala
+          sand: Pesek
           golf: Igrišče za golf
           park: Park
+          common: Travniki
+          built_up: Pozidano območje
           resident: Naselje
-          common:
-          - Travniki
-          - travnik
-          - vrt
           retail: Trgovinsko območje
           industrial: Industrijsko območje
           commercial: Poslovno območje
           heathland: Grmičevje
-          lake:
-          - Jezero
-          - vodni zbiralnik
+          scrubland: Grmičevje
+          lake: Jezero
+          reservoir: Vodni zbiralnik
+          intermittent_water: Presihajoče vodno telo
+          glacier: Ledenik
+          reef: Greben
+          wetland: Mokrišče
           farm: Kmetija
           brownfield: Gradbišče
           cemetery: Pokopališče
@@ -2429,19 +2464,20 @@ sl:
           centre: Športni center
           reserve: Naravni rezervat
           military: Vojaško območje
-          school:
-          - Šola
-          - univerza
+          school: Šola; univerza
+          university: Univerza
+          hospital: Bolnišnica
           building: Pomembna stavba
           station: Železniška postaja
-          summit:
-          - Vrh
-          - vrh
+          summit: Vrh
+          peak: Vrh
           tunnel: Črtkana obroba = predor
           bridge: Krepka obroba = most
           private: Zasebni dostop
           destination: Dovoljeno za dostavo
           construction: Ceste v gradnji
+          bus_stop: Avtobusno postajališče
+          stop: Postajališče
           bicycle_shop: Kolesarska trgovina
           bicycle_parking: Parkirišče za kolesa
           toilets: Stranišče
@@ -2645,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
@@ -2683,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:
@@ -2771,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?
@@ -2856,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
@@ -2887,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
@@ -2991,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.
@@ -3025,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}'
@@ -3058,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}
@@ -3094,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.
@@ -3310,7 +3391,7 @@ sl:
       add_note: Tu dodaj opombo
       show_address: Prikaži naslov
       query_features: Preveri značilnosti
-      centre_map: Premakni na sredino
+      centre_map: Osredini zemljevid tukaj
   redactions:
     edit:
       heading: Uredi redakcijo
index 30f0e88f83fd86cdc1dc07cb3a3771c00cf02de3..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,11 +997,13 @@ sq:
         si përdorues i saktë për të lexuar atë.'
     sent_message_summary:
       destroy_button: Fshi
+    heading:
+      my_inbox: Kutia ime mbërritëse
     mark:
       as_read: Mesazhi është shënuar si të lexuar
       as_unread: Mesazhi është shënuar si i palexuar
   passwords:
-    lost_password:
+    new:
       title: Fjalëkalimi i humbur
       heading: Ke harruar fjalëkalimin?
       email address: 'Adresa e emailit:'
@@ -1010,16 +1011,18 @@ sq:
       help_text: Shkruani adresën e emailit që keni përdorur për tu regjistruar, ne
         do të dërgojmë një lidhje të cilën mund të përdorni për të rivendosur fjalëkalimin
         tuaj.
+    create:
       notice email on way: Na vjen keq e keni humbur atë :-( por një email është në
         rrugëtim kështu që ju mund të rivendosni atë së shpejti.
       notice email cannot find: Na vjen keq, ne nuk arritë ta gjejmë adresën e emailit
         të dhënë.
-    reset_password:
+    edit:
       title: Rivendos fjalëkalimin
       heading: Rivendos fjalëkalimin për %{user}
       reset: Rivendos fjalëkalimin
-      flash changed: Fjalëkalimi yt është ndryshuar.
       flash token bad: Nuk e gjet atë shenjë, kontrollo URL-në?
+    update:
+      flash changed: Fjalëkalimi yt është ndryshuar.
   profiles:
     edit:
       image: Imazhi
@@ -1180,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:
@@ -1299,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 adcbcc88687483d35a720feb1958d4861e863d17..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,27 +881,31 @@ sr-Latn:
         pročitali.
     sent_message_summary:
       destroy_button: Obriši
+    heading:
+      my_inbox: Primljene
     mark:
       as_read: Poruka je označena kao pročitana
       as_unread: Poruka je označena kao nepročitana
     destroy:
       destroyed: Poruka je obrisana
   passwords:
-    lost_password:
+    new:
       title: Povratak lozinke
       heading: Zaboravili ste lozinku?
       email address: 'E-adresa:'
       new password button: Poništi lozinku
       help_text: Unesite e-adresu koju ste uneli pri upisu, a mi ćemo vam poslati
         vezu pomoću koje možete da poništite lozinku.
+    create:
       notice email on way: Poruka za poništavanje lozinke je poslata.
       notice email cannot find: E-adresa nije pronađena.
-    reset_password:
+    edit:
       title: Poništi lozinku
       heading: Poništavanje lozinke za %{user}
       reset: Poništi lozinku
-      flash changed: Vaša lozinka je promenjena.
       flash token bad: Takav novčić nije pronađen. Proverite adresu.
+    update:
+      flash changed: Vaša lozinka je promenjena.
   profiles:
     edit:
       image: 'Slika:'
@@ -1030,34 +1032,24 @@ sr-Latn:
           footway: Pešačka staza
           rail: Železnička pruga
           subway: Podzemna železnica
-          tram:
-          - Laka železnica
-          - tramvaj
-          cable:
-          - Žičara
-          - sedišnica
-          runway:
-          - Aerodromska pista
-          - rulne staze
-          apron:
-          - Aerodromski peron
-          - terminal
+          cable_car: Žičara
+          chair_lift: sedišnica
+          runway: Aerodromska pista
+          taxiway: rulne staze
+          apron: Aerodromski peron
           admin: Administrativna granica
           forest: Šuma
           wood: Šuma
           golf: Golf teren
           park: Park
+          common: Poljana
           resident: Stambeno područje
-          common:
-          - Poljana
-          - livada
           retail: Maloprodajno područje
           industrial: Industrijsko područje
           commercial: Poslovno područje
           heathland: Pustoš
-          lake:
-          - Jezero
-          - rezervoar
+          lake: Jezero
+          reservoir: rezervoar
           farm: Farma
           brownfield: Građevinsko zemljište
           cemetery: Groblje
@@ -1066,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 2141d356570da27d5b92967fe5182671d1b4d6d7..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,27 +1394,31 @@ sr:
         прочитали.
     sent_message_summary:
       destroy_button: Обриши
+    heading:
+      my_inbox: Примљене
     mark:
       as_read: Порука је означена као прочитана
       as_unread: Порука је означена као непрочитана
     destroy:
       destroyed: Порука је обрисана
   passwords:
-    lost_password:
+    new:
       title: Повратак лозинке
       heading: Заборавили сте лозинку?
       email address: 'Имејл адреса:'
       new password button: Поништи лозинку
       help_text: Унесите е-адресу коју сте унели при упису, а ми ћемо вам послати
         везу помоћу које можете да поништите лозинку.
+    create:
       notice email on way: Порука за поништавање лозинке је послата.
       notice email cannot find: Имејл адреса није пронађена, жао нам је.
-    reset_password:
+    edit:
       title: Поништи лозинку
       heading: Поништавање лозинке за %{user}
       reset: Поништи лозинку
-      flash changed: Ваша лозинка је промењена.
       flash token bad: Такав новчић није пронађен. Проверите адресу.
+    update:
+      flash changed: Ваша лозинка је промењена.
   profiles:
     edit:
       image: Слика
@@ -1666,35 +1668,31 @@ sr:
           cycleway_local: Локална бициклистичка стаза
           footway: Пешачка стаза
           rail: Железничка пруга
+          train: Воз
           subway: Подземна железница
-          tram:
-          - Лака железница
-          - трамвај
-          cable:
-          - Жичара
-          - седишница
-          runway:
-          - Аеродромска писта
-          - рулне стазе
-          apron:
-          - Аеродромски перон
-          - терминал
+          trolleybus: Тролејбус
+          bus: Аутобус
+          cable_car: Жичара
+          chair_lift: седишница
+          runway: Аеродромска писта
+          taxiway: Рулна стаза
+          apron: Аеродромски перон
           admin: Административна граница
+          capital: Престоница
+          city: Град
           forest: Шума
           wood: Шума
+          meadow: Ливада
           golf: Голф терен
           park: Парк
+          common: Пољана
           resident: Стамбено подручје
-          common:
-          - Пољана
-          - ливада
           retail: Малопродајно подручје
           industrial: Индустријско подручје
           commercial: Пословно подручје
           heathland: Пустош
-          lake:
-          - Језеро
-          - резервоар
+          lake: Језеро
+          reservoir: Резервоар
           farm: Фарма
           brownfield: Грађевинско земљиште
           cemetery: Гробље
@@ -1703,19 +1701,19 @@ sr:
           centre: Спортски центар
           reserve: Резерват природе
           military: Војно подручје
-          school:
-          - Школа
-          - универзитет
+          school: Школа
+          university: Универзитет
+          hospital: Болница
           building: Значајна зграда
           station: Железничка станица
-          summit:
-          - Узвишење
-          - врх
+          summit: Узвишење
+          peak: Врх
           tunnel: Испрекидан оквир – тунел
           bridge: Црни оквир – мост
           private: Приватни посед
           destination: Приступ одредишту
           construction: Путеви у изградњи
+          bus_stop: Аутобуска станица
           bicycle_shop: Продавница бицикала
           bicycle_parking: Паркинг за бицикле
           toilets: Тоалети
index 791d63e93850fb37d9d13bf329c00ee63976f2ee..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,27 +1839,32 @@ 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
     destroy:
       destroyed: Meddelande raderat
   passwords:
-    lost_password:
+    new:
       title: Förlorat lösenord
       heading: Glömt lösenord?
       email address: 'E-postadress:'
       new password button: Återställ lösenord
       help_text: Ange e-postadressen du använde för att registrera dig så skickar
         vi en länk till den som du kan använda för att återställa ditt lösenord.
+    create:
       notice email on way: Synd att du förlorade det, men ett nytt är på väg via e-post.
       notice email cannot find: Kunde inte hitta den e-postadressen.
-    reset_password:
+    edit:
       title: Återställ lösenord
       heading: Återställ lösenord för %{user}
       reset: Återställ lösenord
-      flash changed: Ditt lösenord har ändrats.
       flash token bad: Hittade inte den nyckeln, kontrollera webbadressen.
+    update:
+      flash changed: Ditt lösenord har ändrats.
   preferences:
     show:
       title: Mina alternativ
@@ -2323,35 +2326,24 @@ sv:
           footway: Gångväg
           rail: Järnväg
           subway: Tunnelbana
-          tram:
-          - Snabbspårväg
-          - spårväg
-          cable:
-          - Linbana
-          - stollift
-          runway:
-          - Landningsbana
-          - taxibana
-          apron:
-          - Flygplatsplatta
-          - terminal
+          cable_car: Linbana
+          chair_lift: stollift
+          runway: Landningsbana
+          taxiway: taxibana
+          apron: Flygplatsplatta
           admin: Administrativ gräns
           forest: Kulturskog
           wood: Naturskog
           golf: Golfbana
           park: Park
+          common: Allmänning
           resident: Bostadsområde
-          common:
-          - Allmänning
-          - äng
-          - trädgård
           retail: Område för Detaljhandel
           industrial: Industriellt område
           commercial: Kommersiellt område
           heathland: Hed
-          lake:
-          - Sjö
-          - vattenmagasin
+          lake: Sjö
+          reservoir: vattenmagasin
           farm: Bondgård
           brownfield: Förfallen industritomt
           cemetery: Begravningsplats
@@ -2360,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 d94d886741351fa322b65e652162ba75b3ad28de..9b49e09f545721a43297bebfa20eedbaea0659ff 100644 (file)
@@ -3,6 +3,7 @@
 # Export driver: phpyaml
 # Author: Aswn
 # Author: ElangoRamanujam
+# Author: Fahimrazick
 # Author: Gurulenin
 # Author: Karthi.dr
 # Author: Krishnaprasaths
@@ -39,8 +40,8 @@ ta:
         create: பதிவுசெய்
         update: புதுப்பி
       redaction:
-        create: à®ªà®\9fிதà¯\8dதிரà¯\81தà¯\8dததà¯\8dதà¯\88 à®\89à®°à¯\81வாà®\95à¯\8dà®\95வà¯\81à®®à¯\8d
-        update: à®ªà®\9fிதிரà¯\81தà¯\8dததà¯\8dதà¯\88à®\9aà¯\8d à®\9aà¯\87மிà®\95à¯\8dà®\95வà¯\81à®®à¯\8d
+        create: à®ªà®\9fிதà¯\8dதிரà¯\81தà¯\8dததà¯\8dதà¯\88 à®\86à®\95à¯\8dà®\95à¯\81
+        update: à®ªà®\9fிதà¯\8dதிரà¯\81தà¯\8dததà¯\8dதà¯\88à®\9aà¯\8d à®\9aà¯\87மி
       trace:
         create: பதிவேற்று
         update: மாற்றங்களை சேமி
@@ -52,6 +53,12 @@ ta:
       messages:
         invalid_email_address: செல்லுபடியாகும் மின்னஞ்சல் முகவரியாகத் தெரியவில்லை
         email_address_not_routable: திசைதிருப்பக்கூடியது அல்ல
+      models:
+        user_mute:
+          attributes:
+            subject:
+              format: '%{message}'
+          is_already_muted: ஏற்கனவே மௌனிக்கப்பட்டுள்ளார்
     models:
       acl: அனுமதிக் கட்டுப்பாட்டுப் பட்டியல்
       changeset: மாற்றங்கள்
@@ -82,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: வழி முனையம்
@@ -93,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: வரைபடத்தை மாற்றவும்
@@ -592,17 +599,20 @@ ta:
   messages:
     inbox:
       title: உள்பெட்டி
+    messages_table:
       from: 'அனுப்புநர்:'
       subject: பொருள்
       date: நாள்
+      actions: செயல்கள்
     message_summary:
       unread_button: வாசிக்கப்படாததாக என குறியிடு
       read_button: வாசித்ததாக குறியிடு
-      reply_button: à®ªà®¤à®¿à®²à¯\8d à®\85ளி
+      reply_button: பதிலளி
       destroy_button: நீக்கு
+      unmute_button: வருமஞ்சலுக்கு நகர்த்து
     new:
-      title: à®¤à®\95வலà¯\8d à®\85னà¯\81பà¯\8dபà¯\81
-      send_message_to_html: '%{name} à®\95à¯\8dà®\95à¯\81 à®ªà¯\81திய à®¤à®\95வலà¯\8d அனுப்பு'
+      title: தகவலனுப்பு
+      send_message_to_html: '%{name} à®\8eனà¯\8dபவரà¯\81à®\95à¯\8dà®\95à¯\81 à®\92à®°à¯\81 à®ªà¯\81திய à®¤à®\95வலà¯\88 அனுப்பு'
       back_to_inbox: உள்பெட்டிக்கு திரும்பவும்
     create:
       message_sent: செய்தி அனுப்பப்பட்டுவிட்டது
@@ -611,27 +621,36 @@ ta:
       heading: அப்படியொரு தகவல் இல்லை
     outbox:
       title: அனுப்பியவை
-      subject: பொருள்
-      date: நாள்
+      actions: செயல்கள்
+    muted:
+      title: மௌனித்த தகவல்கள்
+      messages:
+        one: '%{count} மௌனித்த தகவல்'
+        other: உமக்கு %{count} மௌனித்த தகவல்கள் உள்ளன
     show:
       title: தகவலை வாசிக்கவும்
-      reply_button: à®ªà®¤à®¿à®²à¯\8d à®\85ளி
+      reply_button: பதிலளி
       unread_button: வாசிக்கப்படாததாக  குறியிடு
-      destroy_button: நீக்கு
+      destroy_button: நீக்கு
     sent_message_summary:
       destroy_button: நீக்கு
+    heading:
+      muted_messages: மௌனித்த தகவல்கள்
+    unmute:
+      notice: தகவல் வருமஞ்சலுக்கு நகர்த்தப்பட்டுள்ளது
     destroy:
       destroyed: தகவல் நீக்கப்பட்டது
   passwords:
-    lost_password:
+    new:
       title: காணப்படாத கடவுச்சொல்
       heading: கடவுச்சொல் மறந்துவிட்டதா?
       email address: 'மின்னஞ்சல் முகவரி:'
       new password button: கடவுச்சொல்லை மீட்டமை
-    reset_password:
+    edit:
       title: கடவுச்சொல்லை மீட்டமை
       heading: ' %{user}க்கு கடவுச்சொல் மீட்டமை'
       reset: கடவுச்சொல்லை மீட்டமை
+    update:
       flash changed: உங்கள் கடவுச்சொல் மாற்றப்பட்டது.
   profiles:
     edit:
@@ -670,7 +689,7 @@ ta:
     export:
       title: ஏற்றுமதி செய்
       licence: உரிமம்
-      options: à®µà®¿à®°à¯\81பà¯\8dபதà¯\8d à®¤à¯\87à®°à¯\8dவுகள்
+      options: à®¤à¯\86ரிவுகள்
       format: வடிவமைப்பு
       scale: அளவுவீதம்
       max: அதிகபட்சம்
@@ -682,7 +701,7 @@ ta:
       search_results: தேடல் முடிவுகள்
       close: மூடு
     search:
-      search: à®¤à¯\87à®\9fலà¯\8d
+      search: à®¤à¯\87à®\9fà¯\81
       submit_text: செல்
     key:
       table:
@@ -690,28 +709,37 @@ ta:
           primary: முதன்மையான சாலை
           secondary: இரண்டாம் நிலை சாலை
           unclassified: வகைப்படுத்தாத சாலை
+          cycleway_mtb: மலையீருருளிப் பாதை
           rail: இரயில்வே
+          capital: தலைநகரம்
+          city: நகரம்
+          vineyard: திராட்சைத் தோட்டம்
           forest: காடு
           wood: விறகு
+          farmland: பண்ணை நிலம்
+          meadow: புல்வெளி
+          bare_rock: வெற்றுப் பாறை
+          sand: மணல்
           park: பூங்கா
-          common:
-          - பொதுவான
+          common: பொதுவான
+          built_up: கட்டடப் பகுதி
           industrial: தொழிற்சாலை பகுதி
           commercial: வணிக பகுதி
-          lake:
-          - ஏரி
-          - நீர்த்தேக்கம்
+          scrubland: புதர் நிலம்
+          lake: ஏரி
+          reservoir: நீர்நிலை
+          glacier: பனிப்பாறை
+          wetland: ஈரநிலம்
           farm: பண்ணை
           centre: விளையாட்டு மையம்
           military: ராணுவ பகுதி
-          school:
-          - பள்ளி
-          - பல்கலைக்கழகம்
+          school: பள்ளி
+          university: பல்கலைக்கழகம்
+          hospital: மருத்துவமனை
           building: குறிப்பிடத்தக்க கட்டிடம்
           station: தொடர்வண்டி நிலையம்
-          summit:
-          - உச்சி மாநாடு
-          - உயரமான இடம்
+          summit: உச்சி மாநாடு
+          peak: உச்சி
           private: தனியார் அனுமதி
           construction: சாலைகளில்  கட்டுமானப் பணிகள் நடந்து வருகின்றன.
           toilets: கழிவறைகள்
@@ -740,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: மேலும்
@@ -753,6 +781,9 @@ ta:
       in: உள்
     index:
       upload_trace: சுவடை பதிவேற்றவும்
+  application:
+    settings_menu:
+      muted_users: மௌனித்த பயனர்கள்
   oauth_clients:
     show:
       edit: தொகுப்பு விவரங்கள்
@@ -775,6 +806,8 @@ ta:
       my diary: எனது நாட்குறிப்பேடு
       my edits: என் திருத்தங்கள்
       my settings: என் அமைப்புகள்
+      create_mute: இப்பயனரை மௌனி
+      destroy_mute: இப்பயனரை ஓசையாக்கு
       diary: நாட்குறிப்பேடு
       edits: தொகுப்புகள்
       add as friend: நண்பராக சேர்
@@ -800,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: பயனர்கள்
@@ -814,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 e87767a89321085346596a53e24f18428ace26d3..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,28 +1694,33 @@ te:
         పంపలేదు, ఆ వాడుకరికి రాలేదు. సరైన వాడుకరిగా లాగినై చదవండి.
     sent_message_summary:
       destroy_button: తొలగించు
+    heading:
+      my_inbox: నా ఇన్‌బాక్స్
+      my_outbox: నా ఔట్‌బాక్సు
     mark:
       as_read: సందేశాన్ని చదివినట్లుగా గుర్తుపెట్టాం
       as_unread: సందేశాన్ని చదవనట్లుగా గుర్తుపెట్టాం
     destroy:
       destroyed: సందేశాన్ని తొలగించాం
   passwords:
-    lost_password:
+    new:
       title: సంకేతపదం పోయింది
       heading: సంకేతపదం మర్చిపోయారా?
       email address: 'ఈమెయిల్ చిరునామా:'
       new password button: సంకేతపదాన్ని మార్చు
       help_text: నమోదైనపుడు మీరిచ్చిన ఈమెయిలు చిరునామాను ఇవ్వండి. సంకేతపదాన్ని మార్చుకునే
         లింకును ఆ చిరునామాకు పంపిస్తాం.
+    create:
       notice email on way: అయ్యో.. పోయిందా :-( పోన్లెండి, దాన్ని మార్చుకునేందుకు ఒక
         ఈమెయిలు వచ్చేస్తోంది.
       notice email cannot find: క్షమించండి, ఆ ఈమెయిలు చిరునామా దొరకలేదు.
-    reset_password:
+    edit:
       title: సంకేతపదం మార్పు
       heading: '%{user} సంకేతపదాన్ని మార్చు'
       reset: సంకేతపదాన్ని మార్చు
-      flash changed: మీ సంకేతపదాన్ని మార్చాం.
       flash token bad: ఆ టోకెను కనబడలేదు, ఓసారి URL సరిచూస్తారా?
+    update:
+      flash changed: మీ సంకేతపదాన్ని మార్చాం.
   preferences:
     show:
       title: నా అభీష్టాలు
@@ -2003,33 +2003,23 @@ te:
           footway: కాల్దారి
           rail: రైలుమార్గం
           subway: కిందారి
-          tram:
-          - లైట్ రైల్
-          - ట్రాము
-          cable:
-          - కేబుల్ కారు
-          - చెయిర్ లిఫ్ట్
-          runway:
-          - విమానాశ్రయం రన్‌వే
-          - టాక్సీ వే
-          apron:
-          - విమానాశ్రయం ఏప్రాన్
-          - టర్మినల్
+          cable_car: కేబుల్ కారు
+          chair_lift: చెయిర్ లిఫ్ట్
+          runway: విమానాశ్రయం రన్‌వే
+          taxiway: టాక్సీ వే
+          apron: విమానాశ్రయం ఏప్రాన్
           admin: పరిపాలనా సరిహద్దు
           forest: అడవి
           wood: కలప
           golf: గోల్ఫ్ కోర్సు
           park: పార్కు
+          common: పచ్చికబయలు
           resident: నివాస ప్రాంతం
-          common:
-          - పచ్చికబయలు
-          - పచ్చికబయలు
           retail: రిటెయిల్ ప్రదేశం
           industrial: పారిశ్రామిక ప్రదేశం
           commercial: వాణిజ్య ప్రదేశం
-          lake:
-          - సరస్సు
-          - జలాశయం
+          lake: సరస్సు
+          reservoir: జలాశయం
           farm: పొలాలు
           brownfield: బ్రౌన్‌ఫీల్డ్ స్థలం
           cemetery: స్మశానం
@@ -2037,13 +2027,11 @@ te:
           centre: క్రీడా కేంద్రం
           reserve: ప్రకృతి సంరక్షణ కేంద్రం
           military: మిలిటరీ ప్రదేశం
-          school:
-          - పాఠశాల
-          - విశ్వవిద్యాలయం
+          school: పాఠశాల
+          university: విశ్వవిద్యాలయం
           building: ప్రముఖ కట్టడము
           station: రైల్వే స్టేషన్
-          summit:
-            1: శిఖరం
+          peak: శిఖరం
           bridge: Black casing = వంతెన
           construction: నిర్మాణంలో ఉన్న రహదార్లు
           bicycle_shop: సైకిలు దుకాణం
index b38cecd945a913a7193f89755b17d97926ef6fdd..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,22 +1408,27 @@ th:
         โปรดเข้าระบบใหม่โดยใช้ชื่อผู้ใช้นั้นเพื่อตอบกลับ
     sent_message_summary:
       destroy_button: ลบ
+    heading:
+      my_inbox: จดหมายรับส่วนตัว
+      my_outbox: กล่องจดหมายขาออกส่วนตัว
     mark:
       as_read: ข้อความถูกทำเครื่องหมายว่าอ่านแล้ว
       as_unread: ข้อความถูกทำเครื่องหมายว่ายังไม่ได้อ่าน
     destroy:
       destroyed: ข้อความถูกลบแล้ว
   passwords:
-    lost_password:
+    new:
       title: ตั้งรหัสผ่านใหม่
       heading: ลืมรหัสผ่านหรือ?
       email address: 'ที่อยู่อีเมล:'
       new password button: ตั้งรหัสผ่านใหม่
+    create:
       notice email cannot find: ขออภัย, ไม่พบที่อยู่อีเมลที่ระบุ
-    reset_password:
+    edit:
       title: ตั้งรหัสผ่านใหม่
       heading: 'ตั้วรหัสผ่านใหม่สำหรับ: %{user}'
       reset: ตั้งรหัสผ่านใหม่
+    update:
       flash changed: เปลี่ยนรหัสผ่านของคุณแล้วเรียบร้อย
   profiles:
     edit:
@@ -1647,34 +1648,24 @@ th:
           footway: ทางเดินเท้า
           rail: ทางรถไฟ
           subway: รถไฟใต้ดิน
-          tram:
-          - รถไฟเบา
-          - รถราง
-          cable:
-          - รถกระเช้า
-          - รถกระเช้าเปลือย
-          runway:
-          - ทางวิ่งสนามบิน
-          - ทางขับเครื่องบิน
-          apron:
-          - โรงซ่อมบำรุงเครื่องบิน
-          - อาคารผู้โดยสาร
+          cable_car: รถกระเช้า
+          chair_lift: รถกระเช้าเปลือย
+          runway: ทางวิ่งสนามบิน
+          taxiway: ทางขับเครื่องบิน
+          apron: โรงซ่อมบำรุงเครื่องบิน
           admin: ขอบเขตการปกครอง
           forest: ป่า
           wood: ไม้
           golf: สนามกอล์ฟ
           park: สวน
+          common: ที่ส่วนกลาง
           resident: เขตที่พักอาศัย
-          common:
-          - ที่ส่วนกลาง
-          - ทุ่งหญ้า
           retail: พื้นที่พาณิชยกรรม
           industrial: พื้นที่อุตสาหกรรม
           commercial: พื้นที่พาณิชยกรรม
           heathland: ทุ่งไม้พุ่ม
-          lake:
-          - ทะเลสาบ
-          - อ่างเก็บน้ำ
+          lake: ทะเลสาบ
+          reservoir: อ่างเก็บน้ำ
           farm: ไร่นา
           brownfield: พื้นที่อุตสาหกรรมเดิม
           cemetery: สุสาน
@@ -1683,14 +1674,12 @@ th:
           centre: ศูนย์กีฬา
           reserve: พื้นที่สงวนธรรมชาติ
           military: เขตทหาร
-          school:
-          - โรงเรียน
-          - มหาวิทยาลัย
+          school: โรงเรียน
+          university: มหาวิทยาลัย
           building: อาคารสำคัญ
           station: สถานีรถไฟ
-          summit:
-          - ยอดเขา
-          - ยอดเขา
+          summit: ยอดเขา
+          peak: ยอดเขา
           tunnel: เส้นประ = อุโมงค์
           bridge: เส้นทึบ = สะพาน
           private: พื้นที่ส่วนบุคคล
index 623514b661e2a2b42638b088ef4d8082ca011cc4..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,13 +1417,16 @@ tl:
         bilang ang tamang tagagamit upang mabasa ito.
     sent_message_summary:
       destroy_button: Burahin
+    heading:
+      my_inbox: Kahong-tanggapan Ko
+      my_outbox: Kahong-labasan Ko
     mark:
       as_read: Minarkahan ang mensahe bilang nabasa na
       as_unread: Minarkahan ang mensahe bilang hindi pa nababasa
     destroy:
       destroyed: Binura ang mensahe
   passwords:
-    lost_password:
+    new:
       title: Naiwalang password
       heading: Nakalimutang Password?
       email address: 'Tirahan ng e-liham:'
@@ -1436,15 +1434,17 @@ tl:
       help_text: Ipasok ang tirahan ng e-liham na ginamit mo upang magpatala, ipapadala
         namin ang isang kawing papunta rito na magagamit mo upang muling maitakda
         mo ang iyong password.
+    create:
       notice email on way: Ikinalulungkot na naiwala mo iyan :-( ngunit darating na
         ang isang e-liham upang maitakda mong muli iyan kaagad.
       notice email cannot find: Hindi matagpuan ang ganyang tirahan ng e-liham, paumanhin.
-    reset_password:
+    edit:
       title: Muling itakda ang password
       heading: Muling itakda ang Hudyat para kay %{user}
       reset: Muling Itakda ang Password
-      flash changed: Napalitan na ang hudyat mo.
       flash token bad: Hindi natagpuan ang ganyang kahalip, suriin kaya ang URL?
+    update:
+      flash changed: Napalitan na ang hudyat mo.
   preferences:
     show:
       preferred_languages: Nais na mga Wika
@@ -1688,35 +1688,24 @@ tl:
           footway: Lakaran ng tao
           rail: Daambakal
           subway: Daanang pang-ilalim
-          tram:
-          - Banayad na riles
-          - trambya
-          cable:
-          - Kotse ng kable
-          - upuang inaangat
-          runway:
-          - Rampa ng Paliparan
-          - daanan ng taksi
-          apron:
-          - Tapis ng paliparan
-          - terminal
+          cable_car: Kotse ng kable
+          chair_lift: upuang inaangat
+          runway: Rampa ng Paliparan
+          taxiway: daanan ng taksi
+          apron: Tapis ng paliparan
           admin: Hangganang pampangangasiwa
           forest: Gubat
           wood: Kahoy
           golf: Kurso ng golp
           park: Liwasan
+          common: Karaniwan
           resident: Pook na panuluyan
-          common:
-          - Karaniwan
-          - kaparangan
-          - halamanan
           retail: Lugar na tingian
           industrial: Pook na pang-industriya
           commercial: Pook na pangkalakalan
           heathland: Lupain ng halamang erika
-          lake:
-          - Lawa
-          - tinggalan ng tubig
+          lake: Lawa
+          reservoir: tinggalan ng tubig
           farm: Bukid
           brownfield: Pook ng kayumangging bukirin
           cemetery: Libingan
@@ -1725,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 27d2c67c712fc53c9231b47f577e9e5436fbac85..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,26 +1869,36 @@ tr:
         giriş yapın.'
     sent_message_summary:
       destroy_button: Sil
+    heading:
+      my_inbox: Gelen kutusu
+      my_outbox: Giden Kutum
+      muted_messages: Sessize alınan mesajlar
     mark:
       as_read: Mesaj okundu olarak işaretlendi
       as_unread: Mesaj okunmadı olarak işaretlendi
+    unmute:
+      notice: Mesaj, gelen kutusuna taşındı
+      error: Mesaj, gelen kutusuna taşınamadı.
     destroy:
       destroyed: Mesaj silindi
   passwords:
-    lost_password:
+    new:
       title: Kayıp parola
       heading: Parolanızı mı Unuttunuz?
       email address: 'E-posta Adresi:'
       new password button: Parolayı sıfırla
       help_text: Kaydolmak için kullandığınız e-posta adresini girin, şifrenizi sıfırlamak
         için kullanabileceğiniz bir bağlantı yollayacağız.
+    create:
       notice email on way: Maalesef şifrenizi kaybettiniz :-( Ancak yeni bir e-posta
         yolda böylece şifreniziyakında sıfırlayabilirsiniz.
       notice email cannot find: 'Üzgünüz: bu e-posta adresi bulunamadı.'
-    reset_password:
+    edit:
       title: Parolayı sıfırla
       heading: '%{user} İçin Parolayı Sıfırlayın'
       reset: Parolayı Sıfırla
+      flash token bad: Bu simgeyi bulamadıysanız belki de bağlantıyı kontrol etmelisiniz?
+    update:
       flash changed: Parolanız değiştirildi.
       flash token bad: Bu simgeyi bulamadıysanız belki de bağlantıyı kontrol etmelisiniz?
   preferences:
@@ -1922,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ş
@@ -1985,6 +2006,7 @@ tr:
       image: Resim
       alt: Alt metin
       url: URL
+      codeblock: Kod bloğu
     richtext_field:
       edit: Düzenle
       preview: Önizleme
@@ -2044,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.
@@ -2221,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
@@ -2262,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:
@@ -2362,44 +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
-          tram:
-          - Dar raylı demiryolu
-          - tramvay
-          cable:
-          - Teleferik
-          - gondol
-          runway:
-          - Uçuş pisti
-          - Uçak pisti
-          apron:
-          - Havaalanı apronu
-          - terminal
+          ferry: Feribot
+          light_rail: Hafif raylı
+          tram: Tramvay
+          trolleybus: Troleybüs
+          bus: Otobüs
+          cable_car: Teleferik
+          chair_lift: Telesiyej
+          runway: Uçuş pisti
+          taxiway: Taksi yolu
+          apron: Havaalanı apronu
           admin: İdari sınırı
+          capital: Başkent
+          city: Şehir
+          orchard: Meyve bahçesi
+          vineyard: Üzüm bağı
           forest: Orman
-          wood: Orman
+          wood: Koru
+          farmland: Tarım arazisi
+          grass: Çimen
+          meadow: Çayır
+          bare_rock: Çıplak kaya
+          sand: Kum
           golf: Golf sahası
           park: Park
+          common: Çimen
+          built_up: İnşa alanı
           resident: Yerleşim bölgesi
-          common:
-          - Çimen
-          - mera
-          - bahçe
           retail: Alışveriş merkezi
           industrial: Sanayi alanı
           commercial: Ticari ve hizmet alanı
           heathland: Fundalık
-          lake:
-          - Göl
-          - rezervuar
+          scrubland: Çalılık
+          lake: Göl
+          reservoir: Rezervuar
+          intermittent_water: Aralıklı su birikintisi
+          glacier: Buzul
+          reef: Resif
+          wetland: Sulak alan
           farm: Çiftlik
           brownfield: Çıplak arazi
           cemetery: Mezarlık
@@ -2408,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
@@ -2626,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
@@ -2662,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:
@@ -2751,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?
@@ -2764,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
@@ -2838,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:'
@@ -2858,17 +2898,18 @@ tr:
       role:
         administrator: Bu kullanıcı, bir yöneticidir.
         moderator: Bu kullanıcı, bir moderatördür.
-        importer: Bu kullanıcı bir ithalatçıdır
+        importer: Bu kullanıcı bir içe aktarıcıdır
         grant:
           administrator: Yönetici erişim hakkı
           moderator: Moderatör erişim izni
-          importer: İthalatçıya erişim izni ver
+          importer: İçe aktarım erişim izni ver
         revoke:
           administrator: Yönetici erişimini iptal etme
           moderator: Moderatör erişimini iptal etme
-          importer: İthalatçı erişimini iptal et
+          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
@@ -2879,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.
@@ -2979,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.
@@ -3012,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.
@@ -3029,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
@@ -3075,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 b76b45b4a640c3265cc5fa4aa83750e6fb59ff38..1f10f43330549a3b2712f09cce4f5277771be880 100644 (file)
@@ -832,6 +832,7 @@ tt:
         other: '%{count} яңа хәбәрегез'
       old_messages:
         other: '%{count} иске хәбәрегез'
+    messages_table:
       from: 'Кемнән:'
       subject: Тема
       date: Вакыт
@@ -840,7 +841,7 @@ tt:
     new:
       title: Хәбәр җибәрү
   passwords:
-    lost_password:
+    new:
       email address: 'Электрон почта адресы:'
   profiles:
     edit:
@@ -892,34 +893,24 @@ tt:
           cycleway: Әйләнаяк юлы
           rail: Тимер юл
           subway: Метро
-          tram:
-          - Җиңел рельслы т/ю транспорты
-          - трамвай
-          cable:
-          - Канат юлы
-          apron:
-            1: терминал
+          cable_car: Канат юлы
           admin: Административ чик
           forest: Урман
           wood: Агачлык
           park: Парк
           resident: Торак районы
-          common:
-            1: болын
           industrial: Сәнәгый район
           heathland: Буш җир
-          lake:
-          - Күл
-          - сусаклагыч
+          lake: Күл
+          reservoir: сусаклагыч
           farm: Ферма
           cemetery: Зират
           pitch: Спорт мәйданчыгы
           centre: Спорт үзәге
           reserve: Тыюлык
           military: Хәрби зона
-          school:
-          - Мәктәп
-          - университет
+          school: Мәктәп
+          university: университет
           station: Тимер юл станциясе
           toilets: Бәдрәф
   traces:
index e819260b41a818d22e1d740ddfc346c639580864..6a48a0931105e9bbe3ccb0e95112adfa575f3c9d 100644 (file)
@@ -44,6 +44,7 @@
 # Author: Vlad5250
 # Author: Ypryima
 # Author: Yurkoy
+# Author: Ǝlʞıɯ
 # Author: Ата
 # Author: Драгун
 # Author: Пан Хаунд
@@ -86,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: Набір змін
@@ -1020,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: Місце для розвороту
@@ -1054,7 +1061,7 @@ uk:
           railway: Історична залізниця
           roman_road: Римська дорога
           ruins: Руїни
-          rune_stone: Рунний камінь
+          rune_stone: Рунічний камінь
           stone: Камінь
           tomb: Гробниця
           tower: Вежа
@@ -1427,7 +1434,7 @@ uk:
           photo: Фотомагазин
           seafood: Морепродукти
           second_hand: Комісійний магазин
-          sewing: Ð¨Ð²ÐµÐ¹Ð½Ð¸Ð¹ Ñ\86еÑ\85
+          sewing: Ð¨Ð²ÐµÐ¹Ð½Ðµ Ð¿Ñ\80иладдÑ\8f
           shoes: Взуття
           sports: Спортивні товари
           stationery: Канцтовари
@@ -1549,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: Повторно відкрити
@@ -1579,7 +1586,7 @@ uk:
   issue_comments:
     create:
       comment_created: Коментар створено
-      issue_reassigned: Ваш коментар створено, а питання перепризначено
+      issue_reassigned: Ваш коментар створено та перепризначено звернення
   reports:
     new:
       title_html: Скарга %{link}
@@ -1832,8 +1839,6 @@ uk:
   messages:
     inbox:
       title: Вхідні
-      my_inbox: Вхідні
-      my_outbox: Вихідні
       messages: У вас %{new_messages} і %{old_messages}
       new_messages:
         one: '%{count} нове повідомлення'
@@ -1845,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}
@@ -1870,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}“, але повідомлення, на яке ви хочете відповісти,
         було надіслане не вам. Будь ласка, увійдіть до відповідного облікового запису,
@@ -1898,28 +1910,38 @@ uk:
         облікового запису, щоб прочитати його.
     sent_message_summary:
       destroy_button: Вилучити
+    heading:
+      my_inbox: Вхідні
+      my_outbox: Вихідні
+      muted_messages: Стишені повідомлення
     mark:
       as_read: Повідомлення позначене як прочитане
       as_unread: Повідомлення позначене як непрочитане
+    unmute:
+      notice: Повідомлення переміщено до "Вхідних".
+      error: Не вдалося перемістити повідомлення до "Вхідних".
     destroy:
       destroyed: Повідомлення вилучено
   passwords:
-    lost_password:
+    new:
       title: Відновлення пароля
       heading: Забули пароль?
       email address: 'Адреса ел. пошти:'
       new password button: Вишліть мені новий пароль
       help_text: Введіть адресу вашої електронної пошти, яку ви використовували для
         реєстрації, і ми надішлемо інструкції, як можна відновити ваш пароль.
+    create:
       notice email on way: Шкода, що ви втратили пароль :-( але нічого, скоро прийде
         лист і ви зможете перевстановити свій пароль.
       notice email cannot find: На жаль, така адреса не зареєстрована.
-    reset_password:
+    edit:
       title: Скидання пароля
       heading: Скидання пароля для %{user}
       reset: Скидання пароля
-      flash changed: Ваш пароль було змінено.
       flash token bad: Неможливо знайти такий код підтвердження, перевірте посилання.
+    update:
+      flash changed: Ваш пароль було змінено.
+      flash token bad: Неможливо знайти такий токен, перевірте посилання.
   preferences:
     show:
       title: Вподобання
@@ -2024,6 +2046,7 @@ uk:
       image: Зображення
       alt: Alt текст
       url: URL
+      codeblock: Блок коду
     richtext_field:
       edit: Редагувати
       preview: Попередній перегляд
@@ -2393,44 +2416,56 @@ uk:
           primary: Головна дорога
           secondary: Другорядна дорога
           unclassified: Дорога без класифікації
+          pedestrian: Пішохідна доріжка
           track: Путівець
           bridleway: Дорога для їзди кіньми
           cycleway: Велодоріжка
           cycleway_national: Національні велошляхи
           cycleway_regional: Регіональні велошляхи
           cycleway_local: Місцеві велошляхи
+          cycleway_mtb: Маршрут для гірських велосипедів
           footway: Пішохідна доріжка
           rail: Залізниця
+          train: Поїзд
           subway: Лінія метро
-          tram:
-          - Швидкісний трамвай
-          - трамвай
-          cable:
-          - Канатна дорога
-          - крісельний підйомник
-          runway:
-          - Злітно-посадкова смуга аеропорту
-          - руліжна доріжка
-          apron:
-          - Перон аеропорту
-          - термінал
+          ferry: Паром
+          light_rail: Швидкісний трамвай
+          tram: Трамвай
+          trolleybus: Тролейбус
+          bus: Автобус
+          cable_car: Канатна дорога
+          chair_lift: Крісельний підйомник
+          runway: Злітно-посадкова смуга аеропорту
+          taxiway: Руліжна доріжка
+          apron: Перон аеропорту
           admin: Адміністративна межа
+          capital: Столиця
+          city: Місто
+          orchard: Сад
+          vineyard: Виноградник
           forest: Ліс
           wood: Дерева
+          farmland: Поле
+          grass: Трава
+          meadow: Левада
+          bare_rock: Голі скелі
+          sand: Пісок
           golf: Поле для гольфу
           park: Парк
+          common: Суспільні землі
+          built_up: Забудована територія
           resident: Жила зона
-          common:
-          - Суспільні землі
-          - левада
-          - сад
           retail: Торговельний район
           industrial: Промисловий район
           commercial: Бізнесова зона
           heathland: Пустище
-          lake:
-          - Озеро
-          - водосховище
+          scrubland: Чагарник
+          lake: Озеро
+          reservoir: Водосховище
+          intermittent_water: Водойма, що пересихає
+          glacier: Льодовик
+          reef: Риф
+          wetland: Заболочені землі
           farm: Ферма
           brownfield: Покинута зона
           cemetery: Кладовище
@@ -2439,19 +2474,20 @@ uk:
           centre: Спортивний центр
           reserve: Заповідник
           military: Військова зона
-          school:
-          - Школа
-          - університет
+          school: Школа
+          university: Університет
+          hospital: Лікарня
           building: Значна споруда
           station: Залізнична станція
-          summit:
-          - Вершина
-          - пік
+          summit: Вершина
+          peak: Пік
           tunnel: Тунель (пунктиром)
           bridge: Міст (жирна лінія)
           private: Приватний доступ
           destination: Цільовий доступ
           construction: Будівництво дороги
+          bus_stop: Автобусна зупинка
+          stop: Зупинка
           bicycle_shop: Веломагазин
           bicycle_parking: Велопарковка
           toilets: Туалети
@@ -2667,6 +2703,7 @@ uk:
       oauth1_settings: налаштування OAuth 1
       oauth2_applications: застосунки OAuth 2
       oauth2_authorizations: авторизації OAuth 2
+      muted_users: Стишені учасники
   oauth:
     authorize:
       title: Авторизувати доступ до облікового запису
@@ -2705,6 +2742,7 @@ uk:
       read_gpx: Отримувати приватні GPS-треки
       write_gpx: Завантажувати GPS-треки
       write_notes: Змінювати нотатки
+      write_redactions: Виконувати очищення даних
       read_email: Отримувати адресу е-пошти
       skip_authorization: Автоматичне схвалення заявки
   oauth_clients:
@@ -2794,6 +2832,7 @@ uk:
       application: Застосунок
       permissions: Дозволи
       no_applications_html: У вас ще немає застосунків авторизованих через %{oauth2}.
+      oauth_2: OAuth 2
     application:
       revoke: Відкликати доступ
       confirm_revoke: Відкликати доступ у застосунку?
@@ -2881,6 +2920,8 @@ uk:
       my_dashboard: Інфо панель
       blocks on me: Мої блокування
       blocks by me: Заблоковано мною
+      create_mute: Стишити цього учасника
+      destroy_mute: Зняти стишення з цього учасника
       edit_profile: Редагувати профіль
       send message: Надіслати повідомлення
       diary: Щоденник
@@ -3090,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}
@@ -3126,6 +3193,7 @@ uk:
       reactivate: Поновити
       comment_and_resolve: Прокоментувати та Опрацювати
       comment: Коментар
+      log_in_to_comment: Увійдіть, щоб прокоментувати цю нотатку
       report_link_html: Якщо ця нотатка містить конфіденційну інформацію, яку потрібно
         видалити, ви можете %{link}.
       other_problems_resolve: Всі інші проблеми з нотаткою вирішуйте самостійно в
index 4271be41cd19922f705c9ceb86b718c0c60a7232..c4b68cb07ea82d2a60cf4165f4dd858e9a6de67d 100644 (file)
@@ -4,6 +4,7 @@
 # Author: A Retired User
 # Author: Anewplayer
 # Author: Dinhxuanduyet
+# Author: Doraemonluonbentoi
 # Author: Flyplanevn27
 # Author: Ioe2015
 # Author: JohnsonLee01
@@ -1321,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
@@ -1601,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
@@ -1630,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
@@ -1654,28 +1650,33 @@ vi:
         xác để đọc nó.
     sent_message_summary:
       destroy_button: Xóa
+    heading:
+      my_inbox: Hộp thư đến
+      my_outbox: Hộp thư gửi
     mark:
       as_read: Thư đã đọc
       as_unread: Thư chưa đọc
     destroy:
       destroyed: Đã xóa thư
   passwords:
-    lost_password:
+    new:
       title: Quên mất mật khẩu
       heading: Quên mất Mật khẩu?
       email address: 'Địa chỉ Thư điện tử:'
       new password button: Đặt lại mật khẩu
       help_text: Nhập địa chỉ thư điện tử mà bạn đã dùng để mở tài khoản, rồi chúng
         tôi sẽ gửi liên kết cho địa chỉ đó để cho bạn đặt lại mật khẩu.
+    create:
       notice email on way: Đáng tiếc là bạn quên nó. :-( May là thư điện tử sắp tới
         để bạn đặt nó lại.
       notice email cannot find: Rất tiếc, không tìm thấy địa chỉ thư điện tử.
-    reset_password:
+    edit:
       title: Đặt lại mật khẩu
       heading: Đặt lại Mật khẩu của %{user}
       reset: Đặt lại Mật khẩu
-      flash changed: Mật khẩu của bạn đã được thay đổi.
       flash token bad: Không tìm thấy dấu hiệu đó. Có lẽ kiểm tra URL?
+    update:
+      flash changed: Mật khẩu của bạn đã được thay đổi.
   preferences:
     show:
       title: Tùy chỉnh
@@ -2022,35 +2023,24 @@ vi:
           footway: Đường đi bộ
           rail: Đường sắt
           subway: Đường ngầm
-          tram:
-          - Đường sắt nhẹ
-          - xe điện
-          cable:
-          - Đường xe cáp
-          - ghế cáp treo
-          runway:
-          - Đường băng
-          - đường băng
-          apron:
-          - Sân đậu máy bay
-          - nhà ga hành khách
+          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
           wood: Rừng
           golf: Sân golf
           park: Công viên
+          common: Đất công
           resident: Khu vực nhà ở
-          common:
-          - Đất công
-          - bãi cỏ
-          - vườn
           retail: Khu vực buôn bán
           industrial: Khu vực công nghiệp
           commercial: Khu vực thương mại
           heathland: Vùng cây bụi
-          lake:
-          - Hồ
-          - hồ chứa nước
+          lake: Hồ
+          reservoir: hồ chứa nước
           farm: Ruộng
           brownfield: Cánh đồng nâu
           cemetery: Nghĩa địa
@@ -2059,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 99bb6c4901d2a97d9d0582cb7a5062f144191442..7edd241cbcac3a93d214e376336bc00d6778042f 100644 (file)
@@ -44,10 +44,10 @@ yo:
     show:
       title: Ka message
   passwords:
-    lost_password:
+    new:
       title: lost password
       new password button: Fi ọ̀rọ̀ìpamọ́ tuntun ránsẹ́ sí mi
-    reset_password:
+    edit:
       title: ìtúntò ọ̀rọ̀ìpamọ́
   sessions:
     new:
index ccd2f0d6a3ae43a98a9d4553ea1f3e57151f2834..fe7c35408901a1c7ffe60725a829bdef53c9af4b 100644 (file)
@@ -8,12 +8,14 @@
 # Author: Amire80
 # Author: Anakmalaysia
 # Author: Angrydog001
+# Author: Anterdc99
 # Author: Assoc
 # Author: Boyuan Yang
 # Author: C933103
 # Author: David S. Hwang
 # Author: Deathkon
 # Author: Dimension
+# Author: Dream Star.cn
 # Author: Duolaimi
 # Author: FakeGreenHand
 # Author: Fanjiayi
@@ -122,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: 变更集
@@ -334,6 +342,7 @@ zh-CN:
         retain_notes: 您的地图注记与注记中的评论,如果有,将被保留,但不可见。
         retain_changeset_discussions: 您在变更集下的讨论,如果有,将被保留。
         retain_email: 您的电子邮件地址将被保留。
+        recent_editing_html: 因为您最近有做出编辑,目前无法删除您的账号。%{time} 后才可删除。
         confirm_delete: 您确定吗?
         cancel: 取消
   accounts:
@@ -1498,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: 重新开放
@@ -1534,7 +1543,7 @@ zh-CN:
       title_html: 举报%{link}
       missing_params: 不能创建新的举报
       disclaimer:
-        intro: 在发送您的举报至网站版主前,请确保:
+        intro: 在发送您的举报至网站仲裁员前,请确保:
         not_just_mistake: 您确信这个问题不只是失误
         unable_to_fix: 您无法自行修复问题,或通过您的伙伴社群成员帮助下修复
         resolve_with_user: 您已尝试与有关用户解决问题
@@ -1729,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}
@@ -1757,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: 删除
@@ -1778,24 +1790,34 @@ zh-CN:
       wrong_user: 您已经以 '%{user}' 的身份登录,但是您想要阅读的消息并非寄给这个用户。请以正确的用户身份登录以阅读这个消息。
     sent_message_summary:
       destroy_button: 删除
+    heading:
+      my_inbox: 我的收件箱
+      my_outbox: 我的发件箱
+      muted_messages: 已弱化消息
     mark:
       as_read: 标记消息为已读
       as_unread: 标记消息为未读
+    unmute:
+      notice: 消息已移至收件箱
+      error: 无法将消息移至收件箱。
     destroy:
       destroyed: 消息已删除
   passwords:
-    lost_password:
+    new:
       title: 忘记密码
       heading: 忘记密码?
       email address: 电子邮件地址:
       new password button: 重置密码
       help_text: 输入您的电子邮件地址来注册,我们会寄出链接给它,这样您就可以用它来重置密码。
+    create:
       notice email on way: 很遗憾您遗失了密码:-(不过一封电子邮件已经发往您的邮箱,您很快就可以重置密码了。
       notice email cannot find: 对不起,无法找到邮箱。
-    reset_password:
+    edit:
       title: 重置密码
       heading: 重置%{user}的密码
       reset: 重置密码
+      flash token bad: 未找到标记,建议检查 URL?
+    update:
       flash changed: 您的密码已经更改。
       flash token bad: 未找到标记,建议检查 URL?
   preferences:
@@ -1900,6 +1922,7 @@ zh-CN:
       image: 图像
       alt: 替代文本
       url: URL
+      codeblock: 代码块
     richtext_field:
       edit: 编辑
       preview: 预览
@@ -1957,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 提供署名。
@@ -1996,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}:包含来自芬兰地形数据库的
           国家土地调查
@@ -2195,6 +2219,7 @@ zh-CN:
           primary: 一级道路
           secondary: 二级道路
           unclassified: 无等级道路
+          pedestrian: 人行道
           track: 小路
           bridleway: 马道
           cycleway: 自行车道
@@ -2203,36 +2228,46 @@ zh-CN:
           cycleway_local: 本地自行车道
           footway: 步道
           rail: 铁路
+          train: 火车
           subway: 地铁
-          tram:
-          - 轻轨
-          - 电车
-          cable:
-          - 缆车
-          - 吊椅缆车
-          runway:
-          - 机场跑道
-          - 滑行道
-          apron:
-          - 机场停机坪
-          - 航站楼
+          ferry: 渡船
+          light_rail: 轻轨
+          tram: 有轨电车
+          trolleybus: 无轨电车
+          bus: 公共汽车
+          cable_car: 缆车
+          chair_lift: 吊椅缆车
+          runway: 机场跑道
+          taxiway: 滑行道
+          apron: 机场停机坪
           admin: 行政区边界
+          capital: 首都
+          city: 城市
+          orchard: 果园
+          vineyard: 葡萄园
           forest: 森林
-          wood: 林
+          wood: 树林
+          farmland: 农田
+          grass: 草坪
+          meadow: 草甸
+          bare_rock: 裸岩
+          sand: 沙地
           golf: 高尔夫球场
           park: 公园
+          common: 公地
+          built_up: 建成区
           resident: 居住区
-          common:
-          - 公地
-          - 草甸
-          - 花园
           retail: 零售区
           industrial: 工业区
           commercial: 商业区
           heathland: 荒原
-          lake:
-          - 湖
-          - 水库
+          scrubland: 灌木丛林地
+          lake: 湖
+          reservoir: 水库
+          intermittent_water: 间歇性水体
+          glacier: 冰川
+          reef: 礁
+          wetland: 湿地
           farm: 农场
           brownfield: 棕地
           cemetery: 坟场
@@ -2241,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: 厕所
@@ -2286,6 +2322,7 @@ zh-CN:
         imports: 导入
         automated_edits: 自动化编辑
       start_mapping: 开始绘制地图
+      continue_authorization: 继续授权
       add_a_note:
         title: 没有时间编辑?添加注记!
         para_1: 如果您这是想做一些微小改动而没有时间登录来学习如何编辑,那添加注记是非常容易的。
@@ -2418,6 +2455,7 @@ zh-CN:
       oauth1_settings: OAuth 1设置
       oauth2_applications: OAuth 2应用程序
       oauth2_authorizations: OAuth 2授权
+      muted_users: 已弱化用户
   oauth:
     authorize:
       title: 授权访问您的账户
@@ -2452,6 +2490,7 @@ zh-CN:
       read_gpx: 读取私人GPS轨迹
       write_gpx: 上传GPS轨迹
       write_notes: 修改备注
+      write_redactions: 编写地图数据
       read_email: 查看用户邮箱地址
       skip_authorization: 自动核准应用
   oauth_clients:
@@ -2535,6 +2574,7 @@ zh-CN:
       application: 应用程序
       permissions: 权限
       no_applications_html: 您还没有授权任何%{oauth2}应用程序。
+      oauth_2: OAuth 2
     application:
       revoke: 撤销访问权限
       confirm_revoke: 撤消此应用程序的访问权限?
@@ -2600,6 +2640,8 @@ zh-CN:
       my_dashboard: 我的综合面板
       blocks on me: 我的封禁
       blocks by me: 被我封禁
+      create_mute: 弱化此用户
+      destroy_mute: 取消弱化此用户
       edit_profile: 编辑个人资料
       send message: 发送消息
       diary: 日记
@@ -2619,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: 启用此用户
@@ -2689,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: 返回索引
@@ -2711,7 +2757,7 @@ zh-CN:
     create:
       flash: 已建立对用户 %{name} 的封禁
     update:
-      only_creator_can_edit: 只有执行封禁的管理员能编辑它
+      only_creator_can_edit: 只有执行此封禁的仲裁员才能编辑
       success: 封禁已更新。
     index:
       title: 用户的封禁
@@ -2725,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: 用户登录时激活。
@@ -2782,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} 提交或评论的注记'
@@ -2903,6 +2976,7 @@ zh-CN:
       map_data_zoom_in_tooltip: 放大地图以查看数据
       queryfeature_tooltip: 查询特征
       queryfeature_disabled_tooltip: 放大以查询特征
+      embed_html_disabled: HTML 嵌入不适用于此地图图层
     changesets:
       show:
         comment: 评论
index 5662aa6f8d5cca7888895c7158ff5f02a812b777..b83cf01f4d91e6f4a8b09a38779ddf51c54cb213 100644 (file)
@@ -1078,16 +1078,17 @@ zh-HK:
     outbox:
       title: 寄件匣
   passwords:
-    lost_password:
+    new:
       title: 忘記密碼
       heading: 忘記密碼?
       email address: 電郵地址:
       new password button: 重設密碼
       help_text: 輸入您註冊時用的電郵地址,我們會將可用於重設密碼的連結發送至該地址。
-    reset_password:
+    edit:
       title: 重設密碼
       heading: 重設%{user}的密碼
       reset: 重設密碼
+    update:
       flash changed: 您的密碼已經變更。
   sessions:
     new:
@@ -1139,14 +1140,8 @@ zh-HK:
           motorway: 高速公路
           rail: 鐵路
           subway: 地鐵
-          tram:
-          - 輕便鐵路
-          - 電車
-          runway:
-          - 機場跑道
-          apron:
-          - 機場停機坪
-          - 客運大樓
+          runway: 機場跑道
+          apron: 機場停機坪
           admin: 行政邊界
           forest: 森林
           golf: 哥爾夫球場
@@ -1154,18 +1149,16 @@ zh-HK:
           resident: 住宅區
           industrial: 工業區
           commercial: 商業區
-          lake:
-          - 湖泊
-          - 水庫
+          lake: 湖泊
+          reservoir: 水庫
           brownfield: 棕地
           cemetery: 墓地
           pitch: 運動場
           centre: 運動中心
           reserve: 自然保護區
           military: 軍事區
-          school:
-          - 學校
-          - 大學
+          school: 學校
+          university: 大學
           station: 火車站
           bicycle_shop: 單車店
           bicycle_parking: 單車停泊處
index b1b8cee59b870130acbfc06132c9f9e07f843234..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: 變更集
@@ -921,7 +927,7 @@ zh-TW:
           motorway_link: 高速公路聯絡道
           passing_place: 避車彎
           path: 小徑
-          pedestrian: 行人路
+          pedestrian: 人行道
           platform: 月台
           primary: 一級道路
           primary_link: 一級道路聯絡道
@@ -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'
@@ -1693,7 +1700,7 @@ zh-TW:
       press confirm button: 按下確認按鈕以確認您的新電子郵件地址。
       button: 確認
       success: 已確認您變更的電子郵件地址!
-      failure: 電子郵件地址已使用此密鑰確認過。
+      failure: 電子郵件地址已使用此權杖確認過。
       unknown_token: 確認碼已經過期或不存在。
     resend_success_flash:
       confirmation_sent: 我們已發送新的確認通知到 %{email},一旦您確認您的帳號後,就能取得製圖。
@@ -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,26 +1764,36 @@ zh-TW:
       wrong_user: 您已經以 "%{user}" 的身份登入,但是您想要閱讀的訊息並非寄給那個使用者。請以正確的使用者身份登入以閱讀它。
     sent_message_summary:
       destroy_button: 刪除
+    heading:
+      my_inbox: 我的收件匣
+      my_outbox: 我的寄件匣
+      muted_messages: 已忽視訊息
     mark:
       as_read: 訊息標記為已讀
       as_unread: 訊息標記為未讀
+    unmute:
+      notice: 訊息已移至收件匣
+      error: 無法將訊息移至收件匣。
     destroy:
       destroyed: 訊息已刪除
   passwords:
-    lost_password:
+    new:
       title: 遺失密碼
       heading: 忘記密碼?
       email address: 電子郵件地址:
       new password button: 重設密碼
       help_text: 輸入您的電子郵件地址來註冊,我們會將連結送至該地址,而您可以用它來重設密碼。
+    create:
       notice email on way: 很遺憾您忘了它 :-( 不過讓您可以重設它的電子郵件已經寄出,您待會便可重設。
       notice email cannot find: 很抱歉,找不到該電子郵件地址。
-    reset_password:
+    edit:
       title: 重設密碼
       heading: 重設 %{user} 的密碼
       reset: 重設密碼
+      flash token bad: 找不到該權杖,可能要檢查一下 URL?
+    update:
       flash changed: 您的密碼已經變更。
-      flash token bad: 找不到該密鑰,可能要檢查一下 URL?
+      flash token bad: 找不到該權杖,可能要檢查一下 URL?
   preferences:
     show:
       title: 我的偏好設定
@@ -1876,6 +1896,7 @@ zh-TW:
       image: 圖片
       alt: 替代文字
       url: 網址
+      codeblock: 代碼區塊
     richtext_field:
       edit: 編輯
       preview: 預覽
@@ -2169,44 +2190,56 @@ zh-TW:
           primary: 一級道路
           secondary: 二級道路
           unclassified: 無編制道路
+          pedestrian: 人行道
           track: 產業道路
           bridleway: 馬道
           cycleway: 自行車道
           cycleway_national: 國家自行車道
           cycleway_regional: 區域自行車道
           cycleway_local: 地區自行車道
+          cycleway_mtb: 登山車路徑
           footway: 步道
           rail: 鐵路
+          train: 列車
           subway: 地下鐵
-          tram:
-          - 輕軌
-          - 電車軌道
-          cable:
-          - 大型纜車
-          - 升降吊椅
-          runway:
-          - 機場跑道
-          - 滑行道
-          apron:
-          - 機場停機坪
-          - 航廈
+          ferry: 渡輪
+          light_rail: 輕軌
+          tram: 路面電車
+          trolleybus: 無軌電車
+          bus: 公車
+          cable_car: 大型纜車
+          chair_lift: 升降吊椅
+          runway: 機場跑道
+          taxiway: 滑行道
+          apron: 機場停機坪
           admin: 行政區邊界
+          capital: 首都
+          city: 城市
+          orchard: 果園
+          vineyard: 葡萄園
           forest: 森林
-          wood: 樹木
+          wood: 森林
+          farmland: 農地
+          grass: 草坪
+          meadow: 牧草地
+          bare_rock: 裸岩
+          sand: 沙地
           golf: 高爾夫球場
           park: 公園
+          common: 共有地
+          built_up: 組成面積
           resident: 住宅區
-          common:
-          - 共有地
-          - 野草地
-          - 花園
           retail: 商店區
           industrial: 工業區
           commercial: 商業區
           heathland: 石楠荒地
-          lake:
-          - 湖泊
-          - 水庫
+          scrubland: 灌木叢林地
+          lake: 湖泊
+          reservoir: 水庫
+          intermittent_water: 間歇性水體
+          glacier: 冰河
+          reef: 礁
+          wetland: 濕地
           farm: 農田
           brownfield: 低污染再利用地
           cemetery: 公墓
@@ -2215,19 +2248,20 @@ zh-TW:
           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: 廁所
@@ -2401,6 +2435,7 @@ zh-TW:
       oauth1_settings: OAuth 1 設定
       oauth2_applications: OAuth 2 應用程式
       oauth2_authorizations: OAuth 2 授權
+      muted_users: 已忽視使用者
   oauth:
     authorize:
       title: 授權使用您的帳號
@@ -2435,6 +2470,7 @@ zh-TW:
       read_gpx: 讀取私人 GPS 軌跡
       write_gpx: 上傳 GPS 軌跡
       write_notes: 修改註記
+      write_redactions: 編寫地圖資料
       read_email: 讀取使用者電子郵件位址
       skip_authorization: 自動核准申請
   oauth_clients:
@@ -2457,7 +2493,7 @@ zh-TW:
     index:
       title: 我的 OAuth 詳細資料
       my_tokens: 我授權的應用程式
-      list_tokens: 下列密鑰已核發給您名下的應用程式:
+      list_tokens: 下列權杖已核發給您名下的應用程式:
       application: 應用程式名稱
       issued_at: 已發於
       revoke: 撤銷!
@@ -2519,6 +2555,7 @@ zh-TW:
       application: 應用程式
       permissions: 權限
       no_applications_html: 您未授權任何 %{oauth2} 應用程式。
+      oauth_2: OAuth 2
     application:
       revoke: 撤銷存取權限
       confirm_revoke: 撤銷此應用程式的撤銷存取權限?
@@ -2584,6 +2621,8 @@ zh-TW:
       my_dashboard: 我的功能面板
       blocks on me: 對我的封鎖
       blocks by me: 我所設的封鎖
+      create_mute: 忽視這名使用者
+      destroy_mute: 取消忽視這名使用者
       edit_profile: 編輯個人資料
       send message: 傳送訊息
       diary: 日記
@@ -2615,6 +2654,7 @@ zh-TW:
           importer: 撤銷匯入權限
       block_history: 已封鎖
       moderator_history: 給予封鎖
+      revoke_all_blocks: 撤銷所有封鎖
       comments: 評論
       create_block: 封鎖這位使用者
       activate_user: 解除這位使用者的封鎖狀態
@@ -2712,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: 生效直至這個使用者登入為止。
@@ -2769,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} 送出或評論的註記
@@ -2804,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 2b67e360e871776b3420d88cdef499b7546f528d..a38f8450ff052517e12238b8fb2e9a581f344d5d 100644 (file)
@@ -282,9 +282,12 @@ OpenStreetMap::Application.routes.draw do
   # messages
   resources :messages, :only => [:create, :show, :destroy] do
     post :mark
+    patch :unmute
+
     match :reply, :via => [:get, :post]
     collection do
       get :inbox
+      get :muted
       get :outbox
     end
   end
@@ -293,6 +296,12 @@ OpenStreetMap::Application.routes.draw do
   get "/message/new/:display_name" => "messages#new", :as => "new_message"
   get "/message/read/:message_id", :to => redirect(:path => "/messages/%{message_id}")
 
+  # muting users
+  scope "/user/:display_name" do
+    resource :user_mute, :only => [:create, :destroy], :path => "mute"
+  end
+  resources :user_mutes, :only => [:index]
+
   # oauth admin pages (i.e: for setting up new clients, etc...)
   scope "/user/:display_name" do
     resources :oauth_clients
@@ -312,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
index 0cfa74cd70738ca851244a4830bf2b7bb0ed63fe..fe5aa5d897341348905eb8b349ad8bd601016107 100644 (file)
@@ -20,8 +20,8 @@ trace_file_storage: "test"
 trace_image_storage: "test"
 trace_icon_storage: "test"
 # Lower some rate limits for testing
-max_changeset_comments_per_hour: 30
-moderator_changeset_comments_per_hour: 60
+max_changeset_comments_per_hour: 10
+moderator_changeset_comments_per_hour: 15
 # Private key for signing id_tokens
 doorkeeper_signing_key: |
   -----BEGIN PRIVATE KEY-----
diff --git a/db/migrate/20231010201451_create_user_mutes.rb b/db/migrate/20231010201451_create_user_mutes.rb
new file mode 100644 (file)
index 0000000..8cb6ff8
--- /dev/null
@@ -0,0 +1,15 @@
+class CreateUserMutes < ActiveRecord::Migration[7.0]
+  def change
+    create_table :user_mutes do |t|
+      t.references :owner, :null => false, :index => false
+      t.references :subject, :null => false, :index => false
+
+      t.timestamps
+
+      t.foreign_key :users, :column => :owner_id
+      t.foreign_key :users, :column => :subject_id
+
+      t.index [:owner_id, :subject_id], :unique => true
+    end
+  end
+end
diff --git a/db/migrate/20231010203028_add_muted_flag_to_messages.rb b/db/migrate/20231010203028_add_muted_flag_to_messages.rb
new file mode 100644 (file)
index 0000000..e517aea
--- /dev/null
@@ -0,0 +1,5 @@
+class AddMutedFlagToMessages < ActiveRecord::Migration[7.0]
+  def change
+    add_column :messages, :muted, :boolean, :default => false, :null => false
+  end
+end
index 7c5233d67781fec8cf9d4a46d76f2d4e01762b0b..c9fdebbc8a9fa5253d9341fdadf2caada58cc1d8 100644 (file)
@@ -951,7 +951,8 @@ CREATE TABLE public.messages (
     to_user_id bigint NOT NULL,
     to_user_visible boolean DEFAULT true NOT NULL,
     from_user_visible boolean DEFAULT true NOT NULL,
-    body_format public.format_enum DEFAULT 'markdown'::public.format_enum NOT NULL
+    body_format public.format_enum DEFAULT 'markdown'::public.format_enum NOT NULL,
+    muted boolean DEFAULT false NOT NULL
 );
 
 
@@ -1454,6 +1455,38 @@ CREATE SEQUENCE public.user_blocks_id_seq
 ALTER SEQUENCE public.user_blocks_id_seq OWNED BY public.user_blocks.id;
 
 
+--
+-- Name: user_mutes; Type: TABLE; Schema: public; Owner: -
+--
+
+CREATE TABLE public.user_mutes (
+    id bigint NOT NULL,
+    owner_id bigint NOT NULL,
+    subject_id bigint NOT NULL,
+    created_at timestamp(6) without time zone NOT NULL,
+    updated_at timestamp(6) without time zone NOT NULL
+);
+
+
+--
+-- Name: user_mutes_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE public.user_mutes_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+--
+-- Name: user_mutes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE public.user_mutes_id_seq OWNED BY public.user_mutes.id;
+
+
 --
 -- Name: user_preferences; Type: TABLE; Schema: public; Owner: -
 --
@@ -1835,6 +1868,13 @@ ALTER TABLE ONLY public.reports ALTER COLUMN id SET DEFAULT nextval('public.repo
 ALTER TABLE ONLY public.user_blocks ALTER COLUMN id SET DEFAULT nextval('public.user_blocks_id_seq'::regclass);
 
 
+--
+-- Name: user_mutes id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.user_mutes ALTER COLUMN id SET DEFAULT nextval('public.user_mutes_id_seq'::regclass);
+
+
 --
 -- Name: user_roles id; Type: DEFAULT; Schema: public; Owner: -
 --
@@ -2216,6 +2256,14 @@ ALTER TABLE ONLY public.user_blocks
     ADD CONSTRAINT user_blocks_pkey PRIMARY KEY (id);
 
 
+--
+-- Name: user_mutes user_mutes_pkey; Type: CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.user_mutes
+    ADD CONSTRAINT user_mutes_pkey PRIMARY KEY (id);
+
+
 --
 -- Name: user_preferences user_preferences_pkey; Type: CONSTRAINT; Schema: public; Owner: -
 --
@@ -2734,6 +2782,13 @@ CREATE INDEX index_reports_on_user_id ON public.reports USING btree (user_id);
 CREATE INDEX index_user_blocks_on_user_id ON public.user_blocks USING btree (user_id);
 
 
+--
+-- Name: index_user_mutes_on_owner_id_and_subject_id; Type: INDEX; Schema: public; Owner: -
+--
+
+CREATE UNIQUE INDEX index_user_mutes_on_owner_id_and_subject_id ON public.user_mutes USING btree (owner_id, subject_id);
+
+
 --
 -- Name: messages_from_user_id_idx; Type: INDEX; Schema: public; Owner: -
 --
@@ -3114,6 +3169,14 @@ ALTER TABLE ONLY public.oauth_access_grants
     ADD CONSTRAINT fk_rails_330c32d8d9 FOREIGN KEY (resource_owner_id) REFERENCES public.users(id) NOT VALID;
 
 
+--
+-- Name: user_mutes fk_rails_591dad3359; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.user_mutes
+    ADD CONSTRAINT fk_rails_591dad3359 FOREIGN KEY (owner_id) REFERENCES public.users(id);
+
+
 --
 -- Name: oauth_access_tokens fk_rails_732cb83ab7; Type: FK CONSTRAINT; Schema: public; Owner: -
 --
@@ -3162,6 +3225,14 @@ ALTER TABLE ONLY public.oauth_applications
     ADD CONSTRAINT fk_rails_cc886e315a FOREIGN KEY (owner_id) REFERENCES public.users(id) NOT VALID;
 
 
+--
+-- Name: user_mutes fk_rails_e9dd4fb6c3; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.user_mutes
+    ADD CONSTRAINT fk_rails_e9dd4fb6c3 FOREIGN KEY (subject_id) REFERENCES public.users(id);
+
+
 --
 -- Name: oauth_access_tokens fk_rails_ee63f25419; Type: FK CONSTRAINT; Schema: public; Owner: -
 --
@@ -3522,6 +3593,8 @@ INSERT INTO "schema_migrations" (version) VALUES
 ('20231117170422'),
 ('20231101222146'),
 ('20231029151516'),
+('20231010203028'),
+('20231010201451'),
 ('20231010194809'),
 ('20231007141103'),
 ('20230830115220'),
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 28d755b24d4a40e74934d50600258764234d5803..81de3ef587402b35eeff71727e49b85da903da81 100755 (executable)
@@ -33,6 +33,6 @@ mail = Mail.new($stdin.read
 message = Message.from_mail(mail, from, to)
 message.save!
 
-UserMailer.message_notification(message).deliver
+UserMailer.message_notification(message).deliver if message.notify_recipient?
 
 exit 0
index f6546a550d6cb4ade8238ba75bda6364752e6e60..c2de02781e63c384fe2c7943df3abb7fad3be8d6 100644 (file)
@@ -10,4 +10,15 @@ 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
 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
diff --git a/test/controllers/user_mutes_controller_test.rb b/test/controllers/user_mutes_controller_test.rb
new file mode 100644 (file)
index 0000000..cc22faa
--- /dev/null
@@ -0,0 +1,60 @@
+require "test_helper"
+
+class UserMutesControllerTest < ActionDispatch::IntegrationTest
+  def test_routes
+    assert_routing(
+      { :path => "/user/username/mute", :method => :post },
+      { :controller => "user_mutes", :action => "create", :display_name => "username" }
+    )
+    assert_routing(
+      { :path => "/user/username/mute", :method => :delete },
+      { :controller => "user_mutes", :action => "destroy", :display_name => "username" }
+    )
+    assert_routing(
+      { :path => "/user_mutes", :method => :get },
+      { :controller => "user_mutes", :action => "index" }
+    )
+  end
+
+  def test_index
+    user = create(:user)
+    user.mutes.create(:subject => create(:user))
+    session_for(user)
+
+    get user_mutes_path
+    assert_match "You have muted 1 User", @response.body
+  end
+
+  def test_create
+    user = create(:user)
+    session_for(user)
+
+    assert_equal 0, user.muted_users.count
+    subject = create(:user, :display_name => "Bob")
+    post user_mute_path(subject)
+    assert_match "You muted Bob", flash[:notice]
+
+    assert_equal 1, user.muted_users.count
+    assert_equal subject, user.muted_users.first
+
+    post user_mute_path(subject)
+    assert_match "Bob could not be muted. Is already muted", flash[:error]
+    assert_equal 1, user.muted_users.count
+  end
+
+  def test_destroy
+    user = create(:user)
+    session_for(user)
+
+    subject = create(:user, :display_name => "Bob")
+    user.mutes.create(:subject => subject)
+    assert_equal 1, user.muted_users.count
+
+    delete user_mute_path(subject)
+    assert_match "You unmuted Bob", flash[:notice]
+    assert_equal 0, user.muted_users.count
+
+    delete user_mute_path(subject)
+    assert_response :not_found
+  end
+end
index 4f8ee5437fc8a86bcb1897ebbe03b4722da3e78a..906c4dea9fada803fc6e15fe9718c7100ac949d9 100644 (file)
@@ -14,5 +14,9 @@ FactoryBot.define do
     trait :read do
       message_read { true }
     end
+
+    trait :muted do
+      muted { true }
+    end
   end
 end
index 77b4245aa5b037fdf5eb491d565e63f2017d93d0..ab7d5df5677cf87f6f277bbf76c22cec1386a0a7 100644 (file)
@@ -4,6 +4,19 @@ FactoryBot.define do
     longitude { 1 * GeoRecord::SCALE }
     # tile { QuadTile.tile_for_point(1,1) }
 
+    trait :closed do
+      transient do
+        closed_by { nil }
+      end
+
+      status { "closed" }
+      closed_at { Time.now.utc }
+
+      after(:create) do |note, context|
+        create(:note_comment, :author => context.closed_by, :body => "Closing comment", :event => "closed", :note => note)
+      end
+    end
+
     factory :note_with_comments do
       transient do
         comments_count { 1 }
diff --git a/test/factories/user_mute.rb b/test/factories/user_mute.rb
new file mode 100644 (file)
index 0000000..4beaf3a
--- /dev/null
@@ -0,0 +1,6 @@
+FactoryBot.define do
+  factory :user_mute do
+    owner :factory => :user
+    subject :factory => :user
+  end
+end
index 0af0d931018ee7c25928f80ad4ac6f025cb0cb1a..83c397b7de21c9cbb0d99643ec8f9703cc9f7357 100644 (file)
@@ -22,6 +22,12 @@ class BrowseTagsHelperTest < ActionView::TestCase
     html = format_value("unknown", "unknown")
     assert_dom_equal "unknown", html
 
+    html = format_value("unknown", "abc;def")
+    assert_dom_equal "abc;def", html
+
+    html = format_value("unknown", "foo;")
+    assert_dom_equal "foo;", html
+
     html = format_value("addr:street", "Rue de l'Amigo")
     assert_dom_equal "Rue de l&#39;Amigo", html
 
@@ -48,7 +54,9 @@ class BrowseTagsHelperTest < ActionView::TestCase
     assert_dom_equal "<a title=\"The File:Test.jpg item on Wikimedia Commons\" href=\"//commons.wikimedia.org/wiki/File:Test.jpg?uselang=en\">File:Test.jpg</a>", html
 
     html = format_value("colour", "#f00")
-    assert_dom_equal %(<span class="colour-preview-box float-end m-1 border border-dark border-opacity-10" data-colour="#f00" title="Colour #f00 preview"></span>#f00), html
+    dom = Rails::Dom::Testing.html_document_fragment.parse html
+    assert_select dom, "svg>rect>@fill", "#f00"
+    assert_match(/#f00$/, html)
 
     html = format_value("email", "foo@example.com")
     assert_dom_equal "<a title=\"Email foo@example.com\" href=\"mailto:foo@example.com\">foo@example.com</a>", html
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 21e751bcaf6eeb7ebd8ec9cea54882253fe24e36..253f298a58f36493bb9e5bbca18c34586f75de30 100644 (file)
@@ -18,149 +18,152 @@ class UserCreationTest < ActionDispatch::IntegrationTest
   end
 
   def test_create_user_form
-    I18n.with_locale "en" do
-      I18n.available_locales.each do |locale|
-        reset!
-        get "/user/new", :headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s }
-        follow_redirect!
-        assert_response :success
-        assert_template "users/new"
-      end
-    end
+    get "/user/new"
+    follow_redirect!
+    assert_response :success
+    assert_template "users/new"
   end
 
   def test_user_create_submit_duplicate_email
-    I18n.with_locale "en" do
-      Locale.available.each do |locale|
-        dup_email = create(:user).email
-        display_name = "#{locale}_new_tester"
-        assert_difference("User.count", 0) do
-          assert_difference("ActionMailer::Base.deliveries.size", 0) do
-            perform_enqueued_jobs do
-              post "/user/new",
-                   :params => { :user => { :email => dup_email,
-                                           :email_confirmation => dup_email,
-                                           :display_name => display_name,
-                                           :pass_crypt => "testtest",
-                                           :pass_crypt_confirmation => "testtest" } },
-                   :headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s }
-            end
-          end
+    dup_email = create(:user).email
+    display_name = "new_tester"
+    assert_difference("User.count", 0) do
+      assert_difference("ActionMailer::Base.deliveries.size", 0) do
+        perform_enqueued_jobs do
+          post "/user/new",
+               :params => { :user => { :email => dup_email,
+                                       :email_confirmation => dup_email,
+                                       :display_name => display_name,
+                                       :pass_crypt => "testtest",
+                                       :pass_crypt_confirmation => "testtest" } }
         end
-        assert_response :success
-        assert_template "users/new"
-        assert_equal locale.to_s, response.headers["Content-Language"]
-        assert_select "form"
-        assert_select "form > div > input.is-invalid#user_email"
-        assert_no_missing_translations
       end
     end
+    assert_response :success
+    assert_template "users/new"
+    assert_select "form"
+    assert_select "form > div > input.is-invalid#user_email"
   end
 
   def test_user_create_submit_duplicate_username
-    I18n.with_locale "en" do
-      I18n.available_locales.each do |locale|
-        dup_display_name = create(:user).display_name
-        email = "#{locale}_new_tester"
-        assert_difference("User.count", 0) do
-          assert_difference("ActionMailer::Base.deliveries.size", 0) do
-            perform_enqueued_jobs do
-              post "/user/new",
-                   :params => { :user => { :email => email,
-                                           :email_confirmation => email,
-                                           :display_name => dup_display_name,
-                                           :pass_crypt => "testtest",
-                                           :pass_crypt_confirmation => "testtest" } },
-                   :headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s }
-            end
-          end
+    dup_display_name = create(:user).display_name
+    email = "new_tester"
+    assert_difference("User.count", 0) do
+      assert_difference("ActionMailer::Base.deliveries.size", 0) do
+        perform_enqueued_jobs do
+          post "/user/new",
+               :params => { :user => { :email => email,
+                                       :email_confirmation => email,
+                                       :display_name => dup_display_name,
+                                       :pass_crypt => "testtest",
+                                       :pass_crypt_confirmation => "testtest" } }
+        end
+      end
+    end
+    assert_response :success
+    assert_template "users/new"
+    assert_select "form > div > input.is-invalid#user_display_name"
+  end
+
+  def test_user_create_submit_mismatched_passwords
+    email = "newtester@osm.org"
+    display_name = "new_tester"
+    assert_difference("User.count", 0) do
+      assert_difference("ActionMailer::Base.deliveries.size", 0) do
+        perform_enqueued_jobs do
+          post "/user/new",
+               :params => { :user => { :email => email,
+                                       :email_confirmation => email,
+                                       :display_name => display_name,
+                                       :pass_crypt => "testtest",
+                                       :pass_crypt_confirmation => "blahblah" } }
         end
-        assert_response :success
-        assert_template "users/new"
-        assert_select "form > div > input.is-invalid#user_display_name"
-        assert_no_missing_translations
       end
     end
+    assert_response :success
+    assert_template "users/new"
+    assert_select "form > div > input.is-invalid#user_pass_crypt_confirmation"
   end
 
   def test_user_create_success
-    I18n.with_locale "en" do
-      I18n.available_locales.each do |locale|
-        new_email = "#{locale}newtester@osm.org"
-        display_name = "#{locale}_new_tester"
-
-        assert_difference("User.count", 0) do
-          assert_difference("ActionMailer::Base.deliveries.size", 0) do
-            perform_enqueued_jobs do
-              post "/user/new",
-                   :params => { :user => { :email => new_email,
-                                           :email_confirmation => new_email,
-                                           :display_name => display_name,
-                                           :pass_crypt => "testtest",
-                                           :pass_crypt_confirmation => "testtest" } }
-            end
-          end
+    new_email = "newtester@osm.org"
+    display_name = "new_tester"
+
+    assert_difference("User.count", 0) do
+      assert_difference("ActionMailer::Base.deliveries.size", 0) do
+        perform_enqueued_jobs do
+          post "/user/new",
+               :params => { :user => { :email => new_email,
+                                       :email_confirmation => new_email,
+                                       :display_name => display_name,
+                                       :pass_crypt => "testtest",
+                                       :pass_crypt_confirmation => "testtest" } }
         end
+      end
+    end
+
+    assert_redirected_to "/user/terms"
 
-        assert_redirected_to "/user/terms"
-
-        assert_difference("User.count") do
-          assert_difference("ActionMailer::Base.deliveries.size", 1) do
-            perform_enqueued_jobs do
-              post "/user/save",
-                   :headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s },
-                   :params => { :read_ct => 1, :read_tou => 1 }
-              follow_redirect!
-            end
-          end
+    assert_difference("User.count") do
+      assert_difference("ActionMailer::Base.deliveries.size", 1) do
+        perform_enqueued_jobs do
+          post "/user/save",
+               :params => { :read_ct => 1, :read_tou => 1 }
+          follow_redirect!
         end
+      end
+    end
 
-        # Check the e-mail
-        register_email = ActionMailer::Base.deliveries.first
+    assert_response :success
+    assert_template "confirmations/confirm"
 
-        assert_equal register_email.to.first, new_email
-        # Check that the confirm account url is correct
-        assert_match(/#{@url}/, register_email.body.to_s)
+    user = User.find_by(:email => "newtester@osm.org")
+    assert_not_nil user
+    assert_not_predicate user, :active?
 
-        # Check the page
-        assert_response :success
-        assert_template "confirmations/confirm"
+    register_email = ActionMailer::Base.deliveries.first
+    assert_equal register_email.to.first, new_email
+    found_confirmation_url = register_email.parts.first.parts.first.to_s =~ %r{\shttp://test.host(/\S+)\s}
+    assert found_confirmation_url
+    confirmation_url = Regexp.last_match(1)
+    ActionMailer::Base.deliveries.clear
 
-        ActionMailer::Base.deliveries.clear
-      end
-    end
+    post confirmation_url
+
+    assert_response :redirect
+    assert_redirected_to welcome_path
+
+    user.reload
+    assert_predicate user, :active?
+
+    assert_equal user, User.authenticate(:username => new_email, :password => "testtest")
   end
 
   def test_user_create_no_tou_failure
-    I18n.with_locale "en" do
-      I18n.available_locales.each do |locale|
-        new_email = "#{locale}newtester@osm.org"
-        display_name = "#{locale}_new_tester"
-
-        assert_difference("User.count", 0) do
-          assert_difference("ActionMailer::Base.deliveries.size", 0) do
-            perform_enqueued_jobs do
-              post "/user/new",
-                   :params => { :user => { :email => new_email,
-                                           :email_confirmation => new_email,
-                                           :display_name => display_name,
-                                           :pass_crypt => "testtest",
-                                           :pass_crypt_confirmation => "testtest" } }
-            end
-          end
-        end
-
-        assert_redirected_to "/user/terms"
+    new_email = "#newtester@osm.org"
+    display_name = "new_tester"
 
+    assert_difference("User.count", 0) do
+      assert_difference("ActionMailer::Base.deliveries.size", 0) do
         perform_enqueued_jobs do
-          post "/user/save",
-               :headers => { "HTTP_ACCEPT_LANGUAGE" => locale.to_s }
-          assert_redirected_to "/user/terms"
+          post "/user/new",
+               :params => { :user => { :email => new_email,
+                                       :email_confirmation => new_email,
+                                       :display_name => display_name,
+                                       :pass_crypt => "testtest",
+                                       :pass_crypt_confirmation => "testtest" } }
         end
-
-        ActionMailer::Base.deliveries.clear
       end
     end
+
+    assert_redirected_to "/user/terms"
+
+    perform_enqueued_jobs do
+      post "/user/save"
+      assert_redirected_to "/user/terms"
+    end
+
+    ActionMailer::Base.deliveries.clear
   end
 
   # Check that the user can successfully recover their password
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 88d1c0e7d028f4b3675139f24766a0a36828ec6a..6bd87729c120db814529bcab02e42497734c1357 100644 (file)
@@ -5,7 +5,7 @@ class AclTest < ActiveSupport::TestCase
     acl = create(:acl)
     assert_predicate acl, :valid?
     acl.k = nil
-    assert_not acl.valid?
+    assert_not_predicate acl, :valid?
   end
 
   def test_no_account_creation_by_subnet
@@ -27,4 +27,40 @@ class AclTest < ActiveSupport::TestCase
     create(:acl, :mx => "mail.example.com", :k => "no_account_creation")
     assert Acl.no_account_creation("192.168.1.1", :mx => "mail.example.com")
   end
+
+  def test_allow_account_creation_by_subnet
+    assert_not Acl.allow_account_creation("192.168.1.1")
+    create(:acl, :address => "192.168.0.0/16", :k => "allow_account_creation")
+    assert Acl.allow_account_creation("192.168.1.1")
+  end
+
+  def test_allow_account_creation_by_domain
+    assert_not Acl.allow_account_creation("192.168.1.1", :domain => "example.com")
+    assert_not Acl.allow_account_creation("192.168.1.1", :domain => "test.example.com")
+    create(:acl, :domain => "example.com", :k => "allow_account_creation")
+    assert Acl.allow_account_creation("192.168.1.1", :domain => "example.com")
+    assert Acl.allow_account_creation("192.168.1.1", :domain => "test.example.com")
+  end
+
+  def test_allow_account_creation_by_mx
+    assert_not Acl.allow_account_creation("192.168.1.1", :mx => "mail.example.com")
+    create(:acl, :mx => "mail.example.com", :k => "allow_account_creation")
+    assert Acl.allow_account_creation("192.168.1.1", :mx => "mail.example.com")
+  end
+
+  def test_no_note_comment_by_domain
+    assert_not Acl.no_note_comment("192.168.1.1", "example.com")
+    assert_not Acl.no_note_comment("192.168.1.1", "test.example.com")
+    create(:acl, :domain => "example.com", :k => "no_note_comment")
+    assert Acl.no_note_comment("192.168.1.1", "example.com")
+    assert Acl.no_note_comment("192.168.1.1", "test.example.com")
+  end
+
+  def test_no_trace_download_by_domain
+    assert_not Acl.no_trace_download("192.168.1.1", "example.com")
+    assert_not Acl.no_trace_download("192.168.1.1", "test.example.com")
+    create(:acl, :domain => "example.com", :k => "no_trace_download")
+    assert Acl.no_trace_download("192.168.1.1", "example.com")
+    assert Acl.no_trace_download("192.168.1.1", "test.example.com")
+  end
 end
index 2139c8d39a9bc9f7145303b8508ec1081321b2ed..991bf555dd8544fb79fe879a1f23e727533b0bc0 100644 (file)
@@ -6,27 +6,27 @@ class ChangesetCommentTest < ActiveSupport::TestCase
     comment = create(:changeset_comment)
 
     comment.author = nil
-    assert_not comment.valid?
+    assert_not_predicate comment, :valid?
 
     comment.author_id = 999111
-    assert_not comment.valid?
+    assert_not_predicate comment, :valid?
   end
 
   def test_does_not_accept_invalid_changeset
     comment = create(:changeset_comment)
 
     comment.changeset = nil
-    assert_not comment.valid?
+    assert_not_predicate comment, :valid?
 
     comment.changeset_id = 999111
-    assert_not comment.valid?
+    assert_not_predicate comment, :valid?
   end
 
   def test_does_not_accept_empty_visible
     comment = create(:changeset_comment)
 
     comment.visible = nil
-    assert_not comment.valid?
+    assert_not_predicate comment, :valid?
   end
 
   def test_comments_of_changeset_count
@@ -50,7 +50,7 @@ class ChangesetCommentTest < ActiveSupport::TestCase
     bad.each do |body|
       changeset_comment = create(:changeset_comment)
       changeset_comment.body = body
-      assert_not changeset_comment.valid?, "#{body} is valid when it shouldn't be"
+      assert_not_predicate changeset_comment, :valid?, "#{body} is valid when it shouldn't be"
     end
   end
 end
index 5832b8a706523674aeb96cc6ca21d8e770a9dcc8..81b280790d3b428cc9bb15afa3a64eacb5e77a09 100644 (file)
@@ -20,21 +20,21 @@ class ChangesetTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:changeset_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?, "Key should be too long"
+    assert_not_predicate tag, :valid?, "Key should be too long"
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:changeset_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_tag_invalid
     tag = create(:changeset_tag)
     tag.changeset = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:changeset], :any?
   end
 
@@ -42,7 +42,7 @@ class ChangesetTagTest < ActiveSupport::TestCase
     existing = create(:changeset_tag)
     tag = build(:changeset_tag, :changeset => existing.changeset, :k => existing.k, :v => existing.v)
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index c3f1df23c23c996da989ddaaaf7dba90c9fb31ac..9dc5ab5fc4c9b7258e29ddabe1275c76aa466e55 100644 (file)
@@ -14,7 +14,7 @@ class ClientApplicationTest < ActiveSupport::TestCase
     bad.each do |url|
       app = build(:client_application)
       app.url = url
-      assert_not app.valid?, "#{url} is valid when it shouldn't be"
+      assert_not_predicate app, :valid?, "#{url} is valid when it shouldn't be"
     end
   end
 
@@ -31,7 +31,7 @@ class ClientApplicationTest < ActiveSupport::TestCase
     bad.each do |url|
       app = build(:client_application)
       app.support_url = url
-      assert_not app.valid?, "#{url} is valid when it shouldn't be"
+      assert_not_predicate app, :valid?, "#{url} is valid when it shouldn't be"
     end
   end
 
@@ -48,7 +48,7 @@ class ClientApplicationTest < ActiveSupport::TestCase
     bad.each do |url|
       app = build(:client_application)
       app.callback_url = url
-      assert_not app.valid?, "#{url} is valid when it shouldn't be"
+      assert_not_predicate app, :valid?, "#{url} is valid when it shouldn't be"
     end
   end
 end
index f166282c1dcbf1bad0aec59d1eafd40f34b2f31b..b2a868a93f7d62e94576f7abee33155165a1d2af 100644 (file)
@@ -6,7 +6,7 @@ class IssueTest < ActiveSupport::TestCase
 
     assert_predicate issue, :valid?
     issue.assigned_role = "bogus"
-    assert_not issue.valid?
+    assert_not_predicate issue, :valid?
   end
 
   def test_reported_user
index 5ba558907a0f68f22ce32123e33c13c70997bfef..f777d8e1965a53d7348e52bfda21cbb9f349b931 100644 (file)
@@ -6,6 +6,11 @@ class LanguageTest < ActiveSupport::TestCase
     assert_equal "Slovenian (slovenščina)", Language.find("sl").name
   end
 
+  def test_same_native_name
+    create(:language, :code => "af", :english_name => "Afrikaans", :native_name => "Afrikaans")
+    assert_equal "Afrikaans", Language.find("af").name
+  end
+
   def test_load
     assert_equal 0, Language.count
     assert_raise ActiveRecord::RecordNotFound do
index 97afad56e17f80c72ec2f71add8c9f03146fb4c3..1bc15cba3f30cc82aa9c9f014ce3de95bea7c593 100644 (file)
@@ -5,7 +5,7 @@ class MessageTest < ActiveSupport::TestCase
 
   def test_check_empty_message_fails
     message = build(:message, :title => nil, :body => nil, :sent_on => nil)
-    assert_not message.valid?
+    assert_not_predicate message, :valid?
     assert_predicate message.errors[:title], :any?
     assert_predicate message.errors[:body], :any?
     assert_predicate message.errors[:sent_on], :any?
@@ -23,7 +23,7 @@ class MessageTest < ActiveSupport::TestCase
     message = create(:message, :unread)
     message.sender = nil
     message.recipient = nil
-    assert_not message.valid?
+    assert_not_predicate message, :valid?
 
     assert_raise(ActiveRecord::RecordNotFound) { User.find(0) }
     message.from_user_id = 0
@@ -175,6 +175,26 @@ class MessageTest < ActiveSupport::TestCase
     assert_equal "text", message.body_format
   end
 
+  def test_notify_recipient
+    message = create(:message)
+    assert_not_predicate message, :muted?
+    assert_predicate message, :notify_recipient?
+  end
+
+  def test_notify_recipient_for_muted_messages
+    message = create(:message, :muted)
+    assert_predicate message, :muted?
+    assert_not_predicate message, :notify_recipient?
+  end
+
+  def test_unmuting_a_muted_message
+    message = create(:message, :muted)
+    assert_predicate message, :muted?
+
+    message.unmute
+    assert_not_predicate message, :muted?
+  end
+
   private
 
   def make_message(char, count)
index d927b5fea202edc7d9f945c40fa13bc2bdacbb0f..5788bcca5223cd36989911ff5bdf4b73b85a2ec0 100644 (file)
@@ -20,21 +20,21 @@ class NodeTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:node_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?, "Key should be too long"
+    assert_not_predicate tag, :valid?, "Key should be too long"
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:node_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_node_tag_invalid
     tag = create(:node_tag)
     tag.node = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:node], :any?
   end
 
@@ -42,7 +42,7 @@ class NodeTagTest < ActiveSupport::TestCase
     existing = create(:node_tag)
     tag = build(:node_tag, :node => existing.node, :k => existing.k, :v => existing.v)
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index f4dd645ee21a9392d8e13f6f557e6142aac07e9e..615586e56a7ede40221ace2997df96f409409254 100644 (file)
@@ -14,7 +14,7 @@ class NoteCommentTest < ActiveSupport::TestCase
     bad.each do |event|
       note_comment = create(:note_comment)
       note_comment.event = event
-      assert_not note_comment.valid?, "#{event} is valid when it shouldn't be"
+      assert_not_predicate note_comment, :valid?, "#{event} is valid when it shouldn't be"
     end
   end
 
@@ -33,7 +33,7 @@ class NoteCommentTest < ActiveSupport::TestCase
     bad.each do |body|
       note_comment = create(:note_comment)
       note_comment.body = body
-      assert_not note_comment.valid?, "#{body} is valid when it shouldn't be"
+      assert_not_predicate note_comment, :valid?, "#{body} is valid when it shouldn't be"
     end
   end
 end
index 8d5a557cd4dfbbe9b8ffb043fe6047aec7f3049c..34b16c19d5e113a197ee4ff8ba7b4b29ff600256 100644 (file)
@@ -14,7 +14,7 @@ class NoteTest < ActiveSupport::TestCase
     bad.each do |status|
       note = create(:note)
       note.status = status
-      assert_not note.valid?, "#{status} is valid when it shouldn't be"
+      assert_not_predicate note, :valid?, "#{status} is valid when it shouldn't be"
     end
   end
 
@@ -28,7 +28,7 @@ class NoteTest < ActiveSupport::TestCase
   end
 
   def test_reopen
-    note = create(:note, :status => "closed", :closed_at => Time.now.utc)
+    note = create(:note, :closed)
     assert_equal "closed", note.status
     assert_not_nil note.closed_at
     note.reopen
@@ -38,13 +38,13 @@ class NoteTest < ActiveSupport::TestCase
 
   def test_visible?
     assert_predicate create(:note, :status => "open"), :visible?
-    assert_predicate create(:note, :status => "closed"), :visible?
-    assert_not create(:note, :status => "hidden").visible?
+    assert_predicate create(:note, :closed), :visible?
+    assert_not_predicate create(:note, :status => "hidden"), :visible?
   end
 
   def test_closed?
-    assert_predicate create(:note, :status => "closed", :closed_at => Time.now.utc), :closed?
-    assert_not create(:note, :status => "open", :closed_at => nil).closed?
+    assert_predicate create(:note, :closed), :closed?
+    assert_not_predicate create(:note, :status => "open", :closed_at => nil), :closed?
   end
 
   def test_author
index 28f2c34a17343cee7aace42f4a1c6c89cea45f1e..73dd6258f255341bb0c298c689797ec9f91afb0e 100644 (file)
@@ -5,7 +5,7 @@ class OauthTokenTest < ActiveSupport::TestCase
   # check that after calling invalidate! on a token, it is invalid.
   def test_token_invalidation
     tok = OauthToken.new
-    assert_not tok.invalidated?, "Token should be created valid."
+    assert_not_predicate tok, :invalidated?, "Token should be created valid."
     tok.invalidate!
     assert_predicate tok, :invalidated?, "Token should now be invalid."
   end
@@ -14,10 +14,10 @@ class OauthTokenTest < ActiveSupport::TestCase
   # check that an authorized token is authorised and can be invalidated
   def test_token_authorisation
     tok = RequestToken.create(:client_application => create(:client_application))
-    assert_not tok.authorized?, "Token should be created unauthorised."
+    assert_not_predicate tok, :authorized?, "Token should be created unauthorised."
     tok.authorize!(create(:user))
     assert_predicate tok, :authorized?, "Token should now be authorised."
     tok.invalidate!
-    assert_not tok.authorized?, "Token should now be invalid."
+    assert_not_predicate tok, :authorized?, "Token should now be invalid."
   end
 end
index 40c91c82d54a9624f882cf1739623c4ca7a9d3ff..be7502c3424f83efc4197fe3c3b85399416afd55 100644 (file)
@@ -20,21 +20,21 @@ class OldNodeTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:old_node_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:old_node_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_tag_invalid
     tag = create(:old_node_tag)
     tag.old_node = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:old_node], :any?
   end
 
@@ -42,7 +42,7 @@ class OldNodeTagTest < ActiveSupport::TestCase
     existing = create(:old_node_tag)
     tag = build(:old_node_tag, :old_node => existing.old_node, :version => existing.version, :k => existing.k, :v => existing.v)
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index d920f91da197370f8225ece0c43b8778d222ff84..d31d0e64ed05c46dd700ce80b681229beb87b80b 100644 (file)
@@ -20,21 +20,21 @@ class OldRelationTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:old_relation_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?, "Key should be too long"
+    assert_not_predicate tag, :valid?, "Key should be too long"
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:old_relation_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_tag_invalid
     tag = create(:old_relation_tag)
     tag.old_relation = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:old_relation], :any?
   end
 
@@ -42,7 +42,7 @@ class OldRelationTagTest < ActiveSupport::TestCase
     existing = create(:old_relation_tag)
     tag = build(:old_relation_tag, :old_relation => existing.old_relation, :version => existing.version, :k => existing.k, :v => existing.v)
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index 793962438dc57d49336b208b69af994ec3b8912d..62211ed24f176c99e9c9c55be34ed4071f024ea1 100644 (file)
@@ -20,21 +20,21 @@ class OldWayTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:old_way_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?, "Key should be too long"
+    assert_not_predicate tag, :valid?, "Key should be too long"
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:old_way_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_tag_invalid
     tag = create(:old_way_tag)
     tag.old_way = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:old_way], :any?
   end
 
@@ -46,7 +46,7 @@ class OldWayTagTest < ActiveSupport::TestCase
     tag.k = existing.k
     tag.v = existing.v
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index 06159cb5d79540280f3a62d53fed1b1b0d74da9c..00133f1f48a70c14bde549f89699359f81805f47 100644 (file)
@@ -4,7 +4,7 @@ class RedactionTest < ActiveSupport::TestCase
   def test_cannot_redact_current
     n = create(:node)
     r = create(:redaction)
-    assert_not(n.redacted?, "Expected node to not be redacted already.")
+    assert_not_predicate(n, :redacted?, "Expected node to not be redacted already.")
     assert_raise(OSM::APICannotRedactError) do
       n.redact!(r)
     end
@@ -14,7 +14,7 @@ class RedactionTest < ActiveSupport::TestCase
     node = create(:node, :with_history)
     node_v1 = node.old_nodes.find_by(:version => 1)
     r = create(:redaction)
-    assert_not(node_v1.redacted?, "Expected node to not be redacted already.")
+    assert_not_predicate(node_v1, :redacted?, "Expected node to not be redacted already.")
     assert_raise(OSM::APICannotRedactError) do
       node_v1.redact!(r)
     end
@@ -26,11 +26,11 @@ class RedactionTest < ActiveSupport::TestCase
     node_v2 = node.old_nodes.find_by(:version => 2)
     r = create(:redaction)
 
-    assert_not(node_v1.redacted?, "Expected node to not be redacted already.")
+    assert_not_predicate(node_v1, :redacted?, "Expected node to not be redacted already.")
     assert_nothing_raised do
       node_v1.redact!(r)
     end
     assert_predicate(node_v1, :redacted?, "Expected node version 1 to be redacted after redact! call.")
-    assert_not(node_v2.redacted?, "Expected node version 2 to not be redacted after redact! call.")
+    assert_not_predicate(node_v2, :redacted?, "Expected node version 2 to not be redacted after redact! call.")
   end
 end
index a82cea457f104c211cb974bc0f83bec3ae3afdf4..7535c342ddbb4e2d586e12c01d29d5c6f1564e94 100644 (file)
@@ -9,7 +9,7 @@ class RelationMemberTest < ActiveSupport::TestCase
     node = create(:node)
     invalid.each do |r|
       member = build(:relation_member, :relation => relation, :member => node, :member_role => r)
-      assert_not member.valid?, "'#{r}' should not be valid"
+      assert_not_predicate member, :valid?, "'#{r}' should not be valid"
       assert_predicate member.errors[:member_role], :any?
     end
   end
@@ -18,7 +18,7 @@ class RelationMemberTest < ActiveSupport::TestCase
     relation = create(:relation)
     node = create(:node)
     member = build(:relation_member, :relation => relation, :member => node, :member_role => "r" * 256)
-    assert_not member.valid?, "Role should be too long"
+    assert_not_predicate member, :valid?, "Role should be too long"
     assert_predicate member.errors[:member_role], :any?
   end
 end
index 69a491890101b0f8e5122198066f11300e2230e6..2e5e1503cd1ec1fef078b7e034e8e289da0179b2 100644 (file)
@@ -20,21 +20,21 @@ class RelationTagTest < ActiveSupport::TestCase
   def test_length_key_invalid
     tag = create(:relation_tag)
     tag.k = "k" * 256
-    assert_not tag.valid?, "Key should be too long"
+    assert_not_predicate tag, :valid?, "Key should be too long"
     assert_predicate tag.errors[:k], :any?
   end
 
   def test_length_value_invalid
     tag = create(:relation_tag)
     tag.v = "v" * 256
-    assert_not tag.valid?, "Value should be too long"
+    assert_not_predicate tag, :valid?, "Value should be too long"
     assert_predicate tag.errors[:v], :any?
   end
 
   def test_orphaned_tag_invalid
     tag = create(:relation_tag)
     tag.relation = nil
-    assert_not tag.valid?, "Orphaned tag should be invalid"
+    assert_not_predicate tag, :valid?, "Orphaned tag should be invalid"
     assert_predicate tag.errors[:relation], :any?
   end
 
@@ -42,7 +42,7 @@ class RelationTagTest < ActiveSupport::TestCase
     existing = create(:relation_tag)
     tag = build(:relation_tag, :relation => existing.relation, :k => existing.k, :v => existing.v)
     assert_predicate tag, :new_record?
-    assert_not tag.valid?
+    assert_not_predicate tag, :valid?
     assert_raise(ActiveRecord::RecordInvalid) { tag.save! }
     assert_predicate tag, :new_record?
   end
index 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
diff --git a/test/models/user_mute_test.rb b/test/models/user_mute_test.rb
new file mode 100644 (file)
index 0000000..ccc6811
--- /dev/null
@@ -0,0 +1,24 @@
+require "test_helper"
+
+class UserMuteTest < ActiveSupport::TestCase
+  def test_messages_by_muted_users_are_muted
+    user = create(:user)
+    muted_user = create(:user)
+    create(:user_mute, :owner => user, :subject => muted_user)
+
+    message = create(:message, :sender => muted_user, :recipient => user)
+    assert_predicate message, :muted?
+  end
+
+  def test_messages_by_admins_or_moderators_are_never_muted
+    user = create(:user)
+
+    [create(:administrator_user), create(:moderator_user)].each do |admin_or_moderator|
+      create(:user_mute, :owner => user, :subject => admin_or_moderator)
+
+      message = create(:message, :sender => admin_or_moderator, :recipient => user)
+
+      assert_not_predicate message, :muted?
+    end
+  end
+end
index 3df38aa6fe75796ca1bc8e38c88f83a3a4542b46..ee91777c787813292f87c2e95fd8b3003973b040 100644 (file)
@@ -36,7 +36,7 @@ class UserPreferenceTest < ActiveSupport::TestCase
       up.user = create(:user)
       up.k = key * i
       up.v = val * i
-      assert_not up.valid?
+      assert_not_predicate up, :valid?
       assert_raise(ActiveRecord::RecordInvalid) { up.save! }
     end
   end
index 1443e70b057356c770ef021ee6c742a926869f37..d21512f2a1861d317c13664f5ebcbc7ef17d3f39 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?
@@ -60,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
@@ -90,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
 
@@ -220,25 +220,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
 
@@ -256,10 +256,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..70cfc417c16b5de15235faf7f2415300d790fc1e 100644 (file)
@@ -1,17 +1,42 @@
 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_no_button "Resolve"
+    assert_no_button "Comment"
+    assert_link "Log in to comment on this note", :href => login_path(:referer => note_path(note))
+  end
+
+  test "closed note has no login notice" do
+    note = create(:note_with_comments, :closed)
+    visit note_path(note)
+
+    assert_no_button "Reactivate"
+    assert_no_link "Log in to comment on this note"
+  end
+
+  def test_add_comment
+    note = create(:note_with_comments)
+    user = create(:user)
+    sign_in_as(user)
+    visit note_path(note)
+
+    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 text"
+    fill_in "text", :with => "Some newly added note comment"
 
     assert_button "Comment & Resolve"
-    assert_button "Comment"
+    assert_button "Comment", :disabled => false
+
+    click_on "Comment"
+
+    assert_content "Comment from #{user.display_name}"
+    assert_content "Some newly added note comment"
   end
 end
diff --git a/test/system/oauth2_test.rb b/test/system/oauth2_test.rb
new file mode 100644 (file)
index 0000000..0b9213a
--- /dev/null
@@ -0,0 +1,16 @@
+require "application_system_test_case"
+
+class Oauth2Test < ApplicationSystemTestCase
+  def test_authorized_applications
+    sign_in_as(create(:user))
+    visit oauth_authorized_applications_path
+
+    assert_text "OpenStreetMap Web Site"
+
+    accept_alert do
+      click_on "Revoke Access"
+    end
+
+    assert_text "You have not yet authorized any OAuth 2 applications."
+  end
+end
index b071b1f73842663839dd9ad81c670d6d333fa1dd..59a7209f5b4d3728fbb8f3049e4db4a03f0326f4 100644 (file)
@@ -5,7 +5,7 @@ class PreferencesTest < ApplicationSystemTestCase
     sign_in_as(create(:user))
 
     visit edit_preferences_path
-    click_button "Update Preferences"
+    click_on "Update Preferences"
 
     assert_content "Preferences updated"
   end
@@ -15,7 +15,7 @@ class PreferencesTest < ApplicationSystemTestCase
 
     visit edit_preferences_path
     fill_in "Preferred Languages", :with => "fr"
-    click_button "Update Preferences"
+    click_on "Update Preferences"
 
     assert_content "Préférences mises à jour"
   end
index 15ef1ad3c5177f8ff0e01cf8d689395dc08bb8a4..3504ab061fdeb5c4270036efa49807b1a9c9427f 100644 (file)
@@ -19,14 +19,14 @@ class ReportDiaryCommentTest < ApplicationSystemTestCase
     visit diary_entry_path(@diary_entry.user.display_name, @diary_entry)
     assert_content @diary_entry.title
 
-    click_link I18n.t("diary_entries.diary_comment.report")
+    click_on I18n.t("diary_entries.diary_comment.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.diary_comment.spam_label")
     fill_in "report_details", :with => "This comment is spam"
     assert_difference "Issue.count", 1 do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
index d4e49b714ffd32b9e2d4077926863eae7fc41efc..dde06cffc31ddeee05e20cbcf75ccb1218bc6996 100644 (file)
@@ -18,14 +18,14 @@ class ReportDiaryEntryTest < ApplicationSystemTestCase
     visit diary_entry_path(@diary_entry.user.display_name, @diary_entry)
     assert_content @diary_entry.title
 
-    click_link I18n.t("diary_entries.diary_entry.report")
+    click_on I18n.t("diary_entries.diary_entry.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.diary_entry.spam_label")
     fill_in "report_details", :with => "This is advertising"
     assert_difference "Issue.count", 1 do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
@@ -42,18 +42,18 @@ class ReportDiaryEntryTest < ApplicationSystemTestCase
     visit diary_entry_path(@diary_entry.user.display_name, @diary_entry)
     assert_content @diary_entry.title
 
-    click_link I18n.t("diary_entries.diary_entry.report")
+    click_on I18n.t("diary_entries.diary_entry.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.diary_entry.spam_label")
     fill_in "report_details", :with => "This is advertising"
     assert_no_difference "Issue.count" do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     issue.reload
-    assert_not issue.resolved?
+    assert_not_predicate issue, :resolved?
     assert_predicate issue, :open?
   end
 
index b7e1bfc9eaebd4c7252e383871d31b9cd28a6e40..79894eb897d4a514e3ebb94b5a89a680a1bcedf5 100644 (file)
@@ -14,14 +14,14 @@ class ReportNoteTest < ApplicationSystemTestCase
     sign_in_as(create(:user))
     visit note_path(note)
 
-    click_link I18n.t("notes.show.report")
+    click_on I18n.t("notes.show.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.note.spam_label")
     fill_in "report_details", :with => "This is spam"
     assert_difference "Issue.count", 1 do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
@@ -35,14 +35,14 @@ class ReportNoteTest < ApplicationSystemTestCase
     sign_in_as(create(:user))
     visit note_path(note)
 
-    click_link I18n.t("notes.show.report")
+    click_on I18n.t("notes.show.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.note.spam_label")
     fill_in "report_details", :with => "This is spam"
     assert_difference "Issue.count", 1 do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
index 9a0abe9ea2e5920a78cc8e87f706f661f328c207..7a9e800c8c0da99ebf7351d6a863d9c8cec8ba7a 100644 (file)
@@ -14,14 +14,14 @@ class ReportUserTest < ApplicationSystemTestCase
     sign_in_as(create(:user))
     visit user_path(user)
 
-    click_link I18n.t("users.show.report")
+    click_on I18n.t("users.show.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.user.vandal_label")
     fill_in "report_details", :with => "This user is a vandal"
     assert_difference "Issue.count", 1 do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
@@ -35,14 +35,14 @@ class ReportUserTest < ApplicationSystemTestCase
     sign_in_as(create(:user))
     visit user_path(user)
 
-    click_link I18n.t("users.show.report")
+    click_on I18n.t("users.show.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.user.vandal_label")
     fill_in "report_details", :with => "This user is a vandal"
     assert_difference "Issue.count", 1 do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
@@ -52,14 +52,14 @@ class ReportUserTest < ApplicationSystemTestCase
 
     visit user_path(user)
 
-    click_link I18n.t("users.show.report")
+    click_on I18n.t("users.show.report")
     assert_content "Report"
     assert_content I18n.t("reports.new.disclaimer.intro")
 
     choose I18n.t("reports.new.categories.user.spam_label")
     fill_in "report_details", :with => "This user is a spammer"
     assert_no_difference "Issue.count" do
-      click_button "Create Report"
+      click_on "Create Report"
     end
 
     assert_content "Your report has been registered successfully"
diff --git a/test/system/user_blocks_test.rb b/test/system/user_blocks_test.rb
new file mode 100644 (file)
index 0000000..f710f74
--- /dev/null
@@ -0,0 +1,71 @@
+require "application_system_test_case"
+
+class ReportNoteTest < ApplicationSystemTestCase
+  test "revoke all link is absent for anonymous users when viewed user has active blocks" do
+    blocked_user = create(:user)
+    create(:user_block, :user => blocked_user)
+
+    visit user_path(blocked_user)
+    assert_no_link "Revoke all blocks"
+  end
+
+  test "revoke all link is absent for regular users when viewed user has active blocks" do
+    blocked_user = create(:user)
+    create(:user_block, :user => blocked_user)
+    sign_in_as(create(:user))
+
+    visit user_path(blocked_user)
+    assert_no_link "Revoke all blocks"
+  end
+
+  test "revoke all link is absent for moderators when viewed user has no active blocks" do
+    blocked_user = create(:user)
+    create(:user_block, :expired, :user => blocked_user)
+    sign_in_as(create(:moderator_user))
+
+    visit user_path(blocked_user)
+    assert_no_link "Revoke all blocks"
+  end
+
+  test "revoke all page has no controls when viewed user has no active blocks" do
+    blocked_user = create(:user)
+    sign_in_as(create(:moderator_user))
+
+    visit revoke_all_user_blocks_path(blocked_user)
+    assert_title "Revoking all blocks on #{blocked_user.display_name}"
+    assert_text "Revoking all blocks on #{blocked_user.display_name}"
+    assert_no_button "Revoke!"
+  end
+
+  test "revoke all link is present and working for moderators when viewed user has one active block" do
+    blocked_user = create(:user)
+    create(:user_block, :user => blocked_user)
+    sign_in_as(create(:moderator_user))
+
+    visit user_path(blocked_user)
+    assert_link "Revoke all blocks"
+
+    click_on "Revoke all blocks"
+    assert_title "Revoking all blocks on #{blocked_user.display_name}"
+    assert_text "Revoking all blocks on #{blocked_user.display_name}"
+    assert_unchecked_field "Are you sure you wish to revoke 1 active block?"
+    assert_button "Revoke!"
+  end
+
+  test "revoke all link is present and working for moderators when viewed user has multiple active blocks" do
+    blocked_user = create(:user)
+    create(:user_block, :user => blocked_user)
+    create(:user_block, :user => blocked_user)
+    create(:user_block, :expired, :user => blocked_user)
+    sign_in_as(create(:moderator_user))
+
+    visit user_path(blocked_user)
+    assert_link "Revoke all blocks"
+
+    click_on "Revoke all blocks"
+    assert_title "Revoking all blocks on #{blocked_user.display_name}"
+    assert_text "Revoking all blocks on #{blocked_user.display_name}"
+    assert_unchecked_field "Are you sure you wish to revoke 2 active blocks?"
+    assert_button "Revoke!"
+  end
+end
index fc27b7c1884ed606823f660d9c2ec73f5059bfa5..2f5331711eaa40daa8a331aac883eeed7572af87 100644 (file)
@@ -6,8 +6,8 @@ class UserLogoutTest < ApplicationSystemTestCase
     sign_in_as(user)
     assert_no_content "Log In"
 
-    click_button user.display_name
-    click_link "Log Out"
+    click_on user.display_name
+    click_on "Log Out"
     assert_content "Log In"
   end
 
@@ -17,8 +17,8 @@ class UserLogoutTest < ApplicationSystemTestCase
     visit traces_path
     assert_no_content "Log In"
 
-    click_button user.display_name
-    click_link "Log Out"
+    click_on user.display_name
+    click_on "Log Out"
     assert_content "Log In"
     assert_content "Public GPS Traces"
   end
@@ -30,7 +30,7 @@ class UserLogoutTest < ApplicationSystemTestCase
     visit logout_path
     assert_content "Logout from OpenStreetMap"
 
-    click_button "Logout"
+    click_on "Logout"
     assert_content "Log In"
   end
 
@@ -41,7 +41,7 @@ class UserLogoutTest < ApplicationSystemTestCase
     visit logout_path(:referer => "/traces")
     assert_content "Logout from OpenStreetMap"
 
-    click_button "Logout"
+    click_on "Logout"
     assert_content "Log In"
     assert_content "Public GPS Traces"
   end
diff --git a/test/system/user_muting_test.rb b/test/system/user_muting_test.rb
new file mode 100644 (file)
index 0000000..e70005e
--- /dev/null
@@ -0,0 +1,44 @@
+require "application_system_test_case"
+
+class UserMutingTest < ApplicationSystemTestCase
+  # NB: loads helpers to verify mailer-related behaviour e.g. via assert_no_emails
+  include ActionMailer::TestHelper
+
+  test "users can mute and unmute other users" do
+    user = create(:user)
+    other_user = create(:user)
+    sign_in_as(user)
+
+    visit user_path(other_user)
+    click_on "Mute this User"
+    assert_content "You muted #{other_user.display_name}"
+
+    visit edit_account_path
+    assert_content "Muted Users"
+    click_on "Muted Users"
+    assert_content "You have muted 1 User"
+    click_on "Unmute"
+
+    assert_content "You unmuted #{other_user.display_name}"
+    refute_content "Muted Users"
+    assert_current_path edit_account_path
+  end
+
+  test "messages sent by muted users are set `muted` and do not cause notification emails" do
+    user = create(:user)
+    muted_user = create(:user)
+    create(:user_mute, :owner => user, :subject => muted_user)
+    sign_in_as(muted_user)
+
+    visit new_message_path(user)
+    fill_in "Subject", :with => "Hey Hey"
+    fill_in "Body", :with => "some message"
+
+    assert_no_emails do
+      click_on "Send"
+    end
+
+    message = Message.find_by(:sender => muted_user, :recipient => user)
+    assert_predicate message, :muted?
+  end
+end
index 88899d7105b2fc2b74a896c7291a017c7f080701..e97046800738edf107ce30c586873f96d6e958b1 100644 (file)
@@ -4,7 +4,7 @@ class UserSignupTest < ApplicationSystemTestCase
   test "Sign up from login page" do
     visit login_path
 
-    click_link "Register now"
+    click_on "Register now"
 
     assert_content "Confirm Password"
   end
@@ -13,16 +13,19 @@ class UserSignupTest < ApplicationSystemTestCase
     user = build(:user)
 
     visit root_path
-    click_link "Sign Up"
-    fill_in "Email", :with => user.email
-    fill_in "Email Confirmation", :with => user.email
-    fill_in "Display Name", :with => user.display_name
-    fill_in "Password", :with => "testtest"
-    fill_in "Confirm Password", :with => "testtest"
-    click_button "Sign Up"
+    click_on "Sign Up"
+
+    within ".new_user" do
+      fill_in "Email", :with => user.email
+      fill_in "Email Confirmation", :with => user.email
+      fill_in "Display Name", :with => user.display_name
+      fill_in "Password", :with => "testtest"
+      fill_in "Confirm Password", :with => "testtest"
+      click_on "Sign Up"
+    end
 
     assert_content "Contributor terms"
-    click_button "Cancel"
+    click_on "Cancel"
 
     assert_current_path "https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined"
   end
index e4cca1eab5bba38a97fefb866aeb4a0b626a3ca3..30b923732414805ffa98ec08f7c3e409cd24596d 100644 (file)
@@ -10,7 +10,7 @@ class UserStatusChangeTest < ApplicationSystemTestCase
     user = create(:user, :suspended)
     visit user_path(user)
     accept_confirm do
-      click_link "Unsuspend"
+      click_on "Unsuspend"
     end
 
     assert_no_content "Unsuspend"
@@ -22,7 +22,7 @@ class UserStatusChangeTest < ApplicationSystemTestCase
     user = create(:user, :suspended)
     visit user_path(user)
     accept_confirm do
-      click_link "Confirm"
+      click_on "Confirm"
     end
 
     assert_no_content "Unsuspend"
index 539daaa30933c5e9c8fb3fd3aac278d6cca3cba8..349d0a5bf742c4c97faf980f6055118a4ea10dad 100644 (file)
@@ -13,7 +13,7 @@ class ViewCommunitiesTest < ApplicationSystemTestCase
 
     visit edit_preferences_path
     fill_in "Preferred Languages", :with => "fr"
-    click_button "Update Preferences"
+    click_on "Update Preferences"
 
     visit "/communities"
     assert_link "OpenStreetMap États-Unis", :href => "https://www.openstreetmap.us/"
index 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 2eee9b2129d74d806cc50bcc64b0e821d3e4f56a..f113d57529fe54db00c55d3a0e356bb5a2e26094 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
     minimatch "^3.1.2"
     strip-json-comments "^3.1.1"
 
-"@eslint/js@8.55.0":
-  version "8.55.0"
-  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.55.0.tgz#b721d52060f369aa259cf97392403cb9ce892ec6"
-  integrity sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==
+"@eslint/js@8.56.0":
+  version "8.56.0"
+  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b"
+  integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==
 
 "@humanwhocodes/config-array@^0.11.13":
   version "0.11.13"
@@ -229,14 +229,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4
   integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
 
 eslint@^8.0.0:
-  version "8.55.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.55.0.tgz#078cb7b847d66f2c254ea1794fa395bf8e7e03f8"
-  integrity sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==
+  version "8.56.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15"
+  integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==
   dependencies:
     "@eslint-community/eslint-utils" "^4.2.0"
     "@eslint-community/regexpp" "^4.6.1"
     "@eslint/eslintrc" "^2.1.4"
-    "@eslint/js" "8.55.0"
+    "@eslint/js" "8.56.0"
     "@humanwhocodes/config-array" "^0.11.13"
     "@humanwhocodes/module-importer" "^1.0.1"
     "@nodelib/fs.walk" "^1.2.8"
@@ -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"