Merge remote-tracking branch 'openstreetmap/pull/1347' into master
authorTom Hughes <tom@compton.nu>
Sun, 5 Feb 2017 15:56:04 +0000 (15:56 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 5 Feb 2017 16:02:20 +0000 (16:02 +0000)
400 files changed:
.rubocop.yml
.rubocop_todo.yml
Gemfile
Gemfile.lock
INSTALL.md
Vagrantfile
Vendorfile
app/assets/images/google.png
app/assets/images/osm_logo_30.png [new file with mode: 0644]
app/assets/images/tab-icon.svg [new file with mode: 0644]
app/assets/images/wikipedia.png [new file with mode: 0644]
app/assets/javascripts/id.js
app/assets/javascripts/index.js
app/assets/javascripts/index/directions/osrm.js
app/assets/javascripts/leaflet.layers.js
app/assets/javascripts/leaflet.map.js
app/assets/javascripts/leaflet.share.js
app/assets/stylesheets/common.scss
app/controllers/amf_controller.rb
app/controllers/application_controller.rb
app/controllers/export_controller.rb
app/controllers/message_controller.rb
app/controllers/redactions_controller.rb
app/controllers/site_controller.rb
app/helpers/notifier_helper.rb
app/helpers/open_graph_helper.rb
app/helpers/user_roles_helper.rb
app/models/changeset.rb
app/models/language.rb
app/models/node.rb
app/models/notifier.rb
app/models/oauth_nonce.rb
app/models/relation.rb
app/models/user.rb
app/models/user_role.rb
app/models/way.rb
app/views/changeset/list.atom.builder
app/views/diary_entry/rss.rss.builder
app/views/layouts/_head.html.erb
app/views/layouts/notifier.html.erb [new file with mode: 0644]
app/views/notes/_note.gpx.builder
app/views/notes/_note.json.jsonify
app/views/notes/_note.rss.builder
app/views/notes/_note.xml.builder
app/views/notes/index.rss.builder
app/views/notifier/_gpx_description.html.erb
app/views/notifier/_message_body.html.erb [new file with mode: 0644]
app/views/notifier/changeset_comment_notification.html.erb
app/views/notifier/changeset_comment_notification.text.erb
app/views/notifier/diary_comment_notification.html.erb
app/views/notifier/email_confirm.html.erb
app/views/notifier/friend_notification.html.erb
app/views/notifier/gpx_failure.html.erb
app/views/notifier/gpx_success.html.erb
app/views/notifier/message_notification.html.erb
app/views/notifier/note_comment_notification.html.erb
app/views/notifier/signup_confirm.html.erb
app/views/site/_id.html.erb
app/views/site/id.html.erb
app/views/site/key.html.erb
app/views/trace/georss.rss.builder
app/views/user/login.html.erb
config/application.rb
config/example.application.yml
config/initializers/abstract_adapter.rb
config/initializers/assets.rb
config/initializers/banners.rb
config/initializers/konacha.rb
config/initializers/omniauth.rb
config/initializers/wiki_pages.rb
config/locales/ar.yml
config/locales/ast.yml
config/locales/be-Tarask.yml
config/locales/be.yml
config/locales/bg.yml
config/locales/bn.yml
config/locales/bs.yml
config/locales/ca.yml
config/locales/cs.yml
config/locales/de.yml
config/locales/diq.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/ga.yml
config/locales/gl.yml
config/locales/hr.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/ko.yml
config/locales/lb.yml
config/locales/lt.yml
config/locales/lv.yml
config/locales/mk.yml
config/locales/mr.yml
config/locales/nb.yml
config/locales/nl.yml
config/locales/pl.yml
config/locales/pt-BR.yml
config/locales/pt-PT.yml
config/locales/ru.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/te.yml
config/locales/tr.yml
config/locales/uk.yml
config/locales/zh-CN.yml
config/locales/zh-TW.yml
db/migrate/001_create_osm_db.rb
db/migrate/034_create_languages.rb
db/migrate/20140117185510_drop_countries.rb
db/migrate/20150111192335_subscribe_old_changesets.rb
db/migrate/20161011010929_subscribe_authors_to_diary_entries.rb
lib/auth.rb
lib/bounding_box.rb
lib/classic_pagination/pagination.rb
lib/daemons/gpx_import_ctl
lib/diff_reader.rb
lib/id.rb
lib/osm.rb
lib/password_hash.rb
lib/potlatch.rb
lib/potlatch2.rb
lib/quad_tile/quad_tile.h
script/cleanup
script/deliver-message
script/vagrant/setup/provision.sh
test/controllers/amf_controller_test.rb
test/controllers/api_controller_test.rb
test/controllers/changeset_controller_test.rb
test/controllers/diary_entry_controller_test.rb
test/controllers/node_controller_test.rb
test/controllers/notes_controller_test.rb
test/controllers/oauth_clients_controller_test.rb
test/controllers/old_node_controller_test.rb
test/controllers/old_way_controller_test.rb
test/controllers/relation_controller_test.rb
test/controllers/search_controller_test.rb
test/controllers/site_controller_test.rb
test/controllers/user_controller_test.rb
test/controllers/way_controller_test.rb
test/factories/changeset_tags.rb [new file with mode: 0644]
test/factories/client_applications.rb [new file with mode: 0644]
test/factories/node_tags.rb [new file with mode: 0644]
test/factories/old_node_tags.rb [new file with mode: 0644]
test/factories/old_relation_tags.rb [new file with mode: 0644]
test/factories/old_way_tags.rb [new file with mode: 0644]
test/factories/relation_tags.rb [new file with mode: 0644]
test/factories/user.rb [new file with mode: 0644]
test/factories/user_role.rb [new file with mode: 0644]
test/factories/way_tags.rb [new file with mode: 0644]
test/fixtures/changeset_tags.yml [deleted file]
test/fixtures/changesets_subscribers.yml [deleted file]
test/fixtures/client_applications.yml [deleted file]
test/fixtures/current_node_tags.yml [deleted file]
test/fixtures/current_relation_tags.yml [deleted file]
test/fixtures/current_way_tags.yml [deleted file]
test/fixtures/node_tags.yml [deleted file]
test/fixtures/relation_tags.yml [deleted file]
test/fixtures/user_tokens.yml [deleted file]
test/fixtures/users.yml
test/fixtures/way_tags.yml [deleted file]
test/helpers/application_helper_test.rb
test/helpers/browse_helper_test.rb
test/http/geocoder_ca.yml
test/http/gravatar.yml [deleted file]
test/http/nominatim.yml
test/http/npemap.yml
test/integration/client_applications_test.rb
test/integration/oauth_test.rb
test/integration/page_locale_test.rb
test/integration/user_creation_test.rb
test/integration/user_login_test.rb
test/integration/user_roles_test.rb
test/integration/user_terms_seen_test.rb
test/lib/bounding_box_test.rb
test/lib/locale_test.rb
test/lib/password_hash_test.rb
test/models/changeset_comment_test.rb
test/models/changeset_tag_test.rb
test/models/client_application_test.rb
test/models/node_tag_test.rb
test/models/node_test.rb
test/models/oauth_nonce_test.rb
test/models/oauth_token_test.rb
test/models/old_node_tag_test.rb
test/models/old_node_test.rb
test/models/old_relation_tag_test.rb
test/models/old_relation_test.rb
test/models/old_way_tag_test.rb
test/models/old_way_test.rb
test/models/relation_tag_test.rb
test/models/relation_test.rb
test/models/user_test.rb
test/models/user_token_test.rb
test/models/way_tag_test.rb
test/models/way_test.rb
test/test_helper.rb
vendor/assets/iD/iD.css.erb
vendor/assets/iD/iD.js
vendor/assets/iD/iD/img/iD-sprite.svg
vendor/assets/iD/iD/img/maki-sprite.svg
vendor/assets/iD/iD/locales/af.json
vendor/assets/iD/iD/locales/ar-AA.json
vendor/assets/iD/iD/locales/ar.json
vendor/assets/iD/iD/locales/ast.json
vendor/assets/iD/iD/locales/bg-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/cs.json
vendor/assets/iD/iD/locales/da.json
vendor/assets/iD/iD/locales/de.json
vendor/assets/iD/iD/locales/el.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/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/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 [new file with mode: 0644]
vendor/assets/iD/iD/locales/lij.json
vendor/assets/iD/iD/locales/lt.json
vendor/assets/iD/iD/locales/lv.json
vendor/assets/iD/iD/locales/mk.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/ml.json
vendor/assets/iD/iD/locales/nl.json
vendor/assets/iD/iD/locales/no.json
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/sc.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/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/arrow-up-white.svg [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/cover-logo.svg [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/mapillary.js [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/mapillary.js.map [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/mapillary.min.css [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/mapillary.min.js [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/pano-indicator.svg [new file with mode: 0755]
vendor/assets/iD/iD/mapillary-js/pano.svg [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/pointer-wheat.svg [new file with mode: 0755]
vendor/assets/iD/iD/mapillary-js/pointer-white.svg [new file with mode: 0755]
vendor/assets/iD/iD/mapillary-js/spinner.svg [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/stepper-left.svg [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/stepper-play.svg [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/stepper-right.svg [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/stepper-stop.svg [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/turn-around.svg [new file with mode: 0755]
vendor/assets/iD/iD/mapillary-js/turn.svg [new file with mode: 0755]
vendor/assets/iD/imagery.js [deleted file]
vendor/assets/iD/presets.js [deleted file]
vendor/assets/leaflet/leaflet.css
vendor/assets/leaflet/leaflet.js
vendor/assets/leaflet/leaflet.osm.js
vendor/assets/potlatch2/potlatch2.swf
vendor/assets/potlatch2/potlatch2/assets.zip
vendor/assets/potlatch2/potlatch2/locales/af.swf
vendor/assets/potlatch2/potlatch2/locales/ar.swf
vendor/assets/potlatch2/potlatch2/locales/arc.swf
vendor/assets/potlatch2/potlatch2/locales/ast.swf
vendor/assets/potlatch2/potlatch2/locales/az.swf
vendor/assets/potlatch2/potlatch2/locales/ba.swf
vendor/assets/potlatch2/potlatch2/locales/be-tarask.swf
vendor/assets/potlatch2/potlatch2/locales/be.swf
vendor/assets/potlatch2/potlatch2/locales/bg.swf
vendor/assets/potlatch2/potlatch2/locales/bn.swf
vendor/assets/potlatch2/potlatch2/locales/br.swf
vendor/assets/potlatch2/potlatch2/locales/bs.swf
vendor/assets/potlatch2/potlatch2/locales/ca.swf
vendor/assets/potlatch2/potlatch2/locales/ce.swf
vendor/assets/potlatch2/potlatch2/locales/cs_CZ.swf
vendor/assets/potlatch2/potlatch2/locales/cy.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/da.swf
vendor/assets/potlatch2/potlatch2/locales/de-formal.swf
vendor/assets/potlatch2/potlatch2/locales/de_DE.swf
vendor/assets/potlatch2/potlatch2/locales/diq.swf
vendor/assets/potlatch2/potlatch2/locales/dsb.swf
vendor/assets/potlatch2/potlatch2/locales/el.swf
vendor/assets/potlatch2/potlatch2/locales/en_GB.swf
vendor/assets/potlatch2/potlatch2/locales/en_US.swf
vendor/assets/potlatch2/potlatch2/locales/eo.swf
vendor/assets/potlatch2/potlatch2/locales/es_ES.swf
vendor/assets/potlatch2/potlatch2/locales/et.swf
vendor/assets/potlatch2/potlatch2/locales/eu.swf
vendor/assets/potlatch2/potlatch2/locales/fa.swf
vendor/assets/potlatch2/potlatch2/locales/fi.swf
vendor/assets/potlatch2/potlatch2/locales/fo.swf
vendor/assets/potlatch2/potlatch2/locales/fr_FR.swf
vendor/assets/potlatch2/potlatch2/locales/fur.swf
vendor/assets/potlatch2/potlatch2/locales/ga.swf
vendor/assets/potlatch2/potlatch2/locales/gd.swf
vendor/assets/potlatch2/potlatch2/locales/gl.swf
vendor/assets/potlatch2/potlatch2/locales/grc.swf
vendor/assets/potlatch2/potlatch2/locales/he.swf
vendor/assets/potlatch2/potlatch2/locales/hr.swf
vendor/assets/potlatch2/potlatch2/locales/hsb.swf
vendor/assets/potlatch2/potlatch2/locales/hu.swf
vendor/assets/potlatch2/potlatch2/locales/ia.swf
vendor/assets/potlatch2/potlatch2/locales/id.swf
vendor/assets/potlatch2/potlatch2/locales/is.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/it_IT.swf
vendor/assets/potlatch2/potlatch2/locales/ja_JP.swf
vendor/assets/potlatch2/potlatch2/locales/ka.swf
vendor/assets/potlatch2/potlatch2/locales/km.swf
vendor/assets/potlatch2/potlatch2/locales/kn.swf
vendor/assets/potlatch2/potlatch2/locales/ko.swf
vendor/assets/potlatch2/potlatch2/locales/krc.swf
vendor/assets/potlatch2/potlatch2/locales/ksh.swf
vendor/assets/potlatch2/potlatch2/locales/ku-latn.swf
vendor/assets/potlatch2/potlatch2/locales/ky.swf
vendor/assets/potlatch2/potlatch2/locales/lb.swf
vendor/assets/potlatch2/potlatch2/locales/lez.swf
vendor/assets/potlatch2/potlatch2/locales/lt.swf
vendor/assets/potlatch2/potlatch2/locales/lv.swf
vendor/assets/potlatch2/potlatch2/locales/lzz.swf
vendor/assets/potlatch2/potlatch2/locales/mk.swf
vendor/assets/potlatch2/potlatch2/locales/mr.swf
vendor/assets/potlatch2/potlatch2/locales/ms.swf
vendor/assets/potlatch2/potlatch2/locales/nb_NO.swf
vendor/assets/potlatch2/potlatch2/locales/nl_NL.swf
vendor/assets/potlatch2/potlatch2/locales/nn_NO.swf
vendor/assets/potlatch2/potlatch2/locales/oc.swf
vendor/assets/potlatch2/potlatch2/locales/pa.swf
vendor/assets/potlatch2/potlatch2/locales/pl_PL.swf
vendor/assets/potlatch2/potlatch2/locales/ps.swf
vendor/assets/potlatch2/potlatch2/locales/pt_BR.swf
vendor/assets/potlatch2/potlatch2/locales/pt_PT.swf
vendor/assets/potlatch2/potlatch2/locales/ro.swf
vendor/assets/potlatch2/potlatch2/locales/ru.swf
vendor/assets/potlatch2/potlatch2/locales/rue.swf
vendor/assets/potlatch2/potlatch2/locales/sah.swf
vendor/assets/potlatch2/potlatch2/locales/scn.swf
vendor/assets/potlatch2/potlatch2/locales/sk.swf
vendor/assets/potlatch2/potlatch2/locales/sl.swf
vendor/assets/potlatch2/potlatch2/locales/sq.swf
vendor/assets/potlatch2/potlatch2/locales/sr-ec.swf
vendor/assets/potlatch2/potlatch2/locales/sr-el.swf
vendor/assets/potlatch2/potlatch2/locales/sv_SE.swf
vendor/assets/potlatch2/potlatch2/locales/ta.swf
vendor/assets/potlatch2/potlatch2/locales/te.swf
vendor/assets/potlatch2/potlatch2/locales/tl.swf
vendor/assets/potlatch2/potlatch2/locales/tly.swf
vendor/assets/potlatch2/potlatch2/locales/tr.swf
vendor/assets/potlatch2/potlatch2/locales/tyv.swf
vendor/assets/potlatch2/potlatch2/locales/tzm.swf
vendor/assets/potlatch2/potlatch2/locales/uk.swf
vendor/assets/potlatch2/potlatch2/locales/vi_VN.swf
vendor/assets/potlatch2/potlatch2/locales/vo.swf
vendor/assets/potlatch2/potlatch2/locales/yi.swf
vendor/assets/potlatch2/potlatch2/locales/zh_CN.swf
vendor/assets/potlatch2/potlatch2/locales/zh_TW.swf

index 975457d..477b2ab 100644 (file)
@@ -2,6 +2,23 @@ inherit_from: .rubocop_todo.yml
 
 AllCops:
   Include:
+    - '**/*.gemspec'
+    - '**/*.podspec'
+    - '**/*.jbuilder'
+    - '**/*.rake'
+    - '**/*.opal'
+    - '**/config.ru'
+    - '**/Gemfile'
+    - '**/Rakefile'
+    - '**/Capfile'
+    - '**/Guardfile'
+    - '**/Podfile'
+    - '**/Thorfile'
+    - '**/Vagrantfile'
+    - '**/Berksfile'
+    - '**/Cheffile'
+    - '**/Vagabondfile'
+    - '**/Fastfile'
     - '**/*.builder'
 
 Rails:
@@ -40,3 +57,8 @@ Style/StringLiterals:
 
 Rails/HttpPositionalArguments:
   Enabled: false
+
+Rails/SkipsModelValidations:
+  Exclude:
+    - 'db/migrate/*.rb'
+    - 'app/controllers/user_controller.rb'
index 95ddea8..a7b456a 100644 (file)
@@ -64,7 +64,7 @@ Metrics/BlockNesting:
 # Offense count: 62
 # Configuration parameters: CountComments.
 Metrics/ClassLength:
-  Max: 1652
+  Max: 1660
 
 # Offense count: 69
 Metrics/CyclomaticComplexity:
diff --git a/Gemfile b/Gemfile
index 039216f..c2578d6 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -38,32 +38,33 @@ gem "r2"
 gem "autoprefixer-rails"
 
 # Use image_optim to optimise images
-gem "image_optim", ">= 0.22.0"
+gem "image_optim_rails"
 
 # Load rails plugins
-gem "rails-i18n", "~> 4.0.0"
-gem "dynamic_form"
-gem "rinku", ">= 1.2.2", :require => "rails_rinku"
-gem "oauth-plugin", ">= 0.5.1"
-gem "validates_email_format_of", ">= 1.5.1"
+gem "actionpack-page_caching"
 gem "composite_primary_keys", "~> 8.1.0"
-gem "http_accept_language", "~> 2.0.0"
-gem "paperclip", "~> 4.0"
 gem "deadlock_retry", ">= 1.2.0"
+gem "dynamic_form"
+gem "http_accept_language", "~> 2.0.0"
 gem "i18n-js", ">= 3.0.0.rc10"
+gem "oauth-plugin", ">= 0.5.1"
+gem "paperclip", "~> 4.0"
 gem "rack-cors"
-gem "actionpack-page_caching"
+gem "rails-i18n", "~> 4.0.0"
+gem "rinku", ">= 1.2.2", :require => "rails_rinku"
+gem "validates_email_format_of", ">= 1.5.1"
 
 # Sanitise URIs
 gem "rack-uri_sanitizer"
 
 # Omniauth for authentication
 gem "omniauth"
-gem "omniauth-openid"
-gem "omniauth-google-oauth2", ">= 0.2.7"
 gem "omniauth-facebook"
-gem "omniauth-windowslive"
 gem "omniauth-github"
+gem "omniauth-google-oauth2", ">= 0.2.7"
+gem "omniauth-mediawiki", ">= 0.0.3"
+gem "omniauth-openid"
+gem "omniauth-windowslive"
 
 # Markdown formatting support
 gem "redcarpet"
@@ -72,8 +73,8 @@ gem "redcarpet"
 gem "libxml-ruby", ">= 2.0.5", :require => "libxml"
 
 # Use for HTML sanitisation
-gem "sanitize"
 gem "htmlentities"
+gem "sanitize"
 
 # Load SystemTimer for implementing request timeouts
 gem "SystemTimer", ">= 1.1.3", :require => "system_timer", :platforms => :ruby_18
@@ -84,6 +85,9 @@ gem "faraday"
 # Load geoip for querying Maxmind GeoIP database
 gem "geoip"
 
+# Load rotp to generate TOTP tokens
+gem "rotp"
+
 # Load memcache client in case we are using it
 gem "dalli"
 gem "kgio"
@@ -98,17 +102,18 @@ end
 
 # Gems needed for running tests
 group :test do
-  gem "rubocop"
-  gem "timecop"
   gem "minitest", "~> 5.1", :platforms => [:ruby_19, :ruby_20]
   gem "minitest-stub_any_instance"
+  gem "rubocop"
+  gem "timecop"
+  gem "webmock"
 end
 
 # Needed in development as well so rake can see konacha tasks
 group :development, :test do
+  gem "coveralls", :require => false
+  gem "factory_girl_rails"
   gem "jshint"
   gem "konacha"
   gem "poltergeist"
-  gem "factory_girl_rails"
-  gem "coveralls", :require => false
 end
index f457365..1fade14 100644 (file)
@@ -15,8 +15,8 @@ GEM
       rack-test (~> 0.6.2)
       rails-dom-testing (~> 1.0, >= 1.0.5)
       rails-html-sanitizer (~> 1.0, >= 1.0.2)
-    actionpack-page_caching (1.0.2)
-      actionpack (>= 4.0.0, < 5)
+    actionpack-page_caching (1.1.0)
+      actionpack (>= 4.0.0, < 6)
     actionview (4.2.7.1)
       activesupport (= 4.2.7.1)
       builder (~> 3.1)
@@ -39,22 +39,22 @@ GEM
       minitest (~> 5.1)
       thread_safe (~> 0.3, >= 0.3.4)
       tzinfo (~> 1.1)
-    addressable (2.4.0)
-    arel (6.0.3)
+    addressable (2.5.0)
+      public_suffix (~> 2.0, >= 2.0.2)
+    arel (6.0.4)
     ast (2.3.0)
-    autoprefixer-rails (6.5.1)
+    autoprefixer-rails (6.7.2)
       execjs
     bigdecimal (1.1.0)
-    builder (3.2.2)
-    capybara (2.10.1)
+    builder (3.2.3)
+    capybara (2.12.0)
       addressable
       mime-types (>= 1.16)
       nokogiri (>= 1.3.3)
       rack (>= 1.0.0)
       rack-test (>= 0.5.4)
       xpath (~> 2.0)
-    climate_control (0.0.3)
-      activesupport (>= 3.0)
+    climate_control (0.1.0)
     cliver (0.3.2)
     cocaine (0.5.8)
       climate_control (>= 0.0.3, < 1.0)
@@ -64,17 +64,19 @@ GEM
     coffee-script (2.4.1)
       coffee-script-source
       execjs
-    coffee-script-source (1.10.0)
+    coffee-script-source (1.12.2)
     colorize (0.8.1)
     composite_primary_keys (8.1.4)
       activerecord (~> 4.2.0)
-    concurrent-ruby (1.0.2)
-    coveralls (0.8.15)
+    concurrent-ruby (1.0.4)
+    coveralls (0.8.19)
       json (>= 1.8, < 3)
       simplecov (~> 0.12.0)
       term-ansicolor (~> 1.3)
       thor (~> 0.19.1)
-      tins (>= 1.6.0, < 2)
+      tins (~> 1.6)
+    crack (0.4.3)
+      safe_yaml (~> 1.0.0)
     crass (1.0.2)
     dalli (2.7.6)
     deadlock_retry (1.2.0)
@@ -83,47 +85,52 @@ GEM
     erubis (2.7.0)
     execjs (2.7.0)
     exifr (1.2.5)
-    factory_girl (4.7.0)
+    factory_girl (4.8.0)
       activesupport (>= 3.0.0)
-    factory_girl_rails (4.7.0)
-      factory_girl (~> 4.7.0)
+    factory_girl_rails (4.8.0)
+      factory_girl (~> 4.8.0)
       railties (>= 3.0.0)
-    faraday (0.9.2)
+    faraday (0.10.1)
       multipart-post (>= 1.2, < 3)
     fspath (3.0.1)
-    geoip (1.6.2)
+    geoip (1.6.3)
     globalid (0.3.7)
       activesupport (>= 4.1.0)
+    hashdiff (0.3.2)
     hashie (3.4.6)
     htmlentities (4.3.4)
     http_accept_language (2.0.5)
-    i18n (0.7.0)
-    i18n-js (3.0.0.rc14)
+    i18n (0.8.0)
+    i18n-js (3.0.0.rc15)
       i18n (~> 0.6, >= 0.6.6)
-    image_optim (0.24.0)
+    image_optim (0.24.1)
       exifr (~> 1.2, >= 1.2.2)
       fspath (~> 3.0)
-      image_size (~> 1.3)
+      image_size (~> 1.5)
       in_threads (~> 1.3)
       progress (~> 3.0, >= 3.0.1)
-    image_size (1.4.2)
+    image_optim_rails (0.2.0)
+      image_optim (~> 0.24.0)
+      rails
+      sprockets
+    image_size (1.5.0)
     in_threads (1.3.1)
-    jquery-rails (4.2.1)
+    jquery-rails (4.2.2)
       rails-dom-testing (>= 1, < 3)
       railties (>= 4.2.0)
       thor (>= 0.14, < 2.0)
-    jshint (1.4.0)
+    jshint (1.5.0)
       execjs (>= 1.4.0)
       multi_json (~> 1.0)
       therubyracer (~> 0.12.1)
-    json (1.8.3)
+    json (1.8.6)
     jsonify (0.3.1)
       multi_json (~> 1.0)
     jsonify-rails (0.3.2)
       actionpack
       jsonify (< 0.4.0)
     jwt (1.5.6)
-    kgio (2.10.0)
+    kgio (2.11.0)
     konacha (4.0.0)
       actionpack (>= 4.1, < 5)
       capybara
@@ -132,10 +139,10 @@ GEM
       sprockets (>= 2, < 4)
       sprockets-rails (>= 2, < 4)
       tilt
-    libv8 (3.16.14.15)
+    libv8 (3.16.14.17)
     libxml-ruby (2.9.0)
     logstash-event (1.2.02)
-    logstasher (1.0.1)
+    logstasher (1.1.1)
       activerecord (>= 4.0)
       activesupport (>= 4.0)
       logstash-event (~> 1.2.0)
@@ -149,14 +156,14 @@ GEM
     mime-types-data (3.2016.0521)
     mimemagic (0.3.0)
     mini_portile2 (2.1.0)
-    minitest (5.9.1)
+    minitest (5.10.1)
     minitest-stub_any_instance (1.0.1)
     multi_json (1.12.1)
-    multi_xml (0.5.5)
+    multi_xml (0.6.0)
     multipart-post (2.0.0)
-    nokogiri (1.6.8.1)
+    nokogiri (1.7.0.1)
       mini_portile2 (~> 2.1.0)
-    nokogumbo (1.4.9)
+    nokogumbo (1.4.10)
       nokogiri
     oauth (0.4.7)
     oauth-plugin (0.5.1)
@@ -164,25 +171,31 @@ GEM
       oauth (~> 0.4.4)
       oauth2 (>= 0.5.0)
       rack
-    oauth2 (1.2.0)
-      faraday (>= 0.8, < 0.10)
+    oauth2 (1.3.0)
+      faraday (>= 0.8, < 0.11)
       jwt (~> 1.0)
       multi_json (~> 1.3)
       multi_xml (~> 0.5)
       rack (>= 1.2, < 3)
-    omniauth (1.3.1)
+    omniauth (1.3.2)
       hashie (>= 1.2, < 4)
       rack (>= 1.0, < 3)
     omniauth-facebook (4.0.0)
       omniauth-oauth2 (~> 1.2)
-    omniauth-github (1.1.2)
-      omniauth (~> 1.0)
-      omniauth-oauth2 (~> 1.1)
+    omniauth-github (1.2.0)
+      omniauth (~> 1.3.2)
+      omniauth-oauth2 (>= 1.4.0, < 2.0)
     omniauth-google-oauth2 (0.4.1)
       jwt (~> 1.5.2)
       multi_json (~> 1.3)
       omniauth (>= 1.1.1)
       omniauth-oauth2 (>= 1.3.1)
+    omniauth-mediawiki (0.0.3)
+      jwt (~> 1.0)
+      omniauth-oauth (~> 1.0)
+    omniauth-oauth (1.1.0)
+      oauth
+      omniauth (~> 1.0)
     omniauth-oauth2 (1.4.0)
       oauth2 (~> 1.0)
       omniauth (~> 1.2)
@@ -198,19 +211,20 @@ GEM
       cocaine (~> 0.5.5)
       mime-types
       mimemagic (= 0.3.0)
-    parser (2.3.1.4)
+    parser (2.3.3.1)
       ast (~> 2.2)
     pg (0.19.0)
-    poltergeist (1.11.0)
+    poltergeist (1.13.0)
       capybara (~> 2.1)
       cliver (~> 0.3.1)
       websocket-driver (>= 0.2.0)
     powerpack (0.1.1)
-    progress (3.2.2)
-    psych (2.1.1)
+    progress (3.3.0)
+    psych (2.2.2)
+    public_suffix (2.0.5)
     r2 (0.2.6)
-    rack (1.6.4)
-    rack-cors (0.4.0)
+    rack (1.6.5)
+    rack-cors (0.4.1)
     rack-openid (1.3.1)
       rack (>= 1.1.0)
       ruby-openid (>= 2.1.8)
@@ -230,9 +244,9 @@ GEM
       sprockets-rails
     rails-deprecated_sanitizer (1.0.3)
       activesupport (>= 4.2.0.alpha)
-    rails-dom-testing (1.0.7)
+    rails-dom-testing (1.0.8)
       activesupport (>= 4.2.0.beta, < 5.0)
-      nokogiri (~> 1.6.0)
+      nokogiri (~> 1.6)
       rails-deprecated_sanitizer (>= 1.0.1)
     rails-html-sanitizer (1.0.3)
       loofah (~> 2.0)
@@ -244,25 +258,27 @@ GEM
       activesupport (= 4.2.7.1)
       rake (>= 0.8.7)
       thor (>= 0.18.1, < 2.0)
-    rainbow (2.1.0)
-    rake (11.3.0)
-    redcarpet (3.3.4)
+    rainbow (2.2.1)
+    rake (12.0.0)
+    redcarpet (3.4.0)
     ref (2.0.0)
-    request_store (1.3.1)
+    request_store (1.3.2)
     rinku (2.0.2)
-    rubocop (0.44.1)
-      parser (>= 2.3.1.1, < 3.0)
+    rotp (3.3.0)
+    rubocop (0.47.1)
+      parser (>= 2.3.3.1, < 3.0)
       powerpack (~> 0.1)
       rainbow (>= 1.99.1, < 3.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (~> 1.0, >= 1.0.1)
     ruby-openid (2.7.0)
     ruby-progressbar (1.8.1)
+    safe_yaml (1.0.4)
     sanitize (4.4.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.4.4)
       nokogumbo (~> 1.4.1)
-    sass (3.4.22)
+    sass (3.4.23)
     sass-rails (5.0.6)
       railties (>= 4.0.0, < 6)
       sass (~> 3.1)
@@ -274,7 +290,7 @@ GEM
       json (>= 1.8, < 3)
       simplecov-html (~> 0.10.0)
     simplecov-html (0.10.0)
-    sprockets (3.7.0)
+    sprockets (3.7.1)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
     sprockets-rails (3.2.0)
@@ -283,23 +299,27 @@ GEM
       sprockets (>= 3.0.0)
     term-ansicolor (1.4.0)
       tins (~> 1.0)
-    therubyracer (0.12.2)
-      libv8 (~> 3.16.14.0)
+    therubyracer (0.12.3)
+      libv8 (~> 3.16.14.15)
       ref
-    thor (0.19.1)
+    thor (0.19.4)
     thread_safe (0.3.5)
-    tilt (2.0.5)
+    tilt (2.0.6)
     timecop (0.8.1)
-    tins (1.12.0)
+    tins (1.13.2)
     tzinfo (1.2.2)
       thread_safe (~> 0.1)
-    uglifier (3.0.2)
+    uglifier (3.0.4)
       execjs (>= 0.3.0, < 3)
-    unicode-display_width (1.1.1)
+    unicode-display_width (1.1.3)
     validates_email_format_of (1.6.3)
       i18n
     vendorer (0.1.16)
-    websocket-driver (0.6.4)
+    webmock (2.3.2)
+      addressable (>= 2.3.6)
+      crack (>= 0.3.2)
+      hashdiff
+    websocket-driver (0.6.5)
       websocket-extensions (>= 0.1.0)
     websocket-extensions (0.1.2)
     xpath (2.0.0)
@@ -325,7 +345,7 @@ DEPENDENCIES
   htmlentities
   http_accept_language (~> 2.0.0)
   i18n-js (>= 3.0.0.rc10)
-  image_optim (>= 0.22.0)
+  image_optim_rails
   jquery-rails
   jshint
   json
@@ -341,6 +361,7 @@ DEPENDENCIES
   omniauth-facebook
   omniauth-github
   omniauth-google-oauth2 (>= 0.2.7)
+  omniauth-mediawiki (>= 0.0.3)
   omniauth-openid
   omniauth-windowslive
   paperclip (~> 4.0)
@@ -354,6 +375,7 @@ DEPENDENCIES
   rails-i18n (~> 4.0.0)
   redcarpet
   rinku (>= 1.2.2)
+  rotp
   rubocop
   sanitize
   sass-rails (~> 5.0)
@@ -361,6 +383,7 @@ DEPENDENCIES
   uglifier (>= 1.3.0)
   validates_email_format_of (>= 1.5.1)
   vendorer
+  webmock
 
 BUNDLED WITH
-   1.10.6
+   1.12.5
index 53a7838..d036673 100644 (file)
@@ -18,22 +18,22 @@ of packages required before you can get the various gems installed.
 
 ## Minimum requirements
 
-* Ruby 2.0
+* Ruby 2.3
 * RubyGems 1.3.1+
 * PostgreSQL 9.1+
 * ImageMagick
 * Bundler
 * Javascript Runtime
 
-These can be installed on Ubuntu 14.04 or later with:
+These can be installed on Ubuntu 16.04 or later with:
 
 ```
-sudo apt-get install ruby2.0 libruby2.0 ruby2.0-dev \
+sudo apt-get install ruby2.3 libruby2.3 ruby2.3-dev \
                      libmagickwand-dev libxml2-dev libxslt1-dev nodejs \
-                     apache2 apache2-threaded-dev build-essential git-core \
+                     apache2 apache2-dev build-essential git-core \
                      postgresql postgresql-contrib libpq-dev postgresql-server-dev-all \
                      libsasl2-dev imagemagick
-sudo gem2.0 install bundler
+sudo gem2.3 install bundler
 ```
 
 ### Alternative platforms
@@ -138,7 +138,7 @@ instructions below as appropriate.
 
 ### PostgreSQL account setup
 
-We need to create a PostgreSQL role (i.e. user account) for your current user, and it needs to be a superuser so that we can create more database.
+We need to create a PostgreSQL role (i.e. user account) for your current user, and it needs to be a superuser so that we can create more databases.
 
 ```
 sudo -u postgres -i
index 0cd5ac7..f41f967 100644 (file)
@@ -4,7 +4,7 @@
 Vagrant.configure("2") do |config|
   # use official ubuntu image for virtualbox
   config.vm.provider "virtualbox" do |vb, override|
-    override.vm.box = "ubuntu/trusty64"
+    override.vm.box = "ubuntu/xenial64"
     override.vm.synced_folder ".", "/srv/openstreetmap-website"
     vb.customize ["modifyvm", :id, "--memory", "1024"]
     vb.customize ["modifyvm", :id, "--cpus", "2"]
index 9a951d5..361f2c8 100644 (file)
@@ -11,13 +11,13 @@ folder 'vendor/assets' do
   end
 
   folder 'leaflet' do
-    file 'leaflet.js', 'https://unpkg.com/leaflet@1.0.1/dist/leaflet-src.js'
-    file 'leaflet.css', 'https://unpkg.com/leaflet@1.0.1/dist/leaflet.css'
+    file 'leaflet.js', 'https://unpkg.com/leaflet@1.0.3/dist/leaflet-src.js'
+    file 'leaflet.css', 'https://unpkg.com/leaflet@1.0.3/dist/leaflet.css'
 
     [ 'layers.png', 'layers-2x.png',
       'marker-icon.png', 'marker-icon-2x.png',
       'marker-shadow.png' ].each do |image|
-      file "images/#{image}", "https://unpkg.com/leaflet@1.0.1/dist/images/#{image}"
+      file "images/#{image}", "https://unpkg.com/leaflet@1.0.3/dist/images/#{image}"
     end
 
     from 'git://github.com/kajic/leaflet-locationfilter.git' do
@@ -50,6 +50,7 @@ folder 'vendor/assets' do
       folder 'iD/img', 'dist/img'
       folder 'iD/locales', 'dist/locales'
       folder 'iD/traffico', 'dist/traffico'
+      folder 'iD/mapillary-js', 'dist/mapillary-js'
 
       file 'iD.css.erb', 'dist/iD.css' do |path|
         rewrite(path) do |content|
@@ -66,8 +67,6 @@ folder 'vendor/assets' do
       File.delete('vendor/assets/iD/iD/traffico/stylesheets/traffico.css')
 
       file 'iD.js', 'dist/iD.js'
-      file 'presets.js', 'dist/presets.js'
-      file 'imagery.js', 'dist/imagery.js'
     end
   end
 
index 39f6bc2..b273b6b 100644 (file)
Binary files a/app/assets/images/google.png and b/app/assets/images/google.png differ
diff --git a/app/assets/images/osm_logo_30.png b/app/assets/images/osm_logo_30.png
new file mode 100644 (file)
index 0000000..c963f4f
Binary files /dev/null and b/app/assets/images/osm_logo_30.png differ
diff --git a/app/assets/images/tab-icon.svg b/app/assets/images/tab-icon.svg
new file mode 100644 (file)
index 0000000..5e8bb31
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+        <g id="Logo_simple" fill="black">
+            <g id="layer1" transform="translate(0.234847, 0.091766)">
+                <path d="M1.75809857,15.5864714 C1.53259286,15.5296771 1.41476714,15.4360657 0.812798571,14.8354114 C0.0965871429,14.1207686 0.0506614286,14.0509914 0.05179,13.6792257 C0.0529328571,13.2638686 -0.0724585714,13.4124171 2.21577,11.1180486 C4.52671571,8.80090286 4.40771571,8.90189143 4.82581857,8.90298 C5.01909286,8.90355143 5.06773,8.91449429 5.22358143,8.99300286 L5.40114714,9.08244857 L5.96119286,8.5224 L6.52124143,7.96235429 L6.38092714,7.74361714 C6.10788714,7.31797429 5.85054429,6.69690286 5.73492714,6.18456286 C5.40852143,4.73815714 5.76038429,3.20801714 6.68624429,2.04756857 C8.28345857,0.0456714286 11.1528186,-0.398394286 13.27489,1.02790857 C14.4393671,1.81058286 15.1962414,3.01958 15.41179,4.44129714 C15.4573557,4.74184571 15.4576157,5.45568571 15.4123614,5.77276857 C15.2546157,6.87590286 14.7850586,7.81346 13.9961871,8.60042571 C13.5897757,9.00585143 13.2639443,9.24073714 12.7466671,9.50116857 C12.1308443,9.81121714 11.6083871,9.95670571 10.8984843,10.0158286 C9.88698143,10.1000686 8.76552714,9.82031714 7.90698143,9.26958571 L7.68824429,9.12927143 L7.12819857,9.68931714 L6.56815,10.2493657 L6.65759857,10.4269286 C6.73610714,10.58278 6.74711571,10.6314171 6.74761857,10.8246943 C6.74876143,11.2423057 6.84782429,11.1252714 4.54627857,13.4239743 C2.77385857,15.1942057 2.50102143,15.4561657 2.36526714,15.5180457 C2.19138714,15.5973029 1.92182714,15.6276857 1.75818714,15.5864714 L1.75809857,15.5864714 Z M11.2712243,9.15195429 C12.5502929,8.91782286 13.6672814,8.06622571 14.2271586,6.89834 C15.11979,5.03633714 14.5194471,2.84804286 12.7986071,1.69118857 C12.3880957,1.41521714 11.81485,1.18257714 11.27685,1.07362 C10.9041357,0.998134286 10.1154929,1.00585429 9.72675286,1.08879143 C9.14647571,1.21259143 8.61371286,1.44346 8.15203571,1.77118 C7.86672714,1.97370571 7.39628429,2.44395714 7.19702143,2.72580286 C6.09283,4.28761714 6.19273,6.36339429 7.44143,7.80428857 C8.08152143,8.54289714 8.96678714,9.02773714 9.94637571,9.17618571 C10.2716957,9.22548571 10.9358843,9.21333714 11.2712243,9.15195714 L11.2712243,9.15195429 Z M8.87038714,13.8891629 C8.10495286,13.6680029 7.47133,13.47936 7.46233286,13.4699514 C7.44547571,13.4523229 8.23654429,10.6468171 8.26791,10.6130286 C8.28353857,10.5962 10.9920157,11.3547 11.1029871,11.4069886 C11.1422157,11.4254743 11.1007014,11.5927571 10.7663043,12.7595514 C10.55651,13.49186 10.3722014,14.1373486 10.35673,14.1939686 C10.3412443,14.2505914 10.3136357,14.2956486 10.2953443,14.2940943 C10.2770586,14.2926657 9.63582143,14.1103229 8.87038714,13.8891629 Z M10.7425129,14.2243971 C10.7425129,14.1901514 11.5295357,11.4412371 11.5420243,11.43186 C11.57051,11.41046 14.31823,10.6433514 14.3287386,10.65386 C14.3411671,10.6662886 13.5606443,13.4390343 13.5401471,13.4552829 C13.5261471,13.4663686 10.8885243,14.2190457 10.8042814,14.2359886 C10.77031,14.2428171 10.7425129,14.2377029 10.7425129,14.2243886 L10.7425129,14.2243971 Z M6.17704429,12.99702 C6.72003857,12.4511857 7.20394143,11.9528 7.25238429,11.8894971 C7.36159286,11.7467771 7.51339,11.4185714 7.55467,11.2359114 C7.57172714,11.1604143 7.58871857,11.00994 7.59241857,10.9015229 L7.59916143,10.7043971 L7.71662429,10.6712457 C7.78122714,10.6530171 7.83903571,10.6430457 7.84508714,10.6491029 C7.86014429,10.66416 7.07001857,13.4236343 7.04369571,13.44788 C7.03212429,13.4585371 6.61025571,13.58476 6.10621857,13.72836 L5.18979,13.9894514 L6.17705857,12.9970257 L6.17704429,12.99702 Z M11.4998186,11.0334343 C11.4942186,11.0240914 11.4770471,10.9704486 11.4616586,10.91426 L11.4336871,10.8121 L11.5342043,10.7951 C12.3954786,10.6493829 13.3179014,10.245 14.0444586,9.69462571 C14.1482557,9.61599714 14.2070786,9.58646 14.2147129,9.60913429 C14.24993,9.71374571 14.3901814,10.2192829 14.38533,10.2241314 C14.3635014,10.24596 11.5078643,11.0468829 11.4998071,11.03344 L11.4998186,11.0334343 Z M1.81592714,10.1996943 C1.78271,10.1727514 1.05799286,7.71489143 1.00331,7.44372286 C0.992367143,7.38943143 1.09760429,7.41535143 2.39921571,7.78740286 C3.76114143,8.17670571 3.80759857,8.19218571 3.82654429,8.26301714 C3.84343,8.32619429 3.83240143,8.34579143 3.74602143,8.40596857 C3.69096429,8.44432571 3.25066714,8.87132571 2.76758143,9.35486 C2.28449857,9.83839429 1.88227,10.2340114 1.87374429,10.2340114 C1.86523,10.2340114 1.83919857,10.2185543 1.81592714,10.1996943 L1.81592714,10.1996943 Z M2.34190143,7.38647714 C1.57939286,7.16728 0.953287143,6.98616 0.950555714,6.98398857 C0.941012857,6.97641714 1.75870714,4.13697714 1.77517286,4.12051143 C1.78951571,4.10616857 4.61573,4.89800571 4.64506714,4.92457429 C4.65103857,4.92997429 4.47244429,5.57706 4.24821,6.36254286 C3.87799286,7.65939714 3.83535,7.79043429 3.78439286,7.78785714 C3.75353,7.78642857 3.10440714,7.60567714 2.34190143,7.38647714 L2.34190143,7.38647714 Z M4.24206143,7.73209429 C4.24986143,7.71146571 4.37809571,7.26840286 4.52699571,6.74748286 L4.79772429,5.80035429 L4.83301571,6.00625143 C4.89416429,6.36299429 5.00259571,6.76962857 5.13113857,7.12424286 C5.19946714,7.31273714 5.25150429,7.47034286 5.24677857,7.47448286 C5.24206429,7.47862571 5.03435286,7.53969143 4.78521571,7.61019429 C4.53607857,7.6807 4.30875286,7.74540286 4.28004714,7.75398 C4.24341857,7.76492286 4.23209,7.75840857 4.24206143,7.73209429 L4.24206143,7.73209429 Z M3.19294143,4.11930571 C2.43043571,3.89996 1.79997286,3.71025429 1.79191,3.69773714 C1.76571,3.65706286 0.991552857,0.923451429 1.00299286,0.912011429 C1.01907857,0.895925714 3.76999,1.68537143 3.79624714,1.71360286 C3.82569571,1.74526571 4.61754429,4.52458857 4.59607857,4.52095429 C4.58685,4.51952571 3.95545,4.33865143 3.19294143,4.11930571 Z M4.57080143,3.01922286 C4.41709,2.48026286 4.26802429,1.95798571 4.23954429,1.85860286 L4.18776429,1.67791143 L5.27576429,1.36771429 C5.87416143,1.19710571 6.38229286,1.05058571 6.40494143,1.04211143 C6.42759857,1.03362571 6.35263286,1.13099714 6.23837,1.25846857 C5.63074143,1.93633143 5.23238143,2.66270571 4.98042143,3.55221714 C4.93345571,3.71803143 4.89502714,3.8802 4.89502714,3.91259429 C4.89502714,4.10048857 4.82103571,3.89659429 4.57080143,3.01922286 Z" id="path3940"></path>
+            </g>
+        </g>
+</svg>
\ No newline at end of file
diff --git a/app/assets/images/wikipedia.png b/app/assets/images/wikipedia.png
new file mode 100644 (file)
index 0000000..784c184
Binary files /dev/null and b/app/assets/images/wikipedia.png differ
index 86d2df7..185717b 100644 (file)
@@ -1,3 +1 @@
 //= require iD
-//= require presets
-//= require imagery
index 796a5f4..9d7122e 100644 (file)
@@ -157,6 +157,10 @@ $(document).ready(function () {
     if (params.layers.indexOf(map.dataLayer.options.code) >= 0) {
       map.addLayer(map.dataLayer);
     }
+
+    if (params.layers.indexOf(map.gpsLayer.options.code) >= 0) {
+      map.addLayer(map.gpsLayer);
+    }
   }
 
   var placement = $('html').attr('dir') === 'rtl' ? 'right' : 'left';
index 6d2d587..69191e6 100644 (file)
@@ -30,7 +30,6 @@ function OSRMEngine() {
         'turn sharp left': 'javascripts.directions.instructions.sharp_left',
         'turn left': 'javascripts.directions.instructions.turn_left',
         'turn slight left': 'javascripts.directions.instructions.slight_left',
-        'trun straight': 'javascripts.directions.instructions.follow',
         'roundabout': 'javascripts.directions.instructions.roundabout',
         'rotary': 'javascripts.directions.instructions.roundabout',
         'depart': 'javascripts.directions.instructions.start',
@@ -56,7 +55,6 @@ function OSRMEngine() {
         'turn slight left': 5,
         'turn left': 6,
         'turn sharp left': 7,
-        'trun straight': 0,
         'roundabout': 10,
         'rotary': 10,
         'depart': 8,
index c294f13..eedf718 100644 (file)
@@ -176,6 +176,7 @@ L.OSM.layers = function(options) {
 
       addOverlay(map.noteLayer, 'notes', OSM.MAX_NOTE_REQUEST_AREA);
       addOverlay(map.dataLayer, 'data', OSM.MAX_REQUEST_AREA);
+      addOverlay(map.gpsLayer, 'gps', Number.POSITIVE_INFINITY);
     }
 
     options.sidebar.addPane($ui);
index 4f3c7bc..380955c 100644 (file)
@@ -55,6 +55,12 @@ L.OSM.Map = L.Map.extend({
 
     this.dataLayer = new L.OSM.DataLayer(null);
     this.dataLayer.options.code = 'D';
+
+    this.gpsLayer = new L.OSM.GPS({
+      pane: "overlayPane",
+      code: "G",
+      name: I18n.t("javascripts.map.base.gps")
+    });
   },
 
   updateLayers: function(layerParam) {
index a6b1082..7cfd50c 100644 (file)
@@ -213,6 +213,15 @@ L.OSM.share = function (options) {
       .attr('type', 'hidden')
       .appendTo($form);
 
+    var csrf_param = $("meta[name=csrf-param]").attr("content"),
+        csrf_token = $("meta[name=csrf-token]").attr("content");
+
+    $('<input>')
+      .attr('name', csrf_param)
+      .attr('value', csrf_token)
+      .attr('type', 'hidden')
+      .appendTo($form);
+
     $('<p>')
       .attr('class', 'deemphasize')
       .html(I18n.t('javascripts.share.image_size') + ' <span id="mapnik_image_width"></span> x <span id="mapnik_image_height"></span>')
index 4529248..bb0e6f0 100644 (file)
@@ -491,7 +491,8 @@ body.compact {
     background-color: black;
   }
 
-  &.disabled {
+  &.disabled,
+  &.leaflet-disabled {
     background-color: #333;
     background-color: rgba(0,0,0,.5);
     cursor: default;
@@ -1181,6 +1182,7 @@ tr.turn:hover {
       width: 50%;
       padding: 6px 10px;
       word-wrap: break-word;
+      white-space: pre-wrap;
     }
 
     .browse-tag-k {
index 632974f..47a28fd 100644 (file)
@@ -220,14 +220,14 @@ class AmfController < ApplicationController
     loaded_lang = "en"
 
     # Load English defaults
-    en = YAML.load(File.open("#{Rails.root}/config/potlatch/locales/en.yml"))["en"]
+    en = YAML.safe_load(File.open(Rails.root.join("config", "potlatch", "locales", "en.yml")))["en"]
 
     if lang == "en"
       return [loaded_lang, en]
     else
       # Use English as a fallback
       begin
-        other = YAML.load(File.open("#{Rails.root}/config/potlatch/locales/#{lang}.yml"))[lang]
+        other = YAML.safe_load(File.open(Rails.root.join("config", "potlatch", "locales", "#{lang}.yml")))[lang]
         loaded_lang = lang
       rescue
         other = en
@@ -875,7 +875,7 @@ class AmfController < ApplicationController
   end
 
   def getlocales
-    @locales ||= Locale.list(Dir.glob("#{Rails.root}/config/potlatch/locales/*").collect { |f| File.basename(f, ".yml") })
+    @locales ||= Locale.list(Dir.glob(Rails.root.join("config", "potlatch", "locales", "*")).collect { |f| File.basename(f, ".yml") })
   end
 
   ##
index 0c50276..354fcc7 100644 (file)
@@ -343,7 +343,7 @@ class ApplicationController < ActionController::Base
   ##
   # wrap an api call in a timeout
   def api_call_timeout
-    OSM::Timer.timeout(API_TIMEOUT) do
+    OSM::Timer.timeout(API_TIMEOUT, Timeout::Error) do
       yield
     end
   rescue Timeout::Error
@@ -353,17 +353,13 @@ class ApplicationController < ActionController::Base
   ##
   # wrap a web page in a timeout
   def web_timeout
-    OSM::Timer.timeout(WEB_TIMEOUT) do
+    OSM::Timer.timeout(WEB_TIMEOUT, Timeout::Error) do
       yield
     end
   rescue ActionView::Template::Error => ex
     ex = ex.original_exception
 
     if ex.is_a?(ActiveRecord::StatementInvalid) && ex.message =~ /execution expired/
-      ex = Timeout::Error.new
-    end
-
-    if ex.is_a?(Timeout::Error)
       render :action => "timeout"
     else
       raise
@@ -423,6 +419,16 @@ class ApplicationController < ActionController::Base
 
   helper_method :preferred_editor
 
+  def update_totp
+    if defined?(TOTP_KEY)
+      cookies["_osm_totp_token"] = {
+        :value => ROTP::TOTP.new(TOTP_KEY, :interval => 3600).now,
+        :domain => "openstreetmap.org",
+        :expires => 1.hour.from_now
+      }
+    end
+  end
+
   private
 
   # extract authorisation credentials from headers, returns user = nil if none
@@ -452,6 +458,5 @@ class ApplicationController < ActionController::Base
   end
 
   # override to stop oauth plugin sending errors
-  def invalid_oauth_response
-  end
+  def invalid_oauth_response; end
 end
index bd020f2..6e5016d 100644 (file)
@@ -1,6 +1,7 @@
 class ExportController < ApplicationController
   before_action :authorize_web
   before_action :set_locale
+  before_action :update_totp, :only => [:finish]
 
   caches_page :embed
 
@@ -22,6 +23,5 @@ class ExportController < ApplicationController
     end
   end
 
-  def embed
-  end
+  def embed; end
 end
index 97e8921..0ec1c8e 100644 (file)
@@ -39,7 +39,7 @@ class MessageController < ApplicationController
     message = Message.find(params[:message_id])
 
     if message.to_user_id == @user.id
-      message.update_attribute(:message_read, true)
+      message.update(:message_read => true)
 
       @message = Message.new(
         :recipient => message.sender,
index 31dd727..1293181 100644 (file)
@@ -32,11 +32,9 @@ class RedactionsController < ApplicationController
     end
   end
 
-  def show
-  end
+  def show; end
 
-  def edit
-  end
+  def edit; end
 
   def update
     # note - don't update the user ID
index 5131629..aa284ec 100644 (file)
@@ -8,6 +8,7 @@ class SiteController < ApplicationController
   before_action :redirect_map_params, :only => [:index, :edit, :export]
   before_action :require_user, :only => [:welcome]
   before_action :require_oauth, :only => [:index]
+  before_action :update_totp, :only => [:index]
 
   def index
     unless STATUS == :database_readonly || STATUS == :database_offline
@@ -83,7 +84,7 @@ class SiteController < ApplicationController
       @lat = note.lat
       @lon = note.lon
       @zoom = 17
-    elsif params[:gpx]
+    elsif params[:gpx] && @user
       trace = Trace.visible_to(@user).find(params[:gpx])
       @lat = trace.latitude
       @lon = trace.longitude
@@ -95,20 +96,15 @@ class SiteController < ApplicationController
     @locale = params[:copyright_locale] || I18n.locale
   end
 
-  def welcome
-  end
+  def welcome; end
 
-  def help
-  end
+  def help; end
 
-  def about
-  end
+  def about; end
 
-  def export
-  end
+  def export; end
 
-  def offline
-  end
+  def offline; end
 
   def preview
     render :text => RichText.new(params[:format], params[:text]).to_html
index 4b2cd2a..3e53e25 100644 (file)
@@ -2,4 +2,24 @@ module NotifierHelper
   def fp(text)
     format_paragraph(text, 72, 0)
   end
+
+  def link_to_user(display_name)
+    link_to(
+      display_name,
+      user_url(display_name, :host => SERVER_URL),
+      :target => "_blank",
+      :style => "text-decoration: none; color: #222; font-weight: bold"
+    )
+  end
+
+  def message_body(&block)
+    render(
+      :partial => "message_body",
+      :locals => { :body => capture(&block) }
+    )
+  end
+
+  def style_message(html)
+    html.gsub /<p>/, '<p style="color: black; margin: 0.75em 0">'
+  end
 end
index e21a564..ab7e230 100644 (file)
@@ -4,9 +4,9 @@ module OpenGraphHelper
       "og:site_name" => t("layouts.project_name.title"),
       "og:title" => [t("layouts.project_name.title"), title].compact.join(" | "),
       "og:type" => "website",
-      "og:image" => image_path("osm_logo_256.png", :host => SERVER_URL, :protocol => "http"),
-      "og:image:secure_url" => image_path("osm_logo_256.png", :host => SERVER_URL, :protocol => "https"),
-      "og:url" => url_for(:host => SERVER_URL),
+      "og:image" => image_url("osm_logo_256.png", :protocol => "http"),
+      "og:image:secure_url" => image_url("osm_logo_256.png", :protocol => "https"),
+      "og:url" => url_for(:only_path => false),
       "og:description" => t("layouts.intro_text")
     }
 
index b6961cd..7093a96 100644 (file)
@@ -1,6 +1,8 @@
 module UserRolesHelper
   def role_icons(user)
-    UserRole::ALL_ROLES.reduce("".html_safe) { |a, e| a + " " + role_icon(user, e) }
+    UserRole::ALL_ROLES.reduce("".html_safe) do |acc, elem|
+      acc + " " + role_icon(user, elem)
+    end
   end
 
   def role_icon(user, role)
index 6909ba9..549600d 100644 (file)
@@ -32,7 +32,7 @@ class Changeset < ActiveRecord::Base
   EXPAND = 0.1
 
   # maximum number of elements allowed in a changeset
-  MAX_ELEMENTS = 50000
+  MAX_ELEMENTS = 10000
 
   # maximum time a changeset is allowed to be open for.
   MAX_TIME_OPEN = 1.day
index bb31c82..776182e 100644 (file)
@@ -5,7 +5,7 @@ class Language < ActiveRecord::Base
 
   def self.load(file)
     Language.transaction do
-      YAML.load(File.read(file)).each do |k, v|
+      YAML.safe_load(File.read(file)).each do |k, v|
         begin
           Language.update(k, :english_name => v["english"], :native_name => v["native"])
         rescue ActiveRecord::RecordNotFound
index 2a64259..f8559dc 100644 (file)
@@ -232,10 +232,14 @@ class Node < ActiveRecord::Base
 
   def save_with_history!
     t = Time.now.getutc
+
+    self.version += 1
+    self.timestamp = t
+
     Node.transaction do
-      self.version += 1
-      self.timestamp = t
-      save!
+      # clone the object before saving it so that the original is
+      # still marked as dirty if we retry the transaction
+      clone.save!
 
       # Create a NodeTag
       tags = self.tags
index a498e4e..1eb39e6 100644 (file)
@@ -3,6 +3,8 @@ class Notifier < ActionMailer::Base
           :return_path => EMAIL_RETURN_PATH,
           :auto_submitted => "auto-generated"
   helper :application
+  before_action :set_shared_template_vars
+  before_action :attach_project_logo
 
   def signup_confirm(user, token)
     with_recipient_locale user do
@@ -76,6 +78,9 @@ class Notifier < ActionMailer::Base
       @replyurl = url_for(:host => SERVER_URL,
                           :controller => "message", :action => "reply",
                           :message_id => message.id)
+      @author = @from_user
+
+      attach_user_avatar(message.sender)
 
       mail :from => from_address(message.sender.display_name, "m", message.id, message.digest),
            :to => message.recipient.email,
@@ -106,8 +111,11 @@ class Notifier < ActionMailer::Base
                           :action => "new",
                           :display_name => comment.user.display_name,
                           :title => "Re: #{comment.diary_entry.title}")
+      @author = @from_user
+
+      attach_user_avatar(comment.user)
 
-      mail :from => from_address(comment.user.display_name, "c", comment.id, comment.digest),
+      mail :from => from_address(comment.user.display_name, "c", comment.id, comment.digest, recipient.id),
            :to => recipient.email,
            :subject => I18n.t("notifier.diary_comment_notification.subject", :user => comment.user.display_name)
     end
@@ -122,7 +130,9 @@ class Notifier < ActionMailer::Base
       @friendurl = url_for(:host => SERVER_URL,
                            :controller => "user", :action => "make_friend",
                            :display_name => @friend.befriender.display_name)
+      @author = @friend.befriender.display_name
 
+      attach_user_avatar(@friend.befriender)
       mail :to => friend.befriendee.email,
            :subject => I18n.t("notifier.friend_notification.subject", :user => friend.befriender.display_name)
     end
@@ -142,6 +152,9 @@ class Notifier < ActionMailer::Base
                      I18n.t("notifier.note_comment_notification.anonymous")
                    end
 
+      @author = @commenter
+      attach_user_avatar(comment.author)
+
       subject = if @owner
                   I18n.t("notifier.note_comment_notification.#{@event}.subject_own", :commenter => @commenter)
                 else
@@ -161,6 +174,7 @@ class Notifier < ActionMailer::Base
       @changeset_comment = comment.changeset.tags["comment"].presence
       @time = comment.created_at
       @changeset_author = comment.changeset.user.display_name
+      @author = @commenter
 
       subject = if @owner
                   I18n.t("notifier.changeset_comment_notification.commented.subject_own", :commenter => @commenter)
@@ -168,21 +182,48 @@ class Notifier < ActionMailer::Base
                   I18n.t("notifier.changeset_comment_notification.commented.subject_other", :commenter => @commenter)
                 end
 
+      attach_user_avatar(comment.author)
+
       mail :to => recipient.email, :subject => subject
     end
   end
 
   private
 
+  def set_shared_template_vars
+    @root_url = root_url(:host => SERVER_URL)
+  end
+
+  def attach_project_logo
+    attachments.inline["logo.png"] = File.read(Rails.root.join("app", "assets", "images", "osm_logo_30.png"))
+  end
+
+  def attach_user_avatar(user)
+    attachments.inline["avatar.png"] = File.read(user_avatar_file_path(user))
+  end
+
+  def user_avatar_file_path(user)
+    image = user && user.image
+    if image && image.file?
+      return image.path(:small)
+    else
+      return Rails.root.join("app", "assets", "images", "users", "images", "small.png")
+    end
+  end
+
   def with_recipient_locale(recipient)
     I18n.with_locale Locale.available.preferred(recipient.preferred_languages) do
       yield
     end
   end
 
-  def from_address(name, type, id, digest)
+  def from_address(name, type, id, digest, user_id = nil)
     if Object.const_defined?(:MESSAGES_DOMAIN) && domain = MESSAGES_DOMAIN
-      "#{name} <#{type}-#{id}-#{digest[0, 6]}@#{domain}>"
+      if user_id
+        "#{name} <#{type}-#{id}-#{user_id}-#{digest[0, 6]}@#{domain}>"
+      else
+        "#{name} <#{type}-#{id}-#{digest[0, 6]}@#{domain}>"
+      end
     else
       EMAIL_FROM
     end
index 4d615dd..e0510dc 100644 (file)
@@ -6,7 +6,8 @@ class OauthNonce < ActiveRecord::Base
 
   # Remembers a nonce and it's associated timestamp. It returns false if it has already been used
   def self.remember(nonce, timestamp)
-    oauth_nonce = OauthNonce.create(:nonce => nonce, :timestamp => timestamp)
+    return false if Time.now.to_i - timestamp.to_i > 86400
+    oauth_nonce = OauthNonce.create(:nonce => nonce, :timestamp => timestamp.to_i)
     return false if oauth_nonce.new_record?
     oauth_nonce
   end
index ed37d15..b78c95c 100644 (file)
@@ -281,15 +281,19 @@ class Relation < ActiveRecord::Base
   private
 
   def save_with_history!
+    t = Time.now.getutc
+
+    self.version += 1
+    self.timestamp = t
+
     Relation.transaction do
       # have to be a little bit clever here - to detect if any tags
       # changed then we have to monitor their before and after state.
       tags_changed = false
 
-      t = Time.now.getutc
-      self.version += 1
-      self.timestamp = t
-      save!
+      # clone the object before saving it so that the original is
+      # still marked as dirty if we retry the transaction
+      clone.save!
 
       tags = self.tags.clone
       relation_tags.each do |old_tag|
@@ -370,7 +374,7 @@ class Relation < ActiveRecord::Base
       # materially change the rest of the relation.
       any_relations =
         changed_members.collect { |_id, type| type == "relation" }
-                       .inject(false) { |a, e| a || e }
+                       .inject(false) { |acc, elem| acc || elem }
 
       update_members = if tags_changed || any_relations
                          # add all non-relation bounding boxes to the changeset
index 2cdb940..3d5e71e 100644 (file)
@@ -94,7 +94,7 @@ class User < ActiveRecord::Base
       user = nil
     end
 
-    token.update_column(:expiry, 1.week.from_now) if token && user
+    token.update(:expiry => 1.week.from_now) if token && user
 
     user
   end
@@ -216,8 +216,8 @@ class User < ActiveRecord::Base
   def spam_score
     changeset_score = changesets.size * 50
     trace_score = traces.size * 50
-    diary_entry_score = diary_entries.inject(0) { |a, e| a + e.body.spam_score }
-    diary_comment_score = diary_comments.inject(0) { |a, e| a + e.body.spam_score }
+    diary_entry_score = diary_entries.inject(0) { |acc, elem| acc + elem.body.spam_score }
+    diary_comment_score = diary_comments.inject(0) { |acc, elem| acc + elem.body.spam_score }
 
     score = description.spam_score / 4.0
     score += diary_entries.where("created_at > ?", 1.day.ago).count * 10
@@ -233,7 +233,7 @@ class User < ActiveRecord::Base
   # perform a spam check on a user
   def spam_check
     if status == "active" && spam_score > SPAM_THRESHOLD
-      update_column(:status, "suspended")
+      update(:status => "suspended")
     end
   end
 
index 6bc7435..4f80f19 100644 (file)
@@ -1,5 +1,6 @@
 class UserRole < ActiveRecord::Base
   belongs_to :user
+  belongs_to :granter, :class_name => "User"
 
   ALL_ROLES = %w(administrator moderator).freeze
 
index 98c4902..9877b8b 100644 (file)
@@ -255,6 +255,9 @@ class Way < ActiveRecord::Base
   def save_with_history!
     t = Time.now.getutc
 
+    self.version += 1
+    self.timestamp = t
+
     # update the bounding box, note that this has to be done both before
     # and after the save, so that nodes from both versions are included in the
     # bbox. we use a copy of the changeset so that it isn't reloaded
@@ -263,9 +266,9 @@ class Way < ActiveRecord::Base
     cs.update_bbox!(bbox) unless nodes.empty?
 
     Way.transaction do
-      self.version += 1
-      self.timestamp = t
-      save!
+      # clone the object before saving it so that the original is
+      # still marked as dirty if we retry the transaction
+      clone.save!
 
       tags = self.tags
       WayTag.delete_all(:way_id => id)
index 979a749..68b4a19 100644 (file)
@@ -5,12 +5,12 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
   feed.title changeset_list_title(params, @user)
 
   feed.updated @edits.map { |e| [e.created_at, e.closed_at].max }.max
-  feed.icon "http://#{SERVER_URL}/favicon.ico"
-  feed.logo "http://#{SERVER_URL}/images/mag_map-rss2.0.png"
+  feed.icon image_url("favicon.ico")
+  feed.logo image_url("mag_map-rss2.0.png")
 
   feed.rights :type => "xhtml" do |xhtml|
     xhtml.a :href => "http://creativecommons.org/licenses/by-sa/2.0/" do |a|
-      a.img :src => "http://#{SERVER_URL}/images/cc_button.png", :alt => "CC by-sa 2.0"
+      a.img :src => image_url("cc_button.png"), :alt => "CC by-sa 2.0"
     end
   end
 
index 7adcb3b..6ff2ed9 100644 (file)
@@ -1,29 +1,30 @@
 xml.instruct!
 
 xml.rss("version" => "2.0",
+        "xmlns:dc" => "http://purl.org/dc/elements/1.1/",
         "xmlns:geo" => "http://www.w3.org/2003/01/geo/wgs84_pos#",
         "xmlns:georss" => "http://www.georss.org/georss") do
   xml.channel do
     xml.title @title
     xml.description @description
-    xml.link url_for(:action => "list", :host => SERVER_URL)
+    xml.link url_for(:action => "list", :only_path => false)
     xml.image do
-      xml.url image_path("mag_map-rss2.0.png")
-      xml.title "OpenStreetMap"
+      xml.url image_url("mag_map-rss2.0.png")
+      xml.title @title
       xml.width "100"
       xml.height "100"
-      xml.link url_for(:action => "list", :host => SERVER_URL)
+      xml.link url_for(:action => "list", :only_path => false)
     end
 
     @entries.each do |entry|
       xml.item do
-        xml.title h(entry.title)
-        xml.link url_for(:action => "view", :id => entry.id, :display_name => entry.user.display_name, :host => SERVER_URL)
-        xml.guid url_for(:action => "view", :id => entry.id, :display_name => entry.user.display_name, :host => SERVER_URL)
+        xml.title entry.title
+        xml.link url_for(:action => "view", :id => entry.id, :display_name => entry.user.display_name, :only_path => false)
+        xml.guid url_for(:action => "view", :id => entry.id, :display_name => entry.user.display_name, :only_path => false)
         xml.description entry.body.to_html
-        xml.author entry.user.display_name
+        xml.dc :creator, entry.user.display_name
         xml.pubDate entry.created_at.to_s(:rfc822)
-        xml.comments url_for(:action => "view", :id => entry.id, :display_name => entry.user.display_name, :anchor => "comments", :host => SERVER_URL)
+        xml.comments url_for(:action => "view", :id => entry.id, :display_name => entry.user.display_name, :anchor => "comments", :only_path => false)
 
         if entry.latitude && entry.longitude
           xml.geo :lat, entry.latitude.to_s
index 118100d..8830a86 100644 (file)
@@ -18,6 +18,7 @@
   <%= favicon_link_tag "favicon-96x96.png", :rel => "icon", :sizes => "96x96", :type => "image/png" %>
   <%= favicon_link_tag "android-chrome-192x192.png", :rel => "icon", :sizes => "192x192", :type => "image/png" %>
   <%= favicon_link_tag "favicon-16x16.png", :rel => "icon", :sizes => "16x16", :type => "image/png" %>
+  <%= tag("link", { :rel => "mask-icon", :href => asset_path("tag-icon.svg"), :color => "#7ebc6f" }) %>
   <%= tag("link", { :rel => "manifest", :href => asset_path("manifest.json") }) %>
   <%= tag("meta", { :name => "msapplication-config", :content => asset_path("browserconfig.xml") }) %>
   <%= tag("meta", { :name => "msapplication-TileColor", :content => "#00a300" }) %>
diff --git a/app/views/layouts/notifier.html.erb b/app/views/layouts/notifier.html.erb
new file mode 100644 (file)
index 0000000..dd041cc
--- /dev/null
@@ -0,0 +1,46 @@
+<html>
+  <head>
+    <meta charset="UTF-8"></meta>
+  </head>
+  <body style="padding: 0; margin: 0; font-size: 14px; font-family: 'Helvetica Neue', Arial, sans-serif; color: #222">
+    <table style="background-color: #eee; width: 100%">
+      <tr>
+        <td style="text-align: center">
+          <table style="width: 600px; color: #222; margin-left: auto; margin-right: auto">
+            <tr>
+              <td style="width: 30px; padding: 10px 10px 10px 0px">
+                <a href="<%= @root_url %>" target="_blank">
+                  <%= image_tag attachments["logo.png"].url, alt: "OpenStreetMap logo", title: "OpenStreetMap", height: "30", width: "30", border: "0" %>
+                </a>
+              </td>
+              <td style="padding: 10px 0px">
+                <a href="<%= @root_url %>" target="_blank" style="text-decoration: none; color: #000">
+                  <h1 style="font-size: 18px; font-weight: 600; margin: 0; text-align: left">OpenStreetMap</h1>
+                </a>
+              </td>
+            </tr>
+            <tr>
+              <td colspan="2">
+                <table style="background-color: #fff; color: #222; border: solid 1px #ccc; border-collapse: separate">
+                  <tr>
+                    <td style="text-align: left; padding: 0px 15px 5px 15px">
+                      <%= raw style_message(yield) %>
+                    </td>
+                  </tr>
+                </table>
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td style="text-align: center; font-size: 11px">
+          <%= yield :footer %>
+          <p style="margin-bottom: 10px">
+            <a href="<%= @root_url %>" target="_blank" style="color: #222">OpenStreetMap</a>
+          </p>
+        </td>
+      </tr>
+    </table>
+  </body>
+</html>
index 9d8ede2..f6bb39d 100644 (file)
@@ -6,7 +6,7 @@ xml.wpt("lon" => note.lon, "lat" => note.lat) do
     xml.cdata! render(:partial => "description", :object => note, :formats => [:html])
   end
 
-  xml.link("href" => browse_note_url(note, :host => SERVER_URL))
+  xml.link("href" => browse_note_url(note, :only_path => false))
 
   xml.extensions do
     xml.id note.id
index 74ff5cc..5e3ac51 100644 (file)
@@ -26,7 +26,7 @@ json.properties do
     if comment.author
       json.uid comment.author.id
       json.user comment.author.display_name
-      json.user_url user_url(:display_name => comment.author.display_name, :host => SERVER_URL)
+      json.user_url user_url(:display_name => comment.author.display_name, :only_path => false)
     end
 
     json.action comment.event
index 900e7fd..038ca56 100644 (file)
@@ -13,7 +13,7 @@ xml.item do
   xml.guid note_url(note)
   xml.description render(:partial => "description", :object => note, :formats => [:html])
 
-  xml.author note.author.display_name if note.author
+  xml.dc :creator, note.author.display_name if note.author
 
   xml.pubDate note.updated_at.to_s(:rfc822)
   xml.geo :lat, note.lat
index fb6738a..adb4e6a 100644 (file)
@@ -22,7 +22,7 @@ xml.note("lon" => note.lon, "lat" => note.lat) do
         if comment.author
           xml.uid comment.author.id
           xml.user comment.author.display_name
-          xml.user_url user_url(:display_name => comment.author.display_name, :host => SERVER_URL)
+          xml.user_url user_url(:display_name => comment.author.display_name, :only_path => false)
         end
 
         xml.action comment.event
index ecbbb73..e912b99 100644 (file)
@@ -1,6 +1,7 @@
 xml.instruct!
 
 xml.rss("version" => "2.0",
+        "xmlns:dc" => "http://purl.org/dc/elements/1.1/",
         "xmlns:geo" => "http://www.w3.org/2003/01/geo/wgs84_pos#",
         "xmlns:georss" => "http://www.georss.org/georss") do
   xml.channel do
index 2825799..8d44336 100644 (file)
@@ -1,14 +1,12 @@
-<%= t'notifier.gpx_notification.greeting' %>
-
 <%= t'notifier.gpx_notification.your_gpx_file' %>
-
-  <%= @trace_name %>
-
+<strong><%= @trace_name %></strong>
 <%= t'notifier.gpx_notification.with_description' %>
-
-  <%= @trace_description %>
+<em><%= @trace_description %></em>
 <% if @trace_tags.length>0 %>
-<%= t'notifier.gpx_notification.and_the_tags' %>
-<% @trace_tags.each do |tag| %>
-  <%= tag.tag.rstrip %><% end %><% else %>
-<%= t'notifier.gpx_notification.and_no_tags' %><% end %>
+  <%= t'notifier.gpx_notification.and_the_tags' %>
+  <em><% @trace_tags.each do |tag| %>
+    <%= tag.tag.rstrip %>
+  <% end %></em>
+<% else %>
+  <%= t'notifier.gpx_notification.and_no_tags' %>
+<% end %>
diff --git a/app/views/notifier/_message_body.html.erb b/app/views/notifier/_message_body.html.erb
new file mode 100644 (file)
index 0000000..d86d441
--- /dev/null
@@ -0,0 +1,21 @@
+<table style="font-size: 15px; font-style: italic; margin: 15px 0px; background-color: #eee; width: 520px">
+  <tr>
+    <td style="width: 50px; vertical-align: top; padding: 15px">
+      <%= link_to(
+          image_tag(
+            attachments["avatar.png"].url,
+            alt: @author,
+            title: @author,
+            width: 50,
+            height: 50,
+            border: 0
+          ),
+          user_url(@author, :host => SERVER_URL),
+          :target => "_blank"
+      ) %>
+    </td>
+    <td style="text-align: left; vertical-align: top; padding-right: 10px">
+      <%= body %>
+    </td>
+  </tr>
+</table>
index b7646a8..c2b552e 100644 (file)
@@ -1,20 +1,26 @@
-<p><%= t 'notifier.changeset_comment_notification.greeting' %></p>
-
 <p>
   <% if @owner %>
-    <%= t "notifier.changeset_comment_notification.commented.your_changeset", :commenter => @commenter, :time => @time %>
+    <%= raw t "notifier.changeset_comment_notification.commented.your_changeset", :commenter => link_to_user(@commenter), :time => @time %>
   <% else %>
-    <%= t "notifier.changeset_comment_notification.commented.commented_changeset", :commenter => @commenter, :time => @time, :changeset_author => @changeset_author %>
+    <%= raw t "notifier.changeset_comment_notification.commented.commented_changeset", :commenter => link_to_user(@commenter), :time => @time, :changeset_author => @changeset_author %>
   <% end %>
   <% if @changeset_comment %>
-    <%= t "notifier.changeset_comment_notification.commented.partial_changeset_with_comment", :changeset_comment => @changeset_comment %>
+    <%= raw t "notifier.changeset_comment_notification.commented.partial_changeset_with_comment", :changeset_comment => content_tag("em", @changeset_comment) %>
   <% else %>
     <%= t "notifier.changeset_comment_notification.commented.partial_changeset_without_comment" %>
   <% end %>
 </p>
 
-==
-<%= @comment.to_html %>
-==
+<%= message_body do %>
+  <%= @comment.to_html %>
+<% end %>
+
+<p>
+  <%= raw t 'notifier.changeset_comment_notification.details', :url => link_to(@changeset_url, @changeset_url, :style => "white-space: nowrap") %>
+</p>
 
-<p><%= raw t 'notifier.changeset_comment_notification.details', :url => link_to(@changeset_url, @changeset_url) %></p>
+<% content_for :footer do %>
+  <p>
+    <%= raw t 'notifier.changeset_comment_notification.unsubscribe', :url => link_to(@changeset_url, @changeset_url, :style => "color: #222; white-space: nowrap") %>
+  </p>
+<% end %>
index 44a3c12..5da6fed 100644 (file)
@@ -16,3 +16,5 @@
 ==
 
 <%= t 'notifier.changeset_comment_notification.details', :url => @changeset_url %>
+
+<%= t 'notifier.changeset_comment_notification.unsubscribe', :url => @changeset_url %>
index b47900a..73bfe9a 100644 (file)
@@ -1,9 +1,18 @@
-<p><%= t'notifier.diary_comment_notification.hi', :to_user => @to_user %></p>
+<p>
+  <%= t'notifier.diary_comment_notification.hi', :to_user => @to_user %>
+</p>
+<p>
+  <%= raw t'notifier.diary_comment_notification.header', :from_user => link_to_user(@from_user), :subject => content_tag("em", @title) %>
+</p>
 
-<p><%= raw t'notifier.diary_comment_notification.header', :from_user => link_to(@from_user, :host => SERVER_URL, :controller => :user, :action => :view, :display_name => @from_user), :subject => @title %></p>
+<%= message_body do %>
+  <%= @text.to_html %>
+<% end %>
 
-==
-<%= @text.to_html %>
-==
-
-<p><%= raw t'notifier.diary_comment_notification.footer', :readurl => link_to(@readurl, @readurl), :commenturl => link_to(@commenturl, @commenturl), :replyurl => link_to(@replyurl, @replyurl) %></p>
+<% content_for :footer do %>
+  <p><%= raw t'notifier.diary_comment_notification.footer',
+             :readurl => link_to(@readurl, @readurl) + tag(:br),
+             :commenturl => link_to(@commenturl, @commenturl) + tag(:br),
+             :replyurl => link_to(@replyurl, @replyurl)
+  %></p>
+<% end %>
index 5b7c74d..5d8f49d 100644 (file)
@@ -4,4 +4,4 @@
 
 <p><%= t 'notifier.email_confirm_html.click_the_link' %></p>
 
-<p><a href="<%= @url %>"><%= @url %></a></p>
+<p><a href="<%= @url %>" style="white-space: nowrap"><%= @url %></a></p>
index 181b2b8..cfea971 100644 (file)
@@ -1,7 +1,9 @@
 <p><%= t 'notifier.friend_notification.had_added_you', :user => @friend.befriender.display_name %></p>
 
-<p><%= raw t 'notifier.friend_notification.see_their_profile', :userurl => link_to(@viewurl, @viewurl) %></p>
+<%= message_body do %>
+  <p><%= raw t 'notifier.friend_notification.see_their_profile', :userurl => link_to(@viewurl, @viewurl) %></p>
 
-<% unless @friend.befriendee.is_friends_with?(@friend.befriender) -%>
-<p><%= raw t 'notifier.friend_notification.befriend_them', :befriendurl => link_to(@friendurl, @friendurl) %></p>
-<% end -%>
+  <% unless @friend.befriendee.is_friends_with?(@friend.befriender) -%>
+  <p><%= raw t 'notifier.friend_notification.befriend_them', :befriendurl => link_to(@friendurl, @friendurl) %></p>
+  <% end -%>
+<% end %>
index f59aa3d..dace185 100644 (file)
@@ -1,9 +1,16 @@
-<%= render :partial => "gpx_description" %>
-<%= t'notifier.gpx_notification.failure.failed_to_import' %>
+<p><%= t'notifier.gpx_notification.greeting' %></p>
 
-  <%= @error %>
+<p>
+  <%= render :partial => "gpx_description" %>
+  <%= t'notifier.gpx_notification.failure.failed_to_import' %>
+</p>
 
-<%= t'notifier.gpx_notification.failure.more_info_1' %>
-<%= t'notifier.gpx_notification.failure.more_info_2' %>
+<blockquote>
+  <%= @error %>
+</blockquote>
 
+<p>
+  <%= t'notifier.gpx_notification.failure.more_info_1' %>
+  <%= t'notifier.gpx_notification.failure.more_info_2' %>
   <%= t'notifier.gpx_notification.failure.import_failures_url' %>
+</p>
index 1983fe7..d298bd7 100644 (file)
@@ -1,2 +1,6 @@
-<%= render :partial => "gpx_description" %>
-<%= t'notifier.gpx_notification.success.loaded_successfully', :trace_points => @trace_points, :possible_points => @possible_points %>
+<p><%= t'notifier.gpx_notification.greeting' %></p>
+
+<p>
+  <%= render :partial => "gpx_description" %>
+  <%= t'notifier.gpx_notification.success.loaded_successfully', :trace_points => @trace_points, :possible_points => @possible_points %>
+</p>
index 1970425..97a352a 100644 (file)
@@ -1,9 +1,22 @@
-<p><%= t'notifier.message_notification.hi', :to_user => @to_user %></p>
+<p>
+  <%= t'notifier.message_notification.hi', :to_user => @to_user %>
+</p>
+<p>
+  <%= raw t'notifier.message_notification.header',
+          :from_user => link_to_user(@from_user),
+          :subject => content_tag("em", @title)
+  %>
+</p>
 
-<p><%= raw t'notifier.message_notification.header', :from_user => link_to(@from_user, :host => SERVER_URL, :controller => :user, :action => :view, :display_name => @from_user), :subject => @title %></p>
+<%= message_body do %>
+  <%= @text.to_html %>
+<% end %>
 
-==
-<%= @text.to_html %>
-==
-
-<p><%= t'notifier.message_notification.footer_html', :readurl => link_to(@readurl, @readurl), :replyurl => link_to(@replyurl, @replyurl) %></p>
+<% content_for :footer do %>
+  <p>
+    <%= t'notifier.message_notification.footer_html',
+          :readurl => link_to(@readurl, @readurl) + tag(:br),
+          :replyurl => link_to(@replyurl, @replyurl)
+    %>
+  </p>
+<% end %>
index d82723b..ecaff81 100644 (file)
@@ -1,13 +1,13 @@
 <p><%= t 'notifier.note_comment_notification.greeting' %></p>
 
 <% if @owner %>
-<p><%= t "notifier.note_comment_notification.#{@event}.your_note", :commenter => @commenter, :place => @place %></p>
+  <p><%= raw t "notifier.note_comment_notification.#{@event}.your_note", :commenter => link_to_user(@commenter), :place => @place %></p>
 <% else %>
-<p><%= t "notifier.note_comment_notification.#{@event}.commented_note", :commenter => @commenter, :place => @place %></p>
+  <p><%= raw t "notifier.note_comment_notification.#{@event}.commented_note", :commenter => link_to_user(@commenter), :place => @place %></p>
 <% end %>
 
-==
-<%= @comment.to_html %>
-==
+<%= message_body do %>
+  <%= @comment.to_html %>
+<% end %>
 
 <p><%= raw t 'notifier.note_comment_notification.details', :url => link_to(@noteurl, @noteurl) %></p>
index 814deee..41b2ceb 100644 (file)
@@ -4,6 +4,6 @@
 
 <p><%= t("notifier.signup_confirm.confirm") %></p>
 
-<p><%= link_to @url, @url %></p>
+<p><%= link_to @url, @url, :style => "white-space: nowrap" %></p>
 
 <p><%= t("notifier.signup_confirm.welcome") %></p>
index ed36385..d93ee09 100644 (file)
       params.id = mapParams.object.type[0] + mapParams.object.id;
       mapParams = OSM.parseHash(location.hash);
       if (mapParams.center) {
-        params.map = mapParams.zoom + '/' + mapParams.center.lng + '/' + mapParams.center.lat;
+        params.map = mapParams.zoom + '/' + mapParams.center.lat + '/' + mapParams.center.lng;
       }
     } else {
 <% if @lat && @lon -%>
-      params.map = '16/<%= @lon %>/<%= @lat %>';
+      params.map = '16/<%= @lat %>/<%= @lon %>';
 <% else -%>
-      params.map = (mapParams.zoom || 17) + '/' + mapParams.lon + '/' + mapParams.lat;
+      params.map = (mapParams.zoom || 17) + '/' + mapParams.lat + '/' + mapParams.lon;
 <% end -%>
     }
 
index ba8f7da..d1ac6b0 100644 (file)
 <body>
 <div id='id-container'></div>
 <script>
-  if (typeof iD == 'undefined' || !iD.detect().support) {
+  if (typeof iD == 'undefined' || !iD.Detect().support) {
     document.getElementById('id-container').innerHTML = 'This editor is supported ' +
-      'in Firefox, Chrome, Safari, Opera, and Internet Explorer 11 and above. ' +
+      'in Firefox, Chrome, Safari, Opera, Edge, and Internet Explorer 11. ' +
       'Please upgrade your browser or use Potlatch 2 to edit the map.';
     document.getElementById('id-container').className = 'unsupported';
   } else {
     <% locale = ID::LOCALES.preferred(preferred_languages).to_s %>
 
-    var id = iD()
-      .presets(iD.data.presets)
-      .imagery(iD.data.imagery)
-      .taginfo(iD.services.taginfo())
+    var id = iD.Context()
       .embed(true)
       .assetPath("iD/")
       .assetMap(<%= assets("iD").to_json.html_safe %>)
       .locale("<%= locale %>", "<%= asset_path("iD/locales/#{locale}.json") %>")
       .preauth({
         <% token = @user.access_token(ID_KEY) %>
-        url: "<%= request.protocol + request.host_with_port %>",
+        urlroot: "<%= request.protocol + request.host_with_port %>",
         oauth_consumer_key: "<%= token.client_application.key %>",
         oauth_secret: "<%= token.client_application.secret %>",
         oauth_token: "<%= token.token %>",
@@ -64,8 +61,7 @@
       }, 0);
     });
 
-    d3.select('#id-container')
-      .call(id.ui());
+    id.ui()(document.getElementById("id-container"));
   }
 </script>
 </body>
index d401b4c..039c9a5 100644 (file)
@@ -1,6 +1,6 @@
 <div id="mapkey">
   <table class="mapkey-table">
-    <% YAML.load_file("#{Rails.root}/config/key.yml").each do |name,data| %>
+    <% YAML.load_file(Rails.root.join("config", "key.yml")).each do |name,data| %>
       <% data.each do |entry| %>
         <tr class="mapkey-table-entry" data-layer="<%= name %>" data-zoom-min="<%= entry['min_zoom'] %>" data-zoom-max="<%= entry['max_zoom'] %>">
           <td class="mapkey-table-key">
index 176f2bd..8470e85 100644 (file)
@@ -10,7 +10,7 @@ xml.rss("version" => "2.0",
     xml.link url_for(:controller => :trace, :action => :list, :only_path => false)
 
     xml.image do
-      xml.url image_path("mag_map-rss2.0.png")
+      xml.url image_url("mag_map-rss2.0.png")
       xml.title t("trace.georss.title")
       xml.width 100
       xml.height 100
index 3d28a77..26bb808 100644 (file)
@@ -58,6 +58,9 @@
           <% if defined?(GITHUB_AUTH_ID) -%>
           <li><%= auth_button "github", "github" %></li>
           <% end -%>
+          <% if defined?(WIKIPEDIA_AUTH_ID) -%>
+          <li><%= auth_button "wikipedia", "wikipedia" %></li>
+          <% end -%>
           <li><%= auth_button "yahoo", "openid", :openid_url => "yahoo.com" %></li>
           <li><%= auth_button "wordpress", "openid", :openid_url => "wordpress.com" %></li>
           <li><%= auth_button "aol", "openid", :openid_url => "aol.com" %></li>
index be2cc0a..5ff166b 100644 (file)
@@ -58,6 +58,6 @@ module OpenStreetMap
     end
 
     # Configure image optimisation
-    config.assets.image_optim = YAML.load_file("#{Rails.root}/config/image_optim.yml")
+    config.assets.image_optim = YAML.load_file(Rails.root.join("config", "image_optim.yml"))
   end
 end
index b5d4db3..6319be7 100644 (file)
@@ -107,12 +107,16 @@ defaults: &defaults
   #windowslive_auth_secret: ""
   #github_auth_id: ""
   #github_auth_secret: ""
+  #wikipedia_auth_id: ""
+  #wikipedia_auth_secret: ""
   # MapQuest authentication details
   #mapquest_key: ""
   # Mapzen authentication details
   #mapzen_valhalla_key: ""
   # Thunderforest authentication details
   #thunderforest_key: ""
+  # Key for generating TOTP tokens
+  #totp_key: ""
 
 development:
   <<: *defaults
@@ -134,3 +138,5 @@ test:
   windowslive_auth_secret: "dummy"
   github_auth_id: "dummy"
   github_auth_secret: "dummy"
+  wikipedia_auth_id: "dummy"
+  wikipedia_auth_secret: "dummy"
index 89d3845..6bb5d10 100644 (file)
@@ -6,23 +6,15 @@ if defined?(ActiveRecord::ConnectionAdaptors::AbstractAdapter)
 
         alias old_log log
 
-        def log(sql, name)
-          if block_given?
-            old_log(sql, name) do
-              yield
-            end
+        def translate_exception_class_with_timeout(e, sql)
+          if e.is_a?(Timeout::Error) || e.is_a?(OSM::APITimeoutError)
+            e
           else
-            old_log(sql, name)
-          end
-        rescue ActiveRecord::StatementInvalid => ex
-          if ex.message =~ /^OSM::APITimeoutError: /
-            raise OSM::APITimeoutError.new
-          elsif ex.message =~ /^Timeout::Error: /
-            raise Timeout::Error.new("time's up!")
-          else
-            raise
+            translate_exception_class_without_timeout(e, sql)
           end
         end
+
+        alias_method_chain :translate_exception_class, :timeout
       end
     end
   end
index da975ac..5e07cc0 100644 (file)
@@ -4,7 +4,7 @@
 Rails.application.config.assets.version = "1.0"
 
 # Location of manifest file.
-Rails.application.config.assets.manifest = Rails.root.join("tmp/manifest.json")
+Rails.application.config.assets.manifest = Rails.root.join("tmp", "manifest.json")
 
 # Add additional assets to the asset load path
 Rails.application.config.assets.paths << Rails.root.join("config")
index cda96e0..5c83c04 100644 (file)
@@ -1,5 +1,5 @@
 begin
-  BANNERS = YAML.load_file("#{Rails.root}/config/banners.yml").deep_symbolize_keys
+  BANNERS = YAML.load_file(Rails.root.join("config", "banners.yml")).deep_symbolize_keys
 rescue
   BANNERS = {}.freeze
 end
index f97b19a..f0145f5 100644 (file)
@@ -1,5 +1,7 @@
-Konacha.configure do |config|
-  require "capybara/poltergeist"
-  config.spec_dir = "test/javascripts"
-  config.driver   = :poltergeist
-end if defined?(Konacha)
+if defined?(Konacha)
+  Konacha.configure do |config|
+    require "capybara/poltergeist"
+    config.spec_dir = "test/javascripts"
+    config.driver   = :poltergeist
+  end
+end
index f7d0c5f..d117707 100644 (file)
@@ -16,7 +16,7 @@ if defined?(MEMCACHE_SERVERS)
 else
   require "openid/store/filesystem"
 
-  openid_store = OpenID::Store::Filesystem.new(Rails.root.join("tmp/openids"))
+  openid_store = OpenID::Store::Filesystem.new(Rails.root.join("tmp", "openids"))
 end
 
 openid_options = { :name => "openid", :store => openid_store }
@@ -24,6 +24,7 @@ google_options = { :name => "google", :scope => "email", :access_type => "online
 facebook_options = { :name => "facebook", :scope => "email" }
 windowslive_options = { :name => "windowslive", :scope => "wl.signin,wl.emails" }
 github_options = { :name => "github", :scope => "user:email" }
+wikipedia_options = { :name => "wikipedia", :client_options => { :site => "https://meta.wikimedia.org" } }
 
 if defined?(GOOGLE_OPENID_REALM)
   google_options[:openid_realm] = GOOGLE_OPENID_REALM
@@ -35,6 +36,7 @@ Rails.application.config.middleware.use OmniAuth::Builder do
   provider :facebook, FACEBOOK_AUTH_ID, FACEBOOK_AUTH_SECRET, facebook_options if defined?(FACEBOOK_AUTH_ID)
   provider :windowslive, WINDOWSLIVE_AUTH_ID, WINDOWSLIVE_AUTH_SECRET, windowslive_options if defined?(WINDOWSLIVE_AUTH_ID)
   provider :github, GITHUB_AUTH_ID, GITHUB_AUTH_SECRET, github_options if defined?(GITHUB_AUTH_ID)
+  provider :mediawiki, WIKIPEDIA_AUTH_ID, WIKIPEDIA_AUTH_SECRET, wikipedia_options if defined?(WIKIPEDIA_AUTH_ID)
 end
 
 # Pending fix for: https://github.com/intridea/omniauth/pull/795
index 0b6f7be..c679cd4 100644 (file)
@@ -1 +1 @@
-WIKI_PAGES = YAML.load_file("#{Rails.root}/config/wiki_pages.yml")
+WIKI_PAGES = YAML.load_file(Rails.root.join("config", "wiki_pages.yml"))
index e94d829..c774111 100644 (file)
@@ -19,6 +19,7 @@
 # Author: TTMTT
 # Author: Yahya Sakhnini
 # Author: Zaher kadour
+# Author: Zpizza
 # Author: بدارين
 # Author: ترجمان05
 # Author: ديفيد
@@ -265,6 +266,8 @@ ar:
     timeout:
       sorry: عذراً، لقد إستمرت لائحة حزم التغييرات اللتي طلبتها وقتاً طويلاً للسحب.
     rss:
+      commented_at_html: تم التحديث قبل %{when}
+      commented_at_by_html: تم التحديث قبل %{when} بواسطة %{user}
       full: كامل النقاش
   diary_entry:
     new:
@@ -310,10 +313,8 @@ ar:
       comment_link: علّق على هذه المدخلة
       reply_link: رد برسالة
       comment_count:
-        few: '%{count} تعليقات'
-        one: تعليق واحد
-        two: تعليقان
         zero: لا تعليق
+        one: '%{count} تعليق'
         other: '%{count} تعليق'
       edit_link: عدّل هذه المدخلة
       hide_link: اخفِ هذه المدخلة
@@ -374,8 +375,12 @@ ar:
         geofabrik:
           title: تنزيلات موقع جيوفابريك
           description: مقتطفات محدثة بانتظام من القارات والبلدان والمدن المختارة
+        metro:
+          title: مقتطفات لمترو الأنفاق
+          description: خلاصات لمدن العالم الكبرى والمناطق المحيطة بها
         other:
           title: مصادر أخرى
+          description: مصادر إضافية مدرجة في الويكي خريطة الشارع المفتوحة
       options: خيارات
       format: الهيئة
       scale: القياس
@@ -399,10 +404,14 @@ ar:
         osm_nominatim: نتائج من <a href="http://nominatim.openstreetmap.org/">OpenStreetMap
           Nominatim</a>
         geonames: نتائج من <a href="http://www.geonames.org/">GeoNames</a>
+        osm_nominatim_reverse: نتائج من <a href="http://nominatim.openstreetmap.org/">OpenStreetMap
+          Nominatim</a>
+        geonames_reverse: نتائج من Results from <a href="http://www.geonames.org/">GeoNames</a>
     search_osm_nominatim:
       prefix:
         aerialway:
           cable_car: عربة قطار هوائي
+          gondola: تلفريك
           station: محطة قطار هوائي
         aeroway:
           aerodrome: المطار
@@ -433,6 +442,7 @@ ar:
           car_wash: غسيل سيارات
           casino: نادي قمار
           charging_station: محطة تعبئة
+          childcare: رعاية الأطفال
           cinema: سينما
           clinic: عيادة
           clock: الساعة
@@ -465,11 +475,14 @@ ar:
           library: مكتبة
           market: سوق
           marketplace: سوق
+          monastery: دير
+          motorcycle_parking: مرآب دراجات نارية
           nightclub: نادي ليلي
           nursery: رعاية تمريضية
           nursing_home: دار رعاية مسنين/معاقين
           office: مكتب
           parking: موقف سيارات
+          parking_entrance: مدخل مرآب
           pharmacy: صيدلية
           place_of_worship: معبد
           police: شرطة
@@ -503,6 +516,7 @@ ar:
           veterinary: جراحة بيطرية
           village_hall: مبنى/دار القرية
           waste_basket: سلة نفايات
+          waste_disposal: التخلص من النفايات
           youth_centre: مركز نشاطات للشباب
         boundary:
           administrative: حدود إدارية
@@ -527,6 +541,7 @@ ar:
           plumber: سمكري
           shoemaker: صانع أحذية
           tailor: خياط
+          "yes": محل بيع الحرفيات
         emergency:
           ambulance_station: محطة إسعاف
           defibrillator: رجفان
@@ -626,6 +641,7 @@ ar:
           railway: سكة حديدية
           recreation_ground: ميدان ألعاب
           reservoir: خزان
+          reservoir_watershed: خزان مستجمعات المياه
           residential: منطقة سكنية
           retail: بيع بالمفرق
           road: منطقة الطريق
@@ -660,11 +676,13 @@ ar:
           swimming_pool: بركة سباحة
           track: مضمار سباق
           water_park: منتزه ألعاب مائية
+          "yes": وقت الفراغ
         man_made:
           lighthouse: منارة
           pipeline: خط أنابيب
           tower: برج
           works: مصنع
+          "yes": من صنع الإنسان
         military:
           airfield: منطقة عسكرية
           barracks: ثكنات
@@ -725,6 +743,7 @@ ar:
           travel_agent: وكيل سفريات
           "yes": مكتب
         place:
+          allotments: المخصصات
           block: حظر
           airport: مطار
           city: مدينة
@@ -771,7 +790,7 @@ ar:
           spur: خط تفرع سكة حديدية
           station: محطة قطار
           stop: محطة سكك حديدية
-          subway: Ù\85حطة Ù\85ترÙ\88 Ø§Ù\84Ø£Ù\86Ù\81اÙ\82
+          subway: مترو الأنفاق
           subway_entrance: مدخل مترو
           switch: مبدل السكة الحديدية
           tram: سكة ترام
@@ -939,7 +958,9 @@ ar:
       برخصة مفتوحة.
     intro_2_create_account: أنشئ حساب مستخدم
     partners_html: الضيافة مدعومة من %{ucl}, %{ic} و %{bytemark}, و %{partners} آخرون.
+    partners_ucl: مركز UCL VR
     partners_ic: كلية امبراطورية لندن
+    partners_bytemark: استضافة Bytemark
     partners_partners: الشركاء
     osm_offline: حاليًا قاعدة بيانات خريطة الشارع المفتوحة مغلقة بينما يتم الانتهاء
       من أعمال الصيانة الأساسية لقاعدة البيانات.
@@ -971,45 +992,109 @@ ar:
       mapping_link: ابدأ التخطيط
     legal_babble:
       title_html: حقوق النشر والترخيص
+      intro_2_html: أنت حر في نسخ وتوزيع ونقل وتكييف بياناتنا، طالما كنت تأئتمن خريطة
+        الشارع المفتوحة والمساهمين فيها. إذا عدلت أو بنيت على البيانات المتوفرة لدينا،
+        فلا يحق لك توزيع النتيجة إلا تحت نفس الترخيص.<a href="http://opendatacommons.org/licenses/odbl/1.0/">
+        الكود القانوني الكامل</A> يشرح حقوقك ومسؤولياتك.
+      credit_1_html: |-
+        نطلب منك استخدام الائتمان &ldquo;&copy; OpenStreetMap
+        contributors&rdquo;.
+      credit_3_html: 'للحصول على الخريطة الإلكترونية للتصفح، يجب أن يظهر الائتمان
+        في زاوية من الخريطة، مثلا:'
+      attribution_example:
+        title: مثال الإسناد
       more_title_html: معرفة المزيد
       contributors_title_html: المساهمين
+      infringement_title_html: انتهاك حقوق الملكية
+      trademarks_title_html: <span id="trademarks"></span>علامات تجارية
   welcome_page:
     title: أهلاً بك.
+    whats_on_the_map:
+      title: ما على الخريطة
+    basic_terms:
+      title: شروط أساسية لرسم الخرائط
+      paragraph_1_html: خريطة الشارع المفتوحة لديها بعض اللغات الخاصة بها، وفيما يلي
+        بعض الكلمات الرئيسية التي سوف تأتي في متناول اليدين.
+      editor_html: <strong>محرر</strong> هو برنامج أو موقع يمكنك استخدامه لتعديل الخريطة.
+      node_html: A <strong>عقدة</strong> هي نقطة على الخريطة، مثل مطعم واحد أو شجرة
+        واحدة.
+      way_html: A <strong>طريق</strong> هو خط أو منطقة، مثل طريق أو تيار أو بحيرة
+        أو بناء.
+      tag_html: A <strong>وسم</strong> هو قليل من البيانات حول عقدة أو طريقة، مثل
+        اسم أحد المطاعم أو الحد الأقصى للسرعة على الطريق.
     rules:
       title: قواعد!
     questions:
       title: هل هناك أسئلة ؟
+    add_a_note:
+      title: لا وقت للتعديل؟ أضف ملاحظة!
+      paragraph_1_html: إذا كنت تريد إصلاح مجرد شيء صغير وليس لديك الوقت للتسجيل ومعرفة
+        كيفية التحرير، فإنه من السهل أن تضيف ملاحظة.
   fixthemap:
+    title: الإبلاغ عن مشكلة / إصلاح الخريطة
     how_to_help:
       title: كيف نساعدك ؟
       join_the_community:
         title: انضم لهذا المجتمع
+        explanation_html: إذا كنت قد لاحظت وجود مشكلة في بيانات الخرائط لدينا، على
+          سبيل المثال طريق مفقود أو عنوانك، فإن أفضل طريقة للمضي قدما هو الانضمام
+          إلى مجتمع خريطة الشارع المفتوحة وإضافة أو إصلاح البيانات بنفسك.
+    other_concerns:
+      title: اهتمامات أخرى
   help_page:
+    title: الحصول على مساعدة
     welcome:
+      url: أهلا بك.
       title: مرحبا بك في خرائط الشوارع " المفتوحة المصدر"
+      description: ابدأ مع هذا الدليل السريع تغطية أساسيات خريطة الشارع المفتوحة.
     beginners_guide:
       url: http://wiki.openstreetmap.org/wiki/Ar:Beginners%27_guide
       title: دليل المبتدئين
+    help:
+      url: https://help.openstreetmap.org/
+      title: help.openstreetmap.org
+      description: طرح سؤال أو البحث عن إجابات في موقع خريطة الشارع المفتوحة لطرح
+        الأسئلة والإجابة.
     mailing_lists:
       title: القوائم البريدية
+      description: طرح سؤال أو مناقشة المسائل المثيرة للاهتمام بشأن مجموعة واسعة من
+        القوائم البريدية الموضعية أو الإقليمية.
     forums:
       title: المنتديات
+    irc:
+      title: آي آر سي
+      description: دردشة تفاعلية بالعديد من اللغات المختلفة، وحول العديد من المواضيع.
+    switch2osm:
+      title: switch2osm
+      description: مساعدة للشركات والمؤسسات في التحول إلى خرائط خريطة الشارع المفتوحة
+        الموجودة وغيرها من الخدمات.
+    wiki:
+      url: http://wiki.openstreetmap.org/
+      title: wiki.openstreetmap.org
   about_page:
     next: التالي
+    copyright_html: <span>&copy;</span>OpenStreetMap<br>contributors
+    lede_text: تم بناء خريطة الشارع المفتوحة من قبل مجتمع من مصممي الخرائط، وتساهم
+      وتحافظ على البيانات حول الطرق والممرات والمقاهي ومحطات السكك الحديدية، وأكثر
+      من ذلك بكثير، في جميع أنحاء العالم.
+    local_knowledge_title: المعرفة المحلية
+    community_driven_title: نابعة من المجتمع المحلي
     open_data_title: البيانات المفتوحة
+    legal_title: قانوني
     partners_title: الشركاء
   notifier:
     diary_comment_notification:
-      subject: '[خرÙ\8aطة Ø§Ù\84شارع Ø§Ù\84Ù\85Ù\81تÙ\88حة] %{user} Ø£Ø¶Ø§Ù\81 ØªØ¹Ù\84Ù\8aÙ\82Ù\8bا على مدخلتك في اليومية'
+      subject: '[خرÙ\8aطة Ø§Ù\84شارع Ø§Ù\84Ù\85Ù\81تÙ\88حة] %{user} Ø¹Ù\84Ù\82 على مدخلتك في اليومية'
       hi: مرحبًا %{to_user}،
-      header: '%{from_user} Ø¹Ù\84Ù\91Ù\82 Ø¹Ù\84Ù\89 Ù\85دخÙ\84تÙ\83 Ø§Ù\84Ù\8aÙ\88Ù\85Ù\8aØ© Ø§Ù\84حدÙ\8aثة Ù\81Ù\8a Ø®Ø±Ù\8aطة Ø§Ù\84شارع Ø§Ù\84Ù\85Ù\81تÙ\88حة
-        بالعنوان %{subject}:'
+      header: '%{from_user} Ø¹Ù\84Ù\82 Ø¹Ù\84Ù\89 Ù\85دخÙ\84تÙ\83 Ù\81Ù\8a Ø§Ù\84Ù\8aÙ\88Ù\85Ù\8aØ© Ù\81Ù\8a Ø®Ø±Ù\8aطة Ø§Ù\84شارع Ø§Ù\84Ù\85Ù\81تÙ\88حة Ø¨Ø§Ù\84عÙ\86Ù\88اÙ\86
+        %{subject}:'
       footer: يمكنك أيضًا قراءة التعليق على %{readurl} ويمكنك التعليق على %{commenturl}
         أو الرد على %{replyurl}
     message_notification:
       hi: مرحبًا %{to_user}،
       header: '%{from_user} قام بإرسال رسالة لك عبر خريطة الشارع المفتوحة بالعنوان
         %{subject}:'
+      footer_html: يمكنك أيضا قراءة الرسالة في %{readurl} ويمكنك الرد في %{replyurl}
     friend_notification:
       subject: '[خريطة الشارع المفتوحة] %{user} أضافك كصديق.'
       had_added_you: '%{user} قام بإضافتك كصديق على خريطة الشارع المفتوحة.'
@@ -1032,10 +1117,17 @@ ar:
           نقطة ممكنة.
     signup_confirm:
       subject: '[خرائط اوبن ستريت] مرحباً بك في خرائط اوبن ستريت'
+      greeting: مرحبا هناك!
+      created: شخص ما (نأمل أن تكون أنت) أنشأ حسابا في %{site_url}.
+      confirm: 'قبل أن تفعل أي شيء آخر، ونحن بحاجة للتأكد من أن هذا الطلب جاء منك،
+        لذلك إذا كان كذلك، الرجاء الضغط على الرابط أدناه لتأكيد حسابك:'
+      welcome: بعد تأكيد حسابك، سوف نقدم لك بعض المعلومات الإضافية للبدء.
     email_confirm:
       subject: '[خريطة الشارع المفتوحة] أكّد عنوان بريدك الإلكتروني'
     email_confirm_plain:
       greeting: تحياتي،
+      hopefully_you: شخص ما (نأمل أن تكون أنت) يرغب في تغيير عنوان بريده الإلكتروني
+        في %{server_url} إلى %{new_address}.
       click_the_link: إذا كان هذا هو أنت، يرجى الضغط على الرابط أدناه لتأكيد التغيير.
     email_confirm_html:
       greeting: مرحبًا،
@@ -1046,6 +1138,8 @@ ar:
       subject: '[خريطة الشارع المفتوحة] طلب إعادة تعيين كلمة المرور'
     lost_password_plain:
       greeting: تحياتي،
+      hopefully_you: شخص ما (ربما أنت) طلب إعادة تعيين كلمة المرور لحساب openstreetmap.org
+        على عنوان البريد الإلكتروني هذا.
       click_the_link: إذا كان هذا هو أنت، يرجى الضغط على الرابط أدناه لإعادة تعيين
         كلمة المرور.
     lost_password_html:
@@ -1056,14 +1150,42 @@ ar:
         كلمة المرور.
     note_comment_notification:
       greeting: أهلا,
+      commented:
+        subject_own: '[OpenStreetMap] علق %{commenter} على واحدة من ملاحظاتك'
+        subject_other: '[OpenStreetMap] علق %{commenter} على ملاحظة تههتم بها'
+        your_note: علق %{commenter} على واحدة من ملاحظات خريطتك بالقرب من %{place}.
+        commented_note: علق %{commenter} على ملاحظة الخريطة التي علقت عليها. كانت
+          الملاحظة بالقرب من %{place}.
+      closed:
+        subject_own: '[OpenStreetMap] حل %{commenter} إحدى ملاحظاتك'
+        subject_other: '[OpenStreetMap] حل %{commenter} ملاحظة تهتم بها'
+        your_note: حل %{commenter} إحدى ملاحظات الخريطة بالقرب من %{place}.
+        commented_note: حل %{commenter} ملاحظة الخريطة التي علقت عليها.كانت الملاحظة
+          بالقرب من %{place}.
+      reopened:
+        subject_own: نشط [OpenStreetMap] %{commenter} إحدى ملاحظاتك
+        subject_other: نشط [OpenStreetMap] %{commenter} ملاحظة كنت مهتما بها
+        your_note: نشط %{commenter} إحدى ملاحظات الخريطة بالقرب من %{place}.
+        commented_note: نشط %{commenter} ملاحظة الخريطة التي علقت عليها.كانت الملاحظة
+          بالقرب من %{place}.
+      details: يمكن العثور على مزيد من التفاصيل حول هذه الملاحظة في %{url}.
     changeset_comment_notification:
       greeting: مرحبا ،
+      commented:
+        partial_changeset_with_comment: مع تعليق '%{changeset_comment}'
+        partial_changeset_without_comment: بدون تعليق
   message:
     inbox:
       title: الوارد
       my_inbox: الوارد
       outbox: الصادر
       messages: لديك %{new_messages} و %{old_messages}
+      new_messages:
+        one: '%{count} رسالة جديدة'
+        other: '%{count} رسائل جديدة'
+      old_messages:
+        one: '%{count} رسالة قديمة'
+        other: '%{count} رسائل قديمة'
       from: من
       subject: الموضوع
       date: التاريخ
@@ -1127,6 +1249,10 @@ ar:
       permalink: وصلة دائمة
       shortlink: وصلة قصيرة
       createnote: أضف ملاحظة
+      license:
+        copyright: حقوق طبع ونشر ومساهمو خريطة الشارع المفتوحة، تحت رخصة مفتوحة
+      remote_failed: فشل التعديل - تأكد من تحميل JOSM أو Merkaartor وتمكين خيار التحكم
+        عن بعد
     edit:
       not_public: لم تقم بتعيين تعديلاتك لتظهر بشكل علني.
       not_public_description: أنت لم تعد قادر على تعديل الخريطة إلا إذا قمت بذلك.
@@ -1140,11 +1266,20 @@ ar:
       potlatch_unsaved_changes: لديك تغييرات غير محفوظة. (للحفظ في Potlatch، يجب إلغاء
         الطريق أو النقطة الحاليين إن كان التعديل في الوضع المباشر، أو انقر فوق حفظ
         إن كان لديك زر الحفظ.)
+      potlatch2_not_configured: لم يتم تكوين Potlatch 2 - يُرجَى الاطلاع على  http://wiki.openstreetmap.org/wiki/The_Rails_Port#Potlatch_2
+        for more information
+      potlatch2_unsaved_changes: لديك تغييرات غير محفوظة. (للحفظ في Potlatch 2; يجب
+        النقر فوق حفظ.)
+      id_not_configured: لم يتم تكوين المعرف
+      no_iframe_support: متصفحك لا يدعم الإطارات المضمنة HTML، والتي هي ضرورية لهذه
+        الميزة.
     sidebar:
       search_results: نتائج البحث
       close: أغلق
     search:
       search: بحث
+      get_directions: احصل على الاتجاهات
+      get_directions_title: البحث عن الاتجاهات بين نقطتين
       from: من
       to: إلى
       where_am_i: أين أنا؟
@@ -1154,6 +1289,7 @@ ar:
       table:
         entry:
           motorway: طريق سريع
+          main_road: الطريق الرئيسي
           trunk: طريق رئيسي
           primary: طريق رئيسي
           secondary: طريق ثانوي
@@ -1161,6 +1297,9 @@ ar:
           track: مسار
           bridleway: مسلك خيول
           cycleway: طريق دراجات
+          cycleway_national: طريق الدراجات الوطني
+          cycleway_regional: طريق الدراجات الإقليمي
+          cycleway_local: طريق الدراجات المحلي
           footway: طريق مشاة
           rail: سكة حديدية
           subway: قطار الأنفاق
@@ -1213,12 +1352,15 @@ ar:
           private: استخدام خصوصي
           destination: استخدام إلى الوجهة
           construction: الطرق تحت الإنشاء
+          bicycle_shop: متجر دراجات
+          bicycle_parking: مرآب دراجات
     richtext_area:
       edit: حرّر
       preview: شاهد
     markdown_help:
       headings: عناوين
       heading: عنوان
+      subheading: عنوان فرعي
       unordered: لائحة غير مرتبة
       ordered: لائحة مرتبة
       first: البند الأول
@@ -1314,6 +1456,7 @@ ar:
       public_traces: آثار جي بي إس عمومية
       your_traces: آثار جي بي إس الخاصة بك
       public_traces_from: آثار جي بي إس عمومية من %{user}
+      description: تصفح أحدث مسارات GPS المرفوعة
       tagged_with: بالوسم %{tags}
     delete:
       scheduled_for_deletion: تم جدولة الأثر للحذف
@@ -1324,6 +1467,11 @@ ar:
     offline:
       heading: مخزن جي بي إكس غير متصل
       message: مخزن ونظام رفع ملفات جي بي إكس غير متاح حاليًا.
+    georss:
+      title: GPS آثار من خريطة الشارع المفتوحة
+    description:
+      description_with_count: ملف GPX ب%{count} نقطة من %{user}
+      description_without_count: ملف GPX من %{user}
   application:
     require_cookies:
       cookies_needed: يبدو أن الكوكيز عندك معطلة - يرجى تفعيل الكوكيز في متصفحك قبل
@@ -1333,8 +1481,11 @@ ar:
     setup_user_auth:
       blocked: لقد تم عرقلة وصولك إلى الـ API. يرجى تسجيل الدخول من صفحة الموقع لمعرفة
         المزيد.
+      need_to_see_terms: تم تعليق دخولك إلى API مؤقتا. الرجاء تسجيل الدخول في واجهة
+        الويب لعرض شروط المساهمة. أنت لا تحتاج إلى موافق،ة لكن يجب عرضها.
   oauth:
     oauthorize:
+      title: السماح بالوصول إلى حسابك
       request_access: التطبيق %{app_name} يطلب الوصول إلى حسابك %{user}. يرجى التحقق
         ما إذا كنت تريد أن يكون للتطبيق هذه القدرات. يمكن أن تختار ما تشاء.
       allow_to: 'اسمح للتطبيق بأن:'
@@ -1344,6 +1495,14 @@ ar:
       allow_write_api: يعدّل الخريطة.
       allow_read_gpx: قراءة آثار جي بي أس الخاصة بك.
       allow_write_gpx: ارفع آثار جي بي أس.
+      allow_write_notes: تعديل الملاحظات.
+      grant_access: منح حق الوصول
+    oauthorize_success:
+      verification: رمز التحقق هو %{code}.
+    oauthorize_failure:
+      title: فشل طلب الترخيص
+      denied: لقد رفضت وصول التطبيق %{app_name} إلى حسابك.
+      invalid: رمز المصادقة غير صالح.
     revoke:
       flash: لقد أبطلت نموذج التطبيق %{application}
   oauth_clients:
@@ -1360,7 +1519,7 @@ ar:
       url: 'رابط طلب النموذج:'
       access_url: 'رابط وصول النموذج:'
       authorize_url: 'رابط التصريح:'
-      support_notice: نحن ندعم HMAC-SHA1 (مستحسن) وكذلك النص العادي في وضع ssl.
+      support_notice: نحن ندعم HMAC-SHA1 (موصى به) وتوقيعات RSA-SHA1 signatures.
       edit: عدّل التفاصيل
       delete: أمحي الزبون
       confirm: هل أنت متأكد؟
@@ -1371,6 +1530,7 @@ ar:
       allow_write_api: تعديل الخريطة.
       allow_read_gpx: قراءة آثاره للجي بي إس الخصوصية.
       allow_write_gpx: ارفع آثار جي بي إس.
+      allow_write_notes: تعديل الملاحظات.
     index:
       title: تفاصيل OAuth الخاص بي
       my_tokens: تطبيقاتي المصرحة
@@ -1397,6 +1557,7 @@ ar:
       allow_write_api: تعديل الخريطة.
       allow_read_gpx: قراءة آثاره للجي بي إس الخصوصية.
       allow_write_gpx: رفع آثار جي بي إس.
+      allow_write_notes: تعديل الملاحظات.
     not_found:
       sorry: عذرًا، لم يتم العثور على تلك %{type}.
     create:
@@ -1415,18 +1576,45 @@ ar:
       lost password link: أنسيت كلمة المرور؟
       login_button: تسجيل الدخول
       register now: تسجل الآن
+      with username: 'هل لديك بالفعل حساب خريطة الشارع المفتوحة؟ الرجاء الدخول باسم
+        المستخدم وكلمة المرور الخاصين بك:'
+      with external: 'بدلا من ذلك، استخدم طرفا آخر للدخول:'
       new to osm: جديد لخريطة الشارع المفتوحة ؟
+      to make changes: لإجراء تغييرات على بيانات خريطة الشارع المفتوحة; يجب أن يكون
+        لديك حساب.
       create account minute: أنشئ حساباّ. تحتاج فقط إلى دقيقة.
       no account: ليس لديك حسابا ؟
       account not active: عذراً، حسابك غير نشط حتى الآن.<br />يُرجى إستخدام الرابط
         الذي اُرسِلَ إليك فى رسالة تأكيد البريد الإلكتروني، كما <a href="%{reconfirm}">يُمكنك
         طلب رسالة تأكيد جديدة فى حالة عدم إستلام الاولى</a>.
+      account is suspended: عذرا، تم تعليق حسابك بسبب نشاط مشبوه.<br />يُرجَى الاتصال
+        ب<a href="%{webmaster}">webmaster</a> إذا كنت ترغب في مناقشة هذا.
       auth failure: آسف، لا يمكن الدخول بتلك التفاصيل.
       auth_providers:
+        openid:
+          title: تسجيل الدخول بOpenID
+          alt: تسجيل الدخول باستخدام OpenID URL
         google:
           title: قم بتسجيل الدخول عن طريق جوجل
+          alt: تسجيل الدخول ب Google OpenID
         facebook:
           title: قم بتسجيل الدخول باستخدام الفيس بوك
+          alt: تسجيل الدخول بحساب فيسبوك
+        windowslive:
+          title: تسجيل الدخول عبر ويندوز لايف
+          alt: تسجيل الدخول بحساب ويندوز لايف
+        github:
+          title: تسجيل الدخول بجيثب
+          alt: تسجيل الدخول باستخدام حساب جيثب
+        yahoo:
+          title: تسجيل الدخول بياهو
+          alt: تسجيل الدخول ب Yahoo OpenID
+        wordpress:
+          title: تسجيل الدخول بووردبريس
+          alt: تسجيل الدخول ب Wordpress OpenID
+        aol:
+          title: تسجيل الدخول بإيه أو إل
+          alt: تسجيل الدخول ب AOL OpenID
     logout:
       title: تسجيل الخروج
       heading: الخروج من خريطة الشارع المفتوحة
@@ -1456,6 +1644,11 @@ ar:
       contact_webmaster: يرجى الاتصال <a href="mailto:webmaster@openstreetmap.org">بمسؤول
         الموقع</a> لترتيب الحساب المراد إنشاؤه - وسنحاول التعامل مع هذا الطلب بأسرع
         وقت ممكن.
+      about:
+        header: مجانا وقابلة للتحرير
+        html: |-
+          <p>على عكس الخرائط الأخرى تماما، يتم إنشاء خريطة الشارع المفتوحة من قبل الناس مثلك، وهي حرة ويمكن لأي أحد الإصلاح والتحديث والتنزيل والاستخدام.</p>
+           <P> أنشىء حسابا لبدء المساهمة.سنقوم بإرسال بريد إلكتروني لتأكيد حسابك.</p>
       license_agreement: عند تأكيد حسابك ستحتاج إلى الموافقة على <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">شروط
         المساهم</a>.
       email address: 'عنوان البريد الإلكتروني:'
@@ -1466,10 +1659,16 @@ ar:
       display name: 'اسم المستخدم:'
       display name description: اسم المستخدم الخاص بك الظاهر علنًا. يمكنك تغيير هذه
         التفضيلات في وقت لاحق.
+      external auth: 'مصادقة طرف ثالث:'
       password: 'كلمة السر:'
       confirm password: 'تأكيد كلمة المرور:'
+      use external auth: 'بدلا من ذلك، استخدم طرفا آخر للدخول:'
+      auth no password: مع مصادقة طرف ثالث كلمة السر غير مطلوبة، ولكن بعض الأدوات
+        إضافية أو الخادم قد لا تزال تحتاج إلى واحدة.
       continue: أنشئ حسابا
       terms accepted: نشكرك على قبول شروط المساهم الجديدة!
+      terms declined: نحن نأسف أن كنت قد قررت عدم قبول شروط المساهمة الجديدة. لمزيد
+        من المعلومات، يرجى الاطلاع على <a href="%{url}">صفحة الويكي هذه</a>.
     terms:
       title: 'شروط المساهم:'
       heading: 'شروط المساهم:'
@@ -1479,6 +1678,8 @@ ar:
       consider_pd_why: ما هذا؟
       agree: أوافق
       decline: انخفاض
+      you need to accept or decline: الرجاء القراءة ومن ثم قبول أو رفض شروط المساهمة
+        الجديدة للمتابعة.
       legale_select: 'الرجاء اختيار بلد الإقامة:'
       legale_names:
         france: فرنسا
@@ -1494,6 +1695,7 @@ ar:
       new diary entry: مدخلة يومية جديدة
       my edits: المُساهمات
       my traces: آثاري
+      my notes: ملاحظاتي
       my messages: رسائلي
       my profile: ملفي الشخصي
       my settings: الإعدادات
@@ -1505,7 +1707,7 @@ ar:
       diary: يومية
       edits: مساهمات
       traces: آثار
-      remove as friend: Ø£Ø²Ù\84 Ù\83صدÙ\8aÙ\82
+      remove as friend: Ø¥Ù\84غاء Ø§Ù\84صداÙ\82Ø©
       add as friend: أضف كصديق
       mapper since: 'مُخطط منذ:'
       ago: (%{time_in_words_ago})
@@ -1517,6 +1719,7 @@ ar:
       email address: 'عنوان البريد الإلكتروني:'
       created from: 'أُنشىء من:'
       status: 'الحالة:'
+      spam score: 'نتيجة السخام:'
       description: الوصف
       user location: الموقع
       if set location: إن قمت بتعيين موقعك، خريطة وأشياء جميلة سوف تظهر أدناه. يمكنك
@@ -1562,6 +1765,7 @@ ar:
       current email address: 'عنوان البريد الإلكرتروني الحالي:'
       new email address: 'عنوان البريد الإلكتروني الجديد:'
       email never displayed publicly: (لا يظهر علنًا)
+      external auth: 'مصادقة خارجية:'
       openid:
         link: http://wiki.openstreetmap.org/wiki/OpenID
         link text: ما هذا ؟
@@ -1584,12 +1788,16 @@ ar:
         heading: 'شروط المساهم:'
         agreed: لقد وافقتَ على شروط المساهم الجديدة.
         not yet agreed: لم توافق بعد على شروط المساهم الجديدة.
+        review link text: يرجى اتباع هذا الرابط في الوقت الذي يناسبك لمراجعة وقبول
+          شروط المساهمة الجديدة.
         agreed_with_pd: وقد أعلنتَ أيضًا أنك تعتبر تعديلاتك ملكية عامة.
         link text: ما هذا؟
       profile description: 'وصف الملف الشخصي:'
       preferred languages: 'اللغات المفضّلة:'
       preferred editor: 'المحرر المفضل:'
       image: "\uFEFFالصورة:"
+      gravatar:
+        link text: ما هذا؟
       new image: أضف صورة
       keep image: احتفظ بالصورة الحالية
       delete image: أزل الصورة الحالية
@@ -1608,9 +1816,18 @@ ar:
       flash update success: تم تحديث معلومات المستخدم بنجاح.
     confirm:
       heading: تحقق من بريدك الإلكتروني
+      introduction_1: أرسلنا لك رسالة تأكيد بالبريد الإلكتروني.
+      introduction_2: أكد حسابك عن طريق النقر على الرابط في البريد الإلكتروني وستكون
+        قادرا على البدء في رسم الخرائط.
       press confirm button: اضغط على زر التأكيد أدناه لتنشيط حسابك.
       button: أكّد
       success: تم تأكيد حسابك، شكرًا للاشتراك!
+      already active: هذا الحساب سبق أن تم تأكيده.
+      unknown token: رمز التأكيد انتهت صلاحيته أو غير موجود.
+      reconfirm_html: إذا كنت في حاجة لإعادة إرسال تأكيد البريد الإلكتروني، email
+        <a href="%{reconfirm}">انقر هنا</a>.
+    confirm_resend:
+      failure: المستخدم %{name} غير موجود.
     confirm_email:
       heading: أكّد تغيير عنوان البريد الإلكتروني
       press confirm button: اضغط على زر تأكيد أدناه لتأكيد عنوان بريدك الإلكتروني
@@ -1618,11 +1835,13 @@ ar:
       button: أكّد
       success: تم تأكيد عنوان بريدك الإلكتروني، شكرًا للاشتراك!
       failure: عنوان بريد إلكتروني تم تفعيله مسبقًا بهذا النموذج.
+      unknown_token: رمز التأكيد انتهت صلاحيته أو غير موجود.
     set_home:
       flash success: موقع المنزل حُفظ بنجاح
     go_public:
       flash success: جميع تعديلاتك الآن عامة، ومسموح لك بالتعديل الآن.
     make_friend:
+      heading: إضافة %{user} كصديق؟
       button: أضف كصديق
       success: '%{name} الآن صديقك.'
       failed: عفوًا، تعذر إضافة %{name} كصديق.
@@ -1636,6 +1855,12 @@ ar:
     list:
       title: المستخدمون
       heading: المستخدمون
+      showing:
+        one: صفحة%{page} (%{first_item} %{items})
+        other: صفحة %{page} (%{first_item}-%{last_item} %{items})
+      summary: '%{name} تم إنشاؤها من %{ip_address} في %{date}'
+      summary_no_ip: '%{name} تم إنشاؤها في %{date}'
+      confirm: تأكيد المستخدمين المحددين
       hide: إخفاء المستخدمين المحددين
       empty: لا سجلات مطابقة تم العثور عليها!
     suspended:
@@ -1646,6 +1871,19 @@ ar:
         تلقائيًا بسبب  نشاط مشبوه. \n</p>\n<p style=\";text-align:right;direction:rtl\">\nسيراجع
         مسؤول هذا القرار عما قريب، أو  يمكنك الاتصال بالمسؤول\nعن الموقع (%{webmaster})
         إذا كنت ترغب في مناقشة هذا الأمر. \n</p>"
+    auth_failure:
+      connection_failed: فشل الاتصال بموفر المصادقة
+      invalid_credentials: بيانات اعتماد المصادقة غير صالحة
+      no_authorization_code: لا يوجد رمز ترخيص
+      unknown_signature_algorithm: خوارزمية توقيع غير معروفة
+      invalid_scope: نطاق غير صالح
+    auth_association:
+      heading: لم يرتبط اسم المستخدم الخاص بك بحساب خريطة الشارع المفتوحة حتى الآن.
+      option_1: إذا كنت جديدا في خريطة الشارع المفتوح، الرجاء إنشاء حساب جديد باستخدام
+        النموذج أدناه.
+      option_2: إذا كان لديك بالفعل حساب، يمكنك الدخول إلى حسابك باستخدام اسم المستخدم
+        وكلمة المرور الخاصة بك ومن ثم ربط الحساب باسم المستخدم الخاص بك في إعدادات
+        المستخدم.
   user_role:
     filter:
       not_an_administrator: يحق فقط للإداريين القيام بتغيير دور المستخدم، وأنت لست
@@ -1758,6 +1996,8 @@ ar:
       heading: '%{block_on} عُرقل بواسطة %{block_by}'
       time_future: ينتهي في %{time}
       time_past: انتهى منذ %{time}
+      created: تم الإنشاء
+      ago: قبل %{time}
       status: الحالة
       show: اعرض
       edit: تعديل
@@ -1768,9 +2008,29 @@ ar:
       revoker: 'المبطل:'
       needs_view: المستخدم يحتاج لتسجيل الدخول قبل أن يتم مسح هذه العرقلة.
   note:
+    description:
+      opened_at_html: تم الإنشاء قبل %{when}
+      opened_at_by_html: تم الإنشاء قبل %{when} بواسطة %{user}
+      commented_at_html: تم التحديث قبل %{when}
+      commented_at_by_html: تم التحديث قبل %{when} بواسطة %{user}
+      closed_at_html: تم الحل قبل %{when}
+      closed_at_by_html: تم الحل قبل %{when} بواسطة %{user}
+      reopened_at_html: تم التنشيط قبل %{when}
+      reopened_at_by_html: تم التنشيط قبل %{when} بواسطة %{user}
+    rss:
+      title: ملاحظات خريطة الشارع المفتوحة
+      opened: ملاحظة جديدة (بالقرب من %{place})
+      commented: تعليق جديد (بالقرب من %{place})
+      closed: مذكرة مغلقة (بالقرب من %{place})
+      reopened: مذكرة منشطة (بالقرب من %{place})
     entry:
       comment: تعليق
       full: ملاحظة كاملة
+    mine:
+      title: ملاحظات مقدمة أو علق عليها %{user}
+      heading: ملاحظات %{user}
+      subheading: ملاحظات مقدمة أو علق عليها %{user}
+      last_changed: أحدث تغيير
   javascripts:
     close: أغلق
     share:
@@ -1779,27 +2039,48 @@ ar:
       image: صورة
       link: وصلة أو HTML
       long_link: وصلة
+      short_link: رابط قصير
+      geo_uri: يو آر إل جغرافي
+      custom_dimensions: تعيين المكونات المخصصة
       format: 'التنسيق:'
       scale: 'المقياس:'
       download: نزل
+      include_marker: تتضمن علامة
+      paste_html: ألصق HTML لتضمينه في موقع ويب
+      view_larger_map: عرض خريطة بحجم أكبر
       only_standard_layer: يمكن استيراد الطبقة القياسية فقط كصورة
     embed:
       report_problem: أبلغ عن مشكلة
     key:
       title: مفتاح الخريطة
       tooltip: مفتاح الخريطة
+      tooltip_disabled: مفتاح الخريطة غير متاح لهذه الطبقة
     map:
       zoom:
         in: قرب
         out: بعد
       locate:
         title: أظهر موقعي
+        popup: أنت ضمن {distance} {unit} من هذه النقطة
       base:
         cycle_map: خريطة للدراجات
         transport_map: خريطة تنقلات
+        hot: إنساني
+      layers:
+        header: طبقات الخريطة
+        data: بيانات الخريطة
+        overlays: تمكين طبقات لاستكشاف الخريطة
+      copyright: © <a href='%{copyright_url}'>مساهمو خريطة الشارع المفتوحة</a>
+      donate_link_text: <a class='donate-attr' href='%{donate_url}'>تقديم تبرع</a>
     site:
       edit_tooltip: عدّل الخريطة
       edit_disabled_tooltip: قم بالتكبير لتحرير الخريطة
+      createnote_tooltip: إضافة ملاحظة إلى الخريطة
+      createnote_disabled_tooltip: تكبير لإضافة ملاحظة إلى الخريطة
+      map_notes_zoom_in_tooltip: تكبير الخريطة لرؤية ملاحظات الخريطة
+      map_data_zoom_in_tooltip: تكبير الخريطة لرؤية بيانات الخريطة
+      queryfeature_tooltip: ميزات الاستعلام
+      queryfeature_disabled_tooltip: ميزات تكبير الاستعلام
     changesets:
       show:
         comment: التعليق
@@ -1807,15 +2088,86 @@ ar:
         unsubscribe: إلغاء الاشتراك
         hide_comment: إخفاء
         unhide_comment: أظهر
+    notes:
+      show:
+        anonymous_warning: تتضمن هذه المذكرة تعليقات المستخدمين المجهولين التي ينبغي
+          التحقق منها بشكل مستقل.
+        reactivate: نشط
+        comment_and_resolve: تعليق وحل
+        comment: تعليق
+    edit_help: انقل الخريطة وكبر الموقع الذي تريد تحريره، ثم اضغط هنا.
+    directions:
+      engines:
+        graphhopper_bicycle: دراجة (GraphHopper)
+        graphhopper_foot: قدم (GraphHopper)
+        mapquest_bicycle: دراجة (MapQuest)
+        mapquest_car: سيارة (MapQuest)
+        mapquest_foot: قدم (MapQuest)
+        osrm_car: سيارة (OSRM)
+        mapzen_bicycle: دراجة (Mapzen)
+        mapzen_car: سيارة (Mapzen)
+        mapzen_foot: قدم (Mapzen)
+      directions: الاتجاهات
+      distance: المسافات
+      errors:
+        no_route: لا يمكن أن تجد طريقا بين هذين المكانين.
+        no_place: عذرا - لا يمكن أن تجد هذا المكان.
+      instructions:
+        continue_without_exit: الاستمرار في %{name}
+        slight_right_without_exit: اتجه إلى اليمين قليلا %{name}
+        offramp_right_without_exit: خذ الطريق المنحدرة إلى اليمين باتجاه %{name}
+        onramp_right_without_exit: اتجه يمينا على منحدر إلى %{name}
+        endofroad_right_without_exit: في نهاية الطريق انعطف يمينا إلى %{name}
+        merge_right_without_exit: انعطف يمينا إلى %{name}
+        fork_right_without_exit: عند التقاطع انعطف يمينا إلى %{name}
+        turn_right_without_exit: انعطف يمينا إلى %{name}
+        uturn_without_exit: انعطف على طول %{name}
+        turn_left_without_exit: انعطف يسارا إلى %{name}
+        offramp_left_without_exit: خذ الطريق المنحدرة إلى اليسار إلى %{name}
+        onramp_left_without_exit: انعطف يسارا على المنحدر إلى %{name}
+        endofroad_left_without_exit: في نهاية الطريق انعطف يسارا إلى %{name}
+        merge_left_without_exit: انعطف يسارا إلى %{name}
+        fork_left_without_exit: عند التقاطع انعطف يسارا إلى %{name}
+        slight_left_without_exit: اتجه إلى اليمين قليلا %{name}
+        via_point_without_exit: (نقطة وسيطة)
+        follow_without_exit: اتبع %{name}
+        leave_roundabout_without_exit: ترك الطريق الملتوية - %{name}
+        stay_roundabout_without_exit: البقاء في طريق ملتوية - %{name}
+        start_without_exit: ابدأ من نهاية %{name}
+        destination_without_exit: الوصول إلى الوجهة
+        against_oneway_without_exit: الذهاب عكس في طريق اتجاه واحد %{name}
+        end_oneway_without_exit: نهاية طريق اتجاه واحد %{name}
+        unnamed: طريق غير مسمى
+    query:
+      nothing_found: لم يتم إيجاد ميزات
+      error: 'خطأ في الاتصال %{server}: %{error}'
+      timeout: مهلة الاتصال %{server}
   redaction:
     edit:
       description: الوصف
+      submit: حفظ التنقيح
+    index:
+      empty: لا يوجد تنقيح لإظهاره.
     new:
       description: الوصف
+      heading: أدخل معلومات عن التنقيح الجديد
+      submit: إنشاء تنقيح
+      title: إنشاء تنقيح جديد
     show:
       description: 'الوصف:'
+      heading: عرض التنقيح "%{title}"
+      title: عرض التنقيح
       user: 'المنشئ:'
+      edit: تعديل هذا التنقيح
+      destroy: إزالة هذا التنقيح
       confirm: هل أنت متأكد؟
+    create:
+      flash: تم إنشاء التنقيح.
     update:
       flash: تمّ حفظ التغييرات.
+    destroy:
+      not_empty: التنقيح ليس فارغا; يُرجَى إلغاء حجب جميع الإصدارات التي تنتمي إلى
+        هذا التنقيح قبل تدميره.
+      flash: التنقيح تم تدميره.
+      error: حدث خطأ في تدمير هذا التنقيح.
 ...
index 1076007..671d4a7 100644 (file)
@@ -1014,9 +1014,9 @@ ast:
         href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">Entrugues y rempuestes llegales</a> (n'inglés) de la comunidá.
       more_2_html: |-
         Anque OpenStreetMap son datos abiertos, nun podemos ufrir una API de mapes de baldre pa desendolcadores d'aplicaciones pa terceros.
-        Llei la nuesa <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">Política d'usu de la API</a> (n'inglés),
-        <a href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">Política d'usu d'imaxes</a> (n'inglés)
-        y <a href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">Política d'usu de Nominatim</a> (n'inglés tamién).
+        Llei la nuesa <a href="https://operations.osmfoundation.org/policies/api/">Política d'usu de la API</a> (n'inglés),
+        <a href="https://operations.osmfoundation.org/policies/tiles/">Política d'usu del mosaicu</a> (n'inglés)
+        y <a href="https://operations.osmfoundation.org/policies/nominatim/">Política d'usu de Nominatim</a> (n'inglés tamién).
       contributors_title_html: Los nuesos collaboradores
       contributors_intro_html: 'Los nuesos collaboradores son miles de persones. Incluimos
         tamién datos con llicencia abierta d''axencies cartográfiques nacionales y
@@ -1209,16 +1209,19 @@ ast:
     legal_title: Llegal
     legal_html: "Esti sitiu y munchos otros servicios rellacionaos xestiónalos formalmente
       la  \n<a href='http://osmfoundation.org/'>Fundación OpenStreetMap</a> (OSMF)
-      \nnel nome de la comunidá.\n<br> \n<a href='http://osmfoundation.org/Contact'>Comunícate
+      \nnel nome de la comunidá. L'usu de tolos servicios remanaos pola OSMF tán suxetos
+      les nueses <a href=\"http://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy\">polítiques
+      d'usu aceptable</a> y la nuesa <a href=\"http://wiki.osmfoundation.org/wiki/Privacy_Policy\">política
+      de privacidá</a>\n<br> \n<a href='http://osmfoundation.org/Contact'>Comunícate
       cola OSMF</a> \nsi tienes entrugues o problemes relativos a les llicencies,
       drechos d'autor u otru tema llegal."
     partners_title: Asociaos
   notifier:
     diary_comment_notification:
-      subject: '[OpenStreetMap] %{user} comentó na to entrada del diariu'
+      subject: '[OpenStreetMap] %{user} comentó n''una entrada del diariu'
       hi: Bones %{to_user},
-      header: '%{from_user} comentó na to entrada reciente del diariu d''OpenStreetMap
-        col asuntu %{subject}:'
+      header: '%{from_user} comentó na entrada del diariu d''OpenStreetMap col asuntu
+        %{subject}:'
       footer: Tamién pues lleer el comentariu en %{readurl}, y comentalu en %{commenturl}
         o contestar en %{replyurl}
     message_notification:
@@ -1775,6 +1778,9 @@ ast:
         github:
           title: Aniciar sesión con GitHub
           alt: Aniciar sesión con una cuenta de GitHub
+        wikipedia:
+          title: Aniciar sesión con Wikipedia
+          alt: Aniciar sesión con una cuenta de Wikipedia
         yahoo:
           title: Aniciar sesión con Yahoo
           alt: Aniciar sesión con una OpenID de Yahoo
@@ -1823,9 +1829,9 @@ ast:
         de collaboración</a>.
       email address: 'Direición de corréu electrónicu:'
       confirm email address: 'Confirmar direición de corréu:'
-      not displayed publicly: Nun s'amuesa en público (ver la <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
-        title="política de protección de datos na wiki, qu'incluye una seición sobro
-        direiciones de corréu">política de protección de datos</a>)
+      not displayed publicly: La to direición nun s'amuesa en público, ver la <a href="http://wiki.osmfoundation.org/wiki/Privacy_Policy"
+        title="política de protección de datos de la OSMF, qu'incluye una seición
+        sobro direiciones de corréu">política de protección de datos</a> pa más información
       display name: 'Nome a amosar:'
       display name description: El nome d'usuariu que s'amuesa en público. Pue camudalo
         más sero nes preferencies.
@@ -2267,7 +2273,7 @@ ast:
     key:
       title: Clave del mapa
       tooltip: Clave del mapa
-      tooltip_disabled: Lleenda del Mapa disponible sólo pa la capa estándar
+      tooltip_disabled: La lleenda del mapa nun ta disponible nesta capa
     map:
       zoom:
         in: Ampliar
@@ -2284,6 +2290,7 @@ ast:
         header: Capes del mapa
         notes: Notes de mapa
         data: Datos del mapa
+        gps: Traces GPS públiques
         overlays: Activar les superposiciones pa diagnosticar el mapa
         title: Capes
       copyright: © <a href='%{copyright_url}'>collaboradores d'OpenStreetMap</a>
@@ -2367,6 +2374,11 @@ ast:
         against_oneway_without_exit: Dir escontra direición per %{name}
         end_oneway_without_exit: Final de sentíu únicu en %{name}
         roundabout_with_exit: Na rotonda coyer la salida %{exit} haza %{name}
+        turn_left_with_exit: Na rotonda xira a la izquierda haza %{name}
+        slight_left_with_exit: Na rotonda xira llixeramente a la izquierda haza %{name}
+        turn_right_with_exit: Na rotonda xira a la derecha haza %{name}
+        slight_right_with_exit: Na rotonda xira llixeramente a la derecha haza %{name}
+        continue_with_exit: Na rotonda siguir de frente haza %{name}
         unnamed: ensin nome
         courtesy: Direiciones cortesía de %{link}
       time: Tiempu
index b72f1ed..301e5ad 100644 (file)
@@ -98,7 +98,7 @@ be-Tarask:
     created: Створана
     closed: Закрытае
     changeset:
-      title: Набор зьменаў
+      title: 'Набор зьменаў: %{id}'
       changesetxml: Набор зьменаў у фармаце XML
       osmchangexml: osmChange XML
       feed:
@@ -114,7 +114,7 @@ be-Tarask:
       entry: Адносіны %{relation_name}
       entry_role: Адносіны %{relation_name} (як %{relation_role})
     not_found:
-      sorry: Прабачце, %{type} з ідэнтыфікатарам %{id} ня знойдзены.
+      sorry: Прабачце, %{type}  %{id} ня знойдзены.
       type:
         node: вузел
         way: шлях
@@ -140,13 +140,13 @@ be-Tarask:
       load_data: Загрузіць зьвесткі
       loading: Загрузка…
     tag_details:
-      tags: 'Меткі:'
+      tags: Меткі
       wiki_link:
         key: Старонка вікі, якая апісвае тэг %{key}
         tag: Старонка вікі, якая апісвае тэг %{key}=%{value}
       wikipedia_link: Артыкул %{page} у Вікіпэдыі
     note:
-      title: Нататка
+      title: 'Нататка: %{id}'
   changeset:
     changeset_paging_nav:
       showing_page: Старонка %{page}
@@ -409,7 +409,7 @@ be-Tarask:
           archaeological_site: Археалягічныя раскопкі
           battlefield: Поле гістарычнай бойкі
           boundary_stone: Памежны камень
-          building: Ð\91удынак
+          building: Ð\93Ñ\96Ñ\81Ñ\82аÑ\80Ñ\8bÑ\87нÑ\8b Ð±удынак
           castle: Замак
           church: Царква
           citywalls: Мескія муры
@@ -561,7 +561,7 @@ be-Tarask:
           preserved: Закансэрваваная чыгуначная каляя
           spur: Чыгуначнае разгалінаваньне
           station: Чыгуначная станцыя
-          subway: Ð¡Ñ\82анÑ\86Ñ\8bÑ\8f Ð¼этро
+          subway: Ð\9cэтро
           subway_entrance: Уваход у мэтро
           switch: Чыгуначная стрэлка
           tram: Трамвайная каляя
@@ -689,11 +689,11 @@ be-Tarask:
   layouts:
     logo:
       alt_text: Лягатып OpenStreetMap
-    home: дамоў
-    logout: Ð²ыйсьці
-    log_in: увайсьці
+    home: Ð\9fеÑ\80айÑ\81Ñ\8cÑ\86Ñ\96 Ð´Ð°Ð¼Ð¾Ñ\9e
+    logout: Ð\92ыйсьці
+    log_in: Увайсьці
     log_in_tooltip: Увайсьці з існуючым рахункам
-    sign_up: Ð·арэгістравацца
+    sign_up: Ð\97арэгістравацца
     sign_up_tooltip: Стварыць рахунак для рэдагаваньня
     edit: Рэдагаваць
     history: Гісторыя
@@ -714,7 +714,7 @@ be-Tarask:
       для чытаньня, таму што праводзяцца неабходныя тэхнічныя работы.
     donate: Падтрымайце OpenStreetMap %{link} у фонд абнаўленьня абсталяваньня.
     help: Дапамога
-    copyright: Аўтарскія правы і ліцэнзія
+    copyright: Аўтарскія правы
     community_blogs: Блёгі супольнасьці
     community_blogs_title: Блёгі чальцоў супольнасьці OpenStreetMap
     foundation: Фундацыя
@@ -738,17 +738,14 @@ be-Tarask:
     legal_babble:
       title_html: Аўтарскія правы і ліцэнзія
       intro_1_html: |-
-        OpenStreetMap is <i>open data</i>, licensed under the <a
-        href="http://opendatacommons.org/licenses/odbl/">Open Data
-        Commons Open Database License</a> (ODbL).
-      intro_2_html: |-
-        Вы можаце капіяваць, распаўсюджваць, перадаваць і зьмяняць нашыя мапы
-        і зьвесткі, да той пары, пакуль Вы спасылаецеся на OpenStreetMap і яе
-        ўдзельнікаў. Калі Вы зьмяняеце ці выкарыстоўваеце нашыя мапы і зьвесткі, Вы можаце
-        распаўсюджваць вынікі толькі на ўмовах такой жа ліцэнзіі. Поўны тэкст ліцэнзіі
-        <a
-        href="http://creativecommons.org/licenses/by-sa/2.0/legalcode">legal
-        code</a> растлумачыць Вам правы і адказнасьці.
+        OpenStreetMap<sup><a href="#trademarks">&reg;</a></sup> — <i>вольныя зьвесткі</i>, ліцэнзаваныя паводле <a
+        href="http://opendatacommons.org/licenses/odbl/">ліцэнзіі Адкрытых баз зьвестак Адкрытых агульных зьвестак</a> (ODbL) <a
+        href="http://osmfoundation.org/">Фундацыяй OpenStreetMap Foundation</a> (OSMF).
+      intro_2_html: Вы можаце капіяваць, распаўсюджваць, перадаваць і зьмяняць нашыя
+        зьвесткі да той пары, пакуль Вы спасылаецеся на OpenStreetMap і яе ўдзельнікаў.
+        Калі Вы зьмяняеце ці выкарыстоўваеце нашыя зьвесткі, Вы можаце распаўсюджваць
+        вынікі толькі на ўмовах такой жа ліцэнзіі. Поўны <a href="http://opendatacommons.org/licenses/odbl/1.0/">тэкст
+        ліцэнзіі</a> растлумачыць Вам правы і адказнасьці.
       credit_title_html: Як спасылацца на OpenStreetMap
       credit_1_html: |-
         Калі Вы выкарыстоўваеце выявы мапаў OpenStreetMap, мы патрабуем, каб
@@ -872,14 +869,12 @@ be-Tarask:
       outbox: зыходзячыя
       messages: Вы маеце %{new_messages} і %{old_messages}
       new_messages:
-        few: '%{count} новыя паведамленьні'
-        many: '%{count} новых паведамленьняў'
         one: '%{count} новае паведамленьне'
+        few: '%{count} новыя паведамленьні'
         other: '%{count} новых паведамленьняў'
       old_messages:
-        few: '%{count} старыя паведамленьня'
-        many: '%{count} старых паведамленьняў'
         one: '%{count} старое паведамленьне'
+        few: '%{count} старыя паведамленьні'
         other: '%{count} старых паведамленьняў'
       from: Ад
       subject: Тэма
@@ -911,9 +906,8 @@ be-Tarask:
       inbox: уваходзячыя
       outbox: зыходзячыя
       messages:
-        few: Вы маеце %{count} дасланыя паведамленьня
-        many: Вы маеце %{count} дасланых паведамленьняў
         one: Вы маеце %{count} дасланае паведамленьне
+        few: Вы маеце %{count} дасланыя паведамленьні
         other: Вы маеце %{count} дасланых паведамленьняў
       to: Да
       subject: Тэма
@@ -1095,9 +1089,16 @@ be-Tarask:
       upload_trace: Загрузіць трэк
       see_all_traces: Паказаць усе трэкі
       see_your_traces: Паказаць усе Вашыя трэкі
-      traces_waiting: У Вас %{count} трэкаў, якія чакаюць загрузкі. Калі ласка, пачакайце
-        сканчэньня перадачы гэтых трэкаў, перад тым як загружаць іншыя, гэта дазволіць
-        не блякаваць чаргу для іншых удзельнікаў.
+      traces_waiting:
+        one: Вы маеце %{count} трэк, які чакае загрузкі. Калі ласка, пачакайце сканчэньня
+          перадачы гэтага трэку перад тым, як загружаць іншыя, гэта дазволіць не блякаваць
+          чаргу для іншых удзельнікаў.
+        few: Вы маеце %{count} трэкі, якія чакаюць загрузкі. Калі ласка, пачакайце
+          сканчэньня перадачы гэтых трэкаў перад тым, як загружаць іншыя, гэта дазволіць
+          не блякаваць чаргу для іншых удзельнікаў.
+        other: Вы маеце %{count} трэкаў, якія чакаюць загрузкі. Калі ласка, пачакайце
+          сканчэньня перадачы гэтых трэкаў перад тым, як загружаць іншыя, гэта дазволіць
+          не блякаваць чаргу для іншых удзельнікаў.
     trace_optionals:
       tags: Тэгі
     view:
@@ -1463,7 +1464,7 @@ be-Tarask:
       button: Пацьвердзіць
       success: Ваш рахунак пацьверджаны, дзякуй за рэгістрацыю!
       already active: Гэты рахунак ужо пацьверджаны.
-      unknown token: Ð\92Ñ\8bглÑ\8fдае, Ñ\88Ñ\82о Ð³Ñ\8dÑ\82Ñ\8b ÐºÐ»Ñ\8eÑ\87 не існуе.
+      unknown token: Ð\93Ñ\8dÑ\82Ñ\8b ÐºÐ¾Ð´ Ð¿Ð°Ñ\86Ñ\8cвеÑ\80джанÑ\8cнÑ\8f Ñ\81конÑ\87Ñ\8bÑ\9eÑ\81Ñ\8f Ð°Ð»Ñ\8cбо не існуе.
     confirm_resend:
       success: Мы даслалі новы ліст з пацьверджаньнем на адрас %{email} і, як толькі
         Вы пацьвердзіце Ваш рахунак, Вы зможаце пачаць працаваць з мапамі.<br /><br
@@ -1476,7 +1477,7 @@ be-Tarask:
       press confirm button: Націсьніце кнопку пацьверджаньня ніжэй, каб пацьвердзіць
         Ваш новы адрас электроннай пошты.
       button: Пацьвердзіць
-      success: Ð\92аÑ\88 Ð°Ð´Ñ\80аÑ\81 Ñ\8dлекÑ\82Ñ\80оннай Ð¿Ð¾Ñ\88Ñ\82Ñ\8b Ð¿Ð°Ñ\86Ñ\8cвеÑ\80джанÑ\8b, Ð´Ð·Ñ\8fкÑ\83й Ð·Ð° Ñ\80Ñ\8dгÑ\96Ñ\81Ñ\82Ñ\80аÑ\86Ñ\8bÑ\8e!
+      success: Ð\97Ñ\8cмена Ð\92аÑ\88ага Ð°Ð´Ñ\80аÑ\81Ñ\83 Ñ\8dлекÑ\82Ñ\80оннай Ð¿Ð¾Ñ\88Ñ\82Ñ\8b Ð¿Ð°Ñ\86Ñ\8cвеÑ\80джанаÑ\8f!
       failure: Адрас электроннай пошты ужо быў пацьверджаны гэтым ключом.
     set_home:
       flash success: Вашае месцазнаходжаньне пасьпяхова захаванае
@@ -1484,7 +1485,7 @@ be-Tarask:
       flash success: Усе Вашыя рэдагаваньні цяпер публічныя, і цяпер Вам дазволена
         рэдагаваньне.
     make_friend:
-      success: Цяпер %{name} — Ваш сябар.
+      success: Цяпер %{name} — Ваш сябар!
       failed: Прабачце, немагчыма дадаць %{name} да сьпісу сяброў.
       already_a_friend: Вы ўжо сябруеце з %{name}.
     remove_friend:
@@ -1497,8 +1498,8 @@ be-Tarask:
       title: Удзельнікі
       heading: Карыстальнікі
       showing:
-        one: Ð\9fаказанаÑ\8f Ñ\81Ñ\82аÑ\80онка %{page} Ð· (%{first_item} %{items})
-        other: Ð\9fаказанÑ\8bÑ\8f Ñ\81Ñ\82аÑ\80онкÑ\96 %{page} (%{first_item}-%{last_item} з %{items})
+        one: Ð¡Ñ\82аÑ\80онка %{page} (%{first_item} Ð· %{items})
+        other: Ð¡Ñ\82аÑ\80онкÑ\96 %{page} (%{first_item}â\80\94%{last_item} з %{items})
       summary: '%{name} створаны з %{ip_address}, %{date}'
       summary_no_ip: '%{name} створаны %{date}'
       confirm: Пацьвердзіць выбраных карыстальнікаў
@@ -1597,9 +1598,8 @@ be-Tarask:
       revoke: Адклікаць!
       flash: Гэтае блякаваньне было адкліканае.
     period:
-      few: '%{count} гадзіны'
-      many: '%{count} гадзінаў'
       one: '%{count} гадзіна'
+      few: '%{count} гадзіны'
       other: '%{count} гадзінаў'
     partial:
       show: Паказаць
index 2e6addf..f9619c7 100644 (file)
@@ -5,6 +5,7 @@
 # Author: Goshaproject
 # Author: Jim-by
 # Author: Macofe
+# Author: Mechanizatar
 # Author: Unomano
 # Author: Дзяніс Тутэйшы
 # Author: Тест
@@ -1517,6 +1518,9 @@ be:
           private: Прыватны доступ
           destination: Мэтавы доступ
           construction: Дарогі ў стадыі будаўніцтва
+          bicycle_shop: Крама ровараў
+          bicycle_parking: Паркоўка для ровараў
+          toilets: Прыбіральні
     richtext_area:
       edit: Рэдагаваць
       preview: Папярэдні прагляд
@@ -1785,6 +1789,9 @@ be:
         windowslive:
           title: Увайсці праз Windows live
           alt: Увайсці праз рахунак Windows Live
+        github:
+          title: Уваход праз GitHub
+          alt: Увайсці праз уліковы запіс GitHub
         yahoo:
           title: Уваход праз Yahoo
           alt: Уваход праз Yahoo OpenID
@@ -1988,6 +1995,8 @@ be:
       gravatar:
         gravatar: Выкарыстоўваць Gravatar
         link text: што гэта?
+        disabled: Граватар быў адключаны.
+        enabled: Паказ вашага Граватара быў уключаны.
       new image: Дадаць выяву
       keep image: Захаваць бягучую выяву
       delete image: Выдаліць бягучую выяву
index 7654447..474ab83 100644 (file)
 # Messages for Bulgarian (български)
 # Exported from translatewiki.net
-# Export driver: spyc
+# Export driver: phpyaml
 # Author: DCLXVI
+# Author: Lyubomirv
 # Author: MrPanyGoff
+# Author: Plamen
+# Author: Ricordo.tenerissimo
+# Author: StanProg
+# Author: Vodnokon4e
+# Author: АдмиралАнимЕ
 ---
 bg:
+  time:
+    formats:
+      friendly: '%e %B %Y в %H:%M'
   activerecord:
     models:
+      changeset: Списък промени
+      country: Държава
+      friend: Приятел
       language: Език
       message: Съобщение
+      node: Възел
+      old_node: Стар възел
+      relation: Релация
+      relation_member: Член на релация
+      relation_tag: Таг на релация
       session: Сесия
+      trace: Следа
+      tracepoint: Точка от следа
+      tracetag: Таг на следа
       user: Потребител
+      user_preference: Потребителски настройки
+      way: Път
     attributes:
+      diary_comment:
+        body: Текст
       diary_entry:
         user: Потребител
+        title: Тема
+        latitude: Географска ширина
+        longitude: Географска дължина
         language: Език
       friend:
         user: Потребител
         friend: Приятел
       trace:
         user: Потребител
+        visible: Видим
         name: Име
         size: Размер
+        latitude: Географска ширина
+        longitude: Географска дължина
+        public: Публичен
+        description: Описание
+      message:
+        sender: Подател
+        title: Тема
+        body: Текст
+        recipient: Получател
       user:
+        email: Електронна поща
+        active: Активен
         description: Описание
         languages: Езици
         pass_crypt: Парола
+  editor:
+    default: По подразбиране (в момента %{name})
+    potlatch:
+      name: Potlatch 1
+      description: Potlatch 1 (редактор в браузъра)
+    id:
+      name: iD
+      description: iD (редактиране в браузър)
+    potlatch2:
+      name: Potlatch 2
+      description: Potlatch 2 (редактиране в браузър)
+    remote:
+      name: Дистанционно управление
+      description: Дистанционно управление (JOSM или Merkaartor)
   browse:
+    created: Създаден
+    closed: Затворен
+    created_html: Създаден <abbr title="%{title}">преди %{time}</abbr>
+    version: Версия
+    in_changeset: Списък с промени
+    anonymous: анонимен
+    no_comment: (без коментар)
+    part_of: Част от
+    download_xml: Сваляне на GPX
+    view_history: Показване на историята
+    view_details: Вижте детайлите
+    location: 'Местоположение:'
+    changeset:
+      title: 'Списък с промени: %{id}'
+      belongs_to: Автор
+      node: Точки (%{count})
+      node_paginated: Точки (%{x}-%{y} от %{count})
+      way: Пътища (%{count})
+      way_paginated: Пътища (%{x}-%{y} от общо %{count})
+      relation: Релации (%{count})
+      relation_paginated: Релации(%{x}-%{y} от %{count})
+      comment: Коментари (%{count})
+      osmchangexml: osmChange XML
+      discussion: Обсъждане
+    node:
+      title: 'Точка: %{name}'
+      history_title: 'История на точка: %{name}'
+    way:
+      title: 'Път: %{name}'
+      history_title: 'История на пътя: %{name}'
+      nodes: Точки
+      also_part_of:
+        one: част от път %{related_ways}
+        other: част от пътища %{related_ways}
+    relation:
+      title: 'Релация: %{name}'
+      history_title: 'Историята на релация: %{name}'
+      members: Членове
     relation_member:
       type:
         node: Възел
+        way: Път
         relation: Релация
     containing_relation:
-      entry: 'Релация %{relation_name}'
-      entry_role: 'Релация %{relation_name} (като %{relation_role})'
+      entry: Релация %{relation_name}
+      entry_role: Релация %{relation_name} (като %{relation_role})
     not_found:
+      sorry: Съжаляваме, %{type} с ID:%{id} не е намерен.
       type:
         node: възел
         way: път
         relation: релация
+        changeset: списък промени
+        note: Бележка
+    timeout:
+      type:
+        way: път
+        relation: релация
+        changeset: списък промени
+        note: бележка
     redacted:
       type:
         node: възел
+        way: път
+        relation: релация
     start_rjs:
       loading: Зареждане...
+    tag_details:
+      tags: Етикети
     note:
-      description: 'Описание:'
+      description: Описание
   changeset:
+    changeset_paging_nav:
+      showing_page: Страница %{page}
+      next: Следващ »
+      previous: « Предишен
     changeset:
       anonymous: Анонимен
+      no_edits: (без промяна)
     changesets:
       id: Номер
+      saved_at: Записан на
       user: Потребител
       comment: Коментар
+      area: Област
+    list:
+      title: Списък промени
+      empty: Няма намерени списъци с промени.
+      empty_area: Няма списъци с промени в този район.
+      empty_user: Няма списъци с промени от този потребител.
+      load_more: Зареждане на още
+    rss:
+      full: Пълна дискусия
   diary_entry:
+    new:
+      publish_button: Публикуване
+    list:
+      title: Дневници на потребителя
+      title_friends: Дневници на приятели
+      title_nearby: Дневници на потребители наблизо
+      user_title: Дневник на %{user}
+      new: Нов запис в дневник
+      no_entries: Няма записи в дневника
+      older_entries: По-стари записи
+      newer_entries: По-нови записи
     edit:
+      subject: 'Тема:'
+      body: 'Текст:'
       language: 'Език:'
       location: 'Местоположение:'
       latitude: 'Географска ширина:'
       longitude: 'Географска дължина:'
-      save_button: Запази
+      use_map_link: използвай карта
+      save_button: Съхраняване
     view:
+      user_title: дневник на %{user}
       leave_a_comment: Оставете коментар
+      login_to_leave_a_comment: '%{login_link} за да оставите коментар'
       login: Влизане
       save_button: Съхраняване
+    no_such_entry:
+      title: Няма такива записи в дневник
     diary_entry:
       comment_count:
+        zero: няма коментари
         one: 1 коментар
         other: '%{count} коментара'
+      edit_link: Редактиране на този пост
+      hide_link: Скриване на този пост
       confirm: Потвърди
+    diary_comment:
+      hide_link: Скрий този коментар
+      confirm: Потвърждаване
+    location:
+      location: 'Местоположение:'
+      view: Преглед
+      edit: Редактиране
     comments:
+      when: Кога
+      comment: Коментар
+      ago: преди %{ago}
       newer_comments: По-нови коментари
       older_comments: По-стари коментари
   export:
+    title: Изнасяне
     start:
+      area_to_export: Зона за изнасяне
+      manually_select: Ръчно избиране на друга област
+      format_to_export: Формат за изнасяне
+      embeddable_html: HTML-код за вграждане
       licence: Лиценз
       too_large:
+        advice: 'Ако изнасянето по-горе не сработи, моля, използвайте един от следните
+          източници:'
+        overpass:
+          title: Overpass API
         other:
           title: Други източници
       options: Настройки
+      format: Формат
+      scale: Мащаб
+      max: макс
+      image_size: Размер на изображението
+      zoom: Мащабиране
+      add_marker: Добавяне на маркер на картата
+      latitude: 'Геогр. шир:'
+      longitude: 'Геогр. дълж:'
+      export_button: Изнасяне
   geocoder:
+    search:
+      title:
+        latlon: <a href="http://openstreetmap.org/">Вътрешни</a> резултати
+        us_postcode: Резултати от <a href="http://geocoder.us/">Geocoder.us</a>
+        uk_postcode: Резултати от <a href="http://www.npemap.org.uk/">NPEMap / FreeThe
+          Postcode</a>
+        ca_postcode: Резултати от <a href="http://geocoder.us/">Geocoder.CA</a>
+        osm_nominatim: Резултати от <a href="http://nominatim.openstreetmap.org">OpenStreetMap
+          Nominatim</a>
+        geonames: Резултати от <a href="http://www.geonames.org/">GeoNames</a>
+        osm_nominatim_reverse: Резултати от <a href="http://nominatim.openstreetmap.org">OpenStreetMap
+          Nominatim</a>
+        geonames_reverse: Резултати от <a href="http://www.geonames.org/">GeoNames</a>
     search_osm_nominatim:
       prefix:
+        aeroway:
+          helipad: Вертолетна площадка
+          terminal: Терминал
         amenity:
-          airport: Летище
+          animal_shelter: Приют за животни
           arts_centre: Арт център
+          atm: Банкомат
           bank: Банка
           bar: Бар
           bbq: Барбекю
           bench: Пейка
           bicycle_parking: Паркинг за велосипеди
+          bureau_de_change: Обменно бюро
           bus_station: Автобусна спирка
           cafe: Кафене
           car_rental: Коли под наем
@@ -97,40 +284,33 @@ bg:
           casino: Казино
           cinema: Кино
           clinic: Поликлиника
-          club: Клуб
+          clock: Часовник
           college: Колеж
           community_centre: Обществен център
           courthouse: Съд
           crematorium: Крематориум
           dentist: Стоматолог
+          doctors: Лекари
           dormitory: Пансион
           drinking_water: Питейна вода
           embassy: Посолство
-          emergency_phone: >
-            Телефон за спешни
-            повиквания
-          fast_food: >
-            Заведения за бързо
-            хранене
+          emergency_phone: Телефон за спешни повиквания
+          fast_food: Заведения за бързо хранене
           fire_hydrant: Пожарен кран
           fire_station: Пожарна станция
           fountain: Фонтан
+          fuel: Гориво
           grave_yard: Гробище
           gym: Фитнес зала
-          hall: Зала
           hospital: Болница
-          hotel: Хотел
           ice_cream: Сладолед
           kindergarten: Детска градина
           library: Библиотека
           market: Пазар
           marketplace: Пазар
-          mountain_rescue: >
-            Планинска спасителна
-            служба
+          monastery: Манастир
           nightclub: Нощен клуб
           office: Офис
-          park: Парк
           parking: Паркинг
           pharmacy: Аптека
           place_of_worship: Място за поклонение
@@ -140,7 +320,6 @@ bg:
           prison: Затвор
           pub: Кръчма
           public_building: Обществена сграда
-          public_market: Общински пазар
           reception_area: Рецепция
           restaurant: Ресторант
           sauna: Сауна
@@ -149,7 +328,6 @@ bg:
           shop: Магазин
           shower: Душ
           studio: Студио
-          supermarket: Супэрмаркет
           swimming_pool: Плувен басейн
           taxi: Такси
           telephone: Телефон
@@ -157,35 +335,46 @@ bg:
           toilets: Тоалетна
           townhall: Кметство
           university: Университет
+          vending_machine: Автомат
           veterinary: Ветеринарна клиника
           village_hall: Кметство
-          wifi: Достъп до WiFi
-          WLAN: Достъп до WiFi
           youth_centre: Младежки център
         boundary:
-          administrative: >
-            Административна
-            граница
+          administrative: Административна граница
           national_park: Национален парк
           protected_area: Защитена зона
         bridge:
           aqueduct: Акведукт
           suspension: Висящ мост
           viaduct: Виадукт
-          yes: Мост
+          "yes": Мост
         building:
-          yes: Сграда
+          "yes": Сграда
+        craft:
+          brewery: Пивоварна
+          carpenter: Дърводелец
+          electrician: Електротехник
+          gardener: Градинар
+          painter: Художник
+          photographer: Фотограф
+          plumber: Водопроводчик
+          shoemaker: Обущар
+          tailor: Шивач
+          "yes": Работилница
         emergency:
-          fire_hydrant: Пожарен кран
-          phone: >
-            Телефон за спешна
-            връзка
+          ambulance_station: Пожарна
+          landing_site: Място за аварийно кацане
+          phone: Телефон за спешни повиквания
         highway:
+          abandoned: Изоставена железопътна линия
           bus_stop: Автобусна спирка
           construction: Магистрала в строеж
           cycleway: Велосипедна пътека
+          elevator: Асансьор
+          emergency_access_point: Пункт за спешна помощ
           footway: Пешеходна пътека
-          minor: Второстепенен път
+          ford: Брод
+          milestone: Километричен камък
           motorway: Магистрала
           motorway_link: Скоростен път
           path: Пътека
@@ -193,78 +382,101 @@ bg:
           platform: Платформа
           primary: Главен път
           primary_link: Главен път
+          proposed: Предложен маршрут
           raceway: Състезателна писта
-          residential: Ð\96илиÑ\89ен
+          residential: Ð\96илиÑ\89на Ñ\83лиÑ\86а
           rest_area: Зона за почивка
           road: Път
           secondary: Второстепенен път
           secondary_link: Второстепенен път
           service: Сервизен път
-          speed_camera: >
-            Камера за контрол на
-            скоростта
+          speed_camera: Камера за контрол на скоростта
           steps: Стълбище
           street_lamp: Улична лампа
+          trunk: Скоростен път
+          trunk_link: Скоростен път
           unsurfaced: Път без настилка
+          "yes": Път
         historic:
           archaeological_site: Археологическа зона
           battlefield: Бойно поле
           boundary_stone: Граничен камък
-          building: Сграда
+          building: Историческа сграда
+          bunker: Бункер
           castle: Замък
           church: Църква
+          city_gate: Градска порта
           citywalls: Градски стени
           fort: Форт
+          heritage: Културно наследство
           house: Къща
           icon: Икона
+          manor: Имение
+          memorial: Паметник
           mine: Мина
           monument: Паметник
-          museum: Музей
+          roman_road: Римски път
           ruins: Руини
+          stone: Камък
           tomb: Гробница
           tower: Кула
         landuse:
           basin: Басейн
           cemetery: Гробище
+          commercial: Търговска зона
+          conservation: Резерват
           construction: Строителство
           farm: Ферма
           farmland: Обработваема земя
           forest: Гора
+          garages: Гаражи
           grass: Трева
           industrial: Промишлена зона
+          landfill: Сметище
           military: Военна зона
           mine: Мина
           orchard: Овощна градина
-          nature_reserve: Природен резерват
-          park: Парк
+          quarry: Каменоломна
+          railway: Железница
           reservoir: Язовир
           residential: Жилищна зона
           vineyard: Лозя
         leisure:
           beach_resort: Морски курорт
+          club: Клуб
+          dog_park: Парк за кучета
           fishing: Място за риболов
           garden: Градина
           golf_course: Голф игрище
+          horse_riding: Конна езда
           ice_rink: Ледена пързалка
+          marina: Пристанище за лодки
           miniature_golf: Мини-голф
           nature_reserve: Природен резерват
           park: Парк
+          pitch: Спортна площадка
+          playground: Детска площадка
+          resort: Курорт
           sauna: Сауна
           sports_centre: Спортен център
           stadium: Стадион
           swimming_pool: Плувен басейн
-          water_park: Аква парк
+          water_park: Аквапарк
+        man_made:
+          lighthouse: Фар
+          tower: Кула
+          works: Фабрика
         military:
-          airfield: Ð\92оенен летище
+          airfield: Ð\92оенно летище
           barracks: Казарма
           bunker: Бункер
         mountain_pass:
-          yes: Планински проход
+          "yes": Планински проход
         natural:
           bay: Залив
           beach: Плаж
           cape: Нос
-          channel: Канал
+          cave_entrance: Вход на пещера
           cliff: Скала
           crater: Кратер
           dune: Дюна
@@ -276,23 +488,28 @@ bg:
           hill: Хълм
           island: Остров
           land: Земя
+          mud: Кал
           peak: Връх
-          river: Река
+          reef: Риф
           rock: Скала
+          saddle: Седло
+          sand: Пясък
+          spring: Ручей
+          stone: Камък
           tree: Дърво
           valley: Долина
           volcano: Вулкан
           water: Вода
+          wood: Дърво
         office:
           accountant: Счетоводител
           architect: Архитект
-          employment_agency: >
-            Агенцията по
-            заетостта
+          company: Фирма
+          employment_agency: Агенцията по заетостта
           insurance: Застрахователно бюро
           lawyer: Адвокат
           travel_agent: Туристическа агенция
-          yes: Офис
+          "yes": Офис
         place:
           airport: Летище
           city: Град
@@ -303,88 +520,85 @@ bg:
           house: Къща
           houses: Къщи
           island: Остров
-          islet: Ð¾стровче
-          moor: тресавище
-          municipality: Ð¾бщина
-          neighbourhood: Ðºвартал
-          postcode: Ð¿ощенски код
+          islet: Ð\9eстровче
+          moor: Тресавище
+          municipality: Ð\9eбщина
+          neighbourhood: Ð\9aвартал
+          postcode: Ð\9fощенски код
           region: Регион
-          sea: море
-          suburb: предградие
-          town: град
-          village: село
+          sea: Море
+          suburb: Предградие
+          town: Град
+          village: Село
+          "yes": Място
         railway:
-          abandoned: >
-            изоставена
-            железопътна линия
-          construction: >
-            железопътна линия в
-            строеж
+          abandoned: Изоставена железопътна линия
+          construction: Железопътна линия в строеж
           disused_station: изоставена гара
           halt: железопътна спирка
-          historic_station: >
-            гара с историческо
-            значение
-          junction: железопътен възел
-          level_crossing: прелез
-          monorail: монорелсов
+          historic_station: Гара с историческо значение
+          junction: Железопътен възел
+          level_crossing: Прелез
+          monorail: Монорелсов  път
           narrow_gauge: Теснолинейка
-          platform: >
-            Железопътната
-            платформа
-          station: Жп-гара
+          platform: Железопътна платформа
+          station: Жп гара
           stop: Железопътна спирка
-          subway: Метростанция
-          subway_entrance: Ð²ход към метростанция
+          subway: Метро
+          subway_entrance: Ð\92ход към метростанция
           tram: Трамвай
           tram_stop: Трамвайна спирка
         shop:
           antiques: Антики
           art: Арт Магазин
-          bakery: Ð¿екарна
+          bakery: Ð\9fекарна
           beauty: Салон за красота
           beverages: Магазин за напитки
           bicycle: Магазин за велосипеди
           books: Книжарница
           boutique: Бутик
-          butcher: месар
-          department_store: универсален магазин
-          dry_cleaning: химическо чистене
-          fish: рибен магазин
-          food: хранителни стоки
-          furniture: мебели
+          butcher: Месарница
+          car: Автосалон
+          car_parts: Авточасти
+          car_repair: Автосервиз
+          carpet: Магазин за килими
+          clothes: Магазин за дрехи
+          department_store: Универсален магазин
+          dry_cleaning: Химическо чистене
+          fish: Рибен магазин
+          food: Хранителни стоки
+          furniture: Мебели
           gallery: Галерия
-          garden_centre: градински център
-          gift: магазин за подаръци
-          greengrocer: плод и зеленчук
-          grocery: бакалия
-          hairdresser: фризьор
-          insurance: застраховане
+          garden_centre: Градински център
+          general: Смесен магазин
+          gift: Магазин за подаръци
+          greengrocer: Плод и зеленчук
+          grocery: Бакалия
+          hairdresser: Фризьорски салон
+          insurance: Застраховане
           jewelry: Бижутериен магазин
           laundry: Пералня
-          mall: търговски център
+          mall: Търговски център
           market: Пазар
-          mobile_phone: >
-            Магазин за мобилни
-            телефони
+          mobile_phone: Магазин за мобилни телефони
           music: Музикален магазин
           optician: Оптика
-          pet: >
-            Магазин за домашни
-            любимци
+          pet: Магазин за домашни любимци
           pharmacy: Аптека
           photo: Фотомагазин
           shoes: Магазин за обувки
           shopping_centre: Търговски център
           sports: Спортен магазин
-          stationery: >
-            Канцеларски
-            материали
+          stationery: Канцеларски материали
           supermarket: Супермаркет
           tailor: Шивач
           toys: Магазин за играчки
           travel_agency: Туристическа агенция
         tourism:
+          apartment: Апартамент
+          artwork: Произведения на изкуството
+          chalet: Хижа
+          gallery: Галерия
           guest_house: Къща за гости
           hostel: Хостел
           hotel: Хотел
@@ -393,84 +607,195 @@ bg:
           museum: Музей
           picnic_site: Място за пикник
           theme_park: Увеселителен парк
-          valley: Долина
-          zoo: зологическа градина
+          zoo: Зологическа градина
         tunnel:
-          yes: Тунел
+          "yes": Тунел
         waterway:
           canal: Канал
-          dam: язовирна стена
-          mineral_spring: Минерален извор
+          dam: Язовирна стена
           river: Река
           waterfall: Водопад
       admin_levels:
         level2: Държавна граница
         level5: Граница на региона
         level6: Държавна граница
-        level8: Ð³раница на града
+        level8: Ð\93раница на града
         level9: Граница на селото
-        level10: >
-          Граница на
-          предградията
+        level10: Граница на предградията
+    description:
+      types:
+        places: Места
     results:
-      no_results: >
-        Не бяха открити
-        резултати
+      no_results: Не бяха открити резултати
       more_results: Повече резултати
-    direction:
-      south_west: югозапад
-      south: юг
-      south_east: югоизток
-      east: изток
-      north_east: североизток
-      north: север
-      north_west: северозапад
-      west: запад
   layouts:
     logout: Излизане
-    log_in: влизане
+    log_in: Влизане
+    log_in_tooltip: Вписване със съществуващ профил
+    sign_up: Регистриране
+    edit: Редактиране
+    history: История
+    export: Изнасяне
+    data: Данни
+    export_data: Изнасяне на данни
+    gps_traces: GPS-следи
+    gps_traces_tooltip: Управление на GPS-следи
+    user_diaries: Дневник
+    user_diaries_tooltip: Дневници на потребители
+    edit_with: Редактиране с %{editor}
+    tag_line: Свободна Wiki-карта на света
+    intro_header: Добре дошли в OpenStreetMap!
+    intro_2_create_account: Създаване на сметка
+    partners_partners: партньори
+    help: Помощ
+    about: За проекта
+    copyright: Авторски права
+    community: Общност
+    make_a_donation:
+      text: Направете дарение
+    learn_more: Научете повече
+    more: Още
+  license_page:
+    foreign:
+      title: За този превод
+      text: В случай на противоречие между тази преведена страница и %{english_original_link},
+        страницата на английски ще е с приоритет
+      english_link: Оригиналът на английски
+    native:
+      title: За тази страница
+    legal_babble:
+      title_html: Авторски права и лиценз
+      infringement_title_html: Нарушаване на авторските права
+  welcome_page:
+    title: Добре дошли!
+    rules:
+      title: Правилата!
+    questions:
+      title: Въпроси?
+  fixthemap:
+    how_to_help:
+      title: Как да помогна
+  help_page:
+    welcome:
+      title: Добре дошли в OSM
+    beginners_guide:
+      title: Наръчник за начинаещи
+    irc:
+      title: IRC
+    switch2osm:
+      title: switch2osm
+    wiki:
+      url: http://wiki.openstreetmap.org/
+      title: wiki.openstreetmap.org
+  about_page:
+    next: Следващ
+    legal_title: Правни въпроси
   notifier:
     diary_comment_notification:
-      hi: Здравейте ((to_user)),
+      hi: Здравейте %{to_user},
+    message_notification:
+      hi: Здравейте %{to_user},
+    gpx_notification:
+      greeting: Здравейте,
+      your_gpx_file: Това изглежда като GPX файла Ви
+      and_the_tags: 'и следните етикети:'
+      and_no_tags: и без етикети.
+    signup_confirm:
+      greeting: Здравейте!
     email_confirm:
-      subject: '[OpenStreetMap] Потвърждаване на вашия адрес за е-поща'
+      subject: '[OpenStreetMap] Потвърждаване на вашия адрес за електронна поща'
+    email_confirm_plain:
+      greeting: Здравейте,
+    email_confirm_html:
+      greeting: Здравейте,
+      hopefully_you: 'Някой (надяваме се, че това сте Вие) желае да промени адреса
+        си на електронна поща намиращ се на %{server_url} на адрес: %{new_address}.'
+      click_the_link: Ако това сте вие, то отворете линка, разположен по-долу, за
+        да потвърдите промяната.
+    lost_password:
+      subject: '[OpenStreetMap]Заявка за промяна на парола'
+    lost_password_plain:
+      greeting: Здравейте,
+    lost_password_html:
+      greeting: Здравейте,
+    note_comment_notification:
+      greeting: Здравейте,
   message:
+    inbox:
+      title: Входящи
+      from: От
+      subject: Тема
+      date: Дата
+    message_summary:
+      delete_button: Изтрий
     new:
       send_button: Изпращане
     read:
       from: От
       subject: Тема
       date: Дата
-      unread_button: >
-        Отбелязване като
-        непрочетено
+      unread_button: Отбелязване като непрочетено
       to: До
+  site:
+    search:
+      where_am_i: Къде съм аз?
+    richtext_area:
+      edit: Редактиране
   trace:
     edit:
       filename: 'Име на файл:'
+      map: карта
       edit: редактиране
       description: 'Описание:'
-      save_button: >
-        Съхраняване на
-        промените
+      save_button: Съхраняване на промените
     trace_form:
       help: Помощ
     view:
       filename: 'Име на файл:'
+      map: карта
       edit: редактиране
     trace:
+      view_map: Вижте на картата
       edit: редактиране
+      edit_map: Редактиране на картата
       in: в
+      map: карта
+  oauth:
+    oauthorize:
+      allow_write_api: промени картата.
   oauth_clients:
     new:
       submit: Регистриране
     edit:
       submit: Редактиране
+    show:
+      allow_write_api: промяна на картата.
     form:
       name: Име
+      allow_write_api: промяна на картата.
   user:
+    login:
+      email or username: 'Електронна поща или потребителско име:'
+    lost_password:
+      email address: 'Електронна поща:'
     reset_password:
       password: 'Парола:'
+    new:
+      email address: 'Електронна поща:'
+      confirm email address: 'Потвърждаване на електронната поща:'
+    view:
+      my edits: Mоите редакции
+      edits: Редакции
+      mapper since: 'Картограф от:'
+      latest edit: 'Последна редакция %{ago}:'
+      email address: 'Електронна поща:'
+    account:
+      title: Редакция на профил
+      current email address: 'Текуща електронна поща:'
+      preferred editor: 'Предпочитан редактор:'
+    confirm:
+      heading: Проверете електронна си поща
+      introduction_1: Изпратихме ви писмо за потвърждаване.
   user_role:
     grant:
       confirm: Потвърждаване
@@ -483,3 +808,18 @@ bg:
       creator_name: Създател
       reason: Причина за блокиране
       status: Статут
+    show:
+      edit: Редактиране
+  javascripts:
+    share:
+      title: Споделяне
+      cancel: Отказ
+    map:
+      zoom:
+        in: Увеличаване
+      locate:
+        title: Моето местоположение
+      layers:
+        header: Слоеве на картата
+        title: Слоеве
+...
index 5899d30..d74d289 100644 (file)
@@ -1,10 +1,11 @@
-# Messages for Bengali (বাংলা)
+# Messages for Bangla (বাংলা)
 # Exported from translatewiki.net
 # Export driver: phpyaml
 # Author: Aftabuzzaman
 # Author: Bellayet
 # Author: Bodhisattwa
 # Author: Ehsanulhb
+# Author: Elias Ahmmad
 # Author: Kayser Ahmad
 # Author: Nasir8891
 # Author: Sayma Jahan
@@ -330,6 +331,7 @@ bn:
         title: ওপেনস্ট্রীটম্যাপ দিনলিপির ভুক্তি
         description: ওপেনস্ট্রীটম্যাপ ব্যবহারকারীগণ কর্তৃক সাম্প্রতিক দিনলিপির ভুক্তি
     comments:
+      has_commented_on: '%{display_name} নিম্নলিখিত দিনলিপি ভুক্তিসমূহে মন্তব্য করেছেন'
       post: পোস্ট
       when: কখন
       comment: মন্তব্য
@@ -371,6 +373,7 @@ bn:
       latitude: 'অক্ষাংশ:'
       longitude: 'দ্রাঘিমাংশ:'
       output: আউটপুট
+      paste_html: তথ্যক্ষেত্রে HTML নিহিত করতে প্রতিলেপন করুন
       export_button: রপ্তানি
   geocoder:
     search:
@@ -389,6 +392,7 @@ bn:
     search_osm_nominatim:
       prefix:
         aerialway:
+          cable_car: ক্যাবল কার
           station: বিমানপথ স্টেশন
         aeroway:
           aerodrome: বিমানশালা
@@ -581,8 +585,10 @@ bn:
           basin: অববাহিকা
           cemetery: কবরস্থান
           commercial: বানিজ্যিক এলাকা
+          construction: নির্মাণকার্য
           farm: খামার
           farmland: কৃষিজমি
+          farmyard: গোলাবাড়ির উঠোন
           forest: অরণ্য
           garages: গ্যারেজ
           grass: ঘাস
@@ -788,6 +794,7 @@ bn:
           "yes": দোকান
         tourism:
           attraction: আকর্ষণ
+          gallery: গ্যালারি
           guest_house: অতিথি বাড়ি
           hostel: হোস্টেল
           hotel: হোটেল
@@ -894,6 +901,14 @@ bn:
         ওপেনস্ট্রীটম্যাপ<sup><a href="#trademarks">&reg;</a></sup> একটি <i>মুক্ত উপাত্ত</i> যা <a
         href="http://osmfoundation.org/">ওপেনস্ট্রীটম্যাপ ফাউন্ডেশন কর্তৃক</a> (OSMF) <a
         href="http://opendatacommons.org/licenses/odbl/">মুক্ত উপাত্ত কমন্স মুক্ত তথ্যভিত লাইসেন্সের</a> (ODbL) আওতায় লাইসেন্সকৃত।
+      attribution_example:
+        title: আরোপণ উদাহরণ
+      more_title_html: আরও খুঁজা হচ্ছে
+      more_1_html: |-
+        আমাদের উপাত্তের ব্যাবহার, ও কৃতজ্ঞতা স্বীকার সম্পর্কে আরও জানতে, এখানে <a
+        href="http://osmfoundation.org/Licence">OSMF Licence page</a> and the community <a
+        href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">Legal
+        FAQ</a> পড়ুন।
       contributors_title_html: আমাদের অবদানকারীগণ
       infringement_title_html: কপিরাইট লঙ্ঘন
       trademarks_title_html: <span id="trademarks"></span>ট্রেডমার্ক
@@ -926,6 +941,10 @@ bn:
     help:
       url: https://help.openstreetmap.org/
       title: help.openstreetmap.org
+    mailing_lists:
+      title: মেইলিং তালিকা
+    irc:
+      title: আইআরসি
     wiki:
       url: http://wiki.openstreetmap.org/
       title: wiki.openstreetmap.org
@@ -939,7 +958,7 @@ bn:
     partners_title: অংশীদার
   notifier:
     diary_comment_notification:
-      subject: '[OpenStreetMap] %{user} à¦\86পনার à¦¦à¦¿à¦¨à¦²à¦¿à¦ªà¦¿ ভুক্তিতে মন্তব্য করেছেন'
+      subject: '[OpenStreetMap] %{user} à¦\8fà¦\95à¦\9fি à¦¦à¦¿à¦¨à¦²à¦¿à¦ªà¦¿à¦° ভুক্তিতে মন্তব্য করেছেন'
       hi: হাই %{to_user},
     message_notification:
       hi: হাই %{to_user},
@@ -952,6 +971,8 @@ bn:
       and_the_tags: 'এবং নিম্নলিখিত ট্যাগ:'
     signup_confirm:
       subject: '[OpenStreetMap] ওপেনস্ট্রীটম্যাপে স্বাগতম'
+      created: কেউ একজন (আশা করছি আপনি) এইমাত্র %{site_url}-এ একটি অ্যাকাউন্ট তৈরি
+        করেছেন।
     email_confirm:
       subject: '[OpenStreetMap] আপনার ইমেইল ঠিকানা নিশ্চিত করুন'
     email_confirm_plain:
@@ -991,16 +1012,114 @@ bn:
       unread_button: অপঠিত হিসেবে চিহ্নিত করুন
       read_button: পঠিত হিসেবে চিহ্নিত করুন
       reply_button: প্রত্যুত্তর
+      delete_button: মুছুন
+    new:
+      title: বার্তা পাঠান
+      send_message_to: '%{name}কে একটি নতুন বার্তা পাঠান'
+      subject: বিষয়
+      body: মূলাংশ
+      send_button: পাঠান
+      back_to_inbox: অন্তঃবক্সে ফেরৎ যান
+      message_sent: বার্তা পাঠানো হয়েছে
+      limit_exceeded: সাম্প্রতিক আপনি একগুচ্ছ বার্তা পাঠিয়েছেন। আর কোন বার্তা পাঠানোর
+        পূর্বে দয়া করে কিছুক্ষণ অপেক্ষা করুন।
+    no_such_message:
+      title: কোন বার্তা নেই
+      heading: কোন বার্তা নেই
+    outbox:
+      title: বহির্বাক্স
+      my_inbox: আমার %{inbox_link}
+      inbox: অন্তঃবাক্স
+      outbox: বহির্বাক্স
+      to: প্রাপক
+      subject: বিষয়
+      date: তারিখ
+      people_mapping_nearby: কাছাকাছি মানচিত্রকার
+    read:
+      subject: বিষয়
+      date: তারিখ
+      reply_button: প্রত্যুত্তর
+      unread_button: অপঠিত হিসেবে চিহ্নিত করুন
+      back: পিছনে
+      to: প্রাপক
+    sent_message_summary:
+      delete_button: মুছে ফেলুন
+    mark:
+      as_read: বার্তা পঠিত হিসেবে চিহ্নিত
+      as_unread: বার্তা অপঠিত হিসেবে চিহ্নিত
+    delete:
+      deleted: বার্তা মোছা হয়েছে
   site:
+    index:
+      js_1: আপনি এমন একটি ব্রাউজার ব্যবহার করছেন যা জাভাস্ক্রিপ্ট সমর্থন করে না অথবা
+        আপনি জাভাস্ক্রিপ্ট অক্ষম করেছেন।
+      permalink: স্থায়ী সংযোগ
+      createnote: একটি দ্রষ্টব্য যোগ করুন
+    edit:
+      user_page_link: ব্যবহারকারীর পাতা
+    sidebar:
+      search_results: অনুসন্ধানের ফলাফল
+      close: বন্ধ
+    search:
+      search: অনুসন্ধান
+      get_directions: দিক নির্দেশনা পান
+      get_directions_title: দুটি বিন্দুর মধ্যে নির্দেশনী খুঁজুন
+      from: থেকে
+      to: হতে
+      where_am_i: আমি কোথায়?
+      where_am_i_title: অনুসন্ধান যন্ত্র ব্যবহার করে বর্তমান অবস্থানটি বর্ণনা করুন
+      submit_text: যাও
     key:
       table:
         entry:
+          motorway: মোটোরপথ
+          main_road: প্রধান সড়ক
+          trunk: মূল সড়ক
+          primary: প্রাথমিক সড়ক
+          secondary: অপ্রধান সড়ক
+          unclassified: অশ্রেণীকৃত সড়ক
+          cycleway: সাইকেলপথ
           cycleway_national: জাতীয় সাইকেলের রাস্তা
           cycleway_regional: আঞ্চলিক সাইকেলের রাস্তা
           cycleway_local: স্থানীয় সাইকেলের রাস্তা
+          footway: ফুটপাথ
+          rail: রেলপথ
+          subway: ভূগর্ভস্থ পথ
+          tram:
+            1: ট্রাম
+          cable:
+          - ক্যাবল কার
+          apron:
+            1: টার্মিনাল
+          admin: প্রশাসনিক সীমানা
+          forest: অরণ্য
+          golf: গল্ফ মাঠ
+          park: উদ্যান
+          resident: আবাসিক এলাকা
+          industrial: শিল্পাঞ্চল
+          commercial: বাণিজ্যিক এলাকা
+          lake:
+          - হ্রদ
+          - জলাধার
+          farm: খামার
+          cemetery: কবরস্থান
+          centre: ক্রীড়া কেন্দ্র
+          military: সামরিক এলাকা
+          school:
+          - বিদ্যালয়
+          - বিশ্ববিদ্যালয়
+          summit:
+            1: শৃঙ্গ
           bicycle_shop: সাইকেলের দোকান
           bicycle_parking: সাইকেল পার্কিং
           toilets: পায়খানা
+    richtext_area:
+      edit: সম্পাদনা
+      preview: প্রাকদর্শন
+    markdown_help:
+      link: লিঙ্ক
+      image: চিত্র
+      url: ইউআরএল
   trace:
     create:
       upload_trace: জিপিএস অনুসরণ আপলোড
@@ -1020,11 +1139,14 @@ bn:
       owner: 'মালিক:'
       description: 'বিবরণ:'
       tags: 'ট্যাগসমূহ:'
+      save_button: পরিবর্তন সংরক্ষণ
+      visibility: দৃষ্টিযোগ্যতা
       visibility_help: এটার মানে কি?
     trace_form:
       upload_gpx: 'জিপিএক্স ফাইল আপলোড:'
       description: 'বিবরণ:'
       tags: 'ট্যাগসমূহ:'
+      visibility: 'দৃষ্টিযোগ্যতা:'
       visibility_help: এটার মানে কি?
       upload_button: আপলোড
       help: সাহায্য
@@ -1055,6 +1177,7 @@ bn:
       edit_track: এই অনুসরণটি সম্পাদনা করুন
       delete_track: এই অনুসরণটি মুছে ফেলুন
       trace_not_found: অনুসরণ পাওযা যায়নি।
+      visibility: দৃষ্টিযোগ্যতা
     trace_paging_nav:
       showing_page: '%{page} পাতা'
     trace:
@@ -1077,12 +1200,54 @@ bn:
       message: জিপিএক্স ফাইল আপলোড বর্তমানে সম্ভব নয়
     offline:
       message: জিপিএক্স ফাইল সংরক্ষণ এবং আপলোড বর্তমানে সম্ভব নয়
+  oauth_clients:
+    new:
+      title: একটি নতুন আবেদন নিবন্ধন করুন
+      submit: নিবন্ধন
+    edit:
+      submit: সম্পাদনা
+    show:
+      edit: বিবরণ সম্পাদনা করুন
+      confirm: আপনি কি নিশ্চিত?
+    form:
+      name: নাম
   user:
     login:
+      title: প্রবেশ
+      heading: প্রবেশ
+      email or username: ইমেইল ঠিকানা অথবা ব্যবহারকারীনাম
+      password: 'পাসওয়ার্ড:'
+      remember: আমাকে মনে রাখো
+      login_button: প্রবেশ
+      register now: এখনই নিবন্ধন করুন
+      with username: 'ইতিমধ্যে একটি ওপেনস্ট্রিটম্যাপ অ্যাকাউন্ট আছে? দয়া করে ব্যবহারকারীনাম
+        এবং পাসওয়ার্ড দিয়ে প্রবেশ করুন:'
+      new to osm: ওপেনস্ট্রিটম্যাপে নতুন?
+      no account: কোনও অ্যাকাউন্ট নেই?
       auth_providers:
+        google:
+          title: গুগল দিয়ে প্রবেশ
+        facebook:
+          title: ফেসবুক দিয়ে প্রবেশ
         github:
           title: গিটহাব দিয়ে প্রবেশ করুন
           alt: একটি গিটহাব অ্যাকাউন্ট দিয়ে প্রবেশ করুন
+        wikipedia:
+          title: উইকিপিডিয়া দিয়ে প্রবেশ
+        yahoo:
+          title: ইয়াহু দিয়ে প্রবেশ
+        wordpress:
+          title: ওয়ার্ডপ্রেস দিয়ে প্রবেশ
+    logout:
+      title: প্রস্থান
+      logout_button: প্রস্থান
+    lost_password:
+      heading: পাসওয়ার্ড ভুলে গেছেন?
+      email address: 'ইমেইল ঠিকানা:'
+    reset_password:
+      password: 'পাসওয়ার্ড:'
+      confirm password: 'পাসওয়ার্ড নিশ্চিত করুন:'
+      flash changed: আপনার পাসওয়ার্ড পরিবর্তন করা হয়েছে।
     terms:
       agree: একমত
       legale_select: 'আপনার দেশ বাছাই করুন:'
@@ -1091,9 +1256,15 @@ bn:
         italy: ইতালি
         rest_of_world: অন্যান্য দেশসমূহ
     view:
+      my edits: আমার সম্পাদনা
+      my profile: আমার প্রোফাইল
+      edits: সম্পাদনাসমূহ
+      email address: 'ই-মেইল ঠিকানা:'
       description: বিবরণ
+      settings_link_text: সেটিংস
       block_history: সক্রিয় বাধাসমূহ
       moderator_history: প্রদত্ত বাধাগুলি
+      comments: মন্তব্যসমূহ
       create_block: এই ব্যবহারকারীকে বাধা দাও
       activate_user: এই ব্যবহাকারীকে সক্রিয় করুন
       deactivate_user: এই ব্যবহারকারীকে নিষ্ক্রিয় করুন
@@ -1101,11 +1272,32 @@ bn:
       hide_user: এই ব্যবহারকারীকে লুকান
       unhide_user: এই ব্যবহাকারীকে দেখান
       delete_user: এই ব্যবহাকারীকে অপসারণ করুন
+      confirm: নিশ্চিত করুন
+    popup:
+      your location: আপনার অবস্থান
+    account:
+      current email address: 'বর্তমান ই-মেইল ঠিকানা:'
+      new email address: 'নতুন ই-মেইল ঠিকানা:'
+      public editing:
+        enabled link text: এটি কী?
+      contributor terms:
+        link text: এটি কী?
+      image: 'চিত্র:'
+      gravatar:
+        link text: এটি কী?
+      new image: চিত্র যোগ করুন
+      latitude: 'অক্ষাংশ:'
+      longitude: 'দ্রাঘিমাংশ:'
     confirm:
       button: নিশ্চিত করুন
+    confirm_email:
+      button: নিশ্চিত করুন
     go_public:
       flash success: আপনার সকল সম্পাদনা এখন উন্মুক্ত, এবং এখন আপনার সম্পাদনের অনুমতি
         রয়েছে।
+    list:
+      title: ব্যবহারকারীগণ
+      heading: ব্যবহারকারীগণ
   user_role:
     filter:
       not_an_administrator: শুধুমাত্র এডমিনিস্ট্রেটরই ব্যবহারকারীর দায়িত্ব প্রদান
@@ -1130,14 +1322,38 @@ bn:
         দেখুন যে এই ব্যবহারকারী এবং দায়িত্বটি সঠিক কিনা।'
   user_block:
     partial:
+      edit: সম্পাদনা
+      confirm: আপনি কি নিশ্চিত?
+      display_name: বাধাপ্রাপ্ত ব্যবহারকারী
       next: পরবর্তী »
       previous: « পূর্ববর্তী
     show:
+      created: তৈরি হয়েছে
+      ago: '%{time} আগে'
       status: স্থিতি
       show: দেখাও
       edit: সম্পাদনা
       confirm: আপনি কি নিশ্চিত?
+  note:
+    entry:
+      comment: মন্তব্য
   javascripts:
+    close: বন্ধ
+    share:
+      title: বণ্টন
+      cancel: বাতিল
+      image: চিত্র
+      format: 'বিন্যাস:'
+      download: ডাউনলোড
+      short_url: সংক্ষিপ্ত ইউআরএল
+    map:
+      layers:
+        data: মানচিত্র উপাত্ত
+    site:
+      edit_tooltip: মানচিত্রটি সম্পাদনা করুন
+    changesets:
+      show:
+        comment: মন্তব্য
     notes:
       new:
         add: টীকাযুক্ত করুন
@@ -1145,7 +1361,10 @@ bn:
         hide: লুকান
         resolve: মিমাংসা করুন
         reactivate: পুনঃসক্রিয়
+        comment: মন্তব্য
     directions:
+      directions: দিক
+      distance: দূরত্ব
       errors:
         no_place: দুঃখিত - এই স্থানটি খুঁজে পাওয়া যায়নি।
       instructions:
index 02466dc..81e353f 100644 (file)
@@ -11,6 +11,7 @@
 # Author: Palapa
 # Author: Ruila
 # Author: Srdjan m
+# Author: Сербијана
 ---
 bs:
   time:
@@ -867,7 +868,7 @@ bs:
       text: Vi gledate englesku verziju stranice o autorskim pravima. Možete se vratiti
         na %{native_link} ove stranice ili možete prestati čitati o autorskim pravima
         i %{mapping_link}.
-      native_link: BOSANSKI verzija
+      native_link: bosansko izdanje
       mapping_link: počnite sa ucrtavanjem
     legal_babble:
       title_html: Autorska prava i dozvola
index a984943..f9e647f 100644 (file)
@@ -1059,9 +1059,9 @@ ca:
         Freqüents sobre legalitat</a>.
       more_2_html: Encara que les dades d'OpenStreetMap són dades obertes, no podem
         oferir una API gratuïta per als desenvolupadors de terceres parts. Vegeu la
-        <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">Política d'ús
-        de l'API</a>, la <a href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">Política
-        d'ús de les tessel·les</a> i la <a href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">Política
+        <a href="https://operations.osmfoundation.org/policies/api/">política d'ús
+        de l'API</a>, la <a href="https://operations.osmfoundation.org/policies/tiles/">política
+        d'ús de les tessel·les</a> i la <a href="https://operations.osmfoundation.org/policies/nominatim/">política
         d'ús de Nominatim</a>.
       contributors_title_html: Els nostres col·laboradors
       contributors_intro_html: 'Els nostres col·laboradors són milers de persones.
@@ -1254,16 +1254,19 @@ ca:
       de copyright i llicència</a> per a més detalls.'
     legal_title: Avisos legals
     legal_html: "Aquest lloc web i molts altres serveis relacionats són operats formalment
-      per l' \n<a href=\"http://osmfoundation.org/\">OpenStreetMap Fundació</a> (OSMF)
-      \ en nom de la comunitat.\n<br> \nSi us plau <a href=\"http://osmfoundation.org/Contact\">contacteu
+      per la \n<a href=\"http://osmfoundation.org/\">Fundació OpenStreetMap</a> (OSMF)
+      \ en nom de la comunitat. L'ús de tots els serveis operats per l'OSMF es troba
+      subjecte a les nostres  <a href=\"http://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy\">\npolítiques
+      d'ús acceptable</a> i a les nostres <a href=\"http://wiki.osmfoundation.org/wiki/Privacy_Policy\">polítiques
+      de privadesa</a>\n<br> \n<a href=\"http://osmfoundation.org/Contact\">Contacteu
       amb l'OSMF</a> \nsi teniu qüestions sobre llicències, drets d'autor o altres
       aspectes legals."
     partners_title: Socis
   notifier:
     diary_comment_notification:
-      subject: '[OpenStreetMap] %{user}, va comentar sobre la vostra entrada del diari'
+      subject: '[OpenStreetMap] %{user} ha comentat en una entrada de diari'
       hi: Hola %{to_user},
-      header: '%{from_user} ha comentat en la vostra recent entrada del diari OpenStreetMap
+      header: '%{from_user} ha comentat en una entrada de diari de l''OpenStreetMap
         amb el tema %{subject}:'
       footer: També podeu llegir el comentari a les %{readurl} i es pot comentar als
         %{commenturl} o respondre a les %{replyurl}
@@ -1836,6 +1839,9 @@ ca:
         github:
           title: Inicia la sessió amb GitHub
           alt: Inicia la sessió amb un compte de GitHub
+        wikipedia:
+          title: Inicia la sessió amb Viquipèdia
+          alt: Inicia la sessió amb un compte de Viquipèdia
         yahoo:
           title: Inicieu la sessió amb Yahoo
           alt: Inici de sessió amb un compte OpenID de Yahoo
@@ -1883,9 +1889,10 @@ ca:
         de col·laboracio</a>.
       email address: 'Adreça de correu:'
       confirm email address: 'Confirmeu l''adreça de correu electrònic:'
-      not displayed publicly: No es mostrarà públicament (vegeu la <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
-        title="wiki privacy policy including section on email addresses">política
-        de privacitat</a>)
+      not displayed publicly: La vostra adreça no es mostrarà públicament (vegeu la
+        nostra <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="wiki
+        privacy policy including section on email addresses">política de privadesa</a>
+        per a més informació)
       display name: 'Nom visible:'
       display name description: El nom d'usuari que es motrarà públicament. El podeu
         canviar més endavant a les preferències.
@@ -2333,7 +2340,7 @@ ca:
     key:
       title: Llegenda
       tooltip: Llegenda
-      tooltip_disabled: La llegenda només està disponible per a la capa estàndard
+      tooltip_disabled: La llegenda no és disponible per a aquesta capa
     map:
       zoom:
         in: Amplia
@@ -2350,6 +2357,7 @@ ca:
         header: Capes del mapa
         notes: Notes de mapa
         data: Dades del mapa
+        gps: Traces GPS públiques
         overlays: Activar capes extra per als problemes del mapa
         title: Capes del mapa
       copyright: © <a href='%{copyright_url}'>Col·laboradors d'OpenStreetMap</a>
@@ -2407,11 +2415,23 @@ ca:
       instructions:
         continue_without_exit: Continuar a %{name}
         slight_right_without_exit: Gira lleugerament a la dreta a %{name}
+        offramp_right_without_exit: Agafeu el carril de la dreta a %{name}
+        onramp_right_without_exit: Gireu a la dreta al carril a %{name}
+        endofroad_right_without_exit: Al final de la carretera gireu a la dreta a
+          %{name}
+        merge_right_without_exit: Incorporeu-vos a la dreta a %{name}
+        fork_right_without_exit: A la cruïlla gireu a la dreta a %{name}
         turn_right_without_exit: Gira a la dreta per %{name}
         sharp_right_without_exit: Gira a la dreta a %{name}
         uturn_without_exit: Canvi de sentit a %{name}
         sharp_left_without_exit: Gira a l'esquerra a %{name}
         turn_left_without_exit: Gira a l'esquerra per %{name}
+        offramp_left_without_exit: Agafeu el carril de l'esquerra a %{name}
+        onramp_left_without_exit: Gireu a l'esquerra al carril a %{name}
+        endofroad_left_without_exit: Al final de la carretera gireu a l'esquerra a
+          %{name}
+        merge_left_without_exit: Incorporeu-vos a l'esquerra a %{name}
+        fork_left_without_exit: A la cruïlla gireu a l'esquerra a %{name}
         slight_left_without_exit: Gira lleugerament a l'esquerra a %{name}
         via_point_without_exit: (pel punt)
         follow_without_exit: Segueix %{name}
@@ -2423,6 +2443,11 @@ ca:
         against_oneway_without_exit: Anar en contra-direcció a %{name}
         end_oneway_without_exit: Fi del sentit únic a %{name}
         roundabout_with_exit: A la rotonda, agafar la sortida %{exit} a %{name}
+        turn_left_with_exit: A la rotonda gireu a l'esquerra cap a %{name}
+        slight_left_with_exit: A la rotonda gireu lleument a l'esquerra cap a %{name}
+        turn_right_with_exit: A la rotonda gireu a la dreta cap a %{name}
+        slight_right_with_exit: A la rotonda gireu lleument a la dreta cap a %{name}
+        continue_with_exit: A la rotonda continueu endavant cap a %{name}
         unnamed: sense nom
         courtesy: Direccions cortesia de %{link}
       time: Temps
@@ -2447,7 +2472,7 @@ ca:
       description: Descripció
       heading: Introduïu informació per una nova redacció
       submit: Crea una redacció
-      title: Creant una nova redacció
+      title: Creació d’una versió nova
     show:
       description: 'Descripció:'
       heading: Mostrant la redacció "%{title}"
index 465dab9..ca65c0a 100644 (file)
@@ -1044,7 +1044,7 @@ cs:
         FAQ</a>.
       more_2_html: |-
         Přestože OpenStreetMap tvoří svobodná data, nemůžeme zdarma poskytovat třetím stranám mapové API.
-        Vizte naše <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">Pravidla použití API</a>, <a href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">Pravidla použití dlaždic</a> a <a href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">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
@@ -1222,16 +1222,16 @@ cs:
       práva a licence</a>.'
     legal_title: Právní informace
     legal_html: |-
-      Tento web a mnoho dalších souvisejících služeb za komunitu oficiálně provozuje <a href='http://osmfoundation.org/'>OpenStreetMap Foundation</a> (OSMF).
+      Tento web a mnoho dalších souvisejících služeb za komunitu oficiálně provozuje <a href='http://osmfoundation.org/'>OpenStreetMap Foundation</a> (OSMF). Použití všech služeb provozovaných OSMF podléhá našim <a href="http://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">Pravidlům přijatelného užití</a> a našim <a href="http://wiki.osmfoundation.org/wiki/Privacy_Policy">Pravidlům ochrany osobních údajů</a>.
       <br>
       Pokud máte problémy či dotazy týkající se licencování, autorských práv či jiných právních záležitostí, <a href='http://osmfoundation.org/Contact'>kontaktujte prosím OSMF</a>.
     partners_title: Partneři
   notifier:
     diary_comment_notification:
-      subject: '[OpenStreetMap] %{user} okomentoval váš deníčkový záznam'
+      subject: '[OpenStreetMap] %{user} okomentoval deníčkový záznam'
       hi: Ahoj, uživateli %{to_user},
-      header: '%{from_user} okomentoval váš nedávný záznam v deníčku na OpenStreetMap
-        s předmětem %{subject}:'
+      header: '%{from_user} okomentoval záznam v deníčku na OpenStreetMap s předmětem
+        %{subject}:'
       footer: Také si můžete komentář přečíst na %{readurl}, komentovat na %{commenturl}
         nebo odpovědět na %{replyurl}
     message_notification:
@@ -1806,6 +1806,9 @@ cs:
         github:
           title: Přihlásit se přes GitHub
           alt: Přihlásit se pomocí GitHub účtu
+        wikipedia:
+          title: Přihlásit se účtem na Wikipedii
+          alt: Přihlásit se účtem na Wikipedii
         yahoo:
           title: Přihlásit se prostřednictvím Yahoo
           alt: Přihlášení pomocí Yahoo OpenID
@@ -1852,9 +1855,10 @@ cs:
         pro přispěvatele</a>.
       email address: 'E-mailová adresa:'
       confirm email address: 'Potvrdit e-mailovou adresu:'
-      not displayed publicly: Nezobrazuje se veřejně (vizte <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
-        title="Pravidla ochrany osobních údajů na wiki, včetně části o e-mailových
-        adresách">pravidla ochrany osobních údajů</a>)
+      not displayed publicly: Vaše adresa se nezobrazuje veřejně, více informací získáte
+        v našich <a href="http://wiki.osmfoundation.org/wiki/Privacy_Policy" title="Pravidla
+        ochrany osobních údajů OSMF, včetně části o e-mailových adresách">pravidlech
+        ochrany osobních údajů</a>
       display name: 'Zobrazované jméno:'
       display name description: Vaše veřejně zobrazované uživatelské jméno. Můžete
         si ho později změnit ve svém nastavení.
@@ -2290,7 +2294,7 @@ cs:
     key:
       title: Legenda
       tooltip: Legenda
-      tooltip_disabled: Legenda je dostupná pouze pro vrstvu Standardní
+      tooltip_disabled: Pro tuto vrstvu není legenda dostupná
     map:
       zoom:
         in: Přiblížit
@@ -2307,6 +2311,7 @@ cs:
         header: Mapové vrstvy
         notes: Poznámky k mapě
         data: Data k mapě
+        gps: Veřejné GPS stopy
         overlays: Zapnout vrstvy pro ladění mapy
         title: Vrstvy
       copyright: © <a href='%{copyright_url}'>přispěvatelé OpenStreetMap</a>
@@ -2389,6 +2394,11 @@ cs:
         against_oneway_without_exit: Jeďte protisměrem na %{name}
         end_oneway_without_exit: Konec jednosměrky na %{name}
         roundabout_with_exit: Na kruhovém objezdu vyjeďte %{exit}. výjezdem na %{name}
+        turn_left_with_exit: Na kruhovém objezdu odbočte vlevo na %{name}
+        slight_left_with_exit: Na kruhovém objezdu mírně vlevo na %{name}
+        turn_right_with_exit: Na kruhovém objezdu odbočte vpravo na %{name}
+        slight_right_with_exit: Na kruhovém objezdu mírně vpravo na %{name}
+        continue_with_exit: Na kruhovém objezdu pokračujte rovně na %{name}
         unnamed: nepojmenovaná cesta
         courtesy: Trasa díky %{link}
       time: Čas
index 713a13c..aeac28e 100644 (file)
@@ -1079,10 +1079,12 @@ de:
         Mehr Informationen dazu, wie unsere Daten verwendet werden können und wie man auf unsere Urheberschaft hinweist,
         kann man auf unserer <a href="http://osmfoundation.org/Licence">OSMF-Lizenzseite</a> und in den
         <a href="http://wiki.openstreetmap.org/wiki/DE:Legal_FAQ">Häufigen rechtlichen Fragen (Legal FAQ)</a> nachlesen.
-      more_2_html: "Obwohl OpenStreetMap „Open Data“ ist, können wir keine \nunentgeltliche
-        Karten-API für Drittparteienentwickler bereitstellen.\nSiehe unsere <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">API-Verwendungsrichtlinie</a>,\n<a
-        href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Kachelverwendungsrichtlinie</a>\nund
-        <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Nominatim-Verwendungsrichtlinie</a>."
+      more_2_html: |-
+        Obwohl OpenStreetMap „Open Data“ ist, können wir keine
+        unentgeltliche Karten-API für Drittparteien bereitstellen.
+        Siehe unsere <a href="https://operations.osmfoundation.org/policies/api/">API-Verwendungsrichtlinie</a>,
+        die <a href="https://operations.osmfoundation.org/policies/tiles/">Kachelverwendungsrichtlinie</a>
+        und die <a href="https://operations.osmfoundation.org/policies/nominatim/">Nominatim-Verwendungsrichtlinie</a>.
       contributors_title_html: Unsere Mitwirkenden
       contributors_intro_html: 'Unsere Mitwirkenden sind tausende einzelne Menschen.
         Wir beziehen auch offen lizenzierte Daten von nationalen Kartenagenturen und
@@ -1875,6 +1877,9 @@ de:
         github:
           title: Mit GitHub anmelden
           alt: Mit einem GitHub-Konto anmelden
+        wikipedia:
+          title: Mit Wikipedia anmelden
+          alt: Mit einem Wikipedia-Benutzerkonto anmelden
         yahoo:
           title: Mit Yahoo anmelden
           alt: Mit einer Yahoo-OpenID anmelden
@@ -2399,6 +2404,7 @@ de:
         header: Kartenebenen
         notes: Hinweise/Fehlermeldungen
         data: Kartendaten
+        gps: Öffentliche GPS-Tracks
         overlays: Overlays zur Fehlersuche aktivieren
         title: Ebenen
       copyright: © <a href='%{copyright_url}'>OpenStreetMap-Mitwirkende</a>
@@ -2483,6 +2489,11 @@ de:
         against_oneway_without_exit: Gegen die Einbahnstraße gehen auf %{name}
         end_oneway_without_exit: Ende der Einbahnstraße auf %{name}
         roundabout_with_exit: Beim Kreisverkehr nimm die Ausfahrt %{exit} auf %{name}
+        turn_left_with_exit: Beim Kreisverkehr links abbiegen auf %{name}
+        slight_left_with_exit: Beim Kreisverkehr leicht links abbiegen auf %{name}
+        turn_right_with_exit: Beim Kreisverkehr rechts abbiegen auf %{name}
+        slight_right_with_exit: Beim Kreisverkehr leicht rechts abbiegen auf %{name}
+        continue_with_exit: Beim Kreisverkehr geradeaus bleiben auf %{name}
         unnamed: unbekannt
         courtesy: Routenanweisungen stammen von %{link}
       time: Zeit
index e086136..69b7a28 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Zazaki (Zazaki)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: 1917 Ekim Devrimi
 # Author: Asmen
 # Author: Erdemaslancan
 # Author: Gorizon
@@ -191,7 +192,7 @@ diq:
       previous: « Verên
     changeset:
       anonymous: Anonim
-      no_edits: (vurnayış çıniyo)
+      no_edits: (vırnayış çıniyo)
       view_changeset_details: Teferuatê vurnayışê seti bıvin
     changesets:
       id: ID
@@ -231,14 +232,14 @@ diq:
       confirm: Tesdiq ke
     location:
       location: 'Herun:'
-      view: Bıvin
+      view: Bımotne
       edit: Bıvurne
     comments:
       post: Bırışe
       when: Key
       comment: Mışewre
       ago: Verdê %{ago}
-      newer_comments: Mışewreyê Tewr Neweyi
+      newer_comments: Tewr Vatışê Newey
       older_comments: Vatışo Tewr Kehan
   export:
     title: Teber de
@@ -791,7 +792,7 @@ diq:
       url: GRE
   trace:
     edit:
-      filename: 'Nameyê dosya:'
+      filename: 'Namey dosya:'
       download: ron
       uploaded_at: 'Bar biyo:'
       points: 'Dawte:'
@@ -812,7 +813,7 @@ diq:
       title: Rêça %{name} mocnêyêna
       heading: Rêça %{name} mocnêyêna
       pending: PAWEDEYO
-      filename: 'Nameyê dosya:'
+      filename: 'Namey dosya:'
       download: ron
       uploaded: 'Bar biyo:'
       points: 'Dawte:'
@@ -910,7 +911,7 @@ diq:
       my edits: Iştirakê mı
       my traces: GPS rêçê mı
       my settings: Eyarê Mı
-      my comments: Mışewreyê mı
+      my comments: Mışewrey mı
       oauth settings: sazê OAuthi
       blocks on me: Bloqeyê mı
       blocks by me: Bloqe kerdışê mı
@@ -1018,8 +1019,8 @@ diq:
       confirm: Tesdiq ke
   user_block:
     new:
-      title: '%{name} i bloqe vırazeno'
-      heading: '%{name} i bloqe vırazeno'
+      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:
@@ -1038,7 +1039,7 @@ diq:
       one: 1 seate
       other: '%{count} seati'
     partial:
-      show: Bımocne
+      show: Bımotne
       edit: Bıvurne
       revoke: Terkne!
       confirm: Vac welay?
@@ -1058,14 +1059,14 @@ diq:
       heading: Blokeyê ke %{name} kerdê listey ênan
     blocks_by:
       title: Blokeyê ke %{name} kerdê
-      heading: Blokeyê ke %{name} kerdê listey ênan
+      heading: '%{name} ra lista blokan'
     show:
       title: Karber %{block_by} karber %{block_on} ke bloqe
       heading: Karber %{block_by} karber %{block_on} ke bloqe
       time_future: '%{time} dı bıqediyo'
       time_past: Verdê %{time} qedya
       status: Weziyet
-      show: Bımocne
+      show: Bımotne
       edit: Bıvurne
       revoke: Terkne!
       confirm: Vac welay?
index 37ab57e..b7b89dc 100644 (file)
@@ -1058,9 +1058,9 @@ el:
       more_2_html: |-
         Παρόλο που το OpenStreetMap αποτελείται από ανοικτά δεδομένα, δεν μπορούμε να προσφέρουμε ένα
         δωρεάν API χαρτών για τρίτους προγραμματιστές.
-        Δείτε τις πολιτικές χρήσης μας για <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">το API</a>,
-        <a href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">τα πλακίδια </a>
-        και για <a href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">το Nominatim</a>.
+        Δείτε τις πολιτικές χρήσης μας για <a href="https://operations.osmfoundation.org/policies/api">το API</a>,
+        <a href="https://operations.osmfoundation.org/policies/tiles">τα πλακίδια </a>
+        και για <a href="https://operations.osmfoundation.org/policies/nominatim">το Nominatim</a>.
       contributors_title_html: Οι συνεισφέροντές μας
       contributors_intro_html: 'Οι συνεισφέροντες μας είναι χιλιάδες άτομα. Επίσης
         έχουμε περιλάβει δεδομένα ανοικτής άδειας από εθνικές υπηρεσίες χαρτογράφησης
@@ -1262,17 +1262,16 @@ el:
       Δικαιώματα και Άδεια Χρήσης</a> για λεπτομέρειες.'
     legal_title: Νομικό
     legal_html: |-
-      Αυτός ο ιστότοπος και πολλές άλλες σχετικές υπηρεσίες λειτουργούν επίσημα από το <a href='http://osmfoundation.org/'>Ίδρυμα OpenStreetMap</a> (OSMF) εκ μέρους της κοινότητας.
+      Αυτός ο ιστότοπος και πολλές άλλες σχετικές υπηρεσίες λειτουργούν επίσημα από το <a href='http://osmfoundation.org/'>Ίδρυμα OpenStreetMap</a> (OSMF) εκ μέρους της κοινότητας. Η χρήση όλων των υπηρεσιών του OSMF  υπόκειται στην <a href="http://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">Πολιτική Αποδεκτής Χρήσης</a> μας και στην <a href="http://wiki.osmfoundation.org/wiki/Privacy_Policy">Πολιτική Απορρήτου</a> μας.
       <br>
       Παρακαλούμε <a href='http://osmfoundation.org/Contact'>επικοινωνήστε με το OSMF</a> αν έχετε ερωτήματα για άδειες χρήσης, πνευματικά δικαιώματα ή άλλα νομικά θέματα.
     partners_title: Συνεργάτες
   notifier:
     diary_comment_notification:
-      subject: '[OpenStreetMap] Ο χρήστης %{user} σχολίασε την καταχώριση ημερολογίου
-        σας'
+      subject: '[OpenStreetMap] Ο χρήστης %{user} σχολίασε μια καταχώριση ημερολογίου'
       hi: Γεια σας %{to_user},
-      header: 'Ο χρήστης %{from_user} έχει σχολιάσει τη πρόσφατη καταχώρηση ημερολογίου
-        σας στο OpenStreetMap με θέμα %{subject}:'
+      header: 'Ο %{from_user} έχει σχολιάσει την καταχώριση ημερολογίου στο OpenStreetMap
+        με θέμα %{subject}:'
       footer: Μπορείτε επίσης να διαβάσετε το σχόλιο στο %{readurl} και μπορείτε να
         σχολιάσετε στο %{commenturl} ή να απαντήσετε στο %{replyurl}
     message_notification:
@@ -1581,7 +1580,7 @@ el:
       edit: Επεξεργασία
       preview: Προεπισκόπηση
     markdown_help:
-      title_html: Î\91ναλÏ\8dθηκε με το <a href="http://daringfireball.net/projects/markdown/">Markdown</a>
+      title_html: Î\91ναλÏ\8dεÏ\84αι με το <a href="http://daringfireball.net/projects/markdown/">Markdown</a>
       headings: Επικεφαλίδες
       heading: Επικεφαλίδα
       subheading: Υποκεφαλίδα
@@ -1829,6 +1828,9 @@ el:
         github:
           title: Σύνδεση με το GitHub
           alt: Σύνδεση με λογαριασμό GitHub
+        wikipedia:
+          title: Σύνδεση με Wikipedia
+          alt: Συνδεθείτε με ένα Λογαριασμό Wikipedia
         yahoo:
           title: Σύνδεση με το Yahoo
           alt: Σύνδεση με ένα Yahoo OpenID
@@ -1886,6 +1888,7 @@ el:
       display name: 'Εμφανιζόμενο όνομα:'
       display name description: Το δημόσια εμφανιζόμενο όνομα χρήστη. Μπορείτε να
         το αλλάξετε αργότερα από τις προτιμήσεις.
+      external auth: 'Ελέγχος Ταυτότητας Τρίτου Μέρους:'
       password: 'Κωδικός:'
       confirm password: 'Επιβεβαίωση Κωδικού:'
       use external auth: 'Εναλλακτικά, χρησιμοποιήστε τρίτην υπηρεσία για είσοδο:'
@@ -2035,6 +2038,7 @@ el:
       gravatar:
         gravatar: Χρήση Gravatar
         link text: τι είναι αυτό;
+        enabled: Εμφάνισης του Gravatar σας έχει ενεργοποιηθεί.
       new image: Προσθήκη εικόνας
       keep image: Διατήρηση της τρέχουσας εικόνας
       delete image: Αφαίρεση της τρέχουσας εικόνας
@@ -2302,6 +2306,7 @@ el:
       link: Σύνδεσμος ή HTML
       long_link: Σύνδεσμος
       short_link: Σύντομος Σύνδεσμος
+      geo_uri: Geo URI
       embed: HTML
       custom_dimensions: Ορισμός προσαρμοσμένων διαστάσεων
       format: 'Μορφή:'
@@ -2319,7 +2324,7 @@ el:
     key:
       title: Υπόμνημα
       tooltip: Υπόμνημα
-      tooltip_disabled: Î¤Î¿ Ï\85Ï\80Ï\8cμνημα ÎµÎ¯Î½Î±Î¹ Î´Î¹Î±Î¸Î­Ï\83ιμο Î¼Ï\8cνο Î³Î¹Î± Ï\84ο Î\9aανονικÏ\8c στρώμα
+      tooltip_disabled: Î¤Î¿ Ï\85Ï\80Ï\8cμνημα Î´ÎµÎ½ ÎµÎ¯Î½Î±Î¹ Î´Î¹Î±Î¸Î­Ï\83ιμο Ï\83ε Î±Ï\85Ï\84Ï\8c Ï\84ο στρώμα
     map:
       zoom:
         in: Μεγέθυνση
@@ -2336,6 +2341,7 @@ el:
         header: Στρώματα Χάρτη
         notes: Σημειώσεις Χάρτη
         data: Δεδομένα Χάρτη
+        gps: Δημόσια ίχνη GPS
         overlays: Ενεργοποίηση επικαλύψεων για την αντιμετώπιση προβλημάτων του χάρτη
         title: Στρώματα
       copyright: © <a href='%{copyright_url}'>Συνεισφέροντες του OpenStreetMap</a>
@@ -2395,14 +2401,20 @@ el:
       instructions:
         continue_without_exit: Συνεχίστε στην %{name}
         slight_right_without_exit: Ελαφριά δεξιά στην %{name}
+        offramp_right_without_exit: Πάρτε τη λωρίδα δεξιά προς %{name}
+        onramp_right_without_exit: Στρίψτε δεξιά στη λωρίδα προς %{name}
         endofroad_right_without_exit: Στο τέλος του δρόμου στρίψτε δεξιά στην %{name}
+        merge_right_without_exit: Ελαφριά δεξιά προς %{name}
         fork_right_without_exit: Στην διχάλα στρίψτε δεξιά στην %{name}
         turn_right_without_exit: Στρίψτε δεξιά στην %{name}
         sharp_right_without_exit: Κλειστά δεξιά στην %{name}
         uturn_without_exit: Αναστροφή στην %{name}
         sharp_left_without_exit: Κλειστά αριστερά στην %{name}
         turn_left_without_exit: Στρίψτε αριστερά στην %{name}
+        offramp_left_without_exit: Πάρτε τη λωρίδα αριστερά προς %{name}
+        onramp_left_without_exit: Στρίψτε αριστερά στη λωρίδα προς %{name}
         endofroad_left_without_exit: Στο τέλος του δρόμου στρίψτε αριστερά στην %{name}
+        merge_left_without_exit: Ελαφριά αριστερά προς %{name}
         fork_left_without_exit: Στη διχάλα στρίψτε αριστερά στην %{name}
         slight_left_without_exit: Ελαφριά αριστερά στην %{name}
         via_point_without_exit: (μέσω σημείου)
@@ -2416,6 +2428,11 @@ el:
         end_oneway_without_exit: Τέλος του μονόδρομου %{name}
         roundabout_with_exit: Στην κυκλική διασταύρωση, πάρτε την %{exit}η έξοδο προς
           %{name}
+        turn_left_with_exit: Στον κυκλικό κόμβο στρίψτε αριστερά προς %{name}
+        slight_left_with_exit: Στο κυκλικό κόμβο ελαφρά αριστερά προς %{name}
+        turn_right_with_exit: Στον κυκλικό κόμβο στρίψτε δεξιά προς %{name}
+        slight_right_with_exit: Στο κυκλικό κόμβο ελαφρά δεξιά προς %{name}
+        continue_with_exit: Στον κυκλικό κόμβο συνεχίστε ευθεία προς %{name}
         unnamed: ανώνυμος δρόμος
         courtesy: Οι οδηγίες είναι προσφορά του %{link}
       time: Διάρκεια
index 475d7ce..4b0ccd1 100644 (file)
@@ -17,6 +17,7 @@
 # Author: Meno25
 # Author: Sampablokuper
 # Author: Shirayuki
+# Author: ديفيد
 ---
 en-GB:
   html:
@@ -2391,7 +2392,7 @@ en-GB:
         turn_left_without_exit: Turn left onto %{name}
         offramp_left_without_exit: Take the sliproad on the left onto %{name}
         onramp_left_without_exit: Turn left on the sliproad onto %{name}
-        endofroad_left_without_exit: At the end of the road turn right onto %{name}
+        endofroad_left_without_exit: At the end of the road turn left onto %{name}
         merge_left_without_exit: Merge left onto %{name}
         fork_left_without_exit: At the fork turn left onto %{name}
         slight_left_without_exit: Slight left onto %{name}
index 6403087..9389c0e 100644 (file)
@@ -1013,10 +1013,10 @@ en:
         FAQ</a>.
       more_2_html: |
         Although OpenStreetMap is open data, we cannot provide a
-        free-of-charge map API for third-party developers.
-        See our <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">API Usage Policy</a>,
-        <a href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">Tile Usage Policy</a>
-        and <a href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">Nominatim Usage Policy</a>.
+        free-of-charge map API for third-parties.
+        See our <a href="https://operations.osmfoundation.org/policies/api/">API Usage Policy</a>,
+        <a href="https://operations.osmfoundation.org/policies/tiles/">Tile Usage Policy</a>
+        and <a href="https://operations.osmfoundation.org/policies/nominatim/">Nominatim Usage Policy</a>.
       contributors_title_html: Our contributors
       contributors_intro_html: |
         Our contributors are thousands of individuals. We also include
@@ -1310,6 +1310,7 @@ en:
         commented_note: "%{commenter} has reactivated a map note you have commented on. The note is near %{place}."
       details: "More details about the note can be found at %{url}."
     changeset_comment_notification:
+      hi: "Hi %{to_user},"
       greeting: "Hi,"
       commented:
         subject_own: "[OpenStreetMap] %{commenter} has commented on one of your changesets"
@@ -1319,6 +1320,7 @@ en:
         partial_changeset_with_comment: "with comment '%{changeset_comment}'"
         partial_changeset_without_comment: "without comment"
       details: "More details about the changeset can be found at %{url}."
+      unsubscribe: 'To unsubscribe from updates to this changeset, visit %{url} and click "Unsubscribe".'
   message:
     inbox:
       title: "Inbox"
@@ -1746,6 +1748,9 @@ en:
         github:
           title: Login with GitHub
           alt: Login with a GitHub Account
+        wikipedia:
+          title: Login with Wikipedia
+          alt: Login with a Wikipedia Account
         yahoo:
           title: Login with Yahoo
           alt: Login with a Yahoo OpenID
@@ -2208,6 +2213,7 @@ en:
         header: Map Layers
         notes: Map Notes
         data: Map Data
+        gps: Public GPS Traces
         overlays: Enable overlays for troubleshooting the map
         title: "Layers"
       copyright: "© <a href='%{copyright_url}'>OpenStreetMap contributors</a>"
@@ -2285,6 +2291,11 @@ en:
         against_oneway_without_exit: Go against one-way on %{name}
         end_oneway_without_exit: End of one-way on %{name}
         roundabout_with_exit: At roundabout take exit %{exit} onto %{name}
+        turn_left_with_exit: At roundabout turn left onto %{name}
+        slight_left_with_exit: At roundabout slight left onto %{name}
+        turn_right_with_exit: At roundabout turn right onto %{name}
+        slight_right_with_exit: At roundabout slight right onto %{name}
+        continue_with_exit: At roundabout continue straight onto %{name}
         unnamed: "unnamed road"
         courtesy: "Directions courtesy of %{link}"
       time: "Time"
index eff59df..3e4fe1b 100644 (file)
@@ -12,6 +12,7 @@
 # Author: Michawiki
 # Author: Objectivesea
 # Author: Petrus Adamus
+# Author: Rafaneta
 # Author: Robin van der Vliet
 # Author: Timsk
 # Author: Tradukisto
@@ -28,8 +29,8 @@ eo:
       changeset: Ŝanĝaro
       changeset_tag: Etikedo de ŝanĝaro
       country: Lando
-      diary_comment: Ĵurnala komento
-      diary_entry: Ĵurnala ero
+      diary_comment: Taglibra komento
+      diary_entry: Taglibra skribaĵo
       friend: Amiko
       language: Lingvo
       message: Mesaĝo
@@ -265,22 +266,22 @@ eo:
       full: Tuta diskuto
   diary_entry:
     new:
-      title: Nova ĵurnal-afiŝo
+      title: Nova taglibra afiŝo
       publish_button: Publiki
     list:
-      title: Ĵurnaloj de uzantoj
-      title_friends: Ĵurnaloj de amikoj
-      title_nearby: Ĵurnaloj de proksimaj uzantoj
-      user_title: Ĵurnalo de %{user}
-      in_language_title: Ĵurnal-afiŝoj en %{language}
-      new: Nova ĵurnal-afiŝo
-      new_title: Kreu novan afiŝon en vian uzant-ĵurnalo
-      no_entries: Neniaj ĵurnal-afiŝoj
-      recent_entries: Ĵusaj ĵurnal-afiŝoj
+      title: Taglibroj de uzantoj
+      title_friends: Taglibroj de amikoj
+      title_nearby: Taglibroj de proksimaj uzantoj
+      user_title: Taglibro de %{user}
+      in_language_title: Taglibraj afiŝoj en %{language}
+      new: Nova taglibra afiŝo
+      new_title: Kreu novan afiŝon en vian uzant-taglibro
+      no_entries: Neniuj taglibraj afiŝoj
+      recent_entries: Lastaj taglibraj afiŝoj
       older_entries: Pli malnovaj afiŝoj
       newer_entries: Pli novaj afiŝoj
     edit:
-      title: Redakti ĵurnal-afiŝon
+      title: Redakti taglibran afiŝon
       subject: 'Temo:'
       body: 'Enhavo:'
       language: 'Lingvo:'
@@ -291,16 +292,16 @@ eo:
       save_button: Konservi
       marker_text: Kie krei la afiŝon
     view:
-      title: Ĵurnalo de %{user} | %{title}
-      user_title: Ĵurnalo de %{user}
+      title: Taglibro de %{user} | %{title}
+      user_title: Taglibro de %{user}
       leave_a_comment: Komenti
       login_to_leave_a_comment: '%{login_link} por aldoni komenton'
       login: Ensaluti
       save_button: Konservi
     no_such_entry:
-      title: Ĉi tiu ĵurnal-afiŝo ne ekzistas
+      title: Ĉi tiu taglibra afiŝo ne ekzistas
       heading: 'Nenia afiŝo kun la identigilo: %{id}'
-      body: Bedaŭrinde, ne ekzistas ĵurnal-afiŝo kun la identigilo %{id}. Bonvolu
+      body: Bedaŭrinde, ne ekzistas taglibra afiŝo kun la identigilo %{id}. Bonvolu
         kontroli pri liter-eraroj, aŭ eble vi alklakis mis-ligilon.
     diary_entry:
       posted_by: Publikigita de %{link_user} je %{created} en %{language_link}
@@ -323,16 +324,16 @@ eo:
       edit: Redakti
     feed:
       user:
-        title: OpenStreetMap ĵurnal-afiŝoj de %{user}
-        description: Ĵusaj OpenStreetMap ĵurnal-afiŝoj de %{user}
+        title: OpenStreetMap taglibraj afiŝoj de %{user}
+        description: Lastaj OpenStreetMap taglibraj afiŝoj de %{user}
       language:
-        title: OpenStreetMap ĵurnal-afiŝoj en %{language_name}
-        description: Ĵusaj ĵuran-afiŝoj de OpenStreetMap-uzantoj en %{language_name}
+        title: OpenStreetMap-aj taglibraj afiŝoj en %{language_name}
+        description: Lastaj taglibraj afiŝoj de OpenStreetMap-uzantoj en %{language_name}
       all:
-        title: OpenStreetMap ĵurnal-afiŝoj
-        description: Ĵusaj ĵurnal-afiŝoj de OpenStreetMap-uzantoj
+        title: OpenStreetMap taglibraj afiŝoj
+        description: Lastaj taglibraj afiŝoj de OpenStreetMap-uzantoj
     comments:
-      has_commented_on: '%{display_name} komentis ĉe jenaj ĵurnal-afiŝoj'
+      has_commented_on: '%{display_name} komentis pri la jenaj taglibraj afiŝoj'
       post: Afiŝi
       when: Kiam
       comment: Komento
@@ -349,8 +350,9 @@ eo:
       map_image: Bildo de mapo (norma tavolo)
       embeddable_html: Enkorpigebla HTML
       licence: Permesilo
-      export_details: OpenStreetMap-datumoj estas disponebla laŭ la permesilo <a href="http://opendatacommons.org/licenses/odbl/1.0/">Open
-        Data Commons Open Database License</a> (ODbL).
+      export_details: OpenStreetMap-datumoj estas disponeblaj laŭ la permesilo <a
+        href="http://opendatacommons.org/licenses/odbl/1.0/">Open Data Commons Open
+        Database License</a> (ODbL).
       too_large:
         advice: 'Se la elportado malsukcesis, bonvolu uzi unu el jenaj fontoj:'
         body: La elektita areo estas tro granda por esti elportita kiel XML-datumojn
@@ -936,7 +938,7 @@ eo:
     log_in: Ensaluti
     log_in_tooltip: Ensaluti kun ekzistanta konto
     sign_up: Registriĝi
-    start_mapping: Eki mapigadon
+    start_mapping: Ekigi mapigadon
     sign_up_tooltip: Krei konton por redaktado
     edit: Redakti
     history: Historio
@@ -945,13 +947,13 @@ eo:
     export_data: Elporti datumojn
     gps_traces: GPS-spuroj
     gps_traces_tooltip: Manipuli la GPS-spurojn
-    user_diaries: Ĵurnaloj de uzantoj
-    user_diaries_tooltip: Esplori ĵurnalojn de uzantoj
+    user_diaries: Taglibroj de uzantoj
+    user_diaries_tooltip: Esplori taglibrojn de uzantoj
     edit_with: Redakti per %{editor}
     tag_line: La libera viki-mondmapo
     intro_header: Bonvenon al OpenStreetMap!
     intro_text: OpenStreetMap estas mapo de la mondo, kreata de homoj kiel vi, kaj
-      libere uzebla sub malferma permesilo.
+      libere uzebla laŭ la malferma permesilo.
     intro_2_create_account: Krei konton
     partners_html: Retgastigo estas liverata de %{ucl}, %{ic}, %{bytemark} kaj aliaj
       %{partners}.
@@ -988,7 +990,7 @@ eo:
       text: Vi legas la anglan version de paĝo pri kopirajto. Vi povas reveni al la
         %{native_link} de ĉi tiu paĝo aŭ vi povas ĉesi legi pri kopirajto kaj %{mapping_link}.
       native_link: Esperanta versio
-      mapping_link: eki mapigadon
+      mapping_link: ekigi mapigadon
     legal_babble:
       title_html: Kopirajto kaj permesilo
       intro_1_html: |-
@@ -1002,12 +1004,12 @@ eo:
         La plena <a href="http://opendatacommons.org/licenses/odbl/1.0/">interkonsento
         de uzado</a> eksplikas viajn rajtojn kaj devojn.
       intro_3_html: |-
-        La kartografio de niaj map-kaheloj kaj nia dokumentaro estas disponeblaj sub la permesilo <a href="https://creativecommons.org/licenses/by-sa/2.0/deed.eo">Creative
+        La kartografio de niaj map-kaheloj kaj nia dokumentaro estas disponeblaj laŭ la permesilo <a href="https://creativecommons.org/licenses/by-sa/2.0/deed.eo">Creative
         Commons Atribuite-Samkondiĉe 2.0</a> (CC BY-SA).
       credit_title_html: Kiel atribui aŭtorecon
       credit_1_html: 'Ni postulas, ke vi markos: &ldquo;&copy; Kontribuintoj de OpenStreetMap&rdquo;.'
-      credit_2_html: Vi ankaŭ devas klarigi, ke datumoj estas disponeblaj sub la permesilo
-        Open Database License, kaj kartografio de map-kaheloj sub la permesilo CC
+      credit_2_html: Vi ankaŭ devas klarigi, ke datumoj estas disponeblaj laŭ la permesilo
+        Open Database License, kaj kartografio de map-kaheloj laŭ la permesilo CC
         BY-SA. Vi povas indiki tion per fari ligilon al <a href="http://www.openstreetmap.org/copyright">ĉi
         tiu paĝo pri permesilo</a>. Alimaniere, se vi distribuas OSM en datuma formo,
         vi povas mencii nomo(j)n kaj ligilo(j)n al la permesilo(j). Se ne estas eble
@@ -1022,17 +1024,17 @@ eo:
         title: Ekzemplo de aŭtorec-atribuado
       more_title_html: Sciigi pli
       more_1_html: |-
-        Legu pli pri uzado de niaj datumoj kaj kiel atribui aŭtorecon, je la <a
-        href="http://osmfoundation.org/Licence">retpaĝo de OSMF Licence</a> kaj je la <a
-        href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">paĝo de oftaj demandoj pri leĝo</a>.
+        Legu pli pri uzado de niaj datumoj kaj kiel atribui aŭtorecon je la <a
+        href="http://osmfoundation.org/Licence">retpaĝo de OSMF permesilo</a> kaj je la <a
+        href="https://wiki.openstreetmap.org/wiki/Eo:Legal_FAQ">paĝo de oftaj demandoj pri leĝo</a>.
       more_2_html: Kvankam la datumoj de OpenStreetMap estas liberaj, ni ne povas
-        liveri senpagan API-on por eksteraj programistoj. Legu nian <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">politikon
-        pri uzado de API</a>, <a href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">politikon
-        pri uzado de kaheloj</a> kaj <a href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">poltikon
+        liveri senpagan API-on por eksteraj programistoj. Legu nian <a href="https://operations.osmfoundation.org/policies/api/">politikon
+        pri uzado de API</a>, <a href="https://operations.osmfoundation.org/policies/tiles/">politikon
+        pri uzado de kaheloj</a> kaj <a href="https://operations.osmfoundation.org/policies/nominatim/">poltikon
         pri uzado de Nominatim</a>.
       contributors_title_html: Kunlaborantoj
       contributors_intro_html: 'Niaj kunlaborantoj estas miloj da homoj. Ni ankaŭ
-        inkludas datumoj sub malferma permesilo el landaj kartografiaj organizaĵoj
+        inkludas datumoj laŭ malferma permesilo el landaj kartografiaj organizaĵoj
         kaj el aliaj fontoj, inter ili:'
       contributors_at_html: |-
         <strong>Aŭstrujo</strong>: enhavas datumojn el <a href="http://data.wien.gv.at/">Stadt Wien</a> (sub <a href="http://creativecommons.org/licenses/by/3.0/at/deed.eo">CC BY</a>),
@@ -1046,7 +1048,7 @@ eo:
         Statistics Canada).
       contributors_fi_html: |-
         <strong>Suomujo</strong>: enhavas datumojn el
-        National Land Survey of Finland's Topographic Database kaj aliaj fontoj, sub la <a href="http://www.maanmittauslaitos.fi/en/NLS_open_data_licence_version1_20120501">NLSFI permesilo</a>.
+        National Land Survey of Finland's Topographic Database kaj aliaj fontoj, laŭ la <a href="http://www.maanmittauslaitos.fi/en/NLS_open_data_licence_version1_20120501">NLSFI permesilo</a>.
       contributors_fr_html: '<strong>Francujo</strong>: enhavas datumojn ricevitajn
         el ''Direction Générale des Impôts''.'
       contributors_nl_html: |-
@@ -1089,7 +1091,7 @@ eo:
   welcome_page:
     title: Bonvenon!
     introduction_html: Bonvenon al OpenStreetMap, la libera kaj redaktebla mapo de
-      la mondo. Nun kiam vi registriĝis, vi povas eki mapigadon. Jen estas mallonga
+      la mondo. Nun kiam vi registriĝis, vi povas ekigi mapigadon. Jen estas mallonga
       manlibreto kun la plej gravaj aĵoj kiuj vi povas scii.
     whats_on_the_map:
       title: Kio estas sur la mapo
@@ -1125,7 +1127,7 @@ eo:
       paragraph_1_html: OpenStreetMap havas kelkajn ejojn por lerni pri la projekto,
         por demandi pri ion ajn kaj kune diskuti kaj dokumenti pri mapigado. <a href='%{help_url}'>Alklaku
         por ricevi helpon</a>.
-    start_mapping: Eki mapigadon
+    start_mapping: Ekigi mapigadon
     add_a_note:
       title: Ĉu mankas al vi tempo por ridaktado? Aldonu rimarkon!
       paragraph_1_html: Se vi volas nur korekti iun etan kaj vi ne havas tempon por
@@ -1201,13 +1203,13 @@ eo:
       kaj ĝisdatigaj.
     community_driven_title: Kondukata de komunumo
     community_driven_html: |-
-      La komunumo de OpenStreetMap estas diversa, pasia kaj kreskas tagon post tago. Inter niaj kontribuantoj estas amatoroj de mapoj, istoj de GIS, inĝenieroj prizorgantaj OSM-servilojn, helpistoj kiuj mapigas en terenoj de katastrofoj kaj pli da aliuloj. Por lerni pli pri la komunumo, vidu <a href='%{diary_path}'>ĵurnalojn de uzantoj</a>,
+      La komunumo de OpenStreetMap estas diversa, pasia kaj kreskas tagon post tago. Inter niaj kontribuantoj estas ŝatantoj de mapoj, profesiuloj de GIS, inĝenieroj prizorgantaj OSM-servilojn, helpistoj kiuj mapas areojn tuŝitajn de katastrofoj kaj multaj aliaj. Por lerni pli pri la komunumo, vidu <a href='%{diary_path}'>taglibrojn de uzantoj</a>,
       <a href='http://blogs.openstreetmap.org/'>komunumajn taglibrojn</a> kaj la retpaĝon de <a href='http://www.osmfoundation.org/'>OSM Fondaĵo</a>.
     open_data_title: Malfermaj datumoj
     open_data_html: 'OpenStreetMap estas <i>malfermaj datumoj</i>: vi povas uzi ĝin
       kiamaniere vi volas sub la kondiĉo de vi atribuos aŭtorecon al OpenStreetMap
       kaj ĝiaj kontribuintoj. Se vi modifos aŭ uzos niajn datumojn, vi povos distribui
-      la verkon nur sub la sama permesilo. Vidu la <a href=''%{copyright_path}''>paĝon
+      la verkon nur laŭ la sama permesilo. Vidu la <a href=''%{copyright_path}''>paĝon
       pri kopirajto kaj permesilo</a> por pli da detaloj.'
     legal_title: Leĝaj demandoj
     legal_html: Ĉi tiu retejo kaj aliaj servoj estas formale administrataj de la <a
@@ -1219,9 +1221,9 @@ eo:
     partners_title: Kunlaborantoj
   notifier:
     diary_comment_notification:
-      subject: '[OpenStreetMap] %{user} komentis ĵurnal-afiŝon'
+      subject: '[OpenStreetMap] %{user} komentis pri taglibra afiŝo'
       hi: Saluton %{to_user},
-      header: '%{from_user} komentis la afiŝon en OpenStreetMap-ĵurnalo kun la temo
+      header: '%{from_user} komentis pri la OpenStreetMap-taglibra afiŝo kun la temo
         %{subject}:'
       footer: Vi ankaŭ povas legi la komenton ĉe %{readurl} kaj komenti ĝin ĉe %{commenturl}
         aŭ responde ĉe %{replyurl}
@@ -1402,7 +1404,7 @@ eo:
       shortlink: Mallonga ligilo
       createnote: Aldoni rimarkon
       license:
-        copyright: Kopirajto de OpenStreetMap kaj kontribuintoj, sub malferma permesilo
+        copyright: Kopirajto de OpenStreetMap kaj kontribuintoj, laŭ malferma permesilo
       remote_failed: Redaktado malsukcesis - certigu ĉu JOSM aŭ Merkaartor estas startigita
         kaj ĉu defora aliro estas aktiva
     edit:
@@ -1657,7 +1659,7 @@ eo:
       allow_to: 'Permesi al porklienta aplikaĵo:'
       allow_read_prefs: legi agordojn de uzanto.
       allow_write_prefs: modifi viajn agordojn de uzanto.
-      allow_write_diary: krei ĵurnal-afiŝojn, komenti kaj amikigi aliajn.
+      allow_write_diary: afiŝi en taglibro, komenti kaj amikiĝi.
       allow_write_api: redakti la mapon.
       allow_read_gpx: legi viajn privatajn GPS-spurojn.
       allow_write_gpx: alŝuti GPS-spurojn.
@@ -1694,7 +1696,7 @@ eo:
       requests: 'Petado pri la jenaj permesoj de la uzanto:'
       allow_read_prefs: legi agordojn de uzanto.
       allow_write_prefs: modifi agordojn de uzanto.
-      allow_write_diary: krei ĵurnal-afiŝojn, komenti kaj amikigi aliajn.
+      allow_write_diary: skribi en taglibro, komenti kaj amikigi aliajn.
       allow_write_api: redakti la mapon.
       allow_read_gpx: legi privatajn GPS-spurojn.
       allow_write_gpx: alŝuti GPS-spurojn.
@@ -1721,7 +1723,7 @@ eo:
       requests: 'Peti pri la jenajn permesojn de la uzanto:'
       allow_read_prefs: legi agordojn de uzanto.
       allow_write_prefs: modifi agordojn de uzanto.
-      allow_write_diary: krei ĵurnal-afiŝojn, komenti kaj amikigi aliajn.
+      allow_write_diary: skribi en taglibro, komenti kaj amikigi aliajn.
       allow_write_api: redakti la mapon.
       allow_read_gpx: legi privatajn GPS-spurojn.
       allow_write_gpx: alŝuti GPS-spurojn.
@@ -1777,6 +1779,9 @@ eo:
         github:
           title: Ensaluti per GitHub
           alt: Ensaluti per konto je GitHub
+        wikipedia:
+          title: Ensaluti per Vikipedio
+          alt: Ensaluti per Vikipedia konto
         yahoo:
           title: Ensaluti per Yahoo
           alt: Ensaluti per Yahoo OpenID
@@ -1818,7 +1823,7 @@ eo:
         header: Libera kaj redaktebla
         html: <p>Kontraste kun aliaj mapoj, OpenStreetMap estas tute kreata de homoj
           kiel vi, kaj iu ajn povas korekti, ĝisdatigi, elŝuti kaj uzi ĝin.</p> <p>Registriĝu
-          por eki kontribuadon. Ni sendos al vi retleteron por konfirmi vian konton.</p>
+          por komenci kontribuadon. Ni sendos al vi retleteron por konfirmi vian konton.</p>