Merge remote-tracking branch 'upstream/pull/2226'
authorTom Hughes <tom@compton.nu>
Tue, 18 Jun 2019 20:10:07 +0000 (21:10 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 18 Jun 2019 20:10:07 +0000 (21:10 +0100)
270 files changed:
.gitignore
.rubocop.yml
.rubocop_todo.yml
.travis.yml
CONTRIBUTING.md
Gemfile
Gemfile.lock
INSTALL.md
app/abilities/ability.rb
app/abilities/api_ability.rb
app/assets/javascripts/leaflet.map.js
app/assets/javascripts/leaflet.zoom.js
app/assets/javascripts/router.js
app/assets/javascripts/user.js
app/assets/stylesheets/common.scss
app/controllers/api/swf_controller.rb [deleted file]
app/controllers/diary_entries_controller.rb
app/controllers/users_controller.rb
app/helpers/user_blocks_helper.rb
app/models/acl.rb
app/models/changeset.rb
app/models/changeset_comment.rb
app/models/changeset_tag.rb
app/models/diary_comment.rb
app/models/diary_entry.rb
app/models/diary_entry_subscription.rb
app/models/friend.rb
app/models/message.rb
app/models/node.rb
app/models/node_tag.rb
app/models/note.rb
app/models/note_comment.rb
app/models/old_node.rb
app/models/old_node_tag.rb
app/models/old_relation.rb
app/models/old_relation_member.rb
app/models/old_relation_tag.rb
app/models/old_way.rb
app/models/old_way_node.rb
app/models/old_way_tag.rb
app/models/redaction.rb
app/models/relation.rb
app/models/relation_member.rb
app/models/relation_tag.rb
app/models/trace.rb
app/models/tracepoint.rb
app/models/tracetag.rb
app/models/user.rb
app/models/user_block.rb
app/models/user_preference.rb
app/models/user_role.rb
app/models/user_token.rb
app/models/way.rb
app/models/way_node.rb
app/models/way_tag.rb
app/views/diary_entries/_diary_comment.html.erb
app/views/diary_entries/_diary_entry.html.erb
app/views/diary_entries/_form.html.erb [new file with mode: 0644]
app/views/diary_entries/edit.html.erb
app/views/diary_entries/index.html.erb
app/views/diary_entries/new.html.erb [new file with mode: 0644]
app/views/diary_entries/show.html.erb
app/views/issues/_comments.html.erb
app/views/layouts/_header.html.erb
app/views/messages/new.html.erb
app/views/oauth_clients/edit.html.erb
app/views/oauth_clients/new.html.erb
app/views/redactions/edit.html.erb
app/views/redactions/new.html.erb
app/views/site/about.html.erb
app/views/traces/edit.html.erb
app/views/traces/new.html.erb
app/views/user_blocks/edit.html.erb
app/views/user_blocks/new.html.erb
app/views/users/show.html.erb
app/views/users/terms.html.erb
config/initializers/strong_migrations.rb [new file with mode: 0644]
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/fr.yml
config/locales/fur.yml
config/locales/ga.yml
config/locales/gd.yml
config/locales/gl.yml
config/locales/he.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/km.yml
config/locales/ko.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/nb.yml
config/locales/ne.yml
config/locales/nl.yml
config/locales/nn.yml
config/locales/oc.yml
config/locales/pa.yml
config/locales/pl.yml
config/locales/pt-BR.yml
config/locales/pt-PT.yml
config/locales/ro.yml
config/locales/ru.yml
config/locales/scn.yml
config/locales/sco.yml
config/locales/sk.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/uk.yml
config/locales/vi.yml
config/locales/zh-CN.yml
config/locales/zh-TW.yml
config/routes.rb
config/settings.yml
config/settings/test.yml
db/migrate/20181020114000_add_user_tou_agreed.rb [new file with mode: 0644]
db/migrate/20190518115041_add_acl_indexes.rb [new file with mode: 0644]
db/structure.sql
lib/gpx.rb
lib/tasks/eslint.rake [new file with mode: 0644]
package.json [new file with mode: 0644]
public/robots.txt
test/application_system_test_case.rb
test/controllers/api/swf_controller_test.rb [deleted file]
test/controllers/api/traces_controller_test.rb
test/controllers/diary_entries_controller_test.rb
test/controllers/traces_controller_test.rb
test/controllers/users_controller_test.rb
test/gpx/fixtures/b.gpx
test/gpx/fixtures/f.gpx
test/gpx/fixtures/g.gpx
test/gpx/fixtures/h.gpx
test/gpx/fixtures/i.gpx
test/integration/user_creation_test.rb
test/integration/user_diaries_test.rb
test/models/trace_test.rb
test/system/diary_entry_test.rb
test/system/issues_test.rb
vendor/assets/iD/iD.css.erb
vendor/assets/iD/iD.js
vendor/assets/iD/iD/img/community-sprite.svg
vendor/assets/iD/iD/img/fa-sprite.svg
vendor/assets/iD/iD/img/iD-sprite.svg
vendor/assets/iD/iD/img/temaki-sprite.svg
vendor/assets/iD/iD/img/tnp-sprite.svg [new file with mode: 0644]
vendor/assets/iD/iD/locales/af.json
vendor/assets/iD/iD/locales/ar.json
vendor/assets/iD/iD/locales/ast.json
vendor/assets/iD/iD/locales/bg.json
vendor/assets/iD/iD/locales/bn.json
vendor/assets/iD/iD/locales/bs.json
vendor/assets/iD/iD/locales/ca.json
vendor/assets/iD/iD/locales/ckb.json
vendor/assets/iD/iD/locales/cs.json
vendor/assets/iD/iD/locales/cy.json
vendor/assets/iD/iD/locales/da.json
vendor/assets/iD/iD/locales/de.json
vendor/assets/iD/iD/locales/dv.json
vendor/assets/iD/iD/locales/el.json
vendor/assets/iD/iD/locales/en-AU.json
vendor/assets/iD/iD/locales/en-GB.json
vendor/assets/iD/iD/locales/en.json
vendor/assets/iD/iD/locales/eo.json
vendor/assets/iD/iD/locales/es.json
vendor/assets/iD/iD/locales/et.json
vendor/assets/iD/iD/locales/eu.json
vendor/assets/iD/iD/locales/fa.json
vendor/assets/iD/iD/locales/fi.json
vendor/assets/iD/iD/locales/fr.json
vendor/assets/iD/iD/locales/gl.json
vendor/assets/iD/iD/locales/gu.json
vendor/assets/iD/iD/locales/he.json
vendor/assets/iD/iD/locales/hi.json
vendor/assets/iD/iD/locales/hr.json
vendor/assets/iD/iD/locales/hu.json
vendor/assets/iD/iD/locales/hy.json
vendor/assets/iD/iD/locales/id.json
vendor/assets/iD/iD/locales/is.json
vendor/assets/iD/iD/locales/it.json
vendor/assets/iD/iD/locales/ja.json
vendor/assets/iD/iD/locales/kn.json
vendor/assets/iD/iD/locales/ko.json
vendor/assets/iD/iD/locales/ku.json
vendor/assets/iD/iD/locales/lt.json
vendor/assets/iD/iD/locales/lv.json
vendor/assets/iD/iD/locales/mg.json
vendor/assets/iD/iD/locales/mk.json
vendor/assets/iD/iD/locales/ml.json
vendor/assets/iD/iD/locales/ms.json
vendor/assets/iD/iD/locales/ne.json
vendor/assets/iD/iD/locales/nl.json
vendor/assets/iD/iD/locales/no.json
vendor/assets/iD/iD/locales/pap.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/pl.json
vendor/assets/iD/iD/locales/pt-BR.json
vendor/assets/iD/iD/locales/pt.json
vendor/assets/iD/iD/locales/ro.json
vendor/assets/iD/iD/locales/ru.json
vendor/assets/iD/iD/locales/si.json
vendor/assets/iD/iD/locales/sk.json
vendor/assets/iD/iD/locales/sl.json
vendor/assets/iD/iD/locales/so.json
vendor/assets/iD/iD/locales/sq.json
vendor/assets/iD/iD/locales/sr.json
vendor/assets/iD/iD/locales/sv.json
vendor/assets/iD/iD/locales/ta.json
vendor/assets/iD/iD/locales/te.json
vendor/assets/iD/iD/locales/th.json
vendor/assets/iD/iD/locales/tl.json
vendor/assets/iD/iD/locales/tr.json
vendor/assets/iD/iD/locales/uk.json
vendor/assets/iD/iD/locales/vi.json
vendor/assets/iD/iD/locales/yue.json
vendor/assets/iD/iD/locales/zh-CN.json
vendor/assets/iD/iD/locales/zh-HK.json
vendor/assets/iD/iD/locales/zh-TW.json
vendor/assets/iD/iD/locales/zh.json
vendor/assets/iD/iD/mapillary-js/mapillary.js
vendor/assets/iD/iD/mapillary-js/mapillary.js.map
vendor/assets/iD/iD/mapillary-js/mapillary.min.css
vendor/assets/iD/iD/mapillary-js/mapillary.min.js
yarn.lock [new file with mode: 0644]

index 5ba4bc764093feadbe0fe7ac4219e1f6089c1321..386f0513af861f01cb92952a2cb6e2306346e799 100644 (file)
@@ -12,6 +12,7 @@ config/settings/*.local.yml
 coverage
 doc
 log
+node_modules
 public/assets
 public/attachments
 public/export
index d5ee8ff383722193f5769416d431faea2c3521c4..7d2df0445445ab5f25f560eeb0cdea58a474f0c2 100644 (file)
@@ -1,6 +1,8 @@
 inherit_from: .rubocop_todo.yml
 
-require: rubocop-performance
+require:
+  - rubocop-performance
+  - rubocop-rails
 
 AllCops:
   TargetRubyVersion: 2.5
@@ -17,6 +19,10 @@ Lint/PercentStringArray:
     - 'app/controllers/application_controller.rb'
     - 'app/controllers/site_controller.rb'
 
+Metrics/BlockLength:
+  Exclude:
+    - 'config/routes.rb'
+
 Naming/FileName:
   Exclude:
     - 'script/deliver-message'
index b2cc901b0959f1888f03e33b531ffce6d2d57210..26b5aa64b8402baec153a5c6358fe5b37c596b3c 100644 (file)
@@ -1,79 +1,79 @@
 # This configuration was generated by
 # `rubocop --auto-gen-config`
-# on 2018-09-19 14:24:02 +0100 using RuboCop version 0.58.2.
+# on 2019-06-05 09:04:25 +0100 using RuboCop version 0.71.0.
 # The point is for the user to remove these configuration records
 # one by one as the offenses are removed from the code base.
 # Note that changes in the inspected code, or installation of new
 # versions of RuboCop, may require this file to be generated again.
 
-# Offense count: 32
+# Offense count: 33
 # Configuration parameters: AllowSafeAssignment.
 Lint/AssignmentInCondition:
   Exclude:
+    - 'app/controllers/api/traces_controller.rb'
+    - 'app/controllers/api/user_preferences_controller.rb'
     - 'app/controllers/application_controller.rb'
     - 'app/controllers/geocoder_controller.rb'
     - 'app/controllers/notes_controller.rb'
-    - 'app/controllers/api/traces_controller.rb'
     - 'app/controllers/traces_controller.rb'
     - 'app/controllers/users_controller.rb'
-    - 'app/controllers/api/user_preferences_controller.rb'
     - 'app/helpers/application_helper.rb'
-    - 'app/helpers/browse_helper.rb'
     - 'app/helpers/browse_tags_helper.rb'
-    - 'app/models/client_application.rb'
     - 'app/mailers/notifier.rb'
+    - 'app/models/client_application.rb'
     - 'lib/nominatim.rb'
     - 'lib/osm.rb'
     - 'script/deliver-message'
 
 # Offense count: 4
+# Configuration parameters: AllowComments.
 Lint/HandleExceptions:
   Exclude:
     - 'app/controllers/api/amf_controller.rb'
     - 'app/controllers/users_controller.rb'
 
-# Offense count: 692
+# Offense count: 703
 Metrics/AbcSize:
-  Max: 283
+  Max: 279
 
 # Offense count: 40
 # Configuration parameters: CountComments, ExcludedMethods.
 # ExcludedMethods: refine
 Metrics/BlockLength:
-  Max: 262
+  Max: 71
 
-# Offense count: 11
+# Offense count: 15
 # Configuration parameters: CountBlocks.
 Metrics/BlockNesting:
   Max: 5
 
-# Offense count: 63
+# Offense count: 68
 # Configuration parameters: CountComments.
 Metrics/ClassLength:
-  Max: 1627
+  Max: 1397
 
-# Offense count: 72
+# Offense count: 73
 Metrics/CyclomaticComplexity:
-  Max: 23
+  Max: 22
 
-# Offense count: 691
-# Configuration parameters: CountComments.
+# Offense count: 714
+# Configuration parameters: CountComments, ExcludedMethods.
 Metrics/MethodLength:
   Max: 179
 
-# Offense count: 2
+# Offense count: 1
 # Configuration parameters: CountComments.
 Metrics/ModuleLength:
-  Max: 135
+  Max: 107
 
 # Offense count: 4
 # Configuration parameters: CountKeywordArgs.
 Metrics/ParameterLists:
   Max: 9
 
-# Offense count: 72
+# Offense count: 71
 Metrics/PerceivedComplexity:
-  Max: 23
+  Max: 25
 
 # Offense count: 6
 Naming/AccessorMethodName:
@@ -100,11 +100,6 @@ Naming/PredicateName:
     - 'app/models/user.rb'
     - 'lib/classic_pagination/pagination.rb'
 
-# Disabled pending merge of fix for:
-# https://github.com/rubocop-hq/rubocop/issues/6943
-Rails/ActiveRecordOverride:
-  Enabled: false
-
 # Offense count: 6
 # Configuration parameters: Database, Include.
 # SupportedDatabases: mysql, postgresql
@@ -116,14 +111,6 @@ Rails/BulkChangeTable:
     - 'db/migrate/20120208194454_add_domain_to_acl.rb'
     - 'db/migrate/20120404205604_add_user_and_description_to_redaction.rb'
 
-# Offense count: 2
-# Configuration parameters: Include.
-# Include: app/**/*.rb, config/**/*.rb, lib/**/*.rb
-Rails/Exit:
-  Exclude:
-    - 'lib/**/*.rake'
-    - 'lib/daemons/gpx_import.rb'
-
 # Offense count: 2
 # Configuration parameters: Include.
 # Include: app/models/**/*.rb
@@ -132,6 +119,15 @@ Rails/HasAndBelongsToMany:
     - 'app/models/changeset.rb'
     - 'app/models/user.rb'
 
+# Offense count: 11
+# Configuration parameters: Include.
+# Include: app/helpers/**/*.rb
+Rails/HelperInstanceVariable:
+  Exclude:
+    - 'app/helpers/application_helper.rb'
+    - 'app/helpers/title_helper.rb'
+    - 'app/helpers/trace_helper.rb'
+
 # Offense count: 5
 # Configuration parameters: Include.
 # Include: db/migrate/*.rb
@@ -143,7 +139,7 @@ Rails/NotNullColumn:
     - 'db/migrate/025_add_end_time_to_changesets.rb'
     - 'db/migrate/20120404205604_add_user_and_description_to_redaction.rb'
 
-# Offense count: 20
+# Offense count: 18
 Rails/OutputSafety:
   Exclude:
     - 'app/controllers/users_controller.rb'
@@ -153,11 +149,11 @@ Rails/OutputSafety:
     - 'app/helpers/note_helper.rb'
     - 'app/helpers/open_graph_helper.rb'
     - 'app/helpers/user_blocks_helper.rb'
-    - 'app/helpers/user_roles_helper.rb'
     - 'lib/rich_text.rb'
     - 'test/helpers/application_helper_test.rb'
 
-# Offense count: 86
+# Offense count: 94
+# Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyle.
 # SupportedStyles: strict, flexible
 Rails/TimeZone:
@@ -169,14 +165,14 @@ Style/AsciiComments:
   Exclude:
     - 'test/models/message_test.rb'
 
-# Offense count: 230
+# Offense count: 255
 Style/Documentation:
   Enabled: false
 
-# Offense count: 462
+# Offense count: 503
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyle.
-# SupportedStyles: when_needed, always, never
+# SupportedStyles: always, never
 Style/FrozenStringLiteralComment:
   Enabled: false
 
@@ -186,14 +182,15 @@ Style/IfUnlessModifier:
   Exclude:
     - 'app/controllers/api/ways_controller.rb'
 
-# Offense count: 70
+# Offense count: 74
 # Cop supports --auto-correct.
 # Configuration parameters: Strict.
 Style/NumericLiterals:
   MinDigits: 11
 
-# Offense count: 3080
-# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
+# Offense count: 3320
+# Cop supports --auto-correct.
+# Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
 # URISchemes: http, https
 Metrics/LineLength:
   Max: 1073
index 459c36f4fa2362245eb84734c97559ff6f4af8cf..4d764d6ed3e45ab9fbd0770c6c2ff7147942153f 100644 (file)
@@ -9,6 +9,7 @@ addons:
   apt:
     packages:
       - postgresql-server-dev-9.5
+      - libarchive-dev
 services:
   - memcached
 env:
@@ -27,9 +28,10 @@ before_script:
   - touch config/settings.local.yml
   - bundle exec rake db:migrate
   - bundle exec rake i18n:js:export
+  - bundle exec rake yarn:install
 script:
   - bundle exec rubocop -f fuubar
-  - bundle exec rake eslint:run_all
+  - bundle exec rake eslint
   - bundle exec erblint .
   - bundle exec rake db:structure:dump
   - sed -e "/idle_in_transaction_session_timeout/d" -e 's/ IMMUTABLE / /' -e "s/AS '.*libpgosm.*',/AS 'libpgosm',/" -e "/^--/d" db/structure.sql > db/structure.actual
index c5a63656981a0ebd8bf8ba3b7eca24bf4f33735f..5a2ed5ab7184bcac849d78a2a9d8135bb7e1ce63 100644 (file)
@@ -10,6 +10,7 @@ development to check that your code matches our guidelines:
 
 ```
 bundle exec rubocop
+bundle exec rake eslint
 bundle exec erblint .
 ```
 
@@ -54,6 +55,13 @@ might be difficult to understand what the code does, why it does it
 and why it should be the way it is.
 * Check existing comments to ensure that they are not misleading.
 
+## i18n
+
+If you make a change that involve the locale files (in `config/locales`) then please
+only submit changes to the `en.yml` file. The other files are updated via
+[Translatewiki](https://translatewiki.net/wiki/Translating:OpenStreetMap) and should
+not be included in your pull request.
+
 ## Code Documentation
 
 To generate the HTML documentation of the API/rails code, run the command
diff --git a/Gemfile b/Gemfile
index 75b8f7bdc4ba6e8c5bb3d7706aeee0c93c340c0b..f41ac015bf4adb14c28f3502724c7f63dcf782a1 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -61,6 +61,7 @@ gem "rack-cors"
 gem "rails-i18n", "~> 4.0.0"
 gem "record_tag_helper"
 gem "rinku", ">= 2.0.6", :require => "rails_rinku"
+gem "strong_migrations"
 gem "validates_email_format_of", ">= 1.5.1"
 
 # Native OSM extensions
@@ -117,7 +118,10 @@ gem "canonical-rails"
 gem "logstasher"
 
 # Used to generate images for traces
-gem "gd2-ffij"
+gem "bzip2-ffi"
+gem "ffi-libarchive"
+gem "gd2-ffij", ">= 0.4.0"
+gem "mimemagic"
 
 # Used for browser detection
 gem "browser"
@@ -138,6 +142,7 @@ group :test do
   gem "rails-controller-testing"
   gem "rubocop"
   gem "rubocop-performance"
+  gem "rubocop-rails"
   gem "webmock"
 end
 
@@ -146,10 +151,7 @@ group :development, :test do
   gem "capybara", "~> 2.13"
   gem "coveralls", :require => false
   gem "erb_lint", :require => false
-  gem "eslint-rails-ee"
-  gem "execjs"
   gem "factory_bot_rails"
   gem "poltergeist"
   gem "puma", "~> 3.7"
-  gem "therubyracer", :platforms => :ruby
 end
index 7b871ff7cfb28b5503382118e232e52556056815..23022ad5bd9720cca65dc9d49e1f0ebd2f4aa7c0 100644 (file)
@@ -2,7 +2,7 @@ GEM
   remote: https://rubygems.org/
   specs:
     SystemTimer (1.2.3)
-    aasm (5.0.3)
+    aasm (5.0.5)
       concurrent-ruby (~> 1.0)
     actioncable (5.2.3)
       actionpack (= 5.2.3)
@@ -40,7 +40,7 @@ GEM
       activemodel (= 5.2.3)
       activesupport (= 5.2.3)
       arel (>= 9.0)
-    activerecord-import (1.0.1)
+    activerecord-import (1.0.2)
       activerecord (>= 3.2)
     activestorage (5.2.3)
       actionpack (= 5.2.3)
@@ -79,6 +79,8 @@ GEM
       msgpack (~> 1.0)
     browser (2.5.3)
     builder (3.2.3)
+    bzip2-ffi (1.0.0)
+      ffi (~> 1.0)
     cancancan (3.0.1)
     canonical-rails (0.2.5)
       rails (>= 4.1, < 6.1)
@@ -99,14 +101,13 @@ GEM
       coffee-script-source
       execjs
     coffee-script-source (1.12.2)
-    colorize (0.8.1)
     composite_primary_keys (11.1.0)
       activerecord (~> 5.2.1)
     concurrent-ruby (1.1.5)
-    config (1.7.1)
+    config (1.7.2)
       activesupport (>= 3.0)
-      deep_merge (~> 1.2.1)
-      dry-validation (>= 0.12.2)
+      deep_merge (~> 1.2, >= 1.2.1)
+      dry-validation (~> 0.12, >= 0.12.2, < 1.0.0)
     coveralls (0.8.23)
       json (>= 1.8, < 3)
       simplecov (~> 0.16.1)
@@ -124,11 +125,11 @@ GEM
     delayed_job_active_record (4.1.3)
       activerecord (>= 3.0, < 5.3)
       delayed_job (>= 3.0, < 5)
-    docile (1.3.1)
-    dry-configurable (0.8.2)
+    docile (1.3.2)
+    dry-configurable (0.8.3)
       concurrent-ruby (~> 1.0)
       dry-core (~> 0.4, >= 0.4.7)
-    dry-container (0.7.0)
+    dry-container (0.7.1)
       concurrent-ruby (~> 1.0)
       dry-configurable (~> 0.1, >= 0.1.3)
     dry-core (0.4.7)
@@ -146,7 +147,7 @@ GEM
       dry-equalizer (~> 0.2)
       dry-inflector (~> 0.1, >= 0.1.2)
       dry-logic (~> 0.5, >= 0.5)
-    dry-validation (0.13.1)
+    dry-validation (0.13.3)
       concurrent-ruby (~> 1.0)
       dry-configurable (~> 0.1, >= 0.1.3)
       dry-core (~> 0.2, >= 0.2.1)
@@ -162,10 +163,6 @@ GEM
       rubocop (~> 0.51)
       smart_properties
     erubi (1.8.0)
-    eslint-rails-ee (1.0.2)
-      colorize
-      execjs
-      railties (>= 3.2)
     execjs (2.7.0)
     exifr (1.3.6)
     factory_bot (5.0.2)
@@ -176,36 +173,38 @@ GEM
     fakefs (0.20.1)
     faraday (0.15.4)
       multipart-post (>= 1.2, < 3)
-    ffi (1.10.0)
-    fspath (3.1.0)
-    gd2-ffij (0.3.0)
+    ffi (1.11.1)
+    ffi-libarchive (0.4.6)
+      ffi (~> 1.0)
+    fspath (3.1.1)
+    gd2-ffij (0.4.0)
       ffi (>= 1.0.0)
     geoip (1.6.4)
     globalid (0.4.2)
       activesupport (>= 4.2.0)
-    hashdiff (0.3.9)
+    hashdiff (0.4.0)
     hashie (3.6.0)
     html_tokenizer (0.0.7)
     htmlentities (4.3.4)
     http_accept_language (2.0.5)
     i18n (0.9.5)
       concurrent-ruby (~> 1.0)
-    i18n-js (3.2.1)
+    i18n-js (3.3.0)
       i18n (>= 0.6.6)
-    image_optim (0.26.3)
+    image_optim (0.26.4)
       exifr (~> 1.2, >= 1.2.2)
       fspath (~> 3.0)
       image_size (>= 1.5, < 3)
       in_threads (~> 1.3)
       progress (~> 3.0, >= 3.0.1)
-    image_optim_rails (0.4.1)
+    image_optim_rails (0.4.2)
       image_optim (~> 0.24)
       rails
       sprockets
-    image_size (2.0.0)
-    in_threads (1.5.1)
-    jaro_winkler (1.5.2)
-    jquery-rails (4.3.3)
+    image_size (2.0.1)
+    in_threads (1.5.2)
+    jaro_winkler (1.5.3)
+    jquery-rails (4.3.5)
       rails-dom-testing (>= 1, < 3)
       railties (>= 4.2.0)
       thor (>= 0.14, < 2.0)
@@ -215,10 +214,9 @@ GEM
     jsonify-rails (0.3.2)
       actionpack
       jsonify (< 0.4.0)
-    jwt (2.1.0)
+    jwt (2.2.1)
     kgio (2.11.2)
     kramdown (2.1.0)
-    libv8 (3.16.14.19)
     libxml-ruby (3.1.0)
     listen (3.1.5)
       rb-fsevent (~> 0.9, >= 0.9.4)
@@ -247,7 +245,7 @@ GEM
     msgpack (1.2.10)
     multi_json (1.13.1)
     multi_xml (0.6.0)
-    multipart-post (2.1.0)
+    multipart-post (2.1.1)
     nio4r (2.3.1)
     nokogiri (1.10.3)
       mini_portile2 (~> 2.4.0)
@@ -273,7 +271,7 @@ GEM
     omniauth-github (1.3.0)
       omniauth (~> 1.5)
       omniauth-oauth2 (>= 1.4.0, < 2.0)
-    omniauth-google-oauth2 (0.6.1)
+    omniauth-google-oauth2 (0.7.0)
       jwt (>= 2.0)
       omniauth (>= 1.1.1)
       omniauth-oauth2 (>= 1.5)
@@ -307,9 +305,9 @@ GEM
       capybara (>= 2.1, < 4)
       cliver (~> 0.3.1)
       websocket-driver (>= 0.2.0)
-    progress (3.5.0)
+    progress (3.5.1)
     psych (3.1.0)
-    public_suffix (3.0.3)
+    public_suffix (3.1.0)
     puma (3.12.1)
     quad_tile (1.0.1)
     r2 (0.2.7)
@@ -359,23 +357,25 @@ GEM
       ffi (~> 1.0)
     record_tag_helper (1.0.0)
       actionview (~> 5.x)
-    ref (2.0.0)
     request_store (1.4.1)
       rack (>= 1.4)
     rinku (2.0.6)
-    rotp (4.1.0)
+    rotp (5.0.0)
       addressable (~> 2.5)
-    rubocop (0.68.1)
+    rubocop (0.71.0)
       jaro_winkler (~> 1.5.1)
       parallel (~> 1.10)
-      parser (>= 2.5, != 2.5.1.1)
+      parser (>= 2.6)
       rainbow (>= 2.2.2, < 4.0)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 1.4.0, < 1.6)
-    rubocop-performance (1.2.0)
+      unicode-display_width (>= 1.4.0, < 1.7)
+    rubocop-performance (1.3.0)
       rubocop (>= 0.68.0)
+    rubocop-rails (2.0.1)
+      rack (>= 1.1)
+      rubocop (>= 0.70.0)
     ruby-openid (2.7.0)
-    ruby-progressbar (1.10.0)
+    ruby-progressbar (1.10.1)
     ruby_dep (1.5.0)
     safe_yaml (1.0.5)
     sanitize (5.0.0)
@@ -385,7 +385,7 @@ GEM
     sassc (2.0.1)
       ffi (~> 1.9)
       rake
-    sassc-rails (2.1.1)
+    sassc-rails (2.1.2)
       railties (>= 4.0.0)
       sassc (>= 2.0)
       sprockets (> 3.0)
@@ -397,7 +397,7 @@ GEM
       json (>= 1.8, < 3)
       simplecov-html (~> 0.10.0)
     simplecov-html (0.10.2)
-    smart_properties (1.13.1)
+    smart_properties (1.14.0)
     sprockets (3.7.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
@@ -405,32 +405,31 @@ GEM
       actionpack (>= 4.0)
       activesupport (>= 4.0)
       sprockets (>= 3.0.0)
+    strong_migrations (0.4.0)
+      activerecord (>= 5)
     term-ansicolor (1.7.1)
       tins (~> 1.0)
     terrapin (0.6.0)
       climate_control (>= 0.0.3, < 1.0)
-    therubyracer (0.12.3)
-      libv8 (~> 3.16.14.15)
-      ref
     thor (0.20.3)
     thread_safe (0.3.6)
     tilt (2.0.9)
-    tins (1.20.2)
+    tins (1.20.3)
     tzinfo (1.2.5)
       thread_safe (~> 0.1)
     uglifier (4.1.20)
       execjs (>= 0.3.0, < 3)
-    unicode-display_width (1.5.0)
+    unicode-display_width (1.6.0)
     validates_email_format_of (1.6.3)
       i18n
     vendorer (0.2.0)
-    webmock (3.5.1)
+    webmock (3.6.0)
       addressable (>= 2.3.6)
       crack (>= 0.3.2)
-      hashdiff
-    websocket-driver (0.7.0)
+      hashdiff (>= 0.4.0, < 2.0.0)
+    websocket-driver (0.7.1)
       websocket-extensions (>= 0.1.0)
-    websocket-extensions (0.1.3)
+    websocket-extensions (0.1.4)
     xpath (3.2.0)
       nokogiri (~> 1.8)
 
@@ -450,6 +449,7 @@ DEPENDENCIES
   binding_of_caller
   bootsnap (>= 1.1.0)
   browser
+  bzip2-ffi
   cancancan
   canonical-rails
   capybara (~> 2.13)
@@ -461,12 +461,11 @@ DEPENDENCIES
   delayed_job_active_record
   dynamic_form
   erb_lint
-  eslint-rails-ee
-  execjs
   factory_bot_rails
   fakefs
   faraday
-  gd2-ffij
+  ffi-libarchive
+  gd2-ffij (>= 0.4.0)
   geoip
   htmlentities
   http_accept_language (~> 2.0.0)
@@ -480,6 +479,7 @@ DEPENDENCIES
   libxml-ruby (>= 2.0.5)
   listen
   logstasher
+  mimemagic
   minitest (~> 5.1)
   oauth-plugin (>= 0.5.1)
   omniauth
@@ -507,10 +507,11 @@ DEPENDENCIES
   rotp
   rubocop
   rubocop-performance
+  rubocop-rails
   sanitize
   sassc-rails
   secure_headers
-  therubyracer
+  strong_migrations
   uglifier (>= 1.3.0)
   validates_email_format_of (>= 1.5.1)
   vendorer
index 5b2652c3e0cc4dc114b5bd692f01f375c7e6eac3..b03c9751525eb23f75f7992215924b7858b277f2 100644 (file)
@@ -42,11 +42,11 @@ sudo gem2.5 install bundler
 For Fedora, you can install the minimum requirements with:
 
 ```
-sudo yum install ruby ruby-devel rubygem-rdoc rubygem-bundler rubygems \
+sudo dnf install ruby ruby-devel rubygem-rdoc rubygem-bundler rubygems \
                  libxml2-devel js \
                  gcc gcc-c++ git \
                  postgresql postgresql-server postgresql-contrib postgresql-devel \
-                 perl-podlators ImageMagick libffi-devel
+                 perl-podlators ImageMagick libffi-devel nodejs-yarn
 ```
 
 If you didn't already have PostgreSQL installed then create a PostgreSQL instance and start the server:
@@ -114,6 +114,14 @@ cd openstreetmap-website
 bundle install
 ```
 
+## Node.js modules
+
+We use [Yarn](https://yarnpkg.com/) to manage the Node.js modules required for the project.
+
+```
+bundle exec rake yarn:install
+```
+
 ## Database setup
 
 The Rails Port uses three databases -  one for development, one for testing, and one for production. The database-specific configuration
index 897c3410c2e01858d763eb7b3e593f5e40d6229b..c34f357a97a41b2febfbdb7fa1b0a505ded8e3aa 100644 (file)
@@ -36,7 +36,7 @@ class Ability
 
       if Settings.status != "database_offline"
         can [:index, :new, :create, :show, :edit, :update, :destroy], ClientApplication
-        can [:create, :edit, :comment, :subscribe, :unsubscribe], DiaryEntry
+        can [:new, :create, :edit, :update, :comment, :subscribe, :unsubscribe], DiaryEntry
         can [:new, :create, :reply, :show, :inbox, :outbox, :mark, :destroy], Message
         can [:close, :reopen], Note
         can [:new, :create], Report
@@ -52,7 +52,7 @@ class Ability
         end
 
         if user.administrator?
-          can [:hide, :hidecomment], DiaryEntry
+          can [:hide, :unhide, :hidecomment, :unhidecomment], DiaryEntry
           can [:index, :show, :resolve, :ignore, :reopen], Issue
           can :create, IssueComment
           can [:set_status, :delete, :index], User
index a71d05d75c27dabf548d4a4d06c06153aed7b267..9fc3cdd9cdb78fa659ef8234b6cae9483d3b64a5 100644 (file)
@@ -9,7 +9,6 @@ class ApiAbility
     can :index, :map
     can :show, :permission
     can [:search_all, :search_nodes, :search_ways, :search_relations], :search
-    can [:trackpoints], :swf
 
     if Settings.status != "database_offline"
       can [:show, :download, :query], Changeset
index 1f161ceeaf3f7d5d5c19610be80a7651c8837d9e..fe8d74af5405bff40d7682d3279e820d2c279ab3 100644 (file)
@@ -15,11 +15,12 @@ L.OSM.Map = L.Map.extend({
 
     var copyright = I18n.t("javascripts.map.copyright", { copyright_url: "/copyright" });
     var donate = I18n.t("javascripts.map.donate_link_text", { donate_url: "https://donate.openstreetmap.org" });
+    var terms = I18n.t("javascripts.map.terms", { terms_url: "https://wiki.osmfoundation.org/wiki/Terms_of_Use" });
 
     this.baseLayers = [];
 
     this.baseLayers.push(new L.OSM.Mapnik({
-      attribution: copyright + " &hearts; " + donate,
+      attribution: copyright + " &hearts; " + donate + ". " + terms,
       code: "M",
       keyid: "mapnik",
       name: I18n.t("javascripts.map.base.standard")
@@ -27,7 +28,7 @@ L.OSM.Map = L.Map.extend({
 
     if (OSM.THUNDERFOREST_KEY) {
       this.baseLayers.push(new L.OSM.CycleMap({
-        attribution: copyright + ". Tiles courtesy of <a href='https://www.thunderforest.com/' target='_blank'>Andy Allan</a>",
+        attribution: copyright + ". Tiles courtesy of <a href='https://www.thunderforest.com/' target='_blank'>Andy Allan</a>. " + terms,
         apikey: OSM.THUNDERFOREST_KEY,
         code: "C",
         keyid: "cyclemap",
@@ -35,7 +36,7 @@ L.OSM.Map = L.Map.extend({
       }));
 
       this.baseLayers.push(new L.OSM.TransportMap({
-        attribution: copyright + ". Tiles courtesy of <a href='https://www.thunderforest.com/' target='_blank'>Andy Allan</a>",
+        attribution: copyright + ". Tiles courtesy of <a href='https://www.thunderforest.com/' target='_blank'>Andy Allan</a>. " + terms,
         apikey: OSM.THUNDERFOREST_KEY,
         code: "T",
         keyid: "transportmap",
@@ -44,7 +45,7 @@ L.OSM.Map = L.Map.extend({
     }
 
     this.baseLayers.push(new L.OSM.HOT({
-      attribution: copyright + ". Tiles style by <a href='https://www.hotosm.org/' target='_blank'>Humanitarian OpenStreetMap Team</a> hosted by <a href='https://openstreetmap.fr/' target='_blank'>OpenStreetMap France</a>",
+      attribution: copyright + ". Tiles style by <a href='https://www.hotosm.org/' target='_blank'>Humanitarian OpenStreetMap Team</a> hosted by <a href='https://openstreetmap.fr/' target='_blank'>OpenStreetMap France</a>. " + terms,
       code: "H",
       keyid: "hot",
       name: I18n.t("javascripts.map.base.hot")
index e7c048b2d933c568f8eacfa5c7fcd987c85f9f7b..342993347ccdfc206882c1f20b80a241929df8bd 100644 (file)
@@ -1,72 +1,72 @@
 L.OSM.Zoom = L.Control.extend({
-       options: {
-               position: "topright"
-       },
+        options: {
+                position: "topright"
+        },
 
-       onAdd: function (map) {
-               var zoomName = "zoom",
-                   container = L.DomUtil.create("div", zoomName);
+        onAdd: function (map) {
+                var zoomName = "zoom",
+                    container = L.DomUtil.create("div", zoomName);
 
-               this._map = map;
+                this._map = map;
 
-               this._zoomInButton = this._createButton(
-                       "", I18n.t("javascripts.map.zoom.in"), zoomName + "in", container, this._zoomIn, this);
-               this._zoomOutButton = this._createButton(
-                       "", I18n.t("javascripts.map.zoom.out"), zoomName + "out", container, this._zoomOut, this);
+                this._zoomInButton = this._createButton(
+                        "", I18n.t("javascripts.map.zoom.in"), zoomName + "in", container, this._zoomIn, this);
+                this._zoomOutButton = this._createButton(
+                        "", I18n.t("javascripts.map.zoom.out"), zoomName + "out", container, this._zoomOut, this);
 
-               map.on("zoomend zoomlevelschange", this._updateDisabled, this);
+                map.on("zoomend zoomlevelschange", this._updateDisabled, this);
 
-               return container;
-       },
+                return container;
+        },
 
-       onRemove: function (map) {
-               map.off("zoomend zoomlevelschange", this._updateDisabled, this);
-       },
+        onRemove: function (map) {
+                map.off("zoomend zoomlevelschange", this._updateDisabled, this);
+        },
 
-       _zoomIn: function (e) {
-               this._map.zoomIn(e.shiftKey ? 3 : 1);
-       },
+        _zoomIn: function (e) {
+                this._map.zoomIn(e.shiftKey ? 3 : 1);
+        },
 
-       _zoomOut: function (e) {
-               this._map.zoomOut(e.shiftKey ? 3 : 1);
-       },
+        _zoomOut: function (e) {
+                this._map.zoomOut(e.shiftKey ? 3 : 1);
+        },
 
-       _createButton: function (html, title, className, container, fn, context) {
-               var link = L.DomUtil.create("a", "control-button " + className, container);
-               link.innerHTML = html;
-               link.href = "#";
-               link.title = title;
+        _createButton: function (html, title, className, container, fn, context) {
+                var link = L.DomUtil.create("a", "control-button " + className, container);
+                link.innerHTML = html;
+                link.href = "#";
+                link.title = title;
 
-               L.DomUtil.create("span", "icon " + className, link);
+                L.DomUtil.create("span", "icon " + className, link);
 
-               var stop = L.DomEvent.stopPropagation;
+                var stop = L.DomEvent.stopPropagation;
 
-               L.DomEvent
-                   .on(link, "click", stop)
-                   .on(link, "mousedown", stop)
-                   .on(link, "dblclick", stop)
-                   .on(link, "click", L.DomEvent.preventDefault)
-                   .on(link, "click", fn, context);
+                L.DomEvent
+                    .on(link, "click", stop)
+                    .on(link, "mousedown", stop)
+                    .on(link, "dblclick", stop)
+                    .on(link, "click", L.DomEvent.preventDefault)
+                    .on(link, "click", fn, context);
 
-               return link;
-       },
+                return link;
+        },
 
-       _updateDisabled: function () {
-               var map = this._map,
-                       className = "disabled";
+        _updateDisabled: function () {
+                var map = this._map,
+                        className = "disabled";
 
-               L.DomUtil.removeClass(this._zoomInButton, className);
-               L.DomUtil.removeClass(this._zoomOutButton, className);
+                L.DomUtil.removeClass(this._zoomInButton, className);
+                L.DomUtil.removeClass(this._zoomOutButton, className);
 
-               if (map._zoom === map.getMinZoom()) {
-                       L.DomUtil.addClass(this._zoomOutButton, className);
-               }
-               if (map._zoom === map.getMaxZoom()) {
-                       L.DomUtil.addClass(this._zoomInButton, className);
-               }
-       }
+                if (map._zoom === map.getMinZoom()) {
+                        L.DomUtil.addClass(this._zoomOutButton, className);
+                }
+                if (map._zoom === map.getMaxZoom()) {
+                        L.DomUtil.addClass(this._zoomInButton, className);
+                }
+        }
 });
 
 L.OSM.zoom = function (options) {
-       return new L.OSM.Zoom(options);
+        return new L.OSM.Zoom(options);
 };
index 08a6c7268579f65ca341de933c02ca66c2336964..a2a20b8469031d4753e5d5dc8f299303b4a6dfc3 100644 (file)
@@ -47,7 +47,7 @@
    move the map without the hash changing.
  */
 OSM.Router = function (map, rts) {
-  var escapeRegExp  = /[\-{}\[\]+?.,\\\^$|#\s]/g;
+  var escapeRegExp  = /[-{}[\]+?.,\\^$|#\s]/g;
   var optionalParam = /\((.*?)\)/g;
   var namedParam    = /(\(\?)?:\w+/g;
   var splatParam    = /\*\w+/g;
@@ -57,7 +57,7 @@ OSM.Router = function (map, rts) {
       path.replace(escapeRegExp, "\\$&")
         .replace(optionalParam, "(?:$1)?")
         .replace(namedParam, function (match, optional) {
-          return optional ? match : "([^\/]+)";
+          return optional ? match : "([^/]+)";
         })
         .replace(splatParam, "(.*?)") + "(?:\\?.*)?$");
 
index f898455b5815feab5fc2e0c76849687f80f829aa..69cc259f0c9e0195ecf5157ebb8d20d3e7703cac 100644 (file)
@@ -124,4 +124,12 @@ $(document).ready(function () {
     $("#contributorTerms").html("<img src='" + OSM.SEARCHING + "' />");
     $("#contributorTerms").load(url);
   });
+
+  $("#read_ct").on("click", function () {
+    $("#continue").prop("disabled", !($(this).prop("checked") && $("#read_tou").prop("checked")));
+  });
+
+  $("#read_tou").on("click", function () {
+    $("#continue").prop("disabled", !($(this).prop("checked") && $("#read_ct").prop("checked")));
+  });
 });
index 71df217b3b5426a2ce5271d13ffdc1a5225b2166..d3488fe73766cc15e3f04bbdc8fa9d604223d3dd 100644 (file)
@@ -1664,10 +1664,18 @@ tr.turn:hover {
 
 .diary_post {
   position: relative;
-  margin-top: $lineheight/2;
   padding-top: $lineheight;
+  padding-bottom: $lineheight/2;
   border-top: 1px solid #ccc;
 
+  &:first-of-type {
+    margin-top: $lineheight/2;
+  }
+
+  &.deemphasize {
+    background-color: #fee;
+  }
+
   .post_heading {
     margin-bottom: $lineheight;
 
@@ -1712,14 +1720,17 @@ tr.turn:hover {
     max-width: 740px;
   }
   .diary-comment {
-    margin-top: $lineheight/2;
     border-top: 1px dashed #ccc;
     padding-top: $lineheight/2;
+    padding-bottom: $lineheight/2;
     &:first-child {
-      margin-top: $lineheight;
+      margin-top: $lineheight/2;
       padding-top: $lineheight;
       border-top: 1px solid #ccc;
     }
+    &.deemphasize {
+      background-color: #fee;
+    }
     p {
       margin-bottom: $lineheight/2;
     }
diff --git a/app/controllers/api/swf_controller.rb b/app/controllers/api/swf_controller.rb
deleted file mode 100644 (file)
index 2f8a539..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-module Api
-  class SwfController < ApiController
-    before_action :check_api_readable
-    authorize_resource :class => false
-
-    # to log:
-    # RAILS_DEFAULT_LOGGER.error("Args: #{args[0]}, #{args[1]}, #{args[2]}, #{args[3]}")
-    # $log.puts Time.new.to_s+','+Time.new.usec.to_s+": started GPS script"
-    # http://localhost:3000/api/0.4/swf/trackpoints?xmin=-2.32402605810577&xmax=-2.18386309423859&ymin=52.1546608755772&ymax=52.2272777906895&baselong=-2.25325793066437&basey=61.3948537948532&masterscale=5825.4222222222
-
-    # ====================================================================
-    # Public methods
-
-    # ---- trackpoints  compile SWF of trackpoints
-
-    def trackpoints
-      # -  Initialise
-
-      baselong = params["baselong"].to_f
-      basey = params["basey"].to_f
-      masterscale = params["masterscale"].to_f
-
-      bbox = BoundingBox.new(params["xmin"], params["ymin"],
-                             params["xmax"], params["ymax"])
-      start = params["start"].to_i
-
-      # -  Begin movie
-
-      bounds_left = 0
-      bounds_right = 320 * 20
-      bounds_bottom = 0
-      bounds_top = 240 * 20
-
-      m = ""
-      m += swf_record(9, 255.chr + 155.chr + 155.chr) # Background
-      absx = 0
-      absy = 0
-      xl = yb = 9999999
-      xr = yt = -9999999
-
-      # -  Send SQL for GPS tracks
-
-      b = ""
-      lasttime = 0
-      lasttrack = lastfile = "-1"
-
-      if params["token"]
-        user = User.authenticate(:token => params[:token])
-        sql = "SELECT gps_points.latitude*0.0000001 AS lat,gps_points.longitude*0.0000001 AS lon,gpx_files.id AS fileid," + "      EXTRACT(EPOCH FROM gps_points.timestamp) AS ts, gps_points.trackid AS trackid " + " FROM gpx_files,gps_points " + "WHERE gpx_files.id=gpx_id " + "  AND gpx_files.user_id=#{user.id} " + "  AND " + OSM.sql_for_area(bbox, "gps_points.") + "  AND (gps_points.timestamp IS NOT NULL) " + "ORDER BY fileid DESC,ts " + "LIMIT 10000 OFFSET #{start}"
-      else
-        sql = "SELECT latitude*0.0000001 AS lat,longitude*0.0000001 AS lon,gpx_id AS fileid," + "      EXTRACT(EPOCH FROM timestamp) AS ts, gps_points.trackid AS trackid " + " FROM gps_points " + "WHERE " + OSM.sql_for_area(bbox, "gps_points.") + "  AND (gps_points.timestamp IS NOT NULL) " + "ORDER BY fileid DESC,ts " + "LIMIT 10000 OFFSET #{start}"
-      end
-      gpslist = ActiveRecord::Base.connection.select_all sql
-
-      # - Draw GPS trace lines
-
-      r = start_shape
-      gpslist.each do |row|
-        xs = (long2coord(row["lon"].to_f, baselong, masterscale) * 20).floor
-        ys = (lat2coord(row["lat"].to_f, basey, masterscale) * 20).floor
-        xl = [xs, xl].min
-        xr = [xs, xr].max
-        yb = [ys, yb].min
-        yt = [ys, yt].max
-        if row["ts"].to_i - lasttime > 180 || row["fileid"] != lastfile || row["trackid"] != lasttrack # or row['ts'].to_i==lasttime
-          b += start_and_move(xs, ys, "01")
-          absx = xs.floor
-          absy = ys.floor
-        end
-        b += draw_to(absx, absy, xs, ys)
-        absx = xs.floor
-        absy = ys.floor
-        lasttime = row["ts"].to_i
-        lastfile = row["fileid"]
-        lasttrack = row["trackid"]
-        r += [b.slice!(0...80)].pack("B*") while b.length > 80
-      end
-
-      #   (Unwayed segments removed)
-
-      # - Write shape
-
-      b += end_shape
-      r += [b].pack("B*")
-      m += swf_record(2, pack_u16(1) + pack_rect(xl, xr, yb, yt) + r)
-      m += swf_record(4, pack_u16(1) + pack_u16(1))
-
-      # -  Create Flash header and write to browser
-
-      m += swf_record(1, "")                                                                   # Show frame
-      m += swf_record(0, "")                                                                   # End
-
-      m = pack_rect(bounds_left, bounds_right, bounds_bottom, bounds_top) + 0.chr + 12.chr + pack_u16(1) + m
-      m = "FWS" + 6.chr + pack_u32(m.length + 8) + m
-
-      render :body => m, :content_type => "application/x-shockwave-flash"
-    end
-
-    private
-
-    # =======================================================================
-    # SWF functions
-
-    # -----------------------------------------------------------------------
-    # Line-drawing
-
-    def start_shape
-      s = 0.chr                                    # No fill styles
-      s += 2.chr                                   # Two line styles
-      s += pack_u16(0) + 0.chr + 255.chr + 255.chr # Width 5, RGB #00FFFF
-      s += pack_u16(0) + 255.chr + 0.chr + 255.chr # Width 5, RGB #FF00FF
-      s += 34.chr # 2 fill, 2 line index bits
-      s
-    end
-
-    def end_shape
-      "000000"
-    end
-
-    def start_and_move(x, y, col)
-      d = "001001"     # Line style change, moveTo
-      l = [length_sb(x), length_sb(y)].max
-      d += format("%05b%0*b%0*b", l, l, x, l, y)
-      d += col # Select line style
-      d
-    end
-
-    def draw_to(absx, absy, x, y)
-      dx = x - absx
-      dy = y - absy
-
-      # Split the line up if there's anything>16383, because
-      # that would overflow the 4 bits allowed for length
-      mstep = [dx.abs / 16383, dy.abs / 16383, 1].max.ceil
-      xstep = dx / mstep
-      ystep = dy / mstep
-      d = ""
-      1.upto(mstep).each do
-        d += draw_section(x, y, x + xstep, y + ystep)
-        x += xstep
-        y += ystep
-      end
-      d
-    end
-
-    def draw_section(x1, y1, x2, y2)
-      d = "11"                                                                                 # TypeFlag, EdgeFlag
-      dx = x2 - x1
-      dy = y2 - y1
-      l = [length_sb(dx), length_sb(dy)].max
-      d += format("%04b", l - 2)
-      d += "1"                                                                                 # GeneralLine
-      d += format("%0*b%0*b", l, dx, l, dy)
-      d
-    end
-
-    # -----------------------------------------------------------------------
-    # Specific data types
-
-    # SWF data block type
-
-    def swf_record(id, r)
-      if r.length > 62
-        # Long header: tag id, 0x3F, length
-        pack_u16((id << 6) + 0x3F) + pack_u32(r.length) + r
-      else
-        # Short header: tag id, length
-        pack_u16((id << 6) + r.length) + r
-      end
-    end
-
-    # SWF RECT type
-
-    def pack_rect(a, b, c, d)
-      l = [length_sb(a),
-           length_sb(b),
-           length_sb(c),
-           length_sb(d)].max
-      # create binary string (00111001 etc.) - 5-byte length, then bbox
-      n = format("%05b%0*b%0*b%0*b%0*b", l, l, a, l, b, l, c, l, d)
-      # pack into byte string
-      [n].pack("B*")
-    end
-
-    # -----------------------------------------------------------------------
-    # Generic pack functions
-
-    def pack_u16(n)
-      [n.floor].pack("v")
-    end
-
-    def pack_u32(n)
-      [n.floor].pack("V")
-    end
-
-    # Find number of bits required to store arbitrary-length binary
-
-    def length_sb(n)
-      Math.frexp(n + (n.zero? ? 1 : 0))[1] + 1
-    end
-
-    # ====================================================================
-    # Co-ordinate conversion
-    # (this is duplicated from amf_controller, should probably share)
-
-    def lat2coord(a, basey, masterscale)
-      -(lat2y(a) - basey) * masterscale
-    end
-
-    def long2coord(a, baselong, masterscale)
-      (a - baselong) * masterscale
-    end
-
-    def lat2y(a)
-      180 / Math::PI * Math.log(Math.tan(Math::PI / 4 + a * (Math::PI / 180) / 2))
-    end
-  end
-end
index fb1e7b702a6aa92250f24eb914be3633c4ca4cfc..f827bac3f165a00d1f94313975c291fbcf329979 100644 (file)
@@ -8,38 +8,40 @@ class DiaryEntriesController < ApplicationController
   authorize_resource
 
   before_action :lookup_user, :only => [:show, :comments]
-  before_action :check_database_writable, :only => [:new, :edit, :comment, :hide, :hidecomment, :subscribe, :unsubscribe]
-  before_action :allow_thirdparty_images, :only => [:new, :edit, :index, :show, :comments]
+  before_action :check_database_writable, :only => [:new, :create, :edit, :update, :comment, :hide, :hidecomment, :subscribe, :unsubscribe]
+  before_action :allow_thirdparty_images, :only => [:new, :create, :edit, :update, :index, :show, :comments]
 
   def new
     @title = t "diary_entries.new.title"
 
-    if request.post?
-      @diary_entry = DiaryEntry.new(entry_params)
-      @diary_entry.user = current_user
+    default_lang = current_user.preferences.where(:k => "diary.default_language").first
+    lang_code = default_lang ? default_lang.v : current_user.preferred_language
+    @diary_entry = DiaryEntry.new(entry_params.merge(:language_code => lang_code))
+    set_map_location
+    render :action => "new"
+  end
 
-      if @diary_entry.save
-        default_lang = current_user.preferences.where(:k => "diary.default_language").first
-        if default_lang
-          default_lang.v = @diary_entry.language_code
-          default_lang.save!
-        else
-          current_user.preferences.create(:k => "diary.default_language", :v => @diary_entry.language_code)
-        end
+  def create
+    @title = t "diary_entries.new.title"
 
-        # Subscribe user to diary comments
-        @diary_entry.subscriptions.create(:user => current_user)
+    @diary_entry = DiaryEntry.new(entry_params)
+    @diary_entry.user = current_user
 
-        redirect_to :action => "index", :display_name => current_user.display_name
+    if @diary_entry.save
+      default_lang = current_user.preferences.where(:k => "diary.default_language").first
+      if default_lang
+        default_lang.v = @diary_entry.language_code
+        default_lang.save!
       else
-        render :action => "edit"
+        current_user.preferences.create(:k => "diary.default_language", :v => @diary_entry.language_code)
       end
+
+      # Subscribe user to diary comments
+      @diary_entry.subscriptions.create(:user => current_user)
+
+      redirect_to :action => "index", :display_name => current_user.display_name
     else
-      default_lang = current_user.preferences.where(:k => "diary.default_language").first
-      lang_code = default_lang ? default_lang.v : current_user.preferred_language
-      @diary_entry = DiaryEntry.new(entry_params.merge(:language_code => lang_code))
-      set_map_location
-      render :action => "edit"
+      render :action => "new"
     end
   end
 
@@ -47,19 +49,32 @@ class DiaryEntriesController < ApplicationController
     @title = t "diary_entries.edit.title"
     @diary_entry = DiaryEntry.find(params[:id])
 
+    redirect_to diary_entry_path(@diary_entry.user, @diary_entry) if current_user != @diary_entry.user
+
+    set_map_location
+  rescue ActiveRecord::RecordNotFound
+    render :action => "no_such_entry", :status => :not_found
+  end
+
+  def update
+    @title = t "diary_entries.edit.title"
+    @diary_entry = DiaryEntry.find(params[:id])
+
     if current_user != @diary_entry.user
       redirect_to diary_entry_path(@diary_entry.user, @diary_entry)
     elsif params[:diary_entry] && @diary_entry.update(entry_params)
       redirect_to diary_entry_path(@diary_entry.user, @diary_entry)
+    else
+      set_map_location
+      render :action => "edit"
     end
-
-    set_map_location
   rescue ActiveRecord::RecordNotFound
     render :action => "no_such_entry", :status => :not_found
   end
 
   def comment
     @entry = DiaryEntry.find(params[:id])
+    @comments = @entry.visible_comments
     @diary_comment = @entry.comments.build(comment_params)
     @diary_comment.user = current_user
     if @diary_comment.save
@@ -143,7 +158,7 @@ class DiaryEntriesController < ApplicationController
     @page = (params[:page] || 1).to_i
     @page_size = 20
 
-    @entries = @entries.visible
+    @entries = @entries.visible unless current_user&.administrator?
     @entries = @entries.order("created_at DESC")
     @entries = @entries.offset((@page - 1) * @page_size)
     @entries = @entries.limit(@page_size)
@@ -166,6 +181,10 @@ class DiaryEntriesController < ApplicationController
     else
       @entries = DiaryEntry.joins(:user).where(:users => { :status => %w[active confirmed] })
 
+      # Items can't be flagged as deleted in the RSS format.
+      # For the general feeds, allow a delay before publishing, to help spam fighting
+      @entries = @entries.where("created_at < :time", :time => Settings.diary_feed_delay.hours.ago)
+
       if params[:language]
         @entries = @entries.where(:language_code => params[:language])
         @title = t("diary_entries.feed.language.title", :language_name => Language.find(params[:language]).english_name)
@@ -177,7 +196,6 @@ class DiaryEntriesController < ApplicationController
         @link = url_for :action => "index", :host => Settings.server_url, :protocol => Settings.server_protocol
       end
     end
-
     @entries = @entries.visible.includes(:user).order("created_at DESC").limit(20)
   end
 
@@ -185,6 +203,7 @@ class DiaryEntriesController < ApplicationController
     @entry = @user.diary_entries.visible.where(:id => params[:id]).first
     if @entry
       @title = t "diary_entries.show.title", :user => params[:display_name], :title => @entry.title
+      @comments = current_user&.administrator? ? @entry.comments : @entry.visible_comments
     else
       @title = t "diary_entries.no_such_entry.title", :id => params[:id]
       render :action => "no_such_entry", :status => :not_found
@@ -197,12 +216,24 @@ class DiaryEntriesController < ApplicationController
     redirect_to :action => "index", :display_name => entry.user.display_name
   end
 
+  def unhide
+    entry = DiaryEntry.find(params[:id])
+    entry.update(:visible => true)
+    redirect_to :action => "index", :display_name => entry.user.display_name
+  end
+
   def hidecomment
     comment = DiaryComment.find(params[:comment])
     comment.update(:visible => false)
     redirect_to diary_entry_path(comment.diary_entry.user, comment.diary_entry)
   end
 
+  def unhidecomment
+    comment = DiaryComment.find(params[:comment])
+    comment.update(:visible => true)
+    redirect_to diary_entry_path(comment.diary_entry.user, comment.diary_entry)
+  end
+
   def comments
     @comment_pages, @comments = paginate(:diary_comments,
                                          :conditions => {
index 9b97fa0a1f08af46d9d5657c12c75ad070acc052..e41330c4b40306e808423796c70bf6ef5053a93f 100644 (file)
@@ -36,7 +36,7 @@ class UsersController < ApplicationController
   def save
     @title = t "users.new.title"
 
-    if params[:decline]
+    if params[:decline] || !(params[:read_tou] && params[:read_ct])
       if current_user
         current_user.terms_seen = true
 
@@ -47,12 +47,15 @@ class UsersController < ApplicationController
         else
           redirect_to :action => :account, :display_name => current_user.display_name
         end
-      else
+      elsif params[:decline]
         redirect_to t("users.terms.declined")
+      else
+        redirect_to :action => :terms
       end
     elsif current_user
       unless current_user.terms_agreed?
         current_user.consider_pd = params[:user][:consider_pd]
+        current_user.tou_agreed = Time.now.getutc
         current_user.terms_agreed = Time.now.getutc
         current_user.terms_seen = true
 
@@ -73,6 +76,7 @@ class UsersController < ApplicationController
         current_user.creation_ip = request.remote_ip
         current_user.languages = http_accept_language.user_preferred_languages
         current_user.terms_agreed = Time.now.getutc
+        current_user.tou_agreed = Time.now.getutc
         current_user.terms_seen = true
 
         if current_user.auth_uid.blank?
index 668eeb0e5aa66668ee1118c43bbf36fa14600040..ed9997f6d778f7744a66d8ab02abe3c28c6ddb1d 100644 (file)
@@ -22,4 +22,19 @@ module UserBlocksHelper
       I18n.t("user_blocks.helper.time_past", :time => friendly_date(last_time)).html_safe
     end
   end
+
+  def block_duration_in_words(duration)
+    parts = ActiveSupport::Duration.build(duration).parts
+    if duration < 1.day
+      I18n.t("user_blocks.helper.block_duration.hours", :count => parts[:hours])
+    elsif duration < 1.week
+      I18n.t("user_blocks.helper.block_duration.days", :count => parts[:days])
+    elsif duration < 1.month
+      I18n.t("user_blocks.helper.block_duration.weeks", :count => parts[:weeks])
+    elsif duration < 1.year
+      I18n.t("user_blocks.helper.block_duration.months", :count => parts[:months])
+    else
+      I18n.t("user_blocks.helper.block_duration.years", :count => parts[:years])
+    end
+  end
 end
index 095bad89b942d07e62ee74b18e999100905c456b..cf83e673c0ecfbcfdf48dd82c73d74104eae7516 100644 (file)
@@ -2,7 +2,7 @@
 #
 # Table name: acls
 #
-#  id      :integer          not null, primary key
+#  id      :bigint(8)        not null, primary key
 #  address :inet
 #  k       :string           not null
 #  v       :string
@@ -10,7 +10,9 @@
 #
 # Indexes
 #
-#  acls_k_idx  (k)
+#  acls_k_idx             (k)
+#  index_acls_on_address  (address) USING gist
+#  index_acls_on_domain   (domain)
 #
 
 class Acl < ActiveRecord::Base
index b98d213c713015e205c7eaaaa4ab4853278b41ce..d57086a8e040062af55313a99cbb8b8dd477ab60 100644 (file)
@@ -2,8 +2,8 @@
 #
 # Table name: changesets
 #
-#  id          :integer          not null, primary key
-#  user_id     :integer          not null
+#  id          :bigint(8)        not null, primary key
+#  user_id     :bigint(8)        not null
 #  created_at  :datetime         not null
 #  min_lat     :integer
 #  max_lat     :integer
@@ -14,7 +14,7 @@
 #
 # Indexes
 #
-#  changesets_bbox_idx                (min_lat,max_lat,min_lon,max_lon)
+#  changesets_bbox_idx                (min_lat,max_lat,min_lon,max_lon) USING gist
 #  changesets_closed_at_idx           (closed_at)
 #  changesets_created_at_idx          (created_at)
 #  changesets_user_id_created_at_idx  (user_id,created_at)
index a0ad6f2ea4a17dc5f3db58d3d01c1bb4d646886b..529641c7e94ffb968be8fd31e0532e0e4eb97c81 100644 (file)
@@ -3,8 +3,8 @@
 # Table name: changeset_comments
 #
 #  id           :integer          not null, primary key
-#  changeset_id :integer          not null
-#  author_id    :integer          not null
+#  changeset_id :bigint(8)        not null
+#  author_id    :bigint(8)        not null
 #  body         :text             not null
 #  created_at   :datetime         not null
 #  visible      :boolean          not null
index 942fafb2a34d61646d2e38d9f2fd4044d34c81b5..751029e03995c60835dc1d7eb0ab79a21fb48b3e 100644 (file)
@@ -2,7 +2,7 @@
 #
 # Table name: changeset_tags
 #
-#  changeset_id :integer          not null, primary key
+#  changeset_id :bigint(8)        not null, primary key
 #  k            :string           default(""), not null, primary key
 #  v            :string           default(""), not null
 #
index ade7a64ea317fd38d00dc5b5ef6d5318068bc904..4ae21be8881922e49c799ba0868e93ba0f5e77f5 100644 (file)
@@ -2,9 +2,9 @@
 #
 # Table name: diary_comments
 #
-#  id             :integer          not null, primary key
-#  diary_entry_id :integer          not null
-#  user_id        :integer          not null
+#  id             :bigint(8)        not null, primary key
+#  diary_entry_id :bigint(8)        not null
+#  user_id        :bigint(8)        not null
 #  body           :text             not null
 #  created_at     :datetime         not null
 #  updated_at     :datetime         not null
index d6124199352481895af958f7ae5c25b7e8c02c1a..4affe8b597f1269e92839fa201ba9bc683ee93e7 100644 (file)
@@ -2,8 +2,8 @@
 #
 # Table name: diary_entries
 #
-#  id            :integer          not null, primary key
-#  user_id       :integer          not null
+#  id            :bigint(8)        not null, primary key
+#  user_id       :bigint(8)        not null
 #  title         :string           not null
 #  body          :text             not null
 #  created_at    :datetime         not null
index 6d24c4598c42af2eb22c98732c05f605f1d6a166..6e9a103adafac0d1315ecd1e956ff32cfc0abc2e 100644 (file)
@@ -2,8 +2,8 @@
 #
 # Table name: diary_entry_subscriptions
 #
-#  user_id        :integer          not null, primary key
-#  diary_entry_id :integer          not null, primary key
+#  user_id        :bigint(8)        not null, primary key
+#  diary_entry_id :bigint(8)        not null, primary key
 #
 # Indexes
 #
index 86da87b932ac99b332e95c864f346c12cc8a7ba4..615da10767c1a9c08bf9e2895b8859df195ae239 100644 (file)
@@ -2,9 +2,9 @@
 #
 # Table name: friends
 #
-#  id             :integer          not null, primary key
-#  user_id        :integer          not null
-#  friend_user_id :integer          not null
+#  id             :bigint(8)        not null, primary key
+#  user_id        :bigint(8)        not null
+#  friend_user_id :bigint(8)        not null
 #
 # Indexes
 #
index e3a3ec921b62f25cdfa13713aabb2b2c2490f371..4ab129e9184f6593012bacd98c3de504ca06662c 100644 (file)
@@ -2,13 +2,13 @@
 #
 # Table name: messages
 #
-#  id                :integer          not null, primary key
-#  from_user_id      :integer          not null
+#  id                :bigint(8)        not null, primary key
+#  from_user_id      :bigint(8)        not null
 #  title             :string           not null
 #  body              :text             not null
 #  sent_on           :datetime         not null
 #  message_read      :boolean          default(FALSE), not null
-#  to_user_id        :integer          not null
+#  to_user_id        :bigint(8)        not null
 #  to_user_visible   :boolean          default(TRUE), not null
 #  from_user_visible :boolean          default(TRUE), not null
 #  body_format       :enum             default("markdown"), not null
index be561fb5daa3eb15b30c9810d02d9aee5aa4eda2..91a1dbc41c3bec52c9813ae66d95dbe888b4f20a 100644 (file)
@@ -2,14 +2,14 @@
 #
 # Table name: current_nodes
 #
-#  id           :integer          not null, primary key
+#  id           :bigint(8)        not null, primary key
 #  latitude     :integer          not null
 #  longitude    :integer          not null
-#  changeset_id :integer          not null
+#  changeset_id :bigint(8)        not null
 #  visible      :boolean          not null
 #  timestamp    :datetime         not null
-#  tile         :integer          not null
-#  version      :integer          not null
+#  tile         :bigint(8)        not null
+#  version      :bigint(8)        not null
 #
 # Indexes
 #
index 43915bc1265df1155f31dc51bf8b457620600bbe..86404599b266de54e2896473cbb4abfdb0b10697 100644 (file)
@@ -2,7 +2,7 @@
 #
 # Table name: current_node_tags
 #
-#  node_id :integer          not null, primary key
+#  node_id :bigint(8)        not null, primary key
 #  k       :string           default(""), not null, primary key
 #  v       :string           default(""), not null
 #
index d96addbe789f3d7f62314c0d68a12e5228fae97d..d4f9a801f41642877a0e1ca13cdb609fe11f9405 100644 (file)
@@ -2,10 +2,10 @@
 #
 # Table name: notes
 #
-#  id         :integer          not null, primary key
+#  id         :bigint(8)        not null, primary key
 #  latitude   :integer          not null
 #  longitude  :integer          not null
-#  tile       :integer          not null
+#  tile       :bigint(8)        not null
 #  updated_at :datetime         not null
 #  created_at :datetime         not null
 #  status     :enum             not null
index f94032e1e3e785a398b6e5f1d06afe195f06d331..388f890a67c4fb5ea0939be59cef429475e2ca0a 100644 (file)
@@ -2,18 +2,18 @@
 #
 # Table name: note_comments
 #
-#  id         :integer          not null, primary key
-#  note_id    :integer          not null
+#  id         :bigint(8)        not null, primary key
+#  note_id    :bigint(8)        not null
 #  visible    :boolean          not null
 #  created_at :datetime         not null
 #  author_ip  :inet
-#  author_id  :integer
+#  author_id  :bigint(8)
 #  body       :text
 #  event      :enum
 #
 # Indexes
 #
-#  index_note_comments_on_body        (to_tsvector('english'::regconfig, body))
+#  index_note_comments_on_body        (to_tsvector('english'::regconfig, body)) USING gin
 #  index_note_comments_on_created_at  (created_at)
 #  note_comments_note_id_idx          (note_id)
 #
index 9690dc46ca807106f7080f41e88e9e94048d6e78..cc2327d0883f9b1ef2034d7957c1f62c84057542 100644 (file)
@@ -2,14 +2,14 @@
 #
 # Table name: nodes
 #
-#  node_id      :integer          not null, primary key
+#  node_id      :bigint(8)        not null, primary key
 #  latitude     :integer          not null
 #  longitude    :integer          not null
-#  changeset_id :integer          not null
+#  changeset_id :bigint(8)        not null
 #  visible      :boolean          not null
 #  timestamp    :datetime         not null
-#  tile         :integer          not null
-#  version      :integer          not null, primary key
+#  tile         :bigint(8)        not null
+#  version      :bigint(8)        not null, primary key
 #  redaction_id :integer
 #
 # Indexes
index 77b78751b4684a81a720ebe3069cf441a1a6fab4..a3e1c3aaf4a49d4a22d291ab942c7cc84b4e0f32 100644 (file)
@@ -2,8 +2,8 @@
 #
 # Table name: node_tags
 #
-#  node_id :integer          not null, primary key
-#  version :integer          not null, primary key
+#  node_id :bigint(8)        not null, primary key
+#  version :bigint(8)        not null, primary key
 #  k       :string           default(""), not null, primary key
 #  v       :string           default(""), not null
 #
index 3470561cee4df036a318d2901a7c59752ae19bbd..109f7d968da1eba835f1fbcd557048ce7cd8207b 100644 (file)
@@ -2,10 +2,10 @@
 #
 # Table name: relations
 #
-#  relation_id  :integer          default(0), not null, primary key
-#  changeset_id :integer          not null
+#  relation_id  :bigint(8)        default(0), not null, primary key
+#  changeset_id :bigint(8)        not null
 #  timestamp    :datetime         not null
-#  version      :integer          not null, primary key
+#  version      :bigint(8)        not null, primary key
 #  visible      :boolean          default(TRUE), not null
 #  redaction_id :integer
 #
index a746374357d6b47a74b750e191a297646cce43ca..f8d4a359f920cfca74818bb20c935b69deaf8af6 100644 (file)
@@ -2,11 +2,11 @@
 #
 # Table name: relation_members
 #
-#  relation_id :integer          default(0), not null, primary key
+#  relation_id :bigint(8)        default(0), not null, primary key
 #  member_type :enum             not null
-#  member_id   :integer          not null
+#  member_id   :bigint(8)        not null
 #  member_role :string           not null
-#  version     :integer          default(0), not null, primary key
+#  version     :bigint(8)        default(0), not null, primary key
 #  sequence_id :integer          default(0), not null, primary key
 #
 # Indexes
index 4a247949c48c90d298e84c4c9e6034ddaf5e4bb3..c674f708bc0214a097ccc27172a7bea0d7a2e488 100644 (file)
@@ -2,10 +2,10 @@
 #
 # Table name: relation_tags
 #
-#  relation_id :integer          default(0), not null, primary key
+#  relation_id :bigint(8)        default(0), not null, primary key
 #  k           :string           default(""), not null, primary key
 #  v           :string           default(""), not null
-#  version     :integer          not null, primary key
+#  version     :bigint(8)        not null, primary key
 #
 # Foreign Keys
 #
index baca05d33549738c391d373602782515a7a94eff..31e230c3869e2ee197f46a8de823834319536c5f 100644 (file)
@@ -2,10 +2,10 @@
 #
 # Table name: ways
 #
-#  way_id       :integer          default(0), not null, primary key
-#  changeset_id :integer          not null
+#  way_id       :bigint(8)        default(0), not null, primary key
+#  changeset_id :bigint(8)        not null
 #  timestamp    :datetime         not null
-#  version      :integer          not null, primary key
+#  version      :bigint(8)        not null, primary key
 #  visible      :boolean          default(TRUE), not null
 #  redaction_id :integer
 #
index e1627d3faa3091c002bef4fbb2b0f07a56fd2492..836e76e47eb112e2764e6fc4c8876ab30cbdff17 100644 (file)
@@ -2,10 +2,10 @@
 #
 # Table name: way_nodes
 #
-#  way_id      :integer          not null, primary key
-#  node_id     :integer          not null
-#  version     :integer          not null, primary key
-#  sequence_id :integer          not null, primary key
+#  way_id      :bigint(8)        not null, primary key
+#  node_id     :bigint(8)        not null
+#  version     :bigint(8)        not null, primary key
+#  sequence_id :bigint(8)        not null, primary key
 #
 # Indexes
 #
index 5832f6d4fa2bad0addb1b093cfd83d53124ce051..ae4ad605e70b1365f27d64c714b3085ec8f16603 100644 (file)
@@ -2,10 +2,10 @@
 #
 # Table name: way_tags
 #
-#  way_id  :integer          default(0), not null, primary key
+#  way_id  :bigint(8)        default(0), not null, primary key
 #  k       :string           not null, primary key
 #  v       :string           not null
-#  version :integer          not null, primary key
+#  version :bigint(8)        not null, primary key
 #
 # Foreign Keys
 #
index e6d7487066fed12e879442d8e2cae74b9b3c1f81..d9b2a5579c5bf3b72831649b5d4d04cc5ca41326 100644 (file)
@@ -7,7 +7,7 @@
 #  description        :text
 #  created_at         :datetime
 #  updated_at         :datetime
-#  user_id            :integer          not null
+#  user_id            :bigint(8)        not null
 #  description_format :enum             default("markdown"), not null
 #
 # Foreign Keys
index 884e96ed7c120d5c20c2448753d4795df12a273e..bcac9d04bb6a3ad2cbe75ad2fe81cd57147c36b5 100644 (file)
@@ -2,11 +2,11 @@
 #
 # Table name: current_relations
 #
-#  id           :integer          not null, primary key
-#  changeset_id :integer          not null
+#  id           :bigint(8)        not null, primary key
+#  changeset_id :bigint(8)        not null
 #  timestamp    :datetime         not null
 #  visible      :boolean          not null
-#  version      :integer          not null
+#  version      :bigint(8)        not null
 #
 # Indexes
 #
index 3e5cdfca27e1513856f12c4adf04fc89e95c5bd6..7c399c3a88936b1769bb1657cf23c3db232d9e92 100644 (file)
@@ -2,9 +2,9 @@
 #
 # Table name: current_relation_members
 #
-#  relation_id :integer          not null, primary key
+#  relation_id :bigint(8)        not null, primary key
 #  member_type :enum             not null
-#  member_id   :integer          not null
+#  member_id   :bigint(8)        not null
 #  member_role :string           not null
 #  sequence_id :integer          default(0), not null, primary key
 #
index 151615f72b06272f4f634be0fba3eeed3c6ae9b7..b186f505d13142bc751f28428f2f29ce8fc7b53f 100644 (file)
@@ -2,7 +2,7 @@
 #
 # Table name: current_relation_tags
 #
-#  relation_id :integer          not null, primary key
+#  relation_id :bigint(8)        not null, primary key
 #  k           :string           default(""), not null, primary key
 #  v           :string           default(""), not null
 #
index 1a2dfc9e49a6695b10d57b1e3c97bfbdc510cf86..9d710d1ceca99b540065aa6822be470c40cb3702 100644 (file)
@@ -2,11 +2,11 @@
 #
 # Table name: gpx_files
 #
-#  id          :integer          not null, primary key
-#  user_id     :integer          not null
+#  id          :bigint(8)        not null, primary key
+#  user_id     :bigint(8)        not null
 #  visible     :boolean          default(TRUE), not null
 #  name        :string           default(""), not null
-#  size        :integer
+#  size        :bigint(8)
 #  latitude    :float
 #  longitude   :float
 #  timestamp   :datetime         not null
@@ -43,12 +43,7 @@ class Trace < ActiveRecord::Base
   validates :timestamp, :presence => true
   validates :visibility, :inclusion => %w[private public trackable identifiable]
 
-  def destroy
-    super
-    FileUtils.rm_f(trace_name)
-    FileUtils.rm_f(icon_picture_name)
-    FileUtils.rm_f(large_picture_name)
-  end
+  after_destroy :remove_files
 
   def tagstring
     tags.collect(&:tag).join(", ")
@@ -280,7 +275,7 @@ class Trace < ActiveRecord::Base
   def import
     logger.info("GPX Import importing #{name} (#{id}) from #{user.email}")
 
-    gpx = ::GPX::File.new(xml_file)
+    gpx = ::GPX::File.new(trace_name)
 
     f_lat = 0
     f_lon = 0
@@ -343,4 +338,12 @@ class Trace < ActiveRecord::Base
 
     gpx
   end
+
+  private
+
+  def remove_files
+    FileUtils.rm_f(trace_name)
+    FileUtils.rm_f(icon_picture_name)
+    FileUtils.rm_f(large_picture_name)
+  end
 end
index 445688c5554389e66aa90b6e77fb8dca6b354c67..6473c943031134e87a1a9d99189a07614a9066ff 100644 (file)
@@ -6,9 +6,9 @@
 #  trackid   :integer          not null
 #  latitude  :integer          not null
 #  longitude :integer          not null
-#  gpx_id    :integer          not null
+#  gpx_id    :bigint(8)        not null
 #  timestamp :datetime
-#  tile      :integer
+#  tile      :bigint(8)
 #
 # Indexes
 #
index 84b6c6dfa8394404c3757a20145e1a77a6791c82..8d2f4ffface4d307c0d1013ec212781010c8879d 100644 (file)
@@ -2,9 +2,9 @@
 #
 # Table name: gpx_file_tags
 #
-#  gpx_id :integer          default(0), not null
+#  gpx_id :bigint(8)        default(0), not null
 #  tag    :string           not null
-#  id     :integer          not null, primary key
+#  id     :bigint(8)        not null, primary key
 #
 # Indexes
 #
index 9f13108434793d9f027fe67ac7eab81c19324cd5..2979b13d75309cb89a392db02df4fdef3fa6dcb0 100644 (file)
@@ -3,7 +3,7 @@
 # Table name: users
 #
 #  email               :string           not null
-#  id                  :integer          not null, primary key
+#  id                  :bigint(8)        not null, primary key
 #  pass_crypt          :string           not null
 #  creation_time       :datetime         not null
 #  display_name        :string           default(""), not null
@@ -33,7 +33,8 @@
 #  image_use_gravatar  :boolean          default(FALSE), not null
 #  image_content_type  :string
 #  auth_provider       :string
-#  home_tile           :integer
+#  home_tile           :bigint(8)
+#  tou_agreed          :datetime
 #
 # Indexes
 #
index 27bc40498b90ba455006ffd054a2eadbb3e7d60f..92cee16cd6e96bcc57e4718042c00a9cc7d57d59 100644 (file)
@@ -3,12 +3,12 @@
 # Table name: user_blocks
 #
 #  id            :integer          not null, primary key
-#  user_id       :integer          not null
-#  creator_id    :integer          not null
+#  user_id       :bigint(8)        not null
+#  creator_id    :bigint(8)        not null
 #  reason        :text             not null
 #  ends_at       :datetime         not null
 #  needs_view    :boolean          default(FALSE), not null
-#  revoker_id    :integer
+#  revoker_id    :bigint(8)
 #  created_at    :datetime
 #  updated_at    :datetime
 #  reason_format :enum             default("markdown"), not null
index 3963bd02aeb47ade7f6b47faf15293412b63c604..583ced3c56d19ed15de8dd2a4ff6922b37312de8 100644 (file)
@@ -2,7 +2,7 @@
 #
 # Table name: user_preferences
 #
-#  user_id :integer          not null, primary key
+#  user_id :bigint(8)        not null, primary key
 #  k       :string           not null, primary key
 #  v       :string           not null
 #
index adf569a03fe79a5d5827a5e33ddf4cdddb12e94d..f3d48cade4bcfeb53df717b509cc0ab90ac45d39 100644 (file)
@@ -3,11 +3,11 @@
 # Table name: user_roles
 #
 #  id         :integer          not null, primary key
-#  user_id    :integer          not null
+#  user_id    :bigint(8)        not null
 #  role       :enum             not null
 #  created_at :datetime
 #  updated_at :datetime
-#  granter_id :integer          not null
+#  granter_id :bigint(8)        not null
 #
 # Indexes
 #
index 0d1e16e8acead524674dbca9aafb58398fe6cb14..844357d8d0242000db462047ea6be54bd01342c1 100644 (file)
@@ -2,8 +2,8 @@
 #
 # Table name: user_tokens
 #
-#  id      :integer          not null, primary key
-#  user_id :integer          not null
+#  id      :bigint(8)        not null, primary key
+#  user_id :bigint(8)        not null
 #  token   :string           not null
 #  expiry  :datetime         not null
 #  referer :text
index ddb82ed1ed486965c4d4fe873decdb0e1f0f2e11..6fcaf39cc7c021801adc22e054820834430b7353 100644 (file)
@@ -2,11 +2,11 @@
 #
 # Table name: current_ways
 #
-#  id           :integer          not null, primary key
-#  changeset_id :integer          not null
+#  id           :bigint(8)        not null, primary key
+#  changeset_id :bigint(8)        not null
 #  timestamp    :datetime         not null
 #  visible      :boolean          not null
-#  version      :integer          not null
+#  version      :bigint(8)        not null
 #
 # Indexes
 #
index 5c09cd740cefc92b442ed4dcff59733e6c310aa6..0788a631c8c9c3969ea79dc84988d81fd61f58b6 100644 (file)
@@ -2,9 +2,9 @@
 #
 # Table name: current_way_nodes
 #
-#  way_id      :integer          not null, primary key
-#  node_id     :integer          not null
-#  sequence_id :integer          not null, primary key
+#  way_id      :bigint(8)        not null, primary key
+#  node_id     :bigint(8)        not null
+#  sequence_id :bigint(8)        not null, primary key
 #
 # Indexes
 #
index c4df0abb53904bf9b733ef5110f698b01dd123df..6637c158535694aa017e2719f79b067913cf9527 100644 (file)
@@ -2,7 +2,7 @@
 #
 # Table name: current_way_tags
 #
-#  way_id :integer          not null, primary key
+#  way_id :bigint(8)        not null, primary key
 #  k      :string           default(""), not null, primary key
 #  v      :string           default(""), not null
 #
index 8679f5a08c44fe60fa21bb8e5911241c59ac76b0..639ac9a191f170e055db979142739c8f179dbb07 100644 (file)
@@ -1,4 +1,4 @@
-<div class="clearfix diary-comment">
+<div class="clearfix diary-comment<%= " deemphasize" unless diary_comment.visible? %>">
   <%= user_thumbnail diary_comment.user %>
   <p class="deemphasize comment-heading" id="comment<%= diary_comment.id %>"><%= raw(t(".comment_from", :link_user => (link_to h(diary_comment.user.display_name), user_path(diary_comment.user)), :comment_created_at => link_to(l(diary_comment.created_at, :format => :friendly), :anchor => "comment#{diary_comment.id}"))) %>
     <% if current_user and diary_comment.user.id != current_user.id %>
@@ -9,7 +9,11 @@
   <div class="richtext"><%= diary_comment.body.to_html %></div>
   <% if can? :hidecomment, DiaryEntry %>
     <span>
-      <%= link_to t(".hide_link"), hide_diary_comment_path(:display_name => diary_comment.diary_entry.user.display_name, :id => diary_comment.diary_entry.id, :comment => diary_comment.id), :method => :post, :data => { :confirm => t(".confirm") } %>
+      <% if diary_comment.visible? %>
+        <%= link_to t(".hide_link"), hide_diary_comment_path(:display_name => diary_comment.diary_entry.user.display_name, :id => diary_comment.diary_entry.id, :comment => diary_comment.id), :method => :post, :data => { :confirm => t(".confirm") } %>
+      <% else %>
+        <%= link_to t(".unhide_link"), unhide_diary_comment_path(:display_name => diary_comment.diary_entry.user.display_name, :id => diary_comment.diary_entry.id, :comment => diary_comment.id), :method => :post, :data => { :confirm => t(".confirm") } %>
+      <% end %>
     </span>
   <% end %>
 </div>
index 0aff1b113ef3c8c2c4b959eae74d00ff2d953356..c7dbec38616f8a623382905127af877b0cb67250 100644 (file)
@@ -1,4 +1,4 @@
-<div class='diary_post'>
+<div class='diary_post<%= " deemphasize" unless diary_entry.visible %>'>
   <div class='post_heading clearfix'>
     <% if !@user %>
       <%= user_thumbnail diary_entry.user %>
 
     <% if can? :hide, DiaryEntry %>
       <li>
-        <%= link_to t(".hide_link"), hide_diary_entry_path(:display_name => diary_entry.user.display_name, :id => diary_entry.id), :method => :post, :data => { :confirm => t(".confirm") } %>
+        <% if diary_entry.visible %>
+          <%= link_to t(".hide_link"), hide_diary_entry_path(:display_name => diary_entry.user.display_name, :id => diary_entry.id), :method => :post, :data => { :confirm => t(".confirm") } %>
+        <% else %>
+          <%= link_to t(".unhide_link"), unhide_diary_entry_path(:display_name => diary_entry.user.display_name, :id => diary_entry.id), :method => :post, :data => { :confirm => t(".confirm") } %>
+        <% end %>
       </li>
     <% end %>
   </ul>
diff --git a/app/views/diary_entries/_form.html.erb b/app/views/diary_entries/_form.html.erb
new file mode 100644 (file)
index 0000000..0d8f7ef
--- /dev/null
@@ -0,0 +1,35 @@
+<div class="diary_entry standard-form">
+  <fieldset>
+    <div class='form-row'>
+      <label class="standard-label"><%= t ".subject" -%></label>
+      <%= f.text_field :title, :class => "richtext_title" %>
+    </div>
+    <div class='form-row'>
+      <label class="standard-label"><%= t ".body" -%></label>
+      <%= richtext_area :diary_entry, :body, :cols => 80, :rows => 20, :format => @diary_entry.body_format %>
+    </div>
+    <div class='form-row'>
+      <label class="standard-label"><%= t ".language" -%></label>
+      <%= f.collection_select :language_code, Language.order(:english_name), :code, :name %>
+  </div>
+  </fieldset>
+  <fieldset class='location'>
+    <label class="standard-label"><%= t ".location" -%></label>
+    <%= content_tag "div", "", :id => "map", :data => { :lat => @lat, :lon => @lon, :zoom => @zoom } %>
+    <div class='form-row clearfix'>
+      <div class='form-column'>
+        <label class="secondary standard-label"><%= t ".latitude" -%></label>
+        <%= f.text_field :latitude, :size => 20, :id => "latitude" %>
+      </div>
+      <div class='form-column'>
+        <label class="secondary standard-label"><%= t ".longitude" -%></label>
+        <%= f.text_field :longitude, :size => 20, :id => "longitude" %>
+      </div>
+      <div class='form-column'>
+        <a href="#" id="usemap"><%= t ".use_map_link" -%></a>
+      </div>
+    </div>
+  </fieldset>
+
+  <%= f.submit %>
+</div>
index 62aed884c08296ee8aa61cc20135f493655ab2d8..5ea6193280c357e5d55e2036df03aad1da49bdfe 100644 (file)
@@ -8,44 +8,6 @@
 
 <%= error_messages_for "diary_entry" %>
 
-<%= form_for :diary_entry do |f| %>
-  <div class="diary_entry standard-form">
-    <fieldset>
-      <div class='form-row'>
-        <label class="standard-label"><%= t ".subject" -%></label>
-        <%= f.text_field :title, :class => "richtext_title" %>
-      </div>
-      <div class='form-row'>
-        <label class="standard-label"><%= t ".body" -%></label>
-        <%= richtext_area :diary_entry, :body, :cols => 80, :rows => 20, :format => @diary_entry.body_format %>
-      </div>
-      <div class='form-row'>
-        <label class="standard-label"><%= t ".language" -%></label>
-        <%= f.collection_select :language_code, Language.order(:english_name), :code, :name %>
-    </div>
-    </fieldset>
-    <fieldset class='location'>
-      <label class="standard-label"><%= t ".location" -%></label>
-      <%= content_tag "div", "", :id => "map", :data => { :lat => @lat, :lon => @lon, :zoom => @zoom } %>
-      <div class='form-row clearfix'>
-        <div class='form-column'>
-          <label class="secondary standard-label"><%= t ".latitude" -%></label>
-          <%= f.text_field :latitude, :size => 20, :id => "latitude" %>
-        </div>
-        <div class='form-column'>
-          <label class="secondary standard-label"><%= t ".longitude" -%></label>
-          <%= f.text_field :longitude, :size => 20, :id => "longitude" %>
-        </div>
-        <div class='form-column'>
-          <a href="#" id="usemap"><%= t ".use_map_link" -%></a>
-        </div>
-      </div>
-    </fieldset>
-
-    <% if action_name == 'new' %>
-      <%= submit_tag t("diary_entries.new.publish_button") %>
-    <% else %>
-      <%= submit_tag t(".save_button") %>
-    <% end %>
-  </div>
+<%= form_for @diary_entry, :url => diary_entry_path(current_user, @diary_entry), :html => { :method => :put } do |f| %>
+  <%= render :partial => "form", :locals => { :f => f } %>
 <% end %>
index 4e5dc994de946c43a5882510dd0486096d33b9e5..4610e5fd7403bdc45ce3598949fb9d9a958e8a75 100644 (file)
       <% if @user %>
         <% if @user == current_user %>
           <div>
-            <li><%= link_to image_tag("new.png", :class => "small_icon", :border => 0) + t(".new"), diary_new_path, :title => t(".new_title") %></li>
+            <li><%= link_to image_tag("new.png", :class => "small_icon", :border => 0) + t(".new"), new_diary_entry_path, :title => t(".new_title") %></li>
           </div>
         <% end %>
       <% else %>
         <% if current_user %>
           <div>
-            <li><%= link_to image_tag("new.png", :class => "small_icon", :border => 0) + t(".new"), diary_new_path, :title => t(".new_title") %></li>
+            <li><%= link_to image_tag("new.png", :class => "small_icon", :border => 0) + t(".new"), new_diary_entry_path, :title => t(".new_title") %></li>
           </div>
         <% end %>
       <% end %>
diff --git a/app/views/diary_entries/new.html.erb b/app/views/diary_entries/new.html.erb
new file mode 100644 (file)
index 0000000..dfe69f2
--- /dev/null
@@ -0,0 +1,13 @@
+<% content_for :head do %>
+  <%= javascript_include_tag "diary_entry" %>
+<% end %>
+
+<% content_for :heading do %>
+  <h1><%= @title %></h1>
+<% end %>
+
+<%= error_messages_for "diary_entry" %>
+
+<%= form_for @diary_entry do |f| %>
+  <%= render :partial => "form", :locals => { :f => f } %>
+<% end %>
index 0216aa44729363f100497eceb095d7a4cb45399d..cc761b15d3b03829997cd75a92d14a8238d804ae 100644 (file)
@@ -10,7 +10,7 @@
 
 <a id="comments"></a>
 <div class='comments'>
-<%= render :partial => "diary_comment", :collection => @entry.visible_comments %>
+<%= render :partial => "diary_comment", :collection => @comments %>
 </div>
 
 <div>
@@ -19,9 +19,9 @@
 
     <%= error_messages_for "diary_comment" %>
 
-    <%= form_for :diary_comment, :url => { :action => "comment" } do |f| %>
+    <%= form_for @entry.comments.new, :url => { :action => "comment" } do |f| %>
       <%= richtext_area :diary_comment, :body, :cols => 80, :rows => 15 %>
-      <%= submit_tag t(".save_button") %>
+      <%= f.submit %>
     <% end %>
     <% if @entry.subscribers.exists?(current_user.id) %>
       <div class="diary-subscribe-buttons"><%= link_to t("javascripts.changesets.show.unsubscribe"), diary_entry_unsubscribe_path(:display_name => @entry.user.display_name, :id => @entry.id), :method => :post, :class => :button %></div>
index 13f5bb1925d83c9321266df2a1722bcd718162e9..7ff0948db5e961fa53379ebea39e50c166aeb901 100644 (file)
@@ -20,6 +20,6 @@
   <%= label_tag :reassign, t(".reassign_param") %> <%= check_box_tag :reassign, true %>
   <br />
   <br />
-  <%= submit_tag "Submit" %>
+  <%= f.submit %>
   <% end %>
 </div>
index a2a63b406af9e017bd053937de60c679f4679dbf..725000a1364bd2dd0a6ca9fc343f494ce2f2be08 100644 (file)
@@ -49,7 +49,7 @@
         </li>
       <% end %>
       <li class="compact-hide <%= current_page_class(traces_path) %>"><%= link_to t("layouts.gps_traces"), traces_path %></li>
-      <li class="compact-hide <%= current_page_class(diary_path) %>"><%= link_to t("layouts.user_diaries"), diary_path %></li>
+      <li class="compact-hide <%= current_page_class(diary_entries_path) %>"><%= link_to t("layouts.user_diaries"), diary_entries_path %></li>
       <li class="compact-hide <%= current_page_class(copyright_path) %>"><%= link_to t("layouts.copyright"), copyright_path %></li>
       <li class="compact-hide <%= current_page_class(help_path) %>"><%= link_to t("layouts.help"), help_path %></li>
       <li class="compact-hide <%= current_page_class(about_path) %>"><%= link_to t("layouts.about"), about_path %></li>
@@ -65,7 +65,7 @@
             </li>
           <% end %>
           <li class="<%= current_page_class(traces_path) %>"><%= link_to t("layouts.gps_traces"), traces_path %></li>
-          <li class="<%= current_page_class(diary_path) %>"><%= link_to t("layouts.user_diaries"), diary_path %></li>
+          <li class="<%= current_page_class(diary_entries_path) %>"><%= link_to t("layouts.user_diaries"), diary_entries_path %></li>
           <li class="<%= current_page_class(copyright_path) %>"><%= link_to t("layouts.copyright"), copyright_path %></li>
           <li class="<%= current_page_class(help_path) %>"><%= link_to t("layouts.help"), help_path %></li>
           <li class="<%= current_page_class(about_path) %>"><%= link_to t("layouts.about"), about_path %></li>
index 532f3d71ee335558f36dce2004ad04d23193d233..2429feb52b9f255e5828d94ade93e8b4a19d37e3 100644 (file)
@@ -16,7 +16,7 @@
       <%= richtext_area :message, :body, :cols => 80, :rows => 20 %>
     </div>
     <div class='buttons'>
-      <%= submit_tag t(".send_button") %>
+      <%= f.submit %>
       <%= link_to t(".back_to_inbox"), inbox_messages_path, :class => "deemphasize button" %>
     </div>
   </fieldset>
index d6211778babec739bca6d21d0a76beb90cdc3c7f..d696baae3e336b07c21e31020a661319fb953078 100644 (file)
@@ -4,5 +4,5 @@
 
 <%= form_for @client_application, :url => oauth_client_path(@client_application.user.display_name, @client_application), :html => { :method => :put } do |f| %>
   <%= render :partial => "form", :locals => { :f => f } %>
-  <%= submit_tag t ".submit" %>
+  <%= f.submit %>
 <% end %>
index 0a49f48f88150946550cd7c8142181457a5aa08e..d9cc05d0224f9922143e055710f8b75531099f76 100644 (file)
@@ -3,8 +3,8 @@
 <% end %>
 
 <div class='standard-form'>
-  <%= form_for :client_application, :url => { :action => :create } do |f| %>
+  <%= form_for @client_application, :url => { :action => :create } do |f| %>
     <%= render :partial => "form", :locals => { :f => f } %>
-    <%= submit_tag t(".submit") %>
+    <%= f.submit %>
   <% end %>
 </div>
index 72676013ed3044ae8f7723a17a04655a7543b3b0..cef6188596d756f9c8709238725b7b6954edb640 100644 (file)
@@ -16,6 +16,6 @@
     <%= richtext_area :redaction, :description, :cols => 80, :rows => 20, :format => @redaction.description_format %>
   </p>
   <p>
-    <%= f.submit t(".submit") %>
+    <%= f.submit %>
   </p>
 <% end %>
index 9f2adac19adc483003807bb646af6f8f92fdd889..a76d8ec48d12e6f82650742c6d34a2fe5fe00dc1 100644 (file)
@@ -15,6 +15,6 @@
     <%= richtext_area :redaction, :description, :cols => 80, :rows => 20, :format => @redaction.description_format %>
   </p>
   <p>
-    <%= f.submit t(".submit") %>
+    <%= f.submit %>
   </p>
 <% end %>
index 219e0ab6b0df3cf11e5eb9f0cd58f5414e25595a..886aaf006434f9069aee2338a74a5aa9d39a9cd2 100644 (file)
@@ -17,7 +17,7 @@
 
   <div class='section'>
     <h2><div class='icon community'></div><%= t ".community_driven_title" %></h2>
-    <p><%= t ".community_driven_html", :diary_path => diary_path %></p>
+    <p><%= t ".community_driven_html", :diary_path => diary_entries_path %></p>
   </div>
 
   <div class='section' id='open-data'>
index c17660db39757d40fbe11ab2dc3985bf843f9a87..2deae8ac2bbe82e1a1ca5ae27e8a5b528fd700e0 100644 (file)
@@ -50,6 +50,6 @@
 
 </div>
 
-<%= submit_tag t ".save_button" %>
+<%= f.submit %>
 
 <% end %>
index 51cd1630819b1d826e92c0e8d6763861ca7b203d..fc6a9f1a9aeda4bc56a16df61a2be40f3e778e7a 100644 (file)
@@ -27,7 +27,7 @@
       </div>
     </fieldset>
 
-    <%= submit_tag t(".upload_button") %>
+    <%= f.submit %>
     <span class="form-help deemphasize"><a href="<%= t ".help_url" %>"><%= t ".help" %></a></span>
   </div>
 <% end %>
index 82757af8346e6aa65268bc72375903760b39f0c0..88d7e4f23462feec3d75ab4954a6b6905f94ca97 100644 (file)
   </p>
   <p>
     <%= label_tag "user_block_period", t(".period") %><br />
-    <%= select_tag("user_block_period", options_for_select(UserBlock::PERIODS.collect { |h| [t("user_blocks.period", :count => h), h.to_s] }, params[:user_block_period])) %>
+    <%= select_tag("user_block_period", options_for_select(UserBlock::PERIODS.collect { |h| [block_duration_in_words(h.hours), h.to_s] }, params[:user_block_period])) %>
   </p>
   <p>
     <%= f.check_box :needs_view %>
     <%= f.label :needs_view, t(".needs_view") %>
   </p>
   <p>
-    <%= f.submit t(".submit") %>
+    <%= f.submit %>
   </p>
 <% end %>
index c92fe74ec5649b7564203f922e3fc9a7f6fd2ca3..bd492a354b00d38a736330899340cd02c565d329 100644 (file)
@@ -13,7 +13,7 @@
   </p>
   <p>
     <%= label_tag "user_block_period", t(".period") %><br />
-    <%= select_tag("user_block_period", options_for_select(UserBlock::PERIODS.collect { |h| [t("user_blocks.period", :count => h), h.to_s] }, params[:user_block_period])) %>
+    <%= select_tag("user_block_period", options_for_select(UserBlock::PERIODS.collect { |h| [block_duration_in_words(h.hours), h.to_s] }, params[:user_block_period])) %>
   </p>
   <p>
     <%= f.check_box :needs_view %>
@@ -21,7 +21,7 @@
   </p>
   <p>
     <%= hidden_field_tag "display_name", @user.display_name %>
-    <%= f.submit t(".submit") %>
+    <%= f.submit %>
   </p>
 <% end %>
 
index 5090cbee07a2e90284e033221c94a594f8ba3d4a..87eb9b45feb1c44027c7317e679820d79e8334c5 100644 (file)
     <% else %>
       <ul class='secondary-actions clearfix'>
         <li><%= link_to t(".friends_changesets"), friend_changesets_path %></li>
-        <li><%= link_to t(".friends_diaries"), friend_diaries_path %></li>
+        <li><%= link_to t(".friends_diaries"), friends_diary_entries_path %></li>
       </ul>
       <div id="friends-container">
         <%= render :partial => "contact", :collection => friends, :locals => { :type => "friend" } %>
     <% else %>
       <ul class='secondary-actions clearfix'>
         <li><%= link_to t(".nearby_changesets"), nearby_changesets_path %></li>
-        <li><%= link_to t(".nearby_diaries"), nearby_diaries_path %></li>
+        <li><%= link_to t(".nearby_diaries"), nearby_diary_entries_path %></li>
       </ul>
       <div id="nearbyusers">
         <%= render :partial => "contact", :collection => nearby, :locals => { :type => "nearby mapper" } %>
index a93ecb0a13a7805f34854c21a79d51a6ef4df043..d4a9fa0bd4e5267c8b162512e761d97916f6fcb5 100644 (file)
@@ -9,7 +9,12 @@
 
 <%= form_tag({ :action => "save" }, { :class => " inner22 standard-form fillL" }) do %>
   <!-- legale is <%= @legale %> -->
+  <p class="deemphasize"><%= t ".read and accept with tou" %></p>
+  <label class="standard-label">
+    <%= t ".heading_ct" %>
+  </label>
   <div class='form-row horizontal-list'>
+    <p class="deemphasize"><%= t ".contributor_terms_explain" %></p>
     <label class="standard-label">
       <%= t ".legale_select" %>
     </label>
     <%= render :partial => "terms" %>
   </div>
 
+  <div>
+    <p id="contributorGuidance" class="deemphasize">
+      <%= raw t ".guidance",
+                :summary => "https://www.osmfoundation.org/wiki/License/Contributor_Terms_Summary",
+                :translations => "https://www.osmfoundation.org/wiki/License/Contributor_Terms/Informal_Translations" %>
+    </p>
+  </div>
   <div class="form-row">
-    <label for="user_consider_pd">
-      <%= check_box("user", "consider_pd") %>
-      <%= t ".consider_pd" %>
+    <label for="read_ct">
+      <%= check_box_tag "read_ct" %>
+      <%= t ".read_ct" %>
+    </label>
+  </div>
+
+  <label class="standard-label">
+    <%= t "layouts.tou" %>
+  </label>
+  <p class="deemphasize"><%= t ".tou_explain_html", :tou_link => link_to(t("layouts.tou"), "https://wiki.osmfoundation.org/wiki/Terms_of_Use", :target => :new) %></p>
+  <div class="form-row">
+    <label for="read_tou">
+      <%= check_box_tag "read_tou" %>
+      <%= t ".read_tou" %>
     </label>
-    <span class="minorNote">(<%= link_to(t(".consider_pd_why"), t(".consider_pd_why_url"), :target => :new) %>)</span>
 
     <%= hidden_field_tag("referer", h(params[:referer])) unless params[:referer].nil? %>
 
     <div class="buttons form-row inner20 clearfix">
-      <p class="deemphasize"><%= t ".read and accept" %></p>
-      <%= submit_tag(t(".agree"), :name => "agree", :id => "agree") %>
-      <%= submit_tag(t(".decline"), :name => "decline", :id => "decline") %>
+      <%= submit_tag("Continue", :name => "continue", :id => "continue", :disabled => true) %>
+      <%= submit_tag("Cancel", :name => "decline", :id => "decline") %>
     </div>
 
-    <div class="deemphasize">
-      <p id="contributorGuidance">
-        <%= raw t ".guidance",
-                  :summary => "https://www.osmfoundation.org/wiki/License/Contributor_Terms_Summary",
-                  :translations => "https://www.osmfoundation.org/wiki/License/Contributor_Terms/Informal_Translations" %>
-      </p>
-    </div>
+    <label for="user_consider_pd">
+      <%= check_box("user", "consider_pd") %>
+      <%= t ".consider_pd" %>
+    </label>
+    <span class="minorNote">(<%= link_to(t(".consider_pd_why"), t(".consider_pd_why_url"), :target => :new) %>)</span>
+
   </div>
 <% end %>
diff --git a/config/initializers/strong_migrations.rb b/config/initializers/strong_migrations.rb
new file mode 100644 (file)
index 0000000..b1f4707
--- /dev/null
@@ -0,0 +1 @@
+StrongMigrations.start_after = 20190518115041 # rubocop:disable Style/NumericLiterals
index 7296ac89557f2128b30bac849671d385a1e38940..e9bf32fa1ba02e6a80239a613600f8d9a60e0482 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Afrikaans (Afrikaans)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Abijeet Patro
 # Author: Arnobarnard
 # Author: Biggs ZA
 # Author: Firefishy
@@ -12,6 +13,23 @@ af:
   time:
     formats:
       friendly: '%e %B %Y om %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Stoor
+      diary_entry:
+        create: Publiseer
+      message:
+        create: Stuur
+      client_application:
+        create: Registreer
+        update: Redigeer
+      trace:
+        create: Laai op
+        update: Stoor Wysigings
+      user_block:
+        create: Skep versperring
+        update: Werk versperring by
   activerecord:
     models:
       acl: Toegangsbeheerlys
@@ -242,7 +260,14 @@ af:
   diary_entries:
     new:
       title: Nuwe dagboekinskrywing
-      publish_button: Publiseer
+    form:
+      subject: 'Onderwerp:'
+      body: 'Teks:'
+      language: 'Taal:'
+      location: 'Ligging:'
+      latitude: 'Breedtegraad:'
+      longitude: 'Lengtegraad:'
+      use_map_link: benut kaart
     index:
       title: Gebruikersdagboeke
       title_friends: Dagboeke van vriende
@@ -257,14 +282,6 @@ af:
       newer_entries: Jonger inskrywings
     edit:
       title: Wysig dagboekinskrywing
-      subject: 'Onderwerp:'
-      body: 'Teks:'
-      language: 'Taal:'
-      location: 'Ligging:'
-      latitude: 'Breedtegraad:'
-      longitude: 'Lengtegraad:'
-      use_map_link: benut kaart
-      save_button: Stoor
       marker_text: Ligging van dagboekinskrywing
     show:
       title: '%{user} se dagboek | %{title}'
@@ -272,7 +289,6 @@ af:
       leave_a_comment: Lewer kommentaar
       login_to_leave_a_comment: '%{login_link} om kommentaar te lewer'
       login: Meld aan
-      save_button: Stoor
     no_such_entry:
       title: Geen só 'n dagboekinskrywing
       heading: 'Geen inskrywing met die id: %{id}'
@@ -922,7 +938,6 @@ af:
       send_message_to: Stuur 'n nuwe boodskap aan %{name}
       subject: Onderwerp
       body: Teks
-      send_button: Stuur
       back_to_inbox: Terug na in-vakkie
     create:
       message_sent: Boodskap is gestuur
@@ -1147,7 +1162,6 @@ af:
       tags_help: komma afgebaken
       visibility: 'Sigbaarheid:'
       visibility_help: wat beteken dit?
-      upload_button: Laai op
       help: Hulp
     create:
       upload_trace: Laai GPS-spore op
@@ -1165,7 +1179,6 @@ af:
       description: 'Beskrywing:'
       tags: 'Merkers:'
       tags_help: komma afgebaken
-      save_button: Stoor Wysigings
       visibility: 'Sigbaarheid:'
       visibility_help: wat beteken dit?
     trace_optionals:
@@ -1239,10 +1252,8 @@ af:
   oauth_clients:
     new:
       title: Registreer 'n nuwe toepassing
-      submit: Registreer
     edit:
       title: Redigeer u program
-      submit: Redigeer
     show:
       title: OAuth-besonderhede vir %{app_name}
       secret: 'Verbruikersgeheim:'
@@ -1329,7 +1340,6 @@ af:
     terms:
       title: Bydraerooreenkoms
       heading: Voorwaardes vir bydraers
-      agree: Aanvaar
       decline: Weier
       legale_names:
         france: Frankryk
@@ -1476,12 +1486,10 @@ af:
       back: Terug na die register
     new:
       heading: Skep versperring op %{name}
-      submit: Skep versperring
       back: Wys alle versperrings
     edit:
       title: Redigeer versperring op %{name}
       heading: Redigeer versperring op %{name}
-      submit: Werk versperring by
       show: Wys dié versperring
       back: Wys alle versperrings
     create:
@@ -1500,13 +1508,14 @@ af:
       confirm: Is u seker u wil hierdie versperring herroep?
       revoke: Herroep!
       flash: Hierdie versperring is herroep.
-    period:
-      one: 1 uur
-      other: '%{count} ure'
     helper:
       time_future: Tyd oor %{time} verstreke.
       until_login: Aktief totdat die gebruiker aanmeld.
       time_past: Tyd is %{time} gelede verstreke.
+      block_duration:
+        hours:
+          one: 1 uur
+          other: '%{count} ure'
     blocks_on:
       title: Versperrings op %{name}
       heading: Lys van versperrings teen %{name}
index ee2a823949cd48e872f8602eb27307dcb381e04a..5ac7501eccad202d7e461f1ec2eac95f0b44c08f 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Gheg Albanian (Gegë)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Abijeet Patro
 # Author: Albiona
 # Author: Alket
 # Author: Ardian
@@ -18,6 +19,21 @@ aln:
   time:
     formats:
       friendly: '%e %B %Y te %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Ruje
+      message:
+        create: Dërgo
+      client_application:
+        create: Regjistrohu
+        update: Redaktoj
+      trace:
+        create: Ngarko
+        update: Ruaj Ndryshimet
+      user_block:
+        create: bllok Krijo
+        update: bllok Update
   activerecord:
     models:
       acl: Lista Access Control
@@ -148,6 +164,14 @@ aln:
   diary_entries:
     new:
       title: Hyrja e re Ditari
+    form:
+      subject: 'Titulli:'
+      body: 'Trupi:'
+      language: 'Gjuha:'
+      location: 'Lokacioni:'
+      latitude: 'Latitude:'
+      longitude: 'Gjatësi:'
+      use_map_link: Harta e përdorimit
     index:
       title: ditarë Përdorues ,
       user_title: Ditari i %{user}
@@ -160,14 +184,6 @@ aln:
       newer_entries: Shënimet Ma Të Reja
     edit:
       title: hyrje Edit ditar
-      subject: 'Titulli:'
-      body: 'Trupi:'
-      language: 'Gjuha:'
-      location: 'Lokacioni:'
-      latitude: 'Latitude:'
-      longitude: 'Gjatësi:'
-      use_map_link: Harta e përdorimit
-      save_button: Ruje
       marker_text: Vendndodhja Ditari hyrje
     show:
       title: ditari i %{user} | %{title}
@@ -175,7 +191,6 @@ aln:
       leave_a_comment: Lene naj koment
       login_to_leave_a_comment: '%{login_link} për me lon koment'
       login: Hyrje
-      save_button: Ruje
     no_such_entry:
       title: Nuk ka hyrje të tilla ditar
       heading: 'Nuk ka shënim me id: %{id}'
@@ -686,7 +701,6 @@ aln:
       send_message_to: Qoje një mesazh të ri te %{name}
       subject: Titulli
       body: Organ
-      send_button: Dërgo
       back_to_inbox: Kthehu në postë
     create:
       message_sent: Mesazhi u dërgu
@@ -943,7 +957,6 @@ aln:
       tags_help: Presje e kufizume
       visibility: Dukshmënia
       visibility_help: çka do me than kjo?
-      upload_button: Ngarko
       help: Ndihma
     create:
       upload_trace: Ngarkoj tdhanat e GPS-it
@@ -966,7 +979,6 @@ aln:
       description: 'Përshkrimi:'
       tags: 'Etiketat:'
       tags_help: Presje e kufizume
-      save_button: Ruaj Ndryshimet
       visibility: 'Dukshmënia:'
       visibility_help: Çka do me than kjo?
     trace_optionals:
@@ -1047,10 +1059,8 @@ aln:
   oauth_clients:
     new:
       title: Regjistroje një aplikacion të ri.
-      submit: Regjistrohu
     edit:
       title: Redakto kërkesën tuaj
-      submit: Redaktoj
     show:
       title: Detajet OAuth për %{app_name}
       key: 'Konsumatorit kryesore:'
@@ -1158,7 +1168,6 @@ aln:
       heading: rregullat për Pjesëmarrës
       consider_pd: Unë e konsideroj kontributet e mia të jenë në domenin publik
       consider_pd_why: çka o kjo?
-      agree: Pajtohem
       decline: Mos prano
       legale_select: 'Ju lutem zgjidhni vendin tuaj të banimit:'
       legale_names:
@@ -1354,7 +1363,6 @@ aln:
         anëtarët e kuptojn gjuhën e komunitetit, pra ju lutem munoni me përdor terma
         të mirë.
       period: Sa kohë, duke filluar nga tani, përdoruesi do të bllokohet nga API për.
-      submit: bllok Krijo
       tried_contacting: Unë kam kontaktuar me përdorues dhe u kërkoi atyre për të
         ndaluar.
       tried_waiting: Unë kam dhënë një sasi të arsyeshme kohore për përdoruesit për
@@ -1369,7 +1377,6 @@ aln:
         të lidhur me situatën. Të ketë parasysh se jo të gjithë përdoruesit e kuptojnë
         zhargon komunitetit, kështu që ju lutemi provoni të përdorni laymans kushtet.
       period: Sa kohë, duke filluar nga tani, përdoruesi do të bllokohet nga API për.
-      submit: bllok Update
       show: Shiko këtë bllok
       back: Shiko të gjitha blloqet e
       needs_view: A i përdoruesit duhet të identifikoheni për para këtij blloku do
@@ -1399,13 +1406,14 @@ aln:
       confirm: Jeni i sigurt që dëshironi të revokuar kete kategori?
       revoke: Tërheq!
       flash: Ky bllok është revokuar.
-    period:
-      one: 1 orë
-      other: '%{count} orë'
     helper:
       time_future: Përfundon në %{time}.
       until_login: Aktiv deri kur përdoruesi shkrimet in
       time_past: Përfundoi %{time} më parë.
+      block_duration:
+        hours:
+          one: 1 orë
+          other: '%{count} orë'
     blocks_on:
       title: Blocks në %{name}
       heading: Lista e blloqeve në %{name}
index ef062460d908bc4cbaf4342d46f693d6ceb34aea..acd68e94c6cf51e2893c18dc32482053928543db 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Arabic (العربية)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Abijeet Patro
 # Author: Ali1
 # Author: Aude
 # Author: Ayatun
@@ -12,6 +13,7 @@
 # Author: Grille chompa
 # Author: Houcinee1
 # Author: Hubaishan
+# Author: Kassem7899
 # Author: Kuwaity26
 # Author: Majid Al-Dharrab
 # Author: Meno25
@@ -39,6 +41,29 @@ ar:
   time:
     formats:
       friendly: '%e %B %Y في %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: حفظ
+      diary_entry:
+        create: نشر
+        update: تحديث
+      issue_comment:
+        create: إضافة تعليق
+      message:
+        create: أرسل
+      client_application:
+        create: سجِّل
+        update: تعديل
+      redaction:
+        create: إنشاء تنقيح
+        update: حفظ التنقيح
+      trace:
+        create: رفع
+        update: حفظ التغييرات
+      user_block:
+        create: إنشاء العرقلة
+        update: حدّث العرقلة
   activerecord:
     errors:
       messages:
@@ -318,7 +343,14 @@ ar:
   diary_entries:
     new:
       title: مدخلة يومية جديدة
-      publish_button: نشر
+    form:
+      subject: 'الموضوع:'
+      body: 'النص:'
+      language: 'اللغة:'
+      location: 'الموقع:'
+      latitude: 'خط العرض:'
+      longitude: 'خط الطول:'
+      use_map_link: استخدم الخريطة
     index:
       title: يوميات المستخدمين
       title_friends: يوميات الأصدقاء
@@ -333,14 +365,6 @@ ar:
       newer_entries: المدخلات الأحدث
     edit:
       title: عدل مدخلة يومية
-      subject: 'الموضوع:'
-      body: 'النص:'
-      language: 'اللغة:'
-      location: 'الموقع:'
-      latitude: 'خط العرض:'
-      longitude: 'خط الطول:'
-      use_map_link: استخدم الخريطة
-      save_button: حفظ
       marker_text: موقع مدخلة اليومية
     show:
       title: يوميات %{user} | %{title}
@@ -348,7 +372,6 @@ ar:
       leave_a_comment: اترك تعليقًا
       login_to_leave_a_comment: '%{login_link} لترك تعليق'
       login: تسجيل الدخول
-      save_button: حفظ
     no_such_entry:
       title: لا توجد مثل هذه اليومية
       heading: 'لا توجد مدخلة بالمعرف: %{id}'
@@ -364,11 +387,13 @@ ar:
         other: '%{count} تعليقات'
       edit_link: عدل هذه المدخلة
       hide_link: اخفِ هذه المدخلة
+      unhide_link: إظهار هذا الإدخال
       confirm: تأكيد
       report: أبلغ عن هذه المدخلة
     diary_comment:
       comment_from: تعليق من %{link_user} في %{comment_created_at}
       hide_link: اخفِ هذا التعليق
+      unhide_link: إظهار هذا التعليق
       confirm: تأكيد
       report: أبلغ عن هذا التعليق
     location:
@@ -1129,6 +1154,7 @@ ar:
     partners_ucl: UCL
     partners_bytemark: استضافة Bytemark
     partners_partners: الشركاء
+    tou: شروط الاستخدام
     osm_offline: حاليًا قاعدة بيانات خريطة الشارع المفتوحة مغلقة بينما يتم الانتهاء
       من أعمال الصيانة الأساسية لقاعدة البيانات.
     osm_read_only: حاليًا قاعدة بيانات خريطة الشارع المفتوحة في وضع القراءة بينما
@@ -1277,7 +1303,6 @@ ar:
       send_message_to: أرسل رسالة جديدة إلى %{name}
       subject: الموضوع
       body: نص الرسالة
-      send_button: أرسل
       back_to_inbox: العودة إلى صندوق الوارد
     create:
       message_sent: تم إرسال الرسالة
@@ -1791,7 +1816,6 @@ ar:
       visibility: 'الرؤية:'
       visibility_help: ماذا يعني هذا؟
       visibility_help_url: https://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
-      upload_button: رفع
       help: مساعدة
       help_url: https://wiki.openstreetmap.org/wiki/Upload
     create:
@@ -1815,7 +1839,6 @@ ar:
       description: 'الوصف:'
       tags: 'الوسوم:'
       tags_help: محددة بفواصل
-      save_button: حفظ التغييرات
       visibility: 'الرؤية:'
       visibility_help: ماذا يعني هذا؟
     update:
@@ -1931,10 +1954,8 @@ ar:
   oauth_clients:
     new:
       title: سجِّل طلبا جديد
-      submit: سجِّل
     edit:
       title: عدل طلبك
-      submit: تعديل
     show:
       title: تفاصيل OAuth لـ%{app_name}
       key: 'مفتاح المستهلك:'
@@ -2098,17 +2119,25 @@ ar:
         من المعلومات; يُرجَى الاطلاع على <a href="%{url}">صفحة الويكي هذه</a>.
       terms declined url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
     terms:
-      title: 'شروط المساهم:'
-      heading: 'شروط المساهم:'
-      read and accept: تُرجَى قراءة الاتفاقية أدناه والضغط على زر الموافقة لتأكيد
-        قبول شروط هذا الاتفاق على مشاركاتك الموجودة والمستقبلية.
-      consider_pd: وبالإضافة إلى الاتفاقية أعلاه، أريد أن تكون مساهماتي ملكية عامة.
+      title: شروط
+      heading: شروط
+      heading_ct: شروط المساهمة
+      read and accept with tou: تُرجَى قراءة اتفاقية المساهم وشروط الاستخدام، والتحقق
+        من خانتي الاختيار عند الانتهاء، ثم اضغط على زر "متابعة".
+      contributor_terms_explain: هذا الاتفاق يحكم شروط مساهماتك الحالية والمستقبلية
+      read_ct: قرأت شروط المساهمة المعطاة في الأعلى وأوافق عليها
+      tou_explain_html: هذا ال%{tou_link} يحكم استخدام موقع الويب والبنية الأساسية
+        الأخرى التي يوفرها مؤسسة خريطة الشارع المفتوحة، يُرجَى النقر على الرابط، وقراءة
+        والموافقة على النص.
+      read_tou: قرأت شروط الاستخدام وأوافق عليها.
+      consider_pd: بالإضافة إلى ما طُرح أعلاه، أريد أن أنوه أنني أعتبر مساهماتي ملكية
+        عامة.
       consider_pd_why: ما هذا؟
       consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
       guidance: 'معلومات للمساعدة في فهم هذه المصطلحات: <a href="%{summary}">ملخص
         قابل للقراءة بواسطة الإنسان </a> وبعض <a href="%{translations}">ترجمات غير
         رسمية</a>'
-      agree: أوافق
+      continue: استمر
       declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
       decline: أرفض
       you need to accept or decline: الرجاء القراءة ومن ثم قبول أو رفض شروط المساهمة
@@ -2364,7 +2393,6 @@ ar:
         للعلن. آخذًا بالاعتبار أن ليس كل المستخدمين يفهم مصطلحات المجتمع، لذا يرجى
         محاولة استخدام كلمات بسيطة ومعبرة.
       period: ماهي المدة بدءًا من الآن، سيتم عرقلة المستخدم من الـ API.
-      submit: إنشاء العرقلة
       tried_contacting: لقد اتصلت بالمستخدم وطلبت منه التوقف.
       tried_waiting: لقد أعطيت المستخدم قدرًا معقولًا من الوقت للرد على تلك الاتصالات.
       needs_view: يحتاج المستخدم لتسجيل الدخول قبل أن يتم مسح هذه العرقلة
@@ -2376,7 +2404,6 @@ ar:
         مع إعطاء القدر المستطاع من التفاصيل عن الحالة. آخذًا بالاعتبار أن ليس كل المستخدمين
         يفهم مصطلحات المجتمع، لذا يرجى محاولة استخدام كلمات بسيطة ومعبرة.
       period: ماهي المدة بدءًا من الآن، سيتم عرقلة المستخدم من الـ API.
-      submit: حدّث العرقلة
       show: اعرض هذه العرقلة
       back: اعرض كل العرقلات
       needs_view: هل يحتاج المستخدم لتسجيل الدخول قبل أن يتم مسح هذه العرقلة؟
@@ -2404,16 +2431,29 @@ ar:
       confirm: هل أنت متأكد أنك ترغب في إبطال هذه العرقلة ؟
       revoke: ابطل!
       flash: تم إبطال هذه العرقلة.
-    period:
-      few: '%{count} ساعات'
-      one: ساعة واحد
-      two: ساعتين
-      other: '%{count} ساعة'
     helper:
       time_future: ينتهي في %{time}.
       until_login: نشط حتى يقوم المستخدم بتسجيل الدخول.
       time_future_and_until_login: ينتهي في %{time} وبعد تسجيل دخول المستخدم.
       time_past: انتهى منذ %{time}.
+      block_duration:
+        hours:
+          few: '%{count} ساعات'
+          one: ساعة واحد
+          two: ساعتين
+          other: '%{count} ساعة'
+        days:
+          one: يوم واحد
+          other: '%{count} أيام'
+        weeks:
+          one: أسبوع واحد
+          other: '%{count} أسابيع'
+        months:
+          one: شهر واحد
+          other: '%{count} أشهر'
+        years:
+          one: سنة واحدة
+          other: '%{count} سنوات'
     blocks_on:
       title: العرقلات على %{name}
       heading: لائحة العرقلات على %{name}
@@ -2514,6 +2554,7 @@ ar:
         title: الطَبقات
       copyright: © <a href='%{copyright_url}'>مساهمو خريطة الشارع المفتوحة</a>
       donate_link_text: <a class='donate-attr' href='%{donate_url}'>تقديم تبرع</a>
+      terms: <a href='%{terms_url}' target='_blank'> مصطلحات الموقع و API</a>
     site:
       edit_tooltip: عدّل الخريطة
       edit_disabled_tooltip: قم بالتكبير لتحرير الخريطة
@@ -2652,7 +2693,6 @@ ar:
     edit:
       description: الوصف
       heading: تحرير التنقيح
-      submit: حفظ التنقيح
       title: تحرير التنقيح
     index:
       empty: لا يوجد تنقيح لإظهاره.
@@ -2661,7 +2701,6 @@ ar:
     new:
       description: الوصف
       heading: أدخل معلومات عن التنقيح الجديد
-      submit: إنشاء تنقيح
       title: إنشاء تنقيح جديد
     show:
       description: 'الوصف:'
index 7885c393ec0bca246f1a74757d57c4e152eb8065..b7aca2ca2a8f55dde6c6622f260c55b0b34b80f9 100644 (file)
@@ -1,10 +1,26 @@
 # Messages for Egyptian Arabic (مصرى)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Abijeet Patro
 # Author: Meno25
 # Author: علاء
 ---
 arz:
+  helpers:
+    submit:
+      diary_comment:
+        create: حفظ
+      message:
+        create: أرسل
+      client_application:
+        create: سجِّل
+        update: عدّل
+      trace:
+        create: ارفع
+        update: حفظ التغييرات
+      user_block:
+        create: إنشاء العرقلة
+        update: حدّث العرقلة
   activerecord:
     models:
       acl: قائمه تحكم الوصول
@@ -123,6 +139,14 @@ arz:
   diary_entries:
     new:
       title: مدخله يوميه جديدة
+    form:
+      subject: 'الموضوع:'
+      body: 'نص الرسالة:'
+      language: 'اللغة:'
+      location: 'الموقع:'
+      latitude: 'خط العرض:'
+      longitude: 'خط الطول:'
+      use_map_link: استخدم الخريطة
     index:
       title: يوميات المستخدمين
       user_title: يوميه %{user}
@@ -134,15 +158,7 @@ arz:
       older_entries: المدخلات الأقدم
       newer_entries: المدخلات الأحدث
     edit:
-      title: عدّل مدخله يومية
-      subject: 'الموضوع:'
-      body: 'نص الرسالة:'
-      language: 'اللغة:'
-      location: 'الموقع:'
-      latitude: 'خط العرض:'
-      longitude: 'خط الطول:'
-      use_map_link: استخدم الخريطة
-      save_button: حفظ
+      title: عدل المدخله بتاعه اليوميه
       marker_text: موقع مدخله اليومية
     show:
       title: يوميات اليوزر %{user} | %{title}
@@ -150,7 +166,6 @@ arz:
       leave_a_comment: اترك تعليقًا
       login_to_leave_a_comment: '%{login_link} لترك تعليق'
       login: تسجيل الدخول
-      save_button: حفظ
     no_such_entry:
       title: مدخله يوميه غير موجودة
       heading: 'لا يوجد مدخله بالمعرّف: %{id}'
@@ -624,7 +639,6 @@ arz:
       send_message_to: أرسل رساله جديده إلى %{name}
       subject: الموضوع
       body: نص الرسالة
-      send_button: أرسل
       back_to_inbox: العوده إلى صندوق الوارد
     create:
       message_sent: تم إرسال الرسالة
@@ -772,7 +786,6 @@ arz:
       tags_help: محدد بفواصل
       visibility: الرؤية
       visibility_help: ماذا يعنى هذا؟
-      upload_button: ارفع
       help: المساعدة
     create:
       upload_trace: ارفع أثر جى بى إس
@@ -794,7 +807,6 @@ arz:
       description: 'الوصف:'
       tags: 'الوسوم:'
       tags_help: محدد بفواصل
-      save_button: حفظ التغييرات
       visibility: 'الرؤية:'
       visibility_help: ماذا يعنى هذا؟
     trace_optionals:
@@ -867,10 +879,8 @@ arz:
   oauth_clients:
     new:
       title: سجِّل تطبيق جديد
-      submit: سجِّل
     edit:
       title: عدّل تطبيقك
-      submit: عدّل
     show:
       title: تفاصيل OAuth للتطبيق %{app_name}
       url: 'رابط الطلب:'
@@ -1110,7 +1120,6 @@ arz:
         للعلن. آخذًا بالاعتبار أن ليس كل المستخدمين يفهم مصطلحات المجتمع، لذا يرجى
         محاوله استخدام كلمات بسيطه ومعبره.
       period: ماهى المده بدءًا من الآن، سيتم عرقله المستخدم من الـ API.
-      submit: إنشاء العرقلة
       tried_contacting: لقد اتصلت بالمستخدم وطلبت منه التوقف.
       tried_waiting: لقد أعطيت المستخدم قدرًا معقولًا من الوقت للرد على تلك الاتصالات.
       needs_view: يحتاج المستخدم لتسجيل الدخول قبل أن يتم مسح هذه العرقلة
@@ -1122,7 +1131,6 @@ arz:
         مع إعطاء القدر المستطاع من التفاصيل عن الحاله. آخذًا بالاعتبار أن ليس كل المستخدمين
         يفهم مصطلحات المجتمع، لذا يرجى محاوله استخدام كلمات بسيطه ومعبره.
       period: ماهى المده بدءًا من الآن، سيتم عرقله المستخدم من الـ API.
-      submit: حدّث العرقلة
       show: اعرض هذه العرقلة
       back: اعرض كل العرقلات
       needs_view: هل يحتاج المستخدم لتسجيل الدخول قبل أن يتم مسح هذه العرقلة؟
@@ -1150,15 +1158,16 @@ arz:
       confirm: هل أنت متأكد أنك ترغب فى إبطال هذه العرقله ؟
       revoke: ابطل!
       flash: تم إبطال هذه العرقله.
-    period:
-      few: '%{count} ساعات'
-      one: ساعه واحد
-      two: ساعتين
-      other: '%{count} ساعة'
     helper:
       time_future: ينتهى فى %{time}.
       until_login: نشط حتى يقوم المستخدم بتسجيل الدخول.
       time_past: انتهى منذ %{time}.
+      block_duration:
+        hours:
+          few: '%{count} ساعات'
+          one: ساعه واحد
+          two: ساعتين
+          other: '%{count} ساعة'
     blocks_on:
       title: العرقلات على %{name}
       heading: لائحه العرقلات على %{name}
index 3099883a70b725efb17fc2d8f7f34a4c64712c0f..9015231880e0f27b114964dd07fac580535474bc 100644 (file)
@@ -11,7 +11,33 @@ ast:
   time:
     formats:
       friendly: '%e de %B de %Y a les %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Guardar
+      diary_entry:
+        create: Espublizar
+        update: Anovar
+      message:
+        create: Unviar
+      client_application:
+        create: Rexistrar
+        update: Editar
+      redaction:
+        create: Crear redaición
+        update: Guardar redaición
+      trace:
+        create: Xubir
+        update: Guardar cambeos
+      user_block:
+        create: Crear un bloquéu
+        update: Anovar el bloquéu
   activerecord:
+    errors:
+      messages:
+        invalid_email_address: nun paez que sía una dirección de corréu electrónicu
+          válida.
+        email_address_not_routable: nun ye enrutable
     models:
       acl: Llista de Control d'Accesu
       changeset: Conxuntu de cambeos
@@ -263,10 +289,10 @@ ast:
       title_friend: Conxuntos de cambeos de los mios collacios
       title_nearby: Conxuntos de cambeos d'usuarios cercanos
       empty: Nun s'alcontró nengún conxuntu de cambeos.
-      empty_area: Nun hai conxuntos de cambeos nesti área.
+      empty_area: Nun hai conxuntos de cambeos nesta área.
       empty_user: Nun hai conxuntos de cambeos d'esti usuariu.
       no_more: Nun s'alcontraron más conxuntos de cambeos.
-      no_more_area: Nun hai más conxuntos de cambeos nesti área.
+      no_more_area: Nun hai más conxuntos de cambeos nesta área.
       no_more_user: Nun hai más conxuntos de cambeos d'esti usuariu.
       load_more: Cargar más
     timeout:
@@ -276,13 +302,26 @@ ast:
       comment: 'Comentariu nuevu sobro''l conxuntu de cambios #%{changeset_id} de
         %{author}'
       commented_at_by_html: Anovao hai %{when} por %{user}
+    comments:
+      comment: 'Comentariu nuevu sobro''l conxuntu de cambios #%{changeset_id} de
+        %{author}'
     index:
       title_all: Alderique del conxuntu de cambeos d'OpenStreetMap
       title_particular: 'Alderique del conxuntu de cambeos #%{changeset_id} d''OpenStreetMap'
+    timeout:
+      sorry: Llevó demasiao tiempu baxar la llista de comentarios del conxuntu de
+        cambeos que pidisti.
   diary_entries:
     new:
       title: Nueva entrada del diariu
-      publish_button: Espublizar
+    form:
+      subject: 'Asuntu:'
+      body: 'Cuerpu:'
+      language: 'Llingua:'
+      location: 'Allugamientu:'
+      latitude: 'Llatitú:'
+      longitude: 'Llonxitú:'
+      use_map_link: usar mapa
     index:
       title: Diarios d'usuarios
       title_friends: Diarios de collacios
@@ -296,15 +335,7 @@ ast:
       older_entries: Entraes anteriores
       newer_entries: Entraes más nueves
     edit:
-      title: Editar entrada del diariu
-      subject: 'Asuntu:'
-      body: 'Cuerpu:'
-      language: 'Llingua:'
-      location: 'Allugamientu:'
-      latitude: 'Llatitú:'
-      longitude: 'Llonxitú:'
-      use_map_link: usar mapa
-      save_button: Guardar
+      title: Editar entrada del Diariu
       marker_text: Allugamientu de la entrada del diariu
     show:
       title: Diariu de %{user} | %{title}
@@ -312,19 +343,18 @@ ast:
       leave_a_comment: Dexar un comentariu
       login_to_leave_a_comment: '%{login_link} pa dexar un comentariu'
       login: Entrar
-      save_button: Guardar
     no_such_entry:
       title: Nun esiste la entrada del diariu
       heading: 'Nun esiste la entrada con id: %{id}'
       body: Sentímoslo, nun hai nenguna entrada del diariu cola id %{id}. Comprueba
-        la escritura o si primisti nun enllaz enquivocáu.
+        la escritura o si pulsiasti nun enllaz enquivocáu.
     diary_entry:
       posted_by: Unviáu por %{link_user} el %{created} en %{language_link}
       comment_link: Comentar esta entrada
       reply_link: Responder a esta entrada
       comment_count:
         zero: Ensin comentarios
-        one: 1 comentariu
+        one: '%{count} comentariu'
         other: '%{count} comentarios'
       edit_link: Editar esta entrada
       hide_link: Anubrir esta entrada
@@ -892,7 +922,7 @@ ast:
           "yes": Tienda
         tourism:
           alpine_hut: Refuxu de monte
-          apartment: Apartamentu
+          apartment: Apartamentu de vacaciones
           artwork: Obra d'arte
           attraction: Interés turísticu
           bed_and_breakfast: Cama y almuerzu (B&B)
@@ -1085,9 +1115,12 @@ ast:
     intro_text: OpenStreetMap ye un mapa del mundu, creáu por persones como tu y d'usu
       llibre baxo una llicencia abierta.
     intro_2_create_account: Crear una cuenta d'usuariu
+    hosting_partners_html: L'agospiamientu tien l'encontu de %{ucl}, %{bytemark},  y
+      otros %{partners}.
     partners_ucl: UCL
     partners_bytemark: Bytemark Hosting
     partners_partners: asociaos
+    tou: Condiciones d'usu
     osm_offline: La base de datos d'OpenStreetMap anguaño ta desconectada mentanto
       se faen trabayos esenciales de mantenimientu de la base de datos.
     osm_read_only: La base de datos d'OpenStreetMap anguaño ta en mou de sólo llectura
@@ -1242,7 +1275,6 @@ ast:
       send_message_to: Unviar un mensaxe nuevu a %{name}
       subject: Asuntu
       body: Cuerpu
-      send_button: Unviar
       back_to_inbox: Tornar al buzón d'entrada
     create:
       message_sent: Mensaxe unviáu
@@ -1320,7 +1352,8 @@ ast:
       legal_html: "Esti sitiu y munchos otros servicios rellacionaos xestiónalos formalmente
         la  \n<a href='https://osmfoundation.org/'>Fundación OpenStreetMap</a> (OSMF)
         \nnel nome de la comunidá. L'usu de tolos servicios alministraos pola OSMF
-        tán suxetos a les nueses <a href=\"https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy\">polítiques
+        tán suxetos a les nueses <a href=\"https://wiki.osmfoundation.org/wiki/Terms_of_Use\">Condiciones
+        d'usu</a>,<a href=\"https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy\">polítiques
         d'usu aceptable</a> y la nuesa <a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\">política
         de privacidá</a>\n<br>\n<a href='https://osmfoundation.org/Contact'>Comunícate
         cola OSMF</a> \nsi tienes entrugues relativos a les llicencies, drechos d'autor
@@ -1411,12 +1444,18 @@ ast:
           <a href="http://www.gu.gov.si/en/">Autoridá Topográfica y Cartográfica</a> y del
           <a href="http://www.mkgp.gov.si/en/">Ministeriu d'Agricultura, Silvicultura y Alimentación</a>
           (información pública d'Eslovenia).
+        contributors_es_html: '<strong>España</strong>: Contien datos provenientes
+          del Institutu Xeográficu Nacional (<a href="http://www.ign.es/">IGN</a>)
+          y del Sistema Cartográficu Nacional (<a href="http://www.scne.es/">SCNE</a>),
+          llicenciaos pa la reutilización baxo <a href="https://creativecommons.org/licenses/by/4.0/">CC
+          BY 4.0</a>.'
         contributors_za_html: |-
           <strong>Sudáfrica</strong>: Contien datos sacaos de
           <a href="http://www.ngi.gov.za/">Chief Directorate:
           National Geo-Spatial Information</a>, State copyright reserved.
-        contributors_gb_html: '<strong>Reinu Xuníu</strong>: Contien datos de Ordnance
-          Survey &copy; Crown copyright and database right 2010-12.'
+        contributors_gb_html: |-
+          <strong>Reinu Uníu</strong>: Contien datos de Ordnance Survey © Crown copyright and database right
+           2010-19.
         contributors_footer_1_html: |-
           Pa más detalles d'estes, y otres fontes que s'usaron p'ayudar a
           ameyorar OpenStreetMap, por favor, llei la <a
@@ -1572,6 +1611,11 @@ ast:
         title: Migrar a OSM
         description: Ayuda pa les empreses y organizaciones que cambien a mapes y
           otros servicios, basaos n'OpenStreetMap.
+      welcomemat:
+        url: https://welcome.openstreetmap.org/
+        title: Pa organizaciones
+        description: ¿Con una organización que fai planes pa OpenStreetMap? Atopa
+          lo que tienes de saber nel Felpudu de Bienvenida.
       wiki:
         url: https://wiki.openstreetmap.org/wiki/Ast:Main_Page
         title: wiki.openstreetmap.org
@@ -1663,7 +1707,7 @@ ast:
       edit: Editar
       preview: Vista previa
     markdown_help:
-      title_html: Analizáu con <a href="https://daringfireball.net/projects/markdown/">Markdown</a>
+      title_html: Analizáu con <a href="https://kramdown.gettalong.org/quickref.html">kramdown</a>
       headings: Cabeceres
       heading: Cabecera
       subheading: Cabecera secundaria
@@ -1716,7 +1760,7 @@ ast:
         title: ¿Tien alguna entruga?
         paragraph_1_html: |-
           OpenStreetMap tien dellos recursos p'aprender sobro'l proyeutu, entrugar y contestar preguntes, y discutir y documentar en collaboración cuestiones de cartografía.
-          <a href='%{help_url}'>Algame ayuda equí</a>.
+          <a href='%{help_url}'>Algama ayuda equí</a>. ¿Con una organización que fai planes pa OpenStreetMap? <a href='https://welcome.openstreetmap.org/'>Visita'l Felpudu de Bienvenida</a>.
       start_mapping: Principiar col mapéu
       add_a_note:
         title: ¿Nun tien tiempu pa editar? ¡Amieste una nota!
@@ -1744,7 +1788,6 @@ ast:
       visibility: 'Visibilidá:'
       visibility_help: ¿qué ye esto?
       visibility_help_url: https://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
-      upload_button: Xubir
       help: Ayuda
       help_url: https://wiki.openstreetmap.org/wiki/Upload
     create:
@@ -1773,7 +1816,6 @@ ast:
       description: 'Descripción:'
       tags: 'Etiquetes:'
       tags_help: llendáu con comes
-      save_button: Guardar cambeos
       visibility: 'Visibilidá:'
       visibility_help: ¿qué ye esto?
     update:
@@ -1850,6 +1892,7 @@ ast:
         other: Ficheru GPX con %{count} puntos de %{user}
       description_without_count: Ficheru GPX de %{user}
   application:
+    permission_denied: Nun tienes permisu d'accesu pa esta aición.
     require_cookies:
       cookies_needed: Paez que tienes les cookies desactivaes - activa les cookies
         nel restolador enantes de siguir.
@@ -1893,10 +1936,8 @@ ast:
   oauth_clients:
     new:
       title: Rexistrar una aplicación nueva
-      submit: Rexistrar
     edit:
       title: Editar la to aplicación
-      submit: Editar
     show:
       title: Detalles d'OAuth pa %{app_name}
       key: 'Clave del consumidor:'
@@ -2060,18 +2101,19 @@ ast:
       terms accepted: ¡Gracies por aceutar les condiciones de collaboración!
       terms declined: Sentimos que decidieras nun aceutar les Condiciones de Collaborador.
         Pa más información llei <a href="%{url}">esta páxina wiki</a>.
+      terms declined url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
     terms:
-      title: Condiciones de collaboración
-      heading: Condiciones de collaboración
-      read and accept: Llei l'alcuerdu de más abaxo y calca nel botón aceutar pa confirmar
-        qu'aceutes les condiciones d'esti alcuerdu pa les tos collaboraciones esistentes
-        y futures.
-      consider_pd: Amás del alcuerdu anterior, considero que les mios collaboraciones
-        pasen a ser Dominiu Públicu
+      title: Condiciones
+      heading: Condiciones
+      heading_ct: Condiciones de collaboración
+      consider_pd: Amás de lo anterior, considero que les mios collaboraciones pasen
+        a ser Dominiu Públicu
       consider_pd_why: ¿qué ye esto?
+      consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
       guidance: 'Información p''ayudar a entender estos términos: un <a href="%{summary}">resume</a>
         y delles <a href="%{translations}">traducciones non oficiales</a>'
-      agree: Aceutar
+      continue: Siguir
+      declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
       decline: Refugar
       you need to accept or decline: Por favor, llei y aceuta o refuga les nueves
         Condiciones de Collaboración pa siguir.
@@ -2193,6 +2235,7 @@ ast:
           nuevos términos de collaboración.
         agreed_with_pd: Tamién declarasti que consideres que les tos ediciones pertenecen
           al Dominiu Públicu.
+        link: https://www.osmfoundation.org/wiki/License/Contributor_Terms
         link text: ¿qué ye esto?
       profile description: 'Descripción del perfil:'
       preferred languages: 'Llingües preferíes:'
@@ -2341,7 +2384,6 @@ ast:
         usuarios entienden la xíriga de la comunidá; de mou qu'intenta usar pallabres
         cencielles.
       period: Por cuantu tiempu, dende agora, l'usuariu tendrá torgáu usar la API.
-      submit: Crear un bloquéu
       tried_contacting: Púnxime en contautu col usuariu pa pidíi qu'aparara.
       tried_waiting: Di-y al usuariu tiempu razonable abondo pa responder a eses comunicaciones.
       needs_view: L'usuariu tien de coneutase enantes de que se desanicie esti bloquéu
@@ -2354,7 +2396,6 @@ ast:
         en cuenta que non tolos usuarios entienden la xíriga de la comunidá; de mou
         qu'intenta usar pallabres cencielles.
       period: Por cuantu tiempu, dende agora, l'usuariu tendrá torgáu usar la API.
-      submit: Anovar el bloquéu
       show: Ver esti bloquéu
       back: Ver tolos bloqueos
       needs_view: ¿Tien de coneutase l'usuariu enantes de que se desanicie esti bloquéu?
@@ -2383,15 +2424,16 @@ ast:
       confirm: ¿Seguro que quies desaniciar esti bloquéu?
       revoke: ¡Desaniciar!
       flash: Esti bloquéu se desanició.
-    period:
-      one: 1 hora
-      other: '%{count} hores'
     helper:
       time_future: Fina en %{time}.
       until_login: Activu fasta que'l usuariu anicie sesión.
       time_future_and_until_login: Acaba en %{time} y después de que l'usuariu anicie
         sesión.
       time_past: Finó hai %{time}.
+      block_duration:
+        hours:
+          one: 1 hora
+          other: '%{count} hores'
     blocks_on:
       title: Bloqueos fechos a %{name}
       heading: Llista de los bloqueos a %{name}
@@ -2490,6 +2532,8 @@ ast:
         title: Capes
       copyright: © <a href='%{copyright_url}'>collaboradores d'OpenStreetMap</a>
       donate_link_text: <a class='donate-attr' href='%{donate_url}'>Faiga una donación</a>
+      terms: <a href='%{terms_url}' target='_blank'>Condiciones del sitiu web y de
+        la API</a>
     site:
       edit_tooltip: Editar el mapa
       edit_disabled_tooltip: Aumenta pa editar el mapa
@@ -2527,7 +2571,9 @@ ast:
     directions:
       ascend: Ascender
       engines:
+        fossgis_osrm_bike: Bicicleta (OSRM)
         fossgis_osrm_car: En coche (OSRM)
+        fossgis_osrm_foot: Pie (OSRM)
         graphhopper_bicycle: Bicicleta  (GraphHopper)
         graphhopper_car: En coche (GraphHopper)
         graphhopper_foot: A pie (GraphHopper)
@@ -2632,7 +2678,6 @@ ast:
     edit:
       description: Descripción
       heading: Editar redaición
-      submit: Guardar redaición
       title: Editar redaición
     index:
       empty: Nun hai redaiciones qu'amosar
@@ -2641,7 +2686,6 @@ ast:
     new:
       description: Descripción
       heading: Escribir información de la redaición nueva
-      submit: Crear redaición
       title: Crear una redaición nueva
     show:
       description: 'Descripción:'
@@ -2660,4 +2704,9 @@ ast:
         pertenecen a esta redaición enantes de destruila.
       flash: Redaición destruyía.
       error: Hebo un error al destruir esta redaición.
+  validations:
+    leading_whitespace: tien espaciu al principiu
+    trailing_whitespace: tien espaciu al final
+    invalid_characters: contien caráuteres non válidos
+    url_characters: Contien caráuteres URL especiales (%{characters})
 ...
index 1433d116b97c4f8f0819ac7b7b365c6351e643e1..ed7b1c69ad0e0733ed6fc75ed8f04f9f53dfe192 100644 (file)
@@ -2,6 +2,7 @@
 # Exported from translatewiki.net
 # Export driver: phpyaml
 # Author: AZISS
+# Author: Abijeet Patro
 # Author: Cekli829
 # Author: Mushviq Abdulla
 # Author: Ruila
@@ -14,6 +15,19 @@ az:
   time:
     formats:
       friendly: '%e %B %Y  %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Qeyd et
+      diary_entry:
+        create: Yayımla
+      message:
+        create: Göndər
+      trace:
+        update: Dəyişiklikləri yadda saxla
+      user_block:
+        create: Blok yarat
+        update: Bloku yenilən
   activerecord:
     models:
       acl: Giriş Məhdudiyyətləri siyahısı
@@ -200,7 +214,14 @@ az:
   diary_entries:
     new:
       title: Yeni Gündəlik Yazısı
-      publish_button: Yayımla
+    form:
+      subject: 'Mövzu:'
+      body: 'Mətn:'
+      language: 'Dil:'
+      location: 'Yerləşdiyi yer:'
+      latitude: 'En dairəsi:'
+      longitude: 'Uzunluq dairəsi:'
+      use_map_link: xəritə üzərində göstər
     index:
       title: İstifadəçi gündəlikləri
       title_friends: Dostların gündəlikləri
@@ -215,14 +236,6 @@ az:
       newer_entries: Yeni yazılar
     edit:
       title: Gündəlik yazısıni redaktə etmək
-      subject: 'Mövzu:'
-      body: 'Mətn:'
-      language: 'Dil:'
-      location: 'Yerləşdiyi yer:'
-      latitude: 'En dairəsi:'
-      longitude: 'Uzunluq dairəsi:'
-      use_map_link: xəritə üzərində göstər
-      save_button: Qeyd et
       marker_text: Gundəlik yazısının yazıldığı yer
     show:
       title: İstifadəçi %{user} gündəliyi | %{title}
@@ -230,7 +243,6 @@ az:
       leave_a_comment: Şərh yaz
       login_to_leave_a_comment: Şərh yazmaq üçün %{login_link}
       login: Özünüzü təqdim edin
-      save_button: Qeyd et
     no_such_entry:
       title: Belə bir gündəlik yazısı mövcud deyil
       heading: 'Yazı mövcud deyil id: %{id}'
@@ -843,7 +855,6 @@ az:
       send_message_to: '%{name} yeni mesaj göndər'
       subject: Mövzu
       body: 'Mətn:'
-      send_button: Göndər
       back_to_inbox: Gələnlərə geri qayıt
     create:
       message_sent: Mesaj göndərildi
@@ -1009,7 +1020,6 @@ az:
       edit: redaktə
       owner: 'Sahibi:'
       description: 'İzah:'
-      save_button: Dəyişiklikləri yadda saxla
     show:
       filename: 'Fayl adı:'
       download: yüklə
@@ -1069,7 +1079,6 @@ az:
       continue: Davam et
     terms:
       consider_pd_why: bu nədir?
-      agree: Razıyam
       decline: İmtina
       legale_names:
         france: Fransa
@@ -1141,10 +1150,8 @@ az:
       confirm: Təsdiq et
   user_blocks:
     new:
-      submit: Blok yarat
       back: Bütün blokları göstər
     edit:
-      submit: Bloku yenilən
       show: Bu bloku göstər
       back: Bütün blokları göstər
     create:
index 0816fb6220c774414eebdf006747258a35c7e79a..bf585b2e54cd96ec0741edef6e04b9936e3abede 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Belarusian (Taraškievica orthography) (беларуская (тарашкевіца)‎)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Abijeet Patro
 # Author: EugeneZelenko
 # Author: Jim-by
 # Author: Macofe
@@ -12,6 +13,21 @@ be-Tarask:
   time:
     formats:
       friendly: '%e %B %Y у %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Захаваць
+      message:
+        create: Даслаць
+      client_application:
+        create: Рэгістрацыя
+        update: Рэдагаваць
+      trace:
+        create: Загрузіць
+        update: Захаваць зьмены
+      user_block:
+        create: Стварыць блякаваньне
+        update: Абнавіць блякаваньне
   activerecord:
     models:
       acl: Сьпіс абмежаваньня доступу
@@ -183,6 +199,14 @@ be-Tarask:
   diary_entries:
     new:
       title: Новы запіс у дзёньніку
+    form:
+      subject: 'Тэма:'
+      body: 'Тэкст:'
+      language: 'Мова:'
+      location: 'Месцазнаходжаньне:'
+      latitude: 'Шырата:'
+      longitude: 'Даўгата:'
+      use_map_link: на мапе
     index:
       title: Дзёньнікі карыстальнікаў
       title_friends: Дзёньнікі сяброў
@@ -197,14 +221,6 @@ be-Tarask:
       newer_entries: Навейшыя запісы
     edit:
       title: Рэдагаваць запіс у дзёньніку
-      subject: 'Тэма:'
-      body: 'Тэкст:'
-      language: 'Мова:'
-      location: 'Месцазнаходжаньне:'
-      latitude: 'Шырата:'
-      longitude: 'Даўгата:'
-      use_map_link: на мапе
-      save_button: Захаваць
       marker_text: Месцазнаходжаньне запісу дзёньніка
     show:
       title: Дзёньнік %{user} | %{title}
@@ -212,7 +228,6 @@ be-Tarask:
       leave_a_comment: Пакінуць камэнтар
       login_to_leave_a_comment: '%{login_link} каб пакінуць камэнтар'
       login: Увайдзіце
-      save_button: Захаваць
     no_such_entry:
       title: Няма такога запісу ў дзёньніку
       heading: Няма запісу з ідэнтыфікатарам %{id}
@@ -768,7 +783,6 @@ be-Tarask:
       send_message_to: Даслаць новае паведамленьне да %{name}
       subject: Тэма
       body: Тэкст
-      send_button: Даслаць
       back_to_inbox: Вярнуцца да ўваходных
     create:
       message_sent: Паведамленьне дасланае
@@ -1043,7 +1057,6 @@ be-Tarask:
       tags_help: падзеленае коскамі
       visibility: 'Бачнасьць:'
       visibility_help: што гэта азначае?
-      upload_button: Загрузіць
       help: Дапамога
     create:
       upload_trace: Загрузіць GPS-трэк
@@ -1074,7 +1087,6 @@ be-Tarask:
       description: 'Апісаньне:'
       tags: 'Тэгі:'
       tags_help: падзеленыя коскамі
-      save_button: Захаваць зьмены
       visibility: 'Бачнасьць:'
       visibility_help: што гэта азначае?
     trace_optionals:
@@ -1158,10 +1170,8 @@ be-Tarask:
   oauth_clients:
     new:
       title: Зарэгістраваць новае дастасаваньне
-      submit: Рэгістрацыя
     edit:
       title: Рэдагаваць Вашае дастасаваньне
-      submit: Рэдагаваць
     show:
       title: Падрабязнасьці OAuth для %{app_name}
       key: 'Ключ спажыўца:'
@@ -1288,17 +1298,13 @@ be-Tarask:
         Для атрыманьня дадатковай інфармацыі, калі ласка, глядзіце <a href="%{url}">гэтую
         вікі-старонку</a>.
     terms:
-      title: Умовы супрацоўніцтва
-      heading: Умовы супрацоўніцтва
-      read and accept: Калі ласка, пачытайце пагадненьне ніжэй і націсьніце кнопку
-        «Згодны», каб пацьвердзіць што Вы пагаджаецеся з умовамі гэтага пагадненьня
-        адносна Вашага існуючага і будучых ўнёскаў.
-      consider_pd: У дадатак да прыведзенага пагадненьня, я пацьвярджаю, што мой унёсак
+      title: Умовы
+      heading: Умовы
+      consider_pd: У дадатак да прыведзенага вышэй, я пацьвярджаю, што мой унёсак
         знаходзіцца ў грамадзкім набытку
       consider_pd_why: што гэта?
       guidance: 'Інфармацыя, якая дапаможа зразумець гэтыя ўмовы: <a href="%{summary}">кароткае
         апісаньне</a> і некалькі <a href="%{translations}">неафіцыйных перакладаў</a>'
-      agree: Згодны
       decline: Адхіліць
       you need to accept or decline: Калі ласка, прачытайце, а потым згадзіцеся ці
         адхіліце новыя ўмовы супрацоўніцтва для працягу.
@@ -1524,7 +1530,6 @@ be-Tarask:
         зразумелыя паняцьці.
       period: Як доўга, пачынаючы з гэтага моманту, карыстальнік будзе заблякаваны
         ад API.
-      submit: Стварыць блякаваньне
       tried_contacting: Я зьвярнуўся да удзельніка і папрасіў яго спыніцца.
       tried_waiting: Я даў дастаткова часу ўдзельніку, каб адказаць на тыя паведамленьні.
       needs_view: Удзельніку трэба ўвайсьці ў сыстэму, перад тым як блякаваньне будзе
@@ -1539,7 +1544,6 @@ be-Tarask:
         таму выкарыстоўвайце зразумелыя паняцьці.
       period: Як доўга, пачынаючы з гэтага моманту, карыстальнік будзе заблякаваны
         ад API.
-      submit: Абнавіць блякаваньне
       show: Паказаць гэтае блякаваньне
       back: Паказаць усе блякаваньні
       needs_view: Ці трэба ўдзельніку ўвайсьці ў сыстэму, перад тым як блякаваньне
@@ -1569,14 +1573,15 @@ be-Tarask:
       confirm: Вы ўпэўнены, што жадаеце адклікаць гэтае блякаваньне?
       revoke: Адклікаць!
       flash: Гэтае блякаваньне было адкліканае.
-    period:
-      one: '%{count} гадзіна'
-      few: '%{count} гадзіны'
-      other: '%{count} гадзінаў'
     helper:
       time_future: Канчаецца ў %{time}.
       until_login: Актыўнае да моманту ўваходу ўдзельніка ў сыстэму.
       time_past: Скончылася %{time} таму.
+      block_duration:
+        hours:
+          one: '%{count} гадзіна'
+          few: '%{count} гадзіны'
+          other: '%{count} гадзінаў'
     blocks_on:
       title: Блякаваньні для %{name}
       heading: Сьпіс блякаваньняў %{name}
index 48c6b94b183e0b98c98077fca90ffa95b4b483ac..07c18029615a4d4f8c8743022f6419bff69ca792 100644 (file)
@@ -17,6 +17,26 @@ be:
   time:
     formats:
       friendly: '%e %B %Y у %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Захаваць
+      diary_entry:
+        create: Апублікаваць
+      message:
+        create: Даслаць
+      client_application:
+        create: Зарэгістравацца
+        update: Рэдагаваць
+      redaction:
+        create: Стварыць рэдакцыю
+        update: Захаваць рэдакцыю
+      trace:
+        create: Зацягнуць
+        update: Запісаць змены
+      user_block:
+        create: Стварыць блакіроўку
+        update: Абнавіць блакіроўку
   activerecord:
     errors:
       messages:
@@ -297,7 +317,14 @@ be:
   diary_entries:
     new:
       title: Новы запіс дзённіку
-      publish_button: Апублікаваць
+    form:
+      subject: 'Тэма:'
+      body: 'Змест:'
+      language: 'Мова:'
+      location: 'Месца:'
+      latitude: 'Шырата:'
+      longitude: 'Даўгата:'
+      use_map_link: карыстацца картай
     index:
       title: Дзённікі карыстальнікаў
       title_friends: Дзённікі сяброў
@@ -312,14 +339,6 @@ be:
       newer_entries: Навейшыя запісы
     edit:
       title: Правіць запіс у дзённіку
-      subject: 'Тэма:'
-      body: 'Змест:'
-      language: 'Мова:'
-      location: 'Месца:'
-      latitude: 'Шырата:'
-      longitude: 'Даўгата:'
-      use_map_link: карыстацца картай
-      save_button: Захаваць
       marker_text: Месцазнаходжанне запісу дзённіка
     show:
       title: Дзённік карыстальніка %{user} | %{title}
@@ -327,7 +346,6 @@ be:
       leave_a_comment: Пакінуць каментар
       login_to_leave_a_comment: '%{login_link} каб пакінуць каментар'
       login: Увайсці
-      save_button: Захаваць
     no_such_entry:
       title: Няма такіх запісаў у дзённіку
       heading: 'Няма запісу з нумарам: %{id}'
@@ -1265,7 +1283,6 @@ be:
       send_message_to: Даслаць новае паведамленне %{name}
       subject: Тэма
       body: Тэкст
-      send_button: Даслаць
       back_to_inbox: Вярнуцца да уваходных
     create:
       message_sent: Паведамленне адпраўлена
@@ -1327,7 +1344,7 @@ be:
         Удзельнікі выкарыстоўваюць аэрафотаздымкі, GPS-прылады і нізкатэхналагічныя
         палявыя карты для праверкі таго, што дадзеныя OSM з'яўляюцца дакладнымі і
         актуальнымі.
-      community_driven_title: Развівіаецца супольнасцю
+      community_driven_title: Развіваецца супольнасцю
       community_driven_html: |-
         Супольнасць OpenStreetMap - разнастайная, зацятая і штодня расце. Сярод нашых удзельнікаў ёсць картографы энтузіясты і прафесіяналы, інжынеры якія падтрымліваюць серверы OSM, спецыялісты, якія з гуманістычных прычын, дапамагаюць у картаграфаванні раёнаў, пацярпелых ад стыхійнага бедства, і многія іншыя.
         Каб даведацца больш пра супольнасць, паглядзіце <a href='%{diary_path}'>дзённікі карыстальнікаў</a>,
@@ -1783,7 +1800,6 @@ be:
       visibility: 'Бачнасць:'
       visibility_help: што гэта значыць?
       visibility_help_url: https://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
-      upload_button: Зацягнуць
       help: Даведка
       help_url: http://wiki.openstreetmap.org/wiki/RU:Upload
     create:
@@ -1809,7 +1825,6 @@ be:
       description: 'Апісанне:'
       tags: 'Тэгі:'
       tags_help: падзеленыя коскамі
-      save_button: Запісаць змены
       visibility: 'Бачнасць:'
       visibility_help: што гэта значыць?
     update:
@@ -1929,10 +1944,8 @@ be:
   oauth_clients:
     new:
       title: Зарэгістраваць новае дастасаванне
-      submit: Зарэгістравацца
     edit:
       title: Рэдагаваць Вашае дастасаванне
-      submit: Рэдагаваць
     show:
       title: Падрабязнасьці OAuth для %{app_name}
       key: 'Ключ спажыўца:'
@@ -2101,16 +2114,12 @@ be:
     terms:
       title: Умовы ўдзелу
       heading: Умовы ўдзелу
-      read and accept: Калі ласка, пачытайце пагадненне ніжэй і націсніце кнопку «Згодны»,
-        каб пацвердзіць што Вы пагаджаецеся з умовамі гэтага пагаднення адносна Вашага
-        існуючага і будучых ўнёскаў.
       consider_pd: У дадатак да прыведзенага пагаднення, я пацвярджаю, што мой уклад
         знаходзіцца ў грамадскім набытку
       consider_pd_why: што гэта?
       consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
       guidance: 'Інфармацыя, якая дапаможа зразумець гэтыя ўмовы: <a href="%{summary}">кароткае
         апісанне</a> і некалькі <a href="%{translations}">неафіцыйных перакладаў</a>'
-      agree: Згодны
       declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
       decline: Адхіліць
       you need to accept or decline: Калі ласка, прачытайце, а потым згадзіцеся ці
@@ -2376,7 +2385,6 @@ be:
         зразумелыя паняцці.
       period: Як доўга, пачынаючы з гэтага моманту, карыстальніку будзе заблакіраваны
         доступ да API.
-      submit: Стварыць блакіроўку
       tried_contacting: Я звярнуўся да ўдзельніка і папрасіў яго спыніцца.
       tried_waiting: Я даў дастаткова часу ўдзельніку, каб адказаць на тыя паведамленні.
       needs_view: Удзельніку трэба ўвайсці ў сістэму, перад тым як блакіроўка будзе
@@ -2391,7 +2399,6 @@ be:
         таму выкарыстоўвайце зразумелыя паняцці.
       period: Як доўга, пачынаючы з гэтага моманту, карыстальніку будзе заблакіраваны
         доступ да API.
-      submit: Абнавіць блакіроўку
       show: Паказаць гэтую блакіроўку
       back: Паказаць усе блакіроўкі
       needs_view: Ці трэба ўдзельніку ўвайсці ў сістэму, перад тым як блакіроўка будзе
@@ -2421,15 +2428,16 @@ be:
       confirm: Вы ўпэўнены, што жадаеце адклікаць гэтую блакіроўку?
       revoke: Адазваць!
       flash: Гэтая блакіроўка была адклікана.
-    period:
-      one: 1 гадзіна
-      other: '%{count} гадзін'
     helper:
       time_future: Заканчваецца праз %{time}.
       until_login: Актыўная да моманту ўваходу ўдзельніка ў сістэму.
       time_future_and_until_login: Заканчваецца праз %{time} і пасля таго, як карыстальнік
         увойдзе ў сістэму.
       time_past: Скончылася %{time} таму.
+      block_duration:
+        hours:
+          one: 1 гадзіна
+          other: '%{count} гадзін'
     blocks_on:
       title: Блакіроўкі для %{name}
       heading: Спіс блакіровак %{name}
@@ -2674,7 +2682,6 @@ be:
     edit:
       description: Апісанне
       heading: Праўка рэдакцыі
-      submit: Захаваць рэдакцыю
       title: Праўка рэдакцыі
     index:
       empty: Няма рэдакцый для прагляду.
@@ -2683,7 +2690,6 @@ be:
     new:
       description: Апісанне
       heading: Калі ласка, увядзіце інфармацыю для новай рэдакцыі
-      submit: Стварыць рэдакцыю
       title: Стварэнне новай рэдакцыі
     show:
       description: 'Апісанне:'
index 26904708cb7bab49262af61d161016b62daf4ec4..fd83eece7c18de3b3197eab85510446e286eaf0b 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Bulgarian (български)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Abijeet Patro
 # Author: DCLXVI
 # Author: Lyubomirv
 # Author: MrPanyGoff
@@ -16,6 +17,20 @@ bg:
   time:
     formats:
       friendly: '%e %B %Y в %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Съхраняване
+      diary_entry:
+        create: Публикуване
+      message:
+        create: Изпращане
+      client_application:
+        create: Регистриране
+        update: Редактиране
+      trace:
+        create: Качване
+        update: Съхраняване на промените
   activerecord:
     errors:
       messages:
@@ -220,7 +235,14 @@ bg:
   diary_entries:
     new:
       title: Нов запис в дневника
-      publish_button: Публикуване
+    form:
+      subject: 'Тема:'
+      body: 'Текст:'
+      language: 'Език:'
+      location: 'Местоположение:'
+      latitude: 'Географска ширина:'
+      longitude: 'Географска дължина:'
+      use_map_link: използвай карта
     index:
       title: Дневници на потребителите
       title_friends: Дневници на приятели
@@ -235,21 +257,12 @@ bg:
       newer_entries: По-нови записи
     edit:
       title: Редактиране на запис в дневника
-      subject: 'Тема:'
-      body: 'Текст:'
-      language: 'Език:'
-      location: 'Местоположение:'
-      latitude: 'Географска ширина:'
-      longitude: 'Географска дължина:'
-      use_map_link: използвай карта
-      save_button: Съхраняване
     show:
       title: Дневник на потребител %{user} | %{title}
       user_title: дневник на %{user}
       leave_a_comment: Оставете коментар
       login_to_leave_a_comment: '%{login_link} за да оставите коментар'
       login: Влизане
-      save_button: Съхраняване
     no_such_entry:
       title: Няма такива записи в дневник
     diary_entry:
@@ -806,7 +819,6 @@ bg:
       send_message_to: Изпращане ново съобщение на %{name}
       subject: Тема
       body: Текст
-      send_button: Изпращане
     create:
       message_sent: Съобщението е изпратено
     no_such_message:
@@ -1024,7 +1036,6 @@ bg:
       tags: 'Етикети:'
       visibility: 'Видимост:'
       visibility_help: какво означава това?
-      upload_button: Качване
       help: Помощ
     edit:
       filename: 'Име на файл:'
@@ -1037,7 +1048,6 @@ bg:
       description: 'Описание:'
       tags: 'Етикети:'
       tags_help: разделени със запетая
-      save_button: Съхраняване на промените
       visibility: 'Видимост:'
     trace_optionals:
       tags: Етикети
@@ -1079,10 +1089,6 @@ bg:
     authorize:
       allow_write_api: промени картата.
   oauth_clients:
-    new:
-      submit: Регистриране
-    edit:
-      submit: Редактиране
     show:
       allow_write_api: промяна на картата.
     index:
@@ -1153,7 +1159,6 @@ bg:
     terms:
       heading: Условия за участие
       consider_pd_why: какво е това?
-      agree: Съгласен
       decline: Отхвърли
       you need to accept or decline: Моля, прочетете, а след това или се съгласете
         или откажете новите Условия за участие, за да продължите.
index 35127632dadcd668f40f8e9d8fd2fbefa663ebc4..fe1d8467b8b1de8bcda15351f714d16d222505a9 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Bangla (বাংলা)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Abijeet Patro
 # Author: Aftabuzzaman
 # Author: Bellayet
 # Author: Bodhisattwa
@@ -22,6 +23,23 @@ bn:
   time:
     formats:
       friendly: '%e %B %Y %H:%M-এ'
+  helpers:
+    submit:
+      diary_comment:
+        create: সংরক্ষণ
+      diary_entry:
+        create: প্রকাশ করুন
+      message:
+        create: পাঠান
+      client_application:
+        create: নিবন্ধন
+        update: সম্পাদনা
+      redaction:
+        create: সম্পাদন তৈরি করুন
+        update: সম্পাদন সংরক্ষণ করুন
+      trace:
+        create: আপলোড
+        update: পরিবর্তন সংরক্ষণ
   activerecord:
     models:
       acl: প্রবেশাধিকার নিয়ন্ত্রণ তালিকা
@@ -272,7 +290,14 @@ bn:
   diary_entries:
     new:
       title: নতুন দিনলিপির ভুক্তি
-      publish_button: প্রকাশ করুন
+    form:
+      subject: 'বিষয়:'
+      body: 'মূলাংশ:'
+      language: 'ভাষা:'
+      location: 'অবস্থান:'
+      latitude: 'অক্ষাংশ:'
+      longitude: 'দ্রাঘিমাংশ:'
+      use_map_link: মানচিত্র ব্যবহার করুন
     index:
       title: ব্যবহারকারীর দিনলিপি
       title_friends: বন্ধুর দিনলিপি
@@ -287,14 +312,6 @@ bn:
       newer_entries: নতুন ভুক্তি
     edit:
       title: দিনলিপির ভুক্তি সম্পাদনা করুন
-      subject: 'বিষয়:'
-      body: 'মূলাংশ:'
-      language: 'ভাষা:'
-      location: 'অবস্থান:'
-      latitude: 'অক্ষাংশ:'
-      longitude: 'দ্রাঘিমাংশ:'
-      use_map_link: মানচিত্র ব্যবহার করুন
-      save_button: সংরক্ষণ
       marker_text: দিনলিপির ভুক্তির অবস্থান
     show:
       title: '%{user}-এর দিনলিপি | %{title}'
@@ -302,7 +319,6 @@ bn:
       leave_a_comment: মন্তব্য করুন
       login_to_leave_a_comment: মন্তব্য করতে %{login_link} করুন
       login: প্রবেশ
-      save_button: সংরক্ষণ
     no_such_entry:
       title: এমন কোন দিনলিপির ভুক্তি নেই
       heading: '%{id} এই আইডি থেকে কোনও ভুক্তি নেই'
@@ -986,7 +1002,6 @@ bn:
       send_message_to: '%{name}কে একটি নতুন বার্তা পাঠান'
       subject: বিষয়
       body: মূলাংশ
-      send_button: পাঠান
       back_to_inbox: অন্তঃবক্সে ফেরৎ যান
     create:
       message_sent: বার্তা পাঠানো হয়েছে
@@ -1217,7 +1232,6 @@ bn:
       tags: 'ট্যাগসমূহ:'
       visibility: 'দৃষ্টিযোগ্যতা:'
       visibility_help: এটার মানে কি?
-      upload_button: আপলোড
       help: সাহায্য
     create:
       upload_trace: জিপিএস অনুসরণ আপলোড
@@ -1242,7 +1256,6 @@ bn:
       owner: 'মালিক:'
       description: 'বিবরণ:'
       tags: 'ট্যাগসমূহ:'
-      save_button: পরিবর্তন সংরক্ষণ
       visibility: 'দৃষ্টিযোগ্যতা:'
       visibility_help: এটার মানে কি?
     trace_optionals:
@@ -1292,9 +1305,6 @@ bn:
   oauth_clients:
     new:
       title: একটি নতুন আবেদন নিবন্ধন করুন
-      submit: নিবন্ধন
-    edit:
-      submit: সম্পাদনা
     show:
       edit: বিবরণ সম্পাদনা করুন
       confirm: আপনি কি নিশ্চিত?
@@ -1357,7 +1367,6 @@ bn:
       auth no password: তৃতীয় কোনো পদ্ধতিতে লগইন সক্রিয় থাকলে পাসওয়ার্ড বাধ্যতামূলক
         নয়, কিন্তু অতিরিক্ত কিছু সরঞ্জাম এবং সার্ভারের জন্য কখনো প্রয়োজন হতে পারে।
     terms:
-      agree: একমত
       legale_select: 'আপনার দেশ বাছাই করুন:'
       legale_names:
         france: ফ্রান্স
@@ -1552,7 +1561,6 @@ bn:
     edit:
       description: বিবরণ
       heading: সম্পাদনা সম্পাদন করুন
-      submit: সম্পাদন সংরক্ষণ করুন
       title: সম্পাদনা সম্পাদন করুন
     index:
       empty: প্রদর্শন করার মতো সম্পাদন নেই।
@@ -1561,7 +1569,6 @@ bn:
     new:
       description: বিবরণ
       heading: নতুন সম্পাদনের জন্য তথ্য লিখুন
-      submit: সম্পাদন তৈরি করুন
       title: নতুন সম্পাদন তৈরি করা হচ্ছে
     show:
       description: 'বিবরণ:'
index 945149bcdbb905dd75f83628c5a61affee2c0871..b0fe8cfd3a9a2220edb444840f165f414d0f1c1c 100644 (file)
@@ -16,6 +16,26 @@ br:
   time:
     formats:
       friendly: '%e %B %Y da %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Enrollañ
+      diary_entry:
+        create: Embann
+      message:
+        create: Kas
+      client_application:
+        create: Marilhañ
+        update: Aozañ
+      redaction:
+        create: Krouiñ ar skridaozadenn
+        update: Enrollañ ar skridaozadenn
+      trace:
+        create: Enporzhiañ
+        update: Enrollañ ar c'hemmoù
+      user_block:
+        create: Krouiñ ur stankadur
+        update: Hizivaat ar stankadur
   activerecord:
     errors:
       messages:
@@ -298,7 +318,14 @@ br:
   diary_entries:
     new:
       title: Enmoned nevez en deizlevr
-      publish_button: Embann
+    form:
+      subject: 'Danvez :'
+      body: 'Korf :'
+      language: 'Yezh :'
+      location: 'Lec''hiadur :'
+      latitude: 'Ledred :'
+      longitude: 'Hedred :'
+      use_map_link: implijout ar gartenn
     index:
       title: Deizlevrioù an implijerien
       title_friends: Deizlevrioù ar vignoned
@@ -313,14 +340,6 @@ br:
       newer_entries: Enmonedoù nevesañ
     edit:
       title: Kemmañ an enmoned en deizlevr
-      subject: 'Danvez :'
-      body: 'Korf :'
-      language: 'Yezh :'
-      location: 'Lec''hiadur :'
-      latitude: 'Ledred :'
-      longitude: 'Hedred :'
-      use_map_link: implijout ar gartenn
-      save_button: Enrollañ
       marker_text: Lec'hiadur an enmoned en deizlevr
     show:
       title: Deizlevr %{user} | %{title}
@@ -328,7 +347,6 @@ br:
       leave_a_comment: Lezel un addispleg
       login_to_leave_a_comment: '%{login_link} evit lezel un addispleg'
       login: Kevreañ
-      save_button: Enrollañ
     no_such_entry:
       title: Enmoned ebet evel-se en deizlevr
       heading: 'Enmoned ebet gant an id : %{id}'
@@ -1279,7 +1297,6 @@ br:
       send_message_to: Kas ur gemennadenn nevez da %{name}
       subject: Danvez
       body: Korf
-      send_button: Kas
       back_to_inbox: Distreiñ d'ar voest resev
     create:
       message_sent: Kemennadenn kaset
@@ -1790,7 +1807,6 @@ br:
       visibility: 'Gwelusted :'
       visibility_help: Petra a dalvez ?
       visibility_help_url: https://wiki.openstreetmap.org/wiki/FR:Visibilit%C3%A9_des_traces_GPS
-      upload_button: Enporzhiañ
       help: Skoazell
       help_url: https://wiki.openstreetmap.org/wiki/FR:Upload
     create:
@@ -1817,7 +1833,6 @@ br:
       description: 'Deskrivadur :'
       tags: 'Tikedennoù :'
       tags_help: bevennet gant virgulennoù
-      save_button: Enrollañ ar c'hemmoù
       visibility: 'Gwelusted :'
       visibility_help: Petra a dalvez an dra-mañ ?
     update:
@@ -1937,10 +1952,8 @@ br:
   oauth_clients:
     new:
       title: Marilhañ un arload nevez
-      submit: Marilhañ
     edit:
       title: Aozañ hoc'h arload
-      submit: Aozañ
     show:
       title: Munudoù OAuth evit %{app_name}
       key: 'Alc''hwez implijer :'
@@ -2111,9 +2124,6 @@ br:
     terms:
       title: Diferadennoù ar c'henlabourer
       heading: Diferadennoù ar c'henlabourer
-      read and accept: Lennit ar gevrat amañ dindan, mar plij, ha klikit war ar bouton
-        asantiñ evit kadarnaat eo mat diferadennoù ar gevrat deoc'h evit a sell ho
-        tegasadennoù tremenet ha da zont.
       consider_pd: Ouzhpenn an asant amañ a-us, ez anavezan emañ ma zegasadennoù en
         domani foran
       consider_pd_why: petra eo se ?
@@ -2121,7 +2131,6 @@ br:
       guidance: 'Titouroù da skoazellañ kompren an termenoù-mañ : a <a href="%{summary}">diverradenn
         lennus gant mab-den</a> hag un nebeud <a href="%{translations}">troidigezhioù
         anfurmel</a>'
-      agree: Mat eo din
       declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
       decline: Nac'h
       you need to accept or decline: Lennit da gentañ Termenoù ar berzhidi nevez ha
@@ -2391,7 +2400,6 @@ br:
         kemennadenn a-wel d'an holl ha ne vez ket komprenet luc'haj ar gumuniezh gant
         an holl, neuze implijit gerioù eeun ha resis.
       period: Pegeit, adalek bremañ, e vo stanket an implijer war an API.
-      submit: Krouiñ ur stankadur
       tried_contacting: Aet on e darempred gant an implijer ha goulennet em eus digantañ
         paouez.
       tried_waiting: Amzer a-walc'h am eus roet d'an implijer evit respont d'ar c'hemennadennoù.
@@ -2404,7 +2412,6 @@ br:
         ar gwellañ a ditouroù diwar-benn ar blegenn. Ho pezet soñj ne vez ket komprenet
         luc'haj ar gumuniezh gant an holl, neuze implijit gerioù eeun ha resis.
       period: Pegeit, adalek bremañ, e vo stanket an implijer war an API.
-      submit: Hizivaat ar stankadur
       show: Gwelet ar stankadur-mañ
       back: Gwelet an holl stankadurioù
       needs_view: Ha ret eo d'an implijer kevreañ a-raok ma vefe diverket ar stankadur
@@ -2435,15 +2442,16 @@ 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ñ.
-    period:
-      one: 1 eurvezh
-      other: '%{count} eurvezh'
     helper:
       time_future: Echuiñ a ray a-benn %{time}.
       until_login: Oberiant betek ma kevre an implijer.
       time_future_and_until_login: Echuiñ a ra a-benn %{time} hag ur wech kevreet
         an implijer.
       time_past: Echuet %{time} zo.
+      block_duration:
+        hours:
+          one: 1 eurvezh
+          other: '%{count} eurvezh'
     blocks_on:
       title: Stankadurioù evit %{name}
       heading: Roll ar stankadurioù evit %{name}
@@ -2688,7 +2696,6 @@ br:
     edit:
       description: Deskrivadur
       heading: Aozañ ar skridaozadenn
-      submit: Enrollañ ar skridaozadenn
       title: Aozañ ar skridaozadenn
     index:
       empty: Skridaozadenn ebet da ziskouez.
@@ -2697,7 +2704,6 @@ br:
     new:
       description: Deskrivadur
       heading: Merkit an titouroù evit ar skridaozadenn nevez
-      submit: Krouiñ ar skridaozadenn
       title: O krouiñ ur skridaozadenn nevez
     show:
       description: 'Deskrivadur :'
index d782bb3a5295249a19cfed5ac8b93fddc9ccec6b..e51168ae7e7238d8b08107313b52e5c36196bba3 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Bosnian (bosanski)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Abijeet Patro
 # Author: Alenmahovic
 # Author: CERminator
 # Author: DzWiki
@@ -17,6 +18,26 @@ bs:
   time:
     formats:
       friendly: '%e %B %Y u %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Spremiti
+      diary_entry:
+        create: Objavi
+      message:
+        create: Poslati
+      client_application:
+        create: Registrirati
+        update: Urediti
+      redaction:
+        create: Napraviti redakciju
+        update: Spremiti redakciju
+      trace:
+        create: Postaviti
+        update: Sačuvati promjene
+      user_block:
+        create: Napraviti blokadu
+        update: Osvježiti blokadu
   activerecord:
     models:
       acl: Kontrole pristupa
@@ -219,7 +240,14 @@ bs:
   diary_entries:
     new:
       title: Novi unos u dnevnik
-      publish_button: Objavi
+    form:
+      subject: 'Predmet:'
+      body: 'Tijelo:'
+      language: 'Jezik:'
+      location: 'Lokacija:'
+      latitude: Geografska širina (Latitude)
+      longitude: Geografska dužina (Longitude)
+      use_map_link: korisititi kartu
     index:
       title: Dnevnici korisnika
       title_friends: Dnevnici prijatelja
@@ -234,14 +262,6 @@ bs:
       newer_entries: Noviji unosi
     edit:
       title: Uredi unos u dnevniku
-      subject: 'Predmet:'
-      body: 'Tijelo:'
-      language: 'Jezik:'
-      location: 'Lokacija:'
-      latitude: Geografska širina (Latitude)
-      longitude: Geografska dužina (Longitude)
-      use_map_link: korisititi kartu
-      save_button: Spremiti
       marker_text: Lokacija unosa u dnevnik
     show:
       title: Dnevnik korisnika %{user} | %{title}
@@ -249,7 +269,6 @@ bs:
       leave_a_comment: Ostaviti komentar
       login_to_leave_a_comment: '%{login_link} da bi ostavili komentar'
       login: Prijava
-      save_button: Spremiti
     no_such_entry:
       title: Nema takvog unosa u dnevnik
       heading: 'Nema unosa sa id: %{id}'
@@ -928,7 +947,6 @@ bs:
       send_message_to: Poslati novu poruku za %{name}
       subject: Predmet
       body: Tijelo
-      send_button: Poslati
       back_to_inbox: Nazad u dolaznu poštu
     create:
       message_sent: Poruka poslana
@@ -1261,7 +1279,6 @@ bs:
       tags_help: odvojeno zarezima
       visibility: 'Vidljivost:'
       visibility_help: Šta ovo znači?
-      upload_button: Postaviti
       help: Pomoć
     create:
       upload_trace: Postaviti GPS trasu
@@ -1288,7 +1305,6 @@ bs:
       description: 'Opis:'
       tags: 'Oznake:'
       tags_help: odvojeno zarezima
-      save_button: Sačuvati promjene
       visibility: 'Vidljivost:'
       visibility_help: Šta ovo znači?
     trace_optionals:
@@ -1378,10 +1394,8 @@ bs:
   oauth_clients:
     new:
       title: Registrirajte novu aplikaciju
-      submit: Registrirati
     edit:
       title: Uredite Vašu aplikaciju
-      submit: Urediti
     show:
       title: OAuth detalji za %{app_name}
       key: 'Ključ korisnika:'
@@ -1517,15 +1531,11 @@ bs:
     terms:
       title: Uslovi za doprinosioce
       heading: Uslovi za doprinosioce
-      read and accept: Molimo Vas da pročitate ugovor ispod i  dapritisnete dugme
-        za potvrdu da prihvatate uslove ovog sporazuma za Vaše postojeće i buduće
-        doprinose.
       consider_pd: Osim gore navedenog ugovora, smatram da su moji doprinosi u javnom
         vlasništvu (Public Domain)
       consider_pd_why: Šta je ovo?
       guidance: 'Informacija da bi se pomoglo u shvatanju ovih uslova: <a href="%{summary}">Čitljiv
         sažetak</a> i neki <a href="%{translations}">neformalni prijevodi</a>'
-      agree: Slažem se
       decline: Odbiti
       you need to accept or decline: Molimo pročitajte i onda ili prihvatite ili odbijte
         nove Uslove za doprinosioce da bi ste nastavili.
@@ -1753,7 +1763,6 @@ bs:
         biti javno vidljiva. Imajte na umu da svi korisnici ne razumiju žargon u zajednici,
         pa im objasnite jednostavnim jezikom.
       period: Koliko dugo, od sada, će korisnik biti blokiran od strane API.
-      submit: Napraviti blokadu
       tried_contacting: Kontaktirao sam korisnika i pitao da prestane.
       tried_waiting: Dao sam dovoljno razumnog vremena korisniku da odgovori.
       needs_view: Korisnik se mora prijaviti da bi se blokada očistila
@@ -1765,7 +1774,6 @@ bs:
         je više je moguće, dajući što više detalja o situaciji. Imajte na umu da svi
         korisnici ne razumiju žargon u zajednici, pa im objasnite jednostavnim jezikom.
       period: Koliko dugo, od sada, će korisnik biti blokiran od strane API.
-      submit: Osvježiti blokadu
       show: Pogledati ovu blokadu
       back: Pogledati sve blokade
       needs_view: Da li se korisnik mora prijaviti prije nego se očisti blokada?
@@ -1793,13 +1801,14 @@ bs:
       confirm: Jeste li sgurni da želite opozvati ovu blokadu?
       revoke: Opozvati!
       flash: Ova blokada je opozvana.
-    period:
-      one: 1 sat
-      other: '%{count} sata/i'
     helper:
       time_future: Završava u %{time}.
       until_login: Aktivno dok se korsnik ne prijavi.
       time_past: Završeno prije %{time}.
+      block_duration:
+        hours:
+          one: 1 sat
+          other: '%{count} sata/i'
     blocks_on:
       title: Blokade na %{name}
       heading: Lista blokada na %{name}
@@ -1906,7 +1915,6 @@ bs:
     edit:
       description: Opis
       heading: Urediti redakciju
-      submit: Spremiti redakciju
       title: Urediti redakciju
     index:
       empty: Nema redakcija za prikaz.
@@ -1915,7 +1923,6 @@ bs:
     new:
       description: Opis
       heading: Unijeti informacije za novu redakciju
-      submit: Napraviti redakciju
       title: Pravljenje nove redakcije
     show:
       description: 'Opis:'
index f18ac243ffe1937af3118c53629de0f84c5576c4..7b10a4f112de45606150e871202d36c0f87587e5 100644 (file)
@@ -43,6 +43,28 @@ ca:
   time:
     formats:
       friendly: '%e %B %Y a les %H.%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Desa
+      diary_entry:
+        create: Publica
+      issue_comment:
+        create: Afegeix un comentari
+      message:
+        create: Envia
+      client_application:
+        create: Registre
+        update: Modificació
+      redaction:
+        create: Crea una redacció
+        update: Desa la redacció
+      trace:
+        create: Puja
+        update: Desa els canvis
+      user_block:
+        create: Crear bloc
+        update: Bloc d'Actualització
   activerecord:
     models:
       acl: Llista de control d'accés
@@ -312,7 +334,14 @@ ca:
   diary_entries:
     new:
       title: Entrada de diari nova
-      publish_button: Publica
+    form:
+      subject: 'Assumpte:'
+      body: 'Cos del missatge:'
+      language: 'Llengua:'
+      location: 'Ubicació:'
+      latitude: 'Latitud:'
+      longitude: 'Longitud:'
+      use_map_link: usa el mapa
     index:
       title: Diaris d'usuari/a
       title_friends: Diaris dels amics
@@ -327,14 +356,6 @@ ca:
       newer_entries: Entrades més recents
     edit:
       title: Edita entrada del diari
-      subject: 'Assumpte:'
-      body: 'Cos del missatge:'
-      language: 'Llengua:'
-      location: 'Ubicació:'
-      latitude: 'Latitud:'
-      longitude: 'Longitud:'
-      use_map_link: usa el mapa
-      save_button: Desa
       marker_text: Localització de l'Entrada del Diari
     show:
       title: Diari de %{user} | %{title}
@@ -342,7 +363,6 @@ ca:
       leave_a_comment: Deixa un comentari
       login_to_leave_a_comment: '%{login_link} per deixar un comentari'
       login: Accés
-      save_button: Desa
     no_such_entry:
       title: No hi ha entrada al diari com
       heading: No hi ha cap entrada amb la id %{id}
@@ -1160,7 +1180,6 @@ ca:
       send_message_to: Envia un missatge nou per a %{name}
       subject: Assumpte
       body: Cos
-      send_button: Envia
       back_to_inbox: Torna a la safata d'entrada
     create:
       message_sent: S'ha enviat el missatge
@@ -1669,7 +1688,6 @@ ca:
       tags_help: separat per comes
       visibility: 'Visibilitat:'
       visibility_help: què significa això?
-      upload_button: Puja
       help: Ajuda
     create:
       upload_trace: Pujar traça de GPS
@@ -1697,7 +1715,6 @@ ca:
       description: 'Descripció:'
       tags: 'Etiquetes:'
       tags_help: separat per comes
-      save_button: Desa els canvis
       visibility: 'Visibilitat:'
       visibility_help: Què vol dir això?
     trace_optionals:
@@ -1806,10 +1823,8 @@ ca:
   oauth_clients:
     new:
       title: Registrar-se una nova aplicació
-      submit: Registre
     edit:
       title: Editar la vostra aplicació
-      submit: Modificació
     show:
       title: OAuth detalls per %{app_name}
       key: 'Clau de consum:'
@@ -1979,15 +1994,11 @@ ca:
     terms:
       title: 'Termes de col·laboració:'
       heading: 'Termes de col·laboració:'
-      read and accept: Llegeiu l'acord de sota i premeu el botó D'acord per confirmar
-        que accepteu els termes d'aquest acord per a les vostres contribucions existents
-        i futures.
       consider_pd: A més de l'acord de dalt, considero que les meves contribucions
         han d'estar en el domini públic
       consider_pd_why: què és això?
       guidance: 'Informació per ajudar a entendre aquestes condicions: un <a href="%{summary}">resum
         llegible humà</a> i algunes <a href="%{translations}">traduccions informals</a>'
-      agree: D'acord
       decline: Ho rebutjo
       you need to accept or decline: Llegiu i després accepteu o rebutgeu els termes
         per a nous col·laboradors per continuar.
@@ -2254,7 +2265,6 @@ ca:
         en compte que no tots els usuaris comprenen l'argot de la comunitat, així
         que intenteu utilitzar termes de comuns.
       period: Quant de temps, a partir d'ara, l'usuari es bloca des de l'API.
-      submit: Crear bloc
       tried_contacting: Em vaig posar en contacte amb l'usuari i li vaig demanar que
         s'aturés.
       tried_waiting: Li he donat una quantitat raonable de temps a l'usuari per a
@@ -2269,7 +2279,6 @@ ca:
         sobre la situació. Tingueu en compte que no tots els usuaris comprenen l'argot
         de la comunitat, així que si us plau, intenteu utilitzar termes comuns.
       period: Quant de temps, a partir d'ara, l'usuari tindrà blocat l'accés a l'API.
-      submit: Bloc d'Actualització
       show: Mostra el bloc
       back: Mostra tots els blocs
       needs_view: L'usuari necessita connectar-se abans que aquest blocatge es suprimeixi?
@@ -2298,13 +2307,14 @@ ca:
       confirm: Esteu segur que voleu revocar aquest bloc?
       revoke: Revoca!
       flash: Aquest bloc ha estat revocat.
-    period:
-      one: 1 hora
-      other: '%{count} hores'
     helper:
       time_future: Finalitza en %{time}.
       until_login: Activa fins que l'usuari es connecta.
       time_past: Va acabar fa %{time}.
+      block_duration:
+        hours:
+          one: 1 hora
+          other: '%{count} hores'
     blocks_on:
       title: Blocs en %{name}
       heading: Llista de quadres a %{name}
@@ -2511,7 +2521,6 @@ ca:
     edit:
       description: Descripció
       heading: Modifica la redacció
-      submit: Desa la redacció
       title: Modifica la redacció
     index:
       empty: No hi ha redaccions a mostrar.
@@ -2520,7 +2529,6 @@ ca:
     new:
       description: Descripció
       heading: Introduïu informació per una nova redacció
-      submit: Crea una redacció
       title: Creació d’una versió nova
     show:
       description: 'Descripció:'
index 8e64ec8baa09d3e24863f2a16fea3ce99f48d2a4..b734cf467cc76ee70cbe04a0972bf67f78363d7c 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Chechen (нохчийн)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Abijeet Patro
 # Author: Sasan700
 # Author: Умар
 ---
@@ -8,6 +9,16 @@ ce:
   time:
     formats:
       friendly: '%e %B %Y %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Ӏалашдан
+      diary_entry:
+        create: Арахеца
+      message:
+        create: ДӀадахьийта
+      trace:
+        update: Ӏалашбе хийцамаш
   activerecord:
     errors:
       messages:
@@ -279,7 +290,14 @@ ce:
   diary_entries:
     new:
       title: Де керла дӀаяздар
-      publish_button: Арахеца
+    form:
+      subject: 'Тема:'
+      body: 'Йоза:'
+      language: 'Мотт:'
+      location: 'Меттиг:'
+      latitude: 'Шоралла:'
+      longitude: 'Дохалла:'
+      use_map_link: Гайта картан тӀехь
     index:
       title: Дневникаш
       title_friends: ДоттагӀийн дневникаш
@@ -294,14 +312,6 @@ ce:
       newer_entries: Керла дӀаяздарш
     edit:
       title: ДӀаяздарш тадар
-      subject: 'Тема:'
-      body: 'Йоза:'
-      language: 'Мотт:'
-      location: 'Меттиг:'
-      latitude: 'Шоралла:'
-      longitude: 'Дохалла:'
-      use_map_link: Гайта картан тӀехь
-      save_button: Ӏалашдан
       marker_text: Билгало язйаран меттиг
     show:
       title: Декъашхочун дневник %{user} | %{title}
@@ -309,7 +319,6 @@ ce:
       leave_a_comment: Йитта коммент
       login_to_leave_a_comment: '%{login_link}, коммент йитарна'
       login: ЧугӀо
-      save_button: Ӏалашдан
     no_such_entry:
       title: Иштта дневникан дӀаяздар дац
       heading: 'ДӀаяздар дац id: %{id}'
@@ -722,7 +731,7 @@ ce:
     new:
       subject: Тема
       body: 'Йоза:'
-      send_button: ДӀадахьийта
+      back_to_inbox: ЧубогӀучаьрга юханехьа
     outbox:
       title: ДӀайохьуьйтурш
       inbox: чуйогӀурш
@@ -822,7 +831,6 @@ ce:
     edit:
       download: схьаэца
       start_coord: 'Координати юьхь:'
-      save_button: Ӏалашбе хийцамаш
       visibility: 'Гуш хилар:'
     show:
       download: схьаэца
@@ -870,7 +878,6 @@ ce:
       confirm password: 'Юха а язъе пароль:'
       continue: Кхин дӀа
     terms:
-      agree: ТӀеэца
       declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined?uselang=ce
       decline: Юхатоха
       legale_names:
@@ -959,9 +966,11 @@ ce:
     revoke:
       revoke: ДӀаяккха блок!
       flash: ХӀара блок дӀаяьккхина.
-    period:
-      one: 1 сахьт
-      other: '%{count} сахьт'
+    helper:
+      block_duration:
+        hours:
+          one: 1 сахьт
+          other: '%{count} сахьт'
     show:
       created: Кхоьллина
       ago: '%{time} хьалха'
index cab024e5f927bddef9002a3411d022d46b62e3fb..0671a87e38156b4aa62511b44fa0d86703f941a0 100644 (file)
@@ -43,6 +43,26 @@ cs:
     formats:
       friendly: '%e. %m. %Y v %H:%M'
       blog: '%e. %L. %Y'
+  helpers:
+    submit:
+      diary_comment:
+        create: Uložit
+      diary_entry:
+        create: Publikovat
+      message:
+        create: Odeslat
+      client_application:
+        create: Zaregistrovat
+        update: Upravit
+      redaction:
+        create: Vytvořit redakci
+        update: Uložit redakci
+      trace:
+        create: Nahrát
+        update: Uložit změny
+      user_block:
+        create: Vytvořit blok
+        update: Aktualizovat blok
   activerecord:
     errors:
       messages:
@@ -328,7 +348,14 @@ cs:
   diary_entries:
     new:
       title: Nový záznam do deníku
-      publish_button: Publikovat
+    form:
+      subject: 'Předmět:'
+      body: 'Text:'
+      language: 'Jazyk:'
+      location: 'Místo:'
+      latitude: 'Zeměpisná šířka:'
+      longitude: 'Zeměpisná délka:'
+      use_map_link: použít mapu
     index:
       title: Deníky uživatelů
       title_friends: Deníky přátel
@@ -343,14 +370,6 @@ cs:
       newer_entries: Novější záznamy
     edit:
       title: Upravit deníkový záznam
-      subject: 'Předmět:'
-      body: 'Text:'
-      language: 'Jazyk:'
-      location: 'Místo:'
-      latitude: 'Zeměpisná šířka:'
-      longitude: 'Zeměpisná délka:'
-      use_map_link: použít mapu
-      save_button: Uložit
       marker_text: Místo deníkového záznamu
     show:
       title: Deník uživatele %{user} | %{title}
@@ -358,7 +377,6 @@ cs:
       leave_a_comment: Zanechat komentář
       login_to_leave_a_comment: '%{login_link} k zanechání komentáře'
       login: Přihlaste se
-      save_button: Uložit
     no_such_entry:
       title: Deníkový záznam nenalezen
       heading: Záznam s ID %{id} neexistuje
@@ -1299,7 +1317,6 @@ cs:
       send_message_to: Poslat novou zprávu uživateli %{name}
       subject: Předmět
       body: Text
-      send_button: Odeslat
       back_to_inbox: Zpět do doručené pošty
     create:
       message_sent: Zpráva odeslána
@@ -1422,7 +1439,7 @@ cs:
           OSMF</a>.
         more_2_html: |-
           Přestože OpenStreetMap tvoří svobodná data, nemůžeme zdarma poskytovat třetím stranám mapové API.
-          Viz naše <a href="https://operations.osmfoundation.org/policies/api/">Pravidla použití API</a>, <a href="https://operations.osmfoundation.org/policies/tiles/">Pravidla použití dlaždic</a> a <a href="https://operations.osmfoundation.org/policies/nominatim/">Pravidla použití Nominatimu</a>.
+          Vizte naše <a href="https://operations.osmfoundation.org/policies/api/">Pravidla použití API</a>, <a href="https://operations.osmfoundation.org/policies/tiles/">Pravidla použití dlaždic</a> a <a href="https://operations.osmfoundation.org/policies/nominatim/">Pravidla použití Nominatimu</a>.
         contributors_title_html: Naši přispěvatelé
         contributors_intro_html: 'Našimi přispěvateli jsou tisíce jednotlivců. Také
           zahrnujeme svobodně licencovaná data z národních zeměměřických úřadů a dalších
@@ -1781,7 +1798,6 @@ cs:
       visibility: 'Viditelnost:'
       visibility_help: co tohle znamená?
       visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces?uselang=cs
-      upload_button: Nahrát
       help: Nápověda
       help_url: http://wiki.openstreetmap.org/wiki/Upload?uselang=cs
     create:
@@ -1814,7 +1830,6 @@ cs:
       description: 'Popis:'
       tags: 'Štítky:'
       tags_help: oddělené čárkou
-      save_button: Uložit změny
       visibility: 'Viditelnost:'
       visibility_help: co tohle znamená?
       visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces?uselang=cs
@@ -1934,10 +1949,8 @@ cs:
   oauth_clients:
     new:
       title: Registrace nové aplikace
-      submit: Zaregistrovat
     edit:
       title: Upravit aplikaci
-      submit: Upravit
     show:
       title: Podrobnosti OAuth pro %{app_name}
       key: 'Klíč konzumenta (consumer key):'
@@ -2104,15 +2117,11 @@ cs:
     terms:
       title: Podmínky pro přispěvatele
       heading: Podmínky pro přispěvatele
-      read and accept: Přečtěte si prosím níže zobrazenou dohodu a klikněte na tlačítko
-        souhlasu, čímž potvrdíte, že přijímáte podmínky této dohody pro stávající
-        i budoucí příspěvky.
       consider_pd: Navíc k výše uvedené dohodě považuji své příspěvky za volné dílo.
       consider_pd_why: co to znamená?
       consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
       guidance: 'Informace, které pomohou tyto podmínky pochopit: <a href="%{summary}">lidsky
         čitelné shrnutí</a> a nějaké <a href="%{translations}">neoficiální překlady</a>'
-      agree: Souhlasím
       declined: http://wiki.openstreetmap.org/wiki/CS:Contributor_Terms_Declined?uselang=cs
       decline: Nesouhlasím
       you need to accept or decline: Pro pokračování si prosím přečtěte a přijměte
@@ -2377,7 +2386,6 @@ cs:
         komunitními žargonu, proto zkuste používat terminologii srozumitelnou běžným
         lidem.
       period: Jak dlouho (odteď) bude přístup uživatel k API zablokován.
-      submit: Vytvořit blok
       tried_contacting: Kontaktoval jsem uživatele a požádal ho, aby přestal.
       tried_waiting: Dejte uživateli přiměřené množství času, aby mohl na tuto komunikaci
         reagovat.
@@ -2390,7 +2398,6 @@ cs:
         co nejlépe situaci. Mějte na paměti, že ne všichni uživatelé rozumí slangu
         komunity, zkuste ho tedy v tomto připadě nepoužívat.
       period: Jak dlouho (od nynějška) bude uživatel blokován z užívání API.
-      submit: Aktualizovat blok
       show: Zobrazit tento blok
       back: Zobrazit všechny bloky
       needs_view: Potřebuje se uživatel příhlásit před tím, než bude tento blok vymazán?
@@ -2418,14 +2425,15 @@ cs:
       confirm: Opravdu chcete zrušit tento blok?
       revoke: Zrušit !
       flash: Tento blok byl zrušen.
-    period:
-      one: 1 hodina
-      other: '%{count} hodiny'
     helper:
       time_future: Končí za %{time}.
       until_login: Aktivní dokud se uživatel nepřihlásí.
       time_future_and_until_login: Končí za %{time} a až se uživatel přihlásí.
       time_past: Ukončeno před %{time}.
+      block_duration:
+        hours:
+          one: 1 hodina
+          other: '%{count} hodiny'
     blocks_on:
       title: Zablokování uživatele %{name}
       heading: Seznam zablokování uživatele %{name}
@@ -2667,7 +2675,6 @@ cs:
     edit:
       description: Popis
       heading: Upravit redakci
-      submit: Uložit redakci
       title: Upravit redakci
     index:
       empty: Žádné opravy k ukázání.
@@ -2676,7 +2683,6 @@ cs:
     new:
       description: Popis
       heading: Zadejte informace k nové redakci
-      submit: Vytvořit redakci
       title: Tvorba nové redakce
     show:
       description: 'Popis:'
index 750bcb67aa35dbd2f92773b1c259846a054385c6..05b208b55797aea8c8cb892124362181ae3aa014 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Welsh (Cymraeg)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Abijeet Patro
 # Author: Cymrodor
 # Author: Robin Owain
 ---
@@ -8,6 +9,20 @@ cy:
   time:
     formats:
       friendly: '%e %B %Y at %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Cadw
+      diary_entry:
+        create: Cyhoeddi
+      message:
+        create: Anfon
+      client_application:
+        create: Cofrestru
+        update: Golygu
+      trace:
+        create: Uwchlwytho
+        update: Cadw Newidiadau
   activerecord:
     models:
       acl: Rhestr Rheoli Mynediad
@@ -264,7 +279,14 @@ cy:
   diary_entries:
     new:
       title: Cofnod Dyddiadur Newydd
-      publish_button: Cyhoeddi
+    form:
+      subject: 'Pwnc:'
+      body: 'Corff:'
+      language: 'Iaith:'
+      location: 'Lleoliad:'
+      latitude: Hydred
+      longitude: Lledred
+      use_map_link: defnyddiwch y map
     index:
       title: Dyddiaduron defnyddwyr
       title_friends: Dyddiaduron ffrindiau
@@ -279,14 +301,6 @@ cy:
       newer_entries: Confodion Mwy Diweddar
     edit:
       title: Golygu cofnod dyddiadur
-      subject: 'Pwnc:'
-      body: 'Corff:'
-      language: 'Iaith:'
-      location: 'Lleoliad:'
-      latitude: Hydred
-      longitude: Lledred
-      use_map_link: defnyddiwch y map
-      save_button: Arbed
       marker_text: Lleoliad cofnod y dyddiadur
     show:
       title: yddiadur %{user} | %{title}
@@ -294,7 +308,6 @@ cy:
       leave_a_comment: Gadael sylw
       login_to_leave_a_comment: '%{login_link} i adael sylw'
       login: Mewngofnodi
-      save_button: Cadw
     no_such_entry:
       title: Dim cofnod o'r fath yn y dyddiadur
       heading: 'Dim cofnod efo''r id: %{id}'
@@ -1011,7 +1024,6 @@ cy:
       send_message_to: Anfon negese newydd at %{name}
       subject: Pwnc
       body: Corff
-      send_button: Anfon
       back_to_inbox: Nôl i'r mewnflwch
     create:
       message_sent: Anfonwyd y neges
@@ -1242,7 +1254,6 @@ cy:
       tags: 'Tagiau:'
       visibility: 'Gwelededd:'
       visibility_help: beth mae hyn yn golygu?
-      upload_button: Uwchlwytho
       help: Cymorth
     edit:
       filename: 'Enw ffeil:'
@@ -1255,7 +1266,6 @@ cy:
       owner: 'Perchennog:'
       description: 'Disgrifiad:'
       tags: 'Tagiau:'
-      save_button: Cadw Newidiadau
       visibility: 'Gwelededd:'
       visibility_help: beth mae hyn yn golygu?
     trace_optionals:
@@ -1314,10 +1324,8 @@ cy:
   oauth_clients:
     new:
       title: Cofrestru rhaglen newydd
-      submit: Cofrestru
     edit:
       title: Golygu'ch rhaglen
-      submit: Golygu
     show:
       url: 'URL Cais Tocyn:'
       access_url: URL Tocyn Mynediad
@@ -1391,7 +1399,6 @@ cy:
       title: Telerau cyfranwyr
       heading: Telerau cyfranwyr
       consider_pd_why: beth yw hwn?
-      agree: Cytuno
       decline: Gwrthod
       legale_names:
         france: Ffrainc
index 3cdefa3b621e67c1896c36dc4a7c3f5c3565398e..685d3734b2eaca6382be60a76a5eb82c38997104 100644 (file)
@@ -35,10 +35,32 @@ da:
   time:
     formats:
       friendly: '%e. %B %Y kl. %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Gem
+      diary_entry:
+        create: Offentliggør
+        update: Opdater
+      message:
+        create: Send
+      client_application:
+        create: Registrér
+        update: Redigér
+      redaction:
+        create: Opret omarbejdelse
+        update: Gem omarbejdelse
+      trace:
+        create: Upload
+        update: Gem ændringer
+      user_block:
+        create: Opret blokering
+        update: Opdater blokering
   activerecord:
     errors:
       messages:
         invalid_email_address: ser ikke ud til at være en gyldig e-mailadresse
+        email_address_not_routable: kan ikke rutes
     models:
       acl: Adgangskontrolliste
       changeset: Ændringssæt
@@ -318,7 +340,14 @@ da:
   diary_entries:
     new:
       title: Nyt blogindlæg
-      publish_button: Offentliggør
+    form:
+      subject: 'Emne:'
+      body: 'Indhold:'
+      language: 'Sprog:'
+      location: 'Position:'
+      latitude: 'Breddegrad:'
+      longitude: 'Længdegrad:'
+      use_map_link: brug kort
     index:
       title: Brugerblogs
       title_friends: Venners blogs
@@ -332,15 +361,7 @@ da:
       older_entries: Ældre indlæg
       newer_entries: Nyere indlæg
     edit:
-      title: Ret blogindlæg
-      subject: 'Emne:'
-      body: 'Indhold:'
-      language: 'Sprog:'
-      location: 'Position:'
-      latitude: 'Breddegrad:'
-      longitude: 'Længdegrad:'
-      use_map_link: brug kort
-      save_button: Gem
+      title: Rediger blogindlæg
       marker_text: Placering for blogindlæg
     show:
       title: '%{user}''s blog | %{title}'
@@ -348,7 +369,6 @@ da:
       leave_a_comment: Tilføj en kommentar
       login_to_leave_a_comment: '%{login_link} for at kommentere'
       login: Log på
-      save_button: Gem
     no_such_entry:
       title: Intet blogindlæg fundet
       heading: 'Intet indlæg med id: %{id}'
@@ -364,11 +384,13 @@ da:
         other: '%{count} kommentarer'
       edit_link: Rediger dette indlæg
       hide_link: Skjul dette indlæg
+      unhide_link: Skjul ikke længere dette indlæg
       confirm: Bekræft
       report: Rapporter dette indlæg
     diary_comment:
       comment_from: Kommentar fra %{link_user} skrevet %{comment_created_at}
       hide_link: Skjul denne kommentar
+      unhide_link: Skjul ikke længere denne kommentar
       confirm: Bekræft
       report: Rapporter denne kommentar
     location:
@@ -1126,6 +1148,7 @@ da:
     partners_ucl: University College London
     partners_bytemark: Bytemark Hosting
     partners_partners: partnere
+    tou: Vilkår for anvendelse
     osm_offline: OpenStreetMap-databasen er for øjeblikket offline på grund af nødvendig
       databasevedligeholdelse.
     osm_read_only: OpenStreetMap databasen er for øjeblikket ikke redigerbar på grund
@@ -1286,7 +1309,6 @@ da:
       send_message_to: Send en ny besked til %{name}
       subject: Emne
       body: Brødtekst
-      send_button: Send
       back_to_inbox: Tilbage til indbakke
     create:
       message_sent: Besked sendt
@@ -1363,12 +1385,13 @@ da:
         den samme licens. Se siden om <a href='%{copyright_path}'>ophavsret og licens</a> for detaljer.
       legal_title: Juridisk
       legal_html: "Dette websted og mange andre relaterede tjenester er formelt drevet
-        af \n<a href=\"https://osmfoundation.org/\">OpenStreetMap Foundation</a> (OSMF)
-        på vegne af fællesskabet. Brug af alle OSMF-drevne tjenester er underlagt
-        vores <a href=\"https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy\">Politikker
+        af\n<a href=\"https://osmfoundation.org/\">OpenStreetMap Foundation</a> (OSMF)
+        på vegne af fællesskabet. Brug af samtlige OSMF-drevne tjenester er underlagt
+        vores <a href=\"https://wiki.osmfoundation.org/wiki/Terms_of_Use\">Brugsvilkår,
+        <a href=\"https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy\">Politikker
         for acceptabel brug</a> og vores <a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\">Privatlivs-poltik</a>.\n<br>
         \nDu bedes <a href=\"https://osmfoundation.org/Contact\">kontakte OSMF</a>
-        \nhvis du har spørgsmål om licenser, ophavsret eller andre juridiske spørgsmål
+        \nhvis du har spørgsmål om licensering, ophavsret eller andre juridiske spørgsmål
         og problemstillinger.\n<br>\nOpenStreetMap, forstørrelsesglas-logoet og \"State
         of the Map\" er <a href=\"https://wiki.osmfoundation.org/wiki/Trademark_Policy\">varemærker
         registreret af OSMF</a>."
@@ -1468,6 +1491,10 @@ da:
           <a href="http://www.gu.gov.si/en/">Opmålings- og Kortlægnings-myndigheden</a> og
           <a href="http://www.mkgp.gov.si/en/">Ministeriet for Landbrug, Skovbrug og Fødevarer</a>
           (offentlig information Slovenien).
+        contributors_es_html: |-
+          <strong>Spanien</strong>: Indeholder data fra Spanish National Geographic Institute (<a href="http://www.ign.es/">IGN</a>) og
+          National Cartographic System (<a href="http://www.scne.es/">SCNE</a>)
+          licenseret for videre brug under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.
         contributors_za_html: |-
           <strong>Syd Afrika</strong>: Indeholder data fra
           <a href="http://www.ngi.gov.za/">Chief Directorate:
@@ -1475,7 +1502,7 @@ da:
         contributors_gb_html: |-
           <strong>Storbritannien</strong>: indeholder Ordnance
           Survey data &copy; Crown copyright and database right
-          2010-12.
+          2010-19.
         contributors_footer_1_html: |-
           For yderligere oplysninger om disse og andre kilder, der er blevet brugt for at hjælpe med at forbedre OpenStreetMap, se venligst <a
           href="https://wiki.openstreetmap.org/wiki/Contributors">siden med bidragsydere</a> på OpenStreetMap Wiki.
@@ -1726,7 +1753,7 @@ da:
       edit: Redigér
       preview: Forhåndsvisning
     markdown_help:
-      title_html: Fortolket med <a href="https://daringfireball.net/projects/markdown/">Markdown</a>
+      title_html: Fortolket med <a href="https://kramdown.gettalong.org/quickref.html">kramdown</a>
       headings: Overskrifter
       heading: Overskrift
       subheading: Underoverskrift
@@ -1806,7 +1833,6 @@ da:
       visibility: 'Synlighed:'
       visibility_help: hvad betyder det her?
       visibility_help_url: https://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
-      upload_button: Upload
       help: Hjælp
       help_url: https://wiki.openstreetmap.org/wiki/Upload
     create:
@@ -1835,7 +1861,6 @@ da:
       description: 'Beskrivelse:'
       tags: 'Egenskaber:'
       tags_help: kommasepareret
-      save_button: Gem ændringer
       visibility: 'Synlighed:'
       visibility_help: hvad betyder det her?
     update:
@@ -1956,10 +1981,8 @@ da:
   oauth_clients:
     new:
       title: Registrere en ny applikation
-      submit: Registrér
     edit:
       title: Redigere din applikation
-      submit: Redigér
     show:
       title: OAuth detaljer for %{app_name}
       key: 'Forbrugernøgle:'
@@ -2125,18 +2148,25 @@ da:
         wikiside</a>.
       terms declined url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
     terms:
-      title: Vilkår for bidragsydere
-      heading: Vilkår for bidragsydere
-      read and accept: Læs aftalen nedenfor og tryk på "Accepter" for at bekræfte
-        at du accepterer betingelserne i denne aftale for dine eksisterende og fremtidige
-        bidrag.
-      consider_pd: I tillæg til ovennævnte aftale anser jeg mit bidrag for at være
-        fælleseje/frit for ophavsret
+      title: Vilkår
+      heading: Vilkår
+      heading_ct: Vilkår for bidragsydere
+      read and accept with tou: Læs venligst vilkårene for bidragsydere og brugsvilkårene,
+        marker begge flueben når du er færdig og tryk fortsæt.
+      contributor_terms_explain: Denne aftale beskriver vilkårene for dine eksisterende
+        og fremtidige bidrag.
+      read_ct: Jeg har læst og samtykker med de ovenstående vilkår for bidragsydere
+      tou_explain_html: Disse %{tou_link} beskriver vilkårene for brug af denne hjemmeside
+        og anden infrastruktur stillet til rådighed af OSMF. Klik venligst på linket,
+        læs og samtyk med vilkårene.
+      read_tou: Jeg har læst og samtykker med brugsvilkårene
+      consider_pd: I tillæg til ovennævnte anser jeg mit bidrag for at være fælleseje/frit
+        for ophavsret (public domain)
       consider_pd_why: hvad er dette?
       consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
       guidance: 'Oplysninger til at hjælpe med at forstå disse udtryk: et <a href="%{summary}">menneskeligt
         læsbart sammendrag</a> og nogle <a href="%{translations}">uformelle oversættelser</a>'
-      agree: Acceptér
+      continue: Fortsæt
       declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
       decline: Afslå
       you need to accept or decline: Læs og godkend eller afvis de nye vilkår for
@@ -2401,7 +2431,6 @@ da:
         meddelelsen bliver offentligt synlig. Tænk på, at ikke alle brugerer forstår
         fællesskabsjargonen, så prøv at bruge hverdags udtryk.
       period: Hvor længe, fra og med nu, brugeren vil blive blokeret fra API.
-      submit: Opret blokering
       tried_contacting: Jeg har kontaktet brugeren og bedt dem stoppe.
       tried_waiting: Jeg har givet en rimelig tidsfrist for brugeren til at reagere
         på disse meddelelser.
@@ -2415,7 +2444,6 @@ da:
         ikke alle brugerer forstår fællesskabsjargonen, så prøv at bruge hverdags
         udtryk.
       period: Hvor længe, fra og med nu, brugeren vil blive blokeret fra API.
-      submit: Opdater blokering
       show: Vis denne blokering
       back: Vis alle blokeringer
       needs_view: Skal brugeren logge på, før denne blokering vil blive fjernet?
@@ -2445,15 +2473,28 @@ da:
       confirm: Er du sikker på du vil tilbagekalde denne blokering?
       revoke: Tilbagekald!
       flash: Denne blokering er blevet tilbagekaldt.
-    period:
-      one: 1 time
-      other: '%{count} timer'
     helper:
       time_future: Slutter om %{time}.
       until_login: Aktiv, indtil brugeren logger på.
       time_future_and_until_login: Slutter om %{time} og efter brugeren er logget
         ind.
       time_past: Sluttede %{time} siden.
+      block_duration:
+        hours:
+          one: 1 time
+          other: '%{count} timer'
+        days:
+          one: 1 dag
+          other: '%{count} dage'
+        weeks:
+          one: 1 uge
+          other: '%{count} uger'
+        months:
+          one: 1 måned
+          other: '%{count} måneder'
+        years:
+          one: 1 år
+          other: '%{count} år'
     blocks_on:
       title: Blokeringer af %{name}
       heading: Liste over blokeringer af %{name}
@@ -2552,6 +2593,7 @@ da:
         title: Lag
       copyright: © <a href='%{copyright_url}'>OpenStreetMap-bidragsydere</a>
       donate_link_text: <a class='donate-attr' href='%{donate_url}'>Lav en donation</a>
+      terms: <a href='%{terms_url}' target='_blank'>Hjemmeside og API-vilkår</a>
     site:
       edit_tooltip: Rediger kortet
       edit_disabled_tooltip: Zoom ind for at redigere kortet
@@ -2589,7 +2631,9 @@ da:
     directions:
       ascend: Stigning
       engines:
+        fossgis_osrm_bike: Cykel (OSRM)
         fossgis_osrm_car: Bil (OSRM)
+        fossgis_osrm_foot: Til fods (OSRM)
         graphhopper_bicycle: Cykel (GraphHopper)
         graphhopper_car: Bil (GraphHopper)
         graphhopper_foot: Til fods (GrapHopper)
@@ -2693,7 +2737,6 @@ da:
     edit:
       description: Beskrivelse
       heading: Rediger omarbejdelse
-      submit: Gem omarbejdelse
       title: Rediger omarbejdelse
     index:
       empty: Ingen omarbejdelser at vise.
@@ -2702,7 +2745,6 @@ da:
     new:
       description: Beskrivelse
       heading: Angiv oplysninger om ny omarbejdelse
-      submit: Opret omarbejdelse
       title: Opretter ny omarbejdelse
     show:
       description: 'Beskrivelse:'
index cebe3c9cc3d22b7b0e6ca591f4dc0a13071ba086..103a8ab0f72af34b8e46e9c7cf6a013434245024 100644 (file)
@@ -62,6 +62,26 @@ de:
   time:
     formats:
       friendly: '%e. %B %Y um %H:%M Uhr'
+  helpers:
+    submit:
+      diary_comment:
+        create: Speichern
+      diary_entry:
+        create: Veröffentlichen
+      message:
+        create: Senden
+      client_application:
+        create: Registrieren
+        update: Bearbeiten
+      redaction:
+        create: Redaction erstellen
+        update: Redaction speichern
+      trace:
+        create: Hochladen
+        update: Speichern
+      user_block:
+        create: Sperre einrichten
+        update: Sperre aktualisieren
   activerecord:
     errors:
       messages:
@@ -346,7 +366,14 @@ de:
   diary_entries:
     new:
       title: Neuer Blog-Eintrag
-      publish_button: Veröffentlichen
+    form:
+      subject: 'Betreff:'
+      body: 'Text:'
+      language: 'Sprache:'
+      location: 'Ort:'
+      latitude: 'Breitengrad:'
+      longitude: 'Längengrad:'
+      use_map_link: Ort auf Karte auswählen
     index:
       title: Benutzer-Blogs
       title_friends: Blogs deiner Freunde
@@ -361,14 +388,6 @@ de:
       newer_entries: Neuere
     edit:
       title: Eintrag bearbeiten
-      subject: 'Betreff:'
-      body: 'Text:'
-      language: 'Sprache:'
-      location: 'Ort:'
-      latitude: 'Breitengrad:'
-      longitude: 'Längengrad:'
-      use_map_link: Ort auf Karte auswählen
-      save_button: Speichern
       marker_text: Ort des Blogeintrags
     show:
       title: Blog von %{user} | %{title}
@@ -376,7 +395,6 @@ de:
       leave_a_comment: Schreibe einen Kommentar
       login_to_leave_a_comment: '%{login_link}, um einen Kommentar zu schreiben'
       login: Anmelden
-      save_button: Speichern
     no_such_entry:
       title: Blogeintrag nicht gefunden
       heading: Kein Blogeintrag mit der Nummer %{id}
@@ -1330,7 +1348,6 @@ de:
       send_message_to: Eine Nachricht an %{name} senden
       subject: Betreff
       body: Text
-      send_button: Senden
       back_to_inbox: Zurück zum Posteingang
     create:
       message_sent: Nachricht gesendet
@@ -1863,7 +1880,6 @@ de:
       visibility: 'Sichtbarkeit:'
       visibility_help: Was bedeutet das?
       visibility_help_url: https://wiki.openstreetmap.org/wiki/DE:Visibility_of_GPS_traces
-      upload_button: Hochladen
       help: Hilfe
       help_url: http://wiki.openstreetmap.org/wiki/DE:Upload
     create:
@@ -1892,7 +1908,6 @@ de:
       description: 'Beschreibung:'
       tags: 'Tags:'
       tags_help: durch Komma getrennt
-      save_button: Speichern
       visibility: 'Sichtbarkeit:'
       visibility_help: Was bedeutet das?
     update:
@@ -2014,10 +2029,8 @@ de:
   oauth_clients:
     new:
       title: Eine neue Anwendung registrieren
-      submit: Registrieren
     edit:
       title: Anwendung bearbeiten
-      submit: Bearbeiten
     show:
       title: OAuth-Details für %{app_name}
       key: 'Schlüssel:'
@@ -2193,9 +2206,6 @@ de:
     terms:
       title: Bedingungen für Mitwirkende
       heading: Bedingungen für Mitwirkende
-      read and accept: Bitte lies die unten angezeigten Bedingungen und klicke dann
-        auf die Schaltfläche „Akzeptieren“, um zu bestätigen, dass du den Bedingungen
-        für deine bisherigen sowie zukünftigen Beiträge zustimmst.
       consider_pd: Zusätzlich zu den oben genannten Bedingungen betrachte ich meine
         Beiträge als gemeinfrei (Public Domain)
       consider_pd_why: Was bedeutet dies?
@@ -2203,7 +2213,6 @@ de:
       guidance: 'Informationen die dabei helfen, diese Bedingungen zu verstehen: eine
         <a href="%{summary}">verständliche Zusammenfassung</a> sowie einige <a href="%{translations}">inoffizielle
         Übersetzungen</a>'
-      agree: Akzeptieren
       declined: https://wiki.openstreetmap.org/wiki/DE:Contributor_Terms_Declined
       decline: Ablehnen
       you need to accept or decline: Bitte lies die neuen Bedingungen für Mitwirkende
@@ -2478,7 +2487,6 @@ de:
         die für Laien verständlich sind.
       period: Wie lange der Benutzer von jetzt ab für den Zugriff auf die API gesperrt
         wird.
-      submit: Sperre einrichten
       tried_contacting: Ich habe den Benutzer kontaktiert und ihn gebeten aufzuhören.
       tried_waiting: Ich habe dem Benutzer eine angemessene Zeit eingeräumt, um auf
         diese Nachrichten zu antworten.
@@ -2493,7 +2501,6 @@ de:
         die von Laien verstanden werden kann.
       period: Dauer, ab jetzt, während der dem Benutzer der Zugriff auf die API gesperrt
         wird.
-      submit: Sperre aktualisieren
       show: Diese Sperre anzeigen
       back: Alle Sperren anzeigen
       needs_view: Muss der Benutzer sich anmelden, damit die Sperre aufgehoben wird?
@@ -2523,15 +2530,16 @@ de:
       confirm: Bist du sicher, dass du diese Sperre aufheben möchtest?
       revoke: Aufheben
       flash: Die Sperre wurde aufgehoben.
-    period:
-      one: 1 Stunde
-      other: '%{count} Stunden'
     helper:
       time_future: Endet in %{time}.
       until_login: Aktiv, bis der Benutzer sich anmeldet.
       time_future_and_until_login: Endet in %{time} und nachdem sich der Benutzer
         angemeldet hat.
       time_past: Endete vor %{time}
+      block_duration:
+        hours:
+          one: 1 Stunde
+          other: '%{count} Stunden'
     blocks_on:
       title: Sperren für %{name}
       heading: Liste der Sperren für %{name}
@@ -2779,7 +2787,6 @@ de:
     edit:
       description: Beschreibung
       heading: Redaction bearbeiten
-      submit: Redaction speichern
       title: Redaction bearbeiten
     index:
       empty: Keine Redactions.
@@ -2788,7 +2795,6 @@ de:
     new:
       description: Beschreibung
       heading: Informationenen für eine neue Redaction eingeben
-      submit: Redaction erstellen
       title: Neue Redaction erstellen
     show:
       description: 'Beschreibung:'
index b85674eb4d8ce9be60faed87bd005b62cd914da5..636df3fdba5d8a157c266a897cb75f22eb63fea5 100644 (file)
@@ -2,6 +2,7 @@
 # Exported from translatewiki.net
 # Export driver: phpyaml
 # Author: 1917 Ekim Devrimi
+# Author: Abijeet Patro
 # Author: Asmen
 # Author: Erdemaslancan
 # Author: Gorizon
@@ -15,6 +16,23 @@ diq:
   time:
     formats:
       friendly: '%e %B %Y seate %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Qeyd ke
+      diary_entry:
+        create: Vıla ke
+        update: Rocane ke
+      message:
+        create: Bırışe
+      client_application:
+        create: Qeyd Be
+        update: Bıvurne
+      trace:
+        create: Bar ke
+      user_block:
+        create: Bloqe vırazê
+        update: Bloqi noroc resn
   activerecord:
     models:
       acl: Qontrol Listeyê Resayışi
@@ -212,11 +230,7 @@ diq:
       title_nearby: Nezdıra vurriyayışê setê karberi
       load_more: Dehana vêşi
   diary_entries:
-    new:
-      publish_button: Vıla ke
-    index:
-      user_title: '%{user} (Rocek)'
-    edit:
+    form:
       subject: 'Mewzu:'
       body: 'Metın:'
       language: 'Zıwan:'
@@ -224,13 +238,14 @@ diq:
       latitude: 'Verıniye:'
       longitude: 'Derganiye:'
       use_map_link: xerita bıgurene
-      save_button: Qeyd ke
+    index:
+      user_title: '%{user} (Rocek)'
+    edit:
       marker_text: Lokasyonê rocekê cıkewtışi
     show:
       leave_a_comment: Yew mışewre bınuse
       login_to_leave_a_comment: Seba mışewreyi rê %{login_link}
       login: Cıkewtış
-      save_button: Qeyd ke
     no_such_entry:
       title: Rocekê cıkewtışanê wınasiyan çıniyo
     diary_entry:
@@ -671,6 +686,7 @@ diq:
     history: Tarix
     export: Teberdayış
     data: Melumati
+    tou: Şertê gurenayışi
     help: Peşti
     copyright: Heqa telifi
     community: Cemaet
@@ -710,7 +726,6 @@ diq:
       title: Mesac bırışê
       subject: Mewzu
       body: Vêrey mesaci
-      send_button: Bırışe
     outbox:
       title: Şıyenan
       inbox: Ameyan
@@ -815,7 +830,6 @@ diq:
     new:
       tags: 'Etiketi:'
       visibility: Vinayîşî
-      upload_button: Bar ke
       help: Peşti
     edit:
       filename: 'Namey dosya:'
@@ -868,10 +882,6 @@ diq:
       public_traces_from: '%{user} ra pêron rê akerde rêçê GPS'
       tagged_with: '%{tags} ya etiketyayo'
   oauth_clients:
-    new:
-      submit: Qeyd Be
-    edit:
-      submit: Bıvurne
     show:
       edit: Detaya Timar ke
       confirm: Vac welay?
@@ -917,8 +927,10 @@ diq:
       confirm password: 'Parolay tesdiq ke:'
       continue: Qeyd be
     terms:
+      title: Terimi
+      heading: Terimi
       consider_pd_why: no çıko?
-      agree: Qebul ke
+      continue: Dewam ke
       decline: Red kerê
       legale_names:
         france: Fransa
@@ -1041,12 +1053,10 @@ diq:
     new:
       title: '%{name}i rê blok vırazeno.'
       heading: '%{name}i ro blok vırazeno.'
-      submit: Bloqe vırazê
       back: Bloqan pêron bıvin
     edit:
       title: '%{name} bloqe vurna'
       heading: '%{name} bloqe vurna'
-      submit: Bloqi noroc resn
       show: Nê bloqi bıvin
       back: Bloqan pêron bıvin
     update:
@@ -1055,12 +1065,13 @@ diq:
       title: Bloqeyê karberi
     revoke:
       revoke: Terkne!
-    period:
-      one: 1 seate
-      other: '%{count} seati'
     helper:
       time_future: '%{time} dı bıqediyo'
       time_past: Verdê %{time} qedya
+      block_duration:
+        hours:
+          one: 1 seate
+          other: '%{count} seati'
     blocks_on:
       title: Blokeyê ke %{name} kerdê
       heading: Blokeyê ke %{name} kerdê listey ênan
index 4171ab298dcf58f19259eaf172ad975a6a7a6b9d..da2aaa8bcd278704b5829c33f106d0e3153121b8 100644 (file)
@@ -11,6 +11,24 @@ dsb:
   time:
     formats:
       friendly: '%e. %B %Y  %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Składowaś
+      message:
+        create: Pósłaś
+      client_application:
+        create: Registrěrowaś
+        update: Wobźěłaś
+      redaction:
+        create: Redakciju napóraś
+        update: Redakciju składowaś
+      trace:
+        create: Nagraś
+        update: Změny składowaś
+      user_block:
+        create: Blokěrowanje wuźěliś
+        update: Blokěrowanje aktualizěrowaś
   activerecord:
     models:
       acl: Lisćina za pśistupnu kontrolu
@@ -261,6 +279,14 @@ dsb:
   diary_entries:
     new:
       title: Nowy zapisk dnjownika
+    form:
+      subject: 'Temowe nadpismo:'
+      body: 'Tekst:'
+      language: 'Rěc:'
+      location: 'Městno:'
+      latitude: 'Šyrina:'
+      longitude: 'Dlinina:'
+      use_map_link: kórtu wužywaś
     index:
       title: Dnjowniki wužywarjow
       title_friends: Dnjowniki pśijaśelow
@@ -275,14 +301,6 @@ dsb:
       newer_entries: Nowše zapiski
     edit:
       title: Zapisk dnjownika wobźěłaś
-      subject: 'Temowe nadpismo:'
-      body: 'Tekst:'
-      language: 'Rěc:'
-      location: 'Městno:'
-      latitude: 'Šyrina:'
-      longitude: 'Dlinina:'
-      use_map_link: kórtu wužywaś
-      save_button: Składowaś
       marker_text: Městno zapiska dnjownika
     show:
       title: Dnjownik %{user} | %{title}
@@ -290,7 +308,6 @@ dsb:
       leave_a_comment: Komentar zawóstajiś
       login_to_leave_a_comment: '%{login_link}, aby zawóstajił komentar'
       login: Pśizjawjenje
-      save_button: Składowaś
     no_such_entry:
       title: Zapisk dnjownika njeeksistěrujo
       heading: Žeden zapisk z ID %{id}
@@ -977,7 +994,6 @@ dsb:
       send_message_to: '%{name} nowu powěsć pósłaś'
       subject: Temowe nadpismo
       body: Tekst
-      send_button: Pósłaś
       back_to_inbox: Slědk k postoju
     create:
       message_sent: Powěsć pósłana
@@ -1407,7 +1423,6 @@ dsb:
       tags_help: pśez komu wótźělony
       visibility: 'Widobnosć:'
       visibility_help: Co to groni?
-      upload_button: Nagraś
       help: Pomoc
     create:
       upload_trace: GPS-slěd nagraś
@@ -1434,7 +1449,6 @@ dsb:
       description: 'Wopisanje:'
       tags: 'Atributy:'
       tags_help: pśez komu wótźělony
-      save_button: Změny składowaś
       visibility: 'Widobnosć:'
       visibility_help: Co to groni?
     trace_optionals:
@@ -1543,10 +1557,8 @@ dsb:
   oauth_clients:
     new:
       title: Nowu aplikaciju registrěrowaś
-      submit: Registrěrowaś
     edit:
       title: Twóju aplikaciju wobźěłaś
-      submit: Wobźěłaś
     show:
       title: OAuth-drobnostki za %{app_name}
       key: 'Kluc pśetrjebowarja:'
@@ -1677,15 +1689,11 @@ dsb:
     terms:
       title: Wuměnjenja za sobustatkujucych
       heading: Wuměnjenja za pśinosowarjow
-      read and accept: Pšosym pśecytaj slědujuce dojadnanje a klikni na tłocašk Akceptěrowaś,
-        aby wobkšuśił, až akceptěrujoš wuměnjenja toś togo dojadnanja za twóje eksistěrowace
-        a pśichodne pśinoski.
       consider_pd: Pśidatnje ku górjejce dojadnanjeju, mam swóje pśinoski za zjawnosć
         pśistupne.
       consider_pd_why: Co to jo?
       guidance: 'Informacije, kótarež pomagaju toś te wuměnjenja rozměś: <a href="%{summary}">zbadne
         zespominanje</a> a někotare <a href="%{translations}">njeoficielne pśełožki</a>'
-      agree: Akceptěrowaś
       decline: Wótpokazaś
       you need to accept or decline: Pšosym pśecytaj nowe wužywarske wuměnjenja a
         akceptěruj abo wótpokaž je, nježli až dalej cyniš.
@@ -1921,7 +1929,6 @@ dsb:
         na to, až powěsć buźo zjawnje widobna a nic wšykne wužywarje rozměju žargon
         zgromaźeństwa, wopytaj pótakem zapśijeśa lajkow wužywaś.
       period: Kak dłujko, wótněnta, wužywaŕ buźo se za API blokěrowaś.
-      submit: Blokěrowanje wuźěliś
       tried_contacting: Som se zwužywarjom do zwiska stajił a jogo prosył zastajiś.
       tried_waiting: Som wužywarjeju pśiměrjony cas dał, aby mógał na toś te powěźeńki
         wótegroniś.
@@ -1935,7 +1942,6 @@ dsb:
         to, až nic wšykne wužywarje rozměju žargon zgromaźeństwa, wopytaj pótakem
         pšosym zapśijeśa lajkow wužywaś.
       period: Kak dłujko, wótněnta, wužywaŕ buźo se za API blokěrowaś.
-      submit: Blokěrowanje aktualizěrowaś
       show: Toś to blokěrowanje pokazaś
       back: Wšykne blokěrowanja pokazaś
       needs_view: Musy se wužywaŕ pśizjawiś, nježli až toś to blokěrowanje se wótpórajo?
@@ -1965,15 +1971,16 @@ dsb:
       confirm: Coš napšawdu toś to blokěrowanje wótpóraś?
       revoke: Wótpóraś!
       flash: Toś to blokěrowanje jo se wótpórało.
-    period:
-      few: '%{count} góźiny'
-      one: 1 góźina
-      two: '%{count} góźinje'
-      other: '%{count} góźinow'
     helper:
       time_future: Kóńcy se %{time}.
       until_login: Aktiwny, až wužywaŕ se njepśizjawja.
       time_past: Jo se pśed %{time} skóńcyło.
+      block_duration:
+        hours:
+          few: '%{count} góźiny'
+          one: 1 góźina
+          two: '%{count} góźinje'
+          other: '%{count} góźinow'
     blocks_on:
       title: Blokěrowanja pśeśiwo %{name}
       heading: Lisćina blokěrowanjow pśeśiwo %{name}
@@ -2093,7 +2100,6 @@ dsb:
     edit:
       description: Wopisanje
       heading: Redakciju wobźěłaś
-      submit: Redakciju składowaś
       title: Redakciju wobźěłaś
     index:
       empty: Žedne redakcije njejsu.
@@ -2102,7 +2108,6 @@ dsb:
     new:
       description: Wopisanje
       heading: Informacije za nowu redakciju zapódaś
-      submit: Redakciju napóraś
       title: Nowa redakcija se napórajo
     show:
       description: 'Wopisanje:'
index 1da1aaa58e7f7d35ae5dbe8feeda4490f7c69b59..80111bc12df2b7f0bb1668b387600520f8464277 100644 (file)
@@ -35,6 +35,26 @@ el:
   time:
     formats:
       friendly: '%e %B %Y στις %H:%M'
+  helpers:
+    submit:
+      diary_comment:
+        create: Αποθήκευση
+      diary_entry:
+        create: Δημοσίευση
+      message:
+        create: Αποστολή
+      client_application:
+        create: Εγγραφή
+        update: Επεξεργασία
+      redaction:
+        create: Δημιουργία παράληψης
+        update: Αποθήκευση παράληψης
+      trace:
+        create: Αποστολή
+        update: Αποθήκευση Αλλαγών
+      user_block:
+        create: Δημιουργία φραγής
+        update: Ενημέρωση φραγής
   activerecord:
     models:
       acl: Λίστα ελέγχου πρόσβασης
@@ -321,7 +341,14 @@ el:
   diary_entries:
     new:
       title: Νέα καταχώρηση ημερολογίου
-      publish_button: Δημοσίευση
+    form:
+      subject: 'Θέμα:'
+      body: 'Κείμενο:'
+      language: 'Γλώσσα:'
+      location: 'Τοποθεσία:'
+      latitude: 'Γεωγραφικό πλάτος:'
+      longitude: 'Γεωγραφικό μήκος:'
+      use_map_link: χρησιμοποιήστε τον χάρτη
     index:
       title: Ημερολόγια χρηστών
       title_friends: Ημερολόγια φίλων
@@ -336,14 +363,6 @@ el:
       newer_entries: Νεότερες καταχωρήσεις
     edit:
       title: Επεξεργασία καταχώρισης ημερολογίου
-      subject: 'Θέμα:'
-      body: 'Κείμενο:'
-      language: 'Γλώσσα:'
-      location: 'Τοποθεσία:'
-      latitude: 'Γεωγραφικό πλάτος:'
-      longitude: 'Γεωγραφικό μήκος:'
-      use_map_link: χρησιμοποιήστε τον χάρτη
-      save_button: Αποθήκευση
       marker_text: Τοποθεσία καταχώρησης ημερολογίου
     show:
       title: το ημερολόγιο του %{user} | %{title}
@@ -351,7 +370,6 @@ el:
       leave_a_comment: Αφήστε ένα σχόλιο
       login_to_leave_a_comment: '%{login_link} για να αφήσετε ένα σχόλιο'
       login: Σύνδεση
-      save_button: Αποθήκευση
     no_such_entry:
       title: Δεν υπάρχει τέτοια εγγραφή ημερολογίου
       heading: 'Καμία καταχώρηση με τη ταυτότητα: %{id}'
@@ -1309,7 +1327,6 @@ el:
       send_message_to: Αποστολή νέου μηνύματος προς %{name}
       subject: Θέμα
       body: Κείμενο
-      send_button: Αποστολή
       back_to_inbox: Επιστροφή στα εισερχόμενα
     create:
       message_sent: Αποστολή μηνύματος
@@ -1821,7 +1838,6 @@ el:
       visibility: 'Ορατότητα:'
       visibility_help: τι σημαίνει αυτό;
       visibility_help_url: https://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
-      upload_button: Αποστολή
       help: Βοήθεια
       help_url: https://wiki.openstreetmap.org/wiki/Upload?uselang=el
     create:
@@ -1850,7 +1866,6 @@ el:
       description: 'Περιγραφή:'
       tags: 'Χαρακτηριστικά:'
       tags_help: οριοθετημένο με κόμματα
-      save_button: Αποθήκευση Αλλαγών
       visibility: 'Ορατότητα:'
       visibility_help: τι σημαίνει αυτό;
       visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
@@ -1971,10 +1986,8 @@ el:
   oauth_clients:
     new:
       title: Καταχώρηση νέας εφαρμογής
-      submit: Εγγραφή
     edit:
       title: Επεξεργασία της αίτησής σας
-      submit: Επεξεργασία
     show:
       title: Λεπτομέρειες OAuth για το %{app_name}
       key: 'Κωδικός Καταναλωτή :'
@@ -2148,16 +2161,12 @@ el:
     terms:
       title: Όροι συνεισφοράς
       heading: Όροι συνεισφοράς
-      read and accept: Παρακαλούμε διαβάστε τη συμφωνία και πατήστε το κουμπί «συμφωνώ»
-        για να επιβεβαιώσετε ότι αποδέχεστε τους όρους αυτής της συμφωνίας για τις
-        υπάρχουσες και τις μέλλουσες συνεισφορές σας.
       consider_pd: Και επιπρόσθετα στην παραπάνω συμφωνία, θεωρώ τις συνεισφορές μου
         ως Public Domain
       consider_pd_why: τι είναι αυτό;
       guidance: Πληροφορίες για να καταλάβετε αυτούς τους όρους:μία <href="%{summary}">
         αναγνώσιμη περίληψη</a>και μερικές <a href=''%{translations}''>ανεπίσημες
         μεταφράσεις </a>
-      agree: Συμφωνώ
       decline: Διαφωνώ
       you need to accept or decline: Παρακαλώ διαβάστε και αποδεχτείτε ή απορρίψτε
         τους νέους Όρους Συνεισφοράς για να συνεχίσετε.
@@ -2435,7 +2444,6 @@ el:
         Να έχετε υπόψη σας ότι δεν κατανοούν όλοι οι χρήστες την ορολογία της κοινότητας,
         γι' αυτό προσπαθήστε να χρησιμοποιήσετε εκλαϊκευμένους όρους.
       period: Για πόσο καιρό από τώρα θα είναι αποκλεισμένος ο χρήστης από το API.
-      submit: Δημιουργία φραγής
       tried_contacting: Επικοινώνησα με τον χρήστη και του ζήτησα να σταματήσει.
       tried_waiting: Έχω δώσει ένα εύλογο χρονικό διάστημα στον χρήστη να απαντήσει
         σε αυτές τις επικοινωνίες.
@@ -2450,7 +2458,6 @@ el:
         ορολογία της κοινότητας, γι' αυτό προσπαθήστε να χρησιμοποιήσετε εκλαϊκευμένους
         όρους.
       period: Για πόσο καιρό από τώρα θα είναι αποκλεισμένος ο χρήστης από το API.
-      submit: Ενημέρωση φραγής
       show: Προβολή αυτής της φραγής
       back: Προβολή όλων των φραγών
       needs_view: Πρέπει ο χρήστης να συνδεθεί προτού εκκαθαριστεί αυτή η φραγή;
@@ -2480,15 +2487,16 @@ el:
       confirm: Είστε σίγουρος πως επιθυμείτε να ανακαλέσετε αυτή τη φραγή;
       revoke: Ανακαλέστε!
       flash: Αυτή η φραγή έχει ανακληθεί.
-    period:
-      one: 1 ώρα
-      other: '%{count} ώρες'
     helper:
       time_future: Τελειώνει σε %{time}.
       until_login: Ενεργό έως ότου ο χρήστης συνδεθεί.
       time_future_and_until_login: Τελειώνει σε %{time} και μετά αφότου ο χρήστης
         έχει συνδεθεί.
       time_past: Τελείωσε %{time} πριν.
+      block_duration:
+        hours:
+          one: 1 ώρα
+          other: '%{count} ώρες'
     blocks_on:
       title: Φραγές στον %{name}
       heading: Κατάλογος φραγών στον %{name}
@@ -2734,7 +2742,6 @@ el:
     edit:
       description: Περιγραφή
       heading: Επεξεργασία παράληψης
-      submit: Αποθήκευση παράληψης
       title: Επεξεργαστείτε την παράληψη
     index:
       empty: Καμία παράληψη προς εμφάνιση.
@@ -2743,7 +2750,6 @@ el:
     new:
       description: Περιγραφή
       heading: Εισαγωγή πληροφοριών για νέα παράληψη
-      submit: Δημιουργία παράληψης
       title: Δημιουργώντας νέα παράληψη
     show:
       description: 'Περιγραφή:'
index 8b088522a16aa7a04619c9df16fc0b5ad6cd67ea..2feac5deb8ebd09826ac3d6dbd6e83ba78bde258 100644 (file)
@@ -29,6 +29,26 @@ en-GB:
     formats:
       friendly: '%e %B %Y at %H:%M'
       blog: '%e %B %Y'
+  helpers:
+    submit:
+      diary_comment:
+        create: Save
+      diary_entry:
+        create: Publish
+      message:
+        create: Send
+      client_application:
+        create: Register
+        update: Edit
+      redaction:
+        create: Create redaction
+        update: Save redaction
+      trace:
+        create: Upload
+        update: Save Changes
+      user_block:
+        create: Create block
+        update: Update block
   activerecord:
     models:
       acl: Access Control List
@@ -301,7 +321,14 @@ en-GB:
   diary_entries:
     new:
       title: New Diary Entry
-      publish_button: Publish
+    form:
+      subject: 'Subject:'
+      body: 'Body:'
+      language: 'Language:'
+      location: 'Location:'
+      latitude: 'Latitude:'
+      longitude: 'Longitude:'
+      use_map_link: use map
     index:
       title: Users' diaries
       title_friends: Friends' diaries
@@ -316,14 +343,6 @@ en-GB:
       newer_entries: Newer Entries
     edit:
       title: Edit diary entry
-      subject: 'Subject:'
-      body: 'Body:'
-      language: 'Language:'
-      location: 'Location:'
-      latitude: 'Latitude:'
-      longitude: 'Longitude:'
-      use_map_link: use map
-      save_button: Save
       marker_text: Diary entry location
     show:
       title: '%{user}''s diary | %{title}'
@@ -331,7 +350,6 @@ en-GB:
       leave_a_comment: Leave a comment
       login_to_leave_a_comment: '%{login_link} to leave a comment'
       login: Login
-      save_button: Save
     no_such_entry:
       title: No such diary entry
       heading: 'No entry with the id: %{id}'
@@ -1088,7 +1106,6 @@ en-GB:
       send_message_to: Send a new message to %{name}
       subject: Subject
       body: Body
-      send_button: Send
       back_to_inbox: Back to inbox
     create:
       message_sent: Message sent
@@ -1590,7 +1607,6 @@ en-GB:
       visibility: 'Visibility:'
       visibility_help: what does this mean?
       visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
-      upload_button: Upload
       help: Help
       help_url: http://wiki.openstreetmap.org/wiki/Upload
     create:
@@ -1619,7 +1635,6 @@ en-GB:
       description: 'Description:'
       tags: 'Tags:'
       tags_help: comma delimited
-      save_button: Save Changes
       visibility: 'Visibility:'
       visibility_help: what does this mean?
       visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
@@ -1732,10 +1747,8 @@ en-GB:
   oauth_clients:
     new:
       title: Register a new application
-      submit: Register
     edit:
       title: Edit your application
-      submit: Edit
     show:
       title: OAuth details for %{app_name}
       key: 'Consumer Key:'
@@ -1905,15 +1918,12 @@ en-GB:
     terms:
       title: Contributor terms
       heading: Contributor terms
-      read and accept: Please read the agreement and press the agree button to confirm
-        that you accept the terms of this agreement for your existing and future contributions.
       consider_pd: In addition to the above agreement, I consider my contributions
         to be in the Public Domain
       consider_pd_why: what's this?
       consider_pd_why_url: http://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
       guidance: 'Information to help understand these terms: a <a href="%{summary}">human
         readable summary</a> and some <a href="%{translations}">informal translations</a>'
-      agree: Agree
       declined: http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
       decline: Decline
       you need to accept or decline: Please read and then either accept or decline
@@ -2174,7 +2184,6 @@ en-GB:
         that the message will be publicly visible. Bear in mind that not all users
         understand the community jargon, so please try to use laymans terms.
       period: How long, starting now, the user will be blocked from the API for.
-      submit: Create block
       tried_contacting: I have contacted the user and asked them to stop.
       tried_waiting: I have given a reasonable amount of time for the user to respond
         to those communications.
@@ -2188,7 +2197,6 @@ en-GB:
         mind that not all users understand the community jargon, so please try to
         use laymans terms.
       period: How long, starting now, the user will be blocked from the API for.
-      submit: Update block
       show: View this block
       back: View all blocks
       needs_view: Does the user need to log in before this block will be cleared?
@@ -2217,14 +2225,15 @@ en-GB:
       confirm: Are you sure you wish to revoke this block?
       revoke: Revoke!
       flash: This block has been revoked.
-    period:
-      one: 1 hour
-      other: '%{count} hours'
     helper:
       time_future: Ends in %{time}.
       until_login: Active until the user logs in.
       time_future_and_until_login: Ends in %{time} and after the user has logged in.
       time_past: Ended %{time} ago.
+      block_duration:
+        hours:
+          one: 1 hour
+          other: '%{count} hours'
     blocks_on:
       title: Blocks on %{name}
       heading: List of blocks on %{name}
@@ -2437,7 +2446,6 @@ en-GB:
     edit:
       description: Description
       heading: Edit redaction
-      submit: Save redaction
       title: Edit redaction
     index:
       empty: No redactions to show.
@@ -2446,7 +2454,6 @@ en-GB:
     new:
       description: Description
       heading: Enter information for new redaction
-      submit: Create redaction
       title: Creating new redaction
     show:
       description: 'Description:'
index 569992599994aa4d0e0141c87dae25f68d92b517..d7127a4e9321601fc9e25b4000624728de06c871 100644 (file)
@@ -5,6 +5,29 @@ en:
     formats:
       friendly: "%e %B %Y at %H:%M"
       blog: "%e %B %Y"
+  helpers:
+    submit:
+      diary_comment:
+        create: Save
+      diary_entry:
+        create: "Publish"
+        update: "Update"
+      issue_comment:
+        create: Add Comment
+      message:
+        create: Send
+      client_application:
+        create: Register
+        update: Edit
+      redaction:
+        create: Create redaction
+        update: Save redaction
+      trace:
+        create: Upload
+        update: Save Changes
+      user_block:
+        create: Create block
+        update: Update block
   activerecord:
     errors:
       messages:
@@ -282,7 +305,14 @@ en:
   diary_entries:
     new:
       title: New Diary Entry
-      publish_button: "Publish"
+    form:
+      subject: "Subject:"
+      body: "Body:"
+      language: "Language:"
+      location: "Location:"
+      latitude: "Latitude:"
+      longitude: "Longitude:"
+      use_map_link: "use map"
     index:
       title: "Users' diaries"
       title_friends: "Friends' diaries"
@@ -296,15 +326,7 @@ en:
       older_entries: Older Entries
       newer_entries: Newer Entries
     edit:
-      title: "Edit diary entry"
-      subject: "Subject:"
-      body: "Body:"
-      language: "Language:"
-      location: "Location:"
-      latitude: "Latitude:"
-      longitude: "Longitude:"
-      use_map_link: "use map"
-      save_button: "Save"
+      title: Edit Diary Entry
       marker_text: Diary entry location
     show:
       title: "%{user}'s diary | %{title}"
@@ -312,7 +334,6 @@ en:
       leave_a_comment: "Leave a comment"
       login_to_leave_a_comment: "%{login_link} to leave a comment"
       login: "Login"
-      save_button: "Save"
     no_such_entry:
       title: "No such diary entry"
       heading: "No entry with the id: %{id}"
@@ -327,11 +348,13 @@ en:
         other: "%{count} comments"
       edit_link: Edit this entry
       hide_link: Hide this entry
+      unhide_link: Unhide this entry
       confirm: Confirm
       report: Re