]> git.openstreetmap.org Git - rails.git/commitdiff
Merge pull request #28 from zerebubuth/routing-ui-tweaks-2
authorRichard Fairhurst <richard@systemeD.net>
Mon, 26 Jan 2015 17:26:46 +0000 (17:26 +0000)
committerRichard Fairhurst <richard@systemeD.net>
Mon, 26 Jan 2015 17:26:46 +0000 (17:26 +0000)
Routing UI tweaks, part deux

386 files changed:
Gemfile
Gemfile.lock
README.md
Rakefile
Vendorfile
app/assets/images/RSS.png
app/assets/images/about/osm.png
app/assets/images/about/sprite.png
app/assets/images/about/sprite@2x.png
app/assets/images/aol.png
app/assets/images/attribution_example.png
app/assets/images/browse/aerodrome.p.16.png
app/assets/images/browse/allotments.png
app/assets/images/browse/alpinehut.p.16.png
app/assets/images/browse/atm2.p.16.png
app/assets/images/browse/bank2.p.16.png
app/assets/images/browse/bar.p.16.png
app/assets/images/browse/bridge.20.png
app/assets/images/browse/bridleway.20.png
app/assets/images/browse/brownfield.png
app/assets/images/browse/building.png
app/assets/images/browse/bus_station.n.16.png
app/assets/images/browse/bus_stop.p.16.png
app/assets/images/browse/byway.20.png
app/assets/images/browse/cafe.p.16.png
app/assets/images/browse/camping.n.16.png
app/assets/images/browse/car_share.p.16.png
app/assets/images/browse/caravan_park.n.16.png
app/assets/images/browse/cemetery.png
app/assets/images/browse/centre.png
app/assets/images/browse/cinema.p.16.png
app/assets/images/browse/commercial.png
app/assets/images/browse/common.png
app/assets/images/browse/cycleway.20.png
app/assets/images/browse/drinkingtap.p.16.png
app/assets/images/browse/education_nursery.p.16.png
app/assets/images/browse/education_school.p.16.png
app/assets/images/browse/education_university.p.16.png
app/assets/images/browse/farm.png
app/assets/images/browse/fast_food.p.16.png
app/assets/images/browse/firestation.p.16.png
app/assets/images/browse/footway.20.png
app/assets/images/browse/forest.png
app/assets/images/browse/fuel.p.16.png
app/assets/images/browse/gate2.p.16.png
app/assets/images/browse/golf.png
app/assets/images/browse/halt.p.16.png
app/assets/images/browse/health_dentist.p.16.png
app/assets/images/browse/health_doctors.p.16.png
app/assets/images/browse/health_opticians.p.16.png
app/assets/images/browse/health_veterinary.p.16.png
app/assets/images/browse/heathland.png
app/assets/images/browse/hospital.p.16.png
app/assets/images/browse/hostel.p.16.png
app/assets/images/browse/hotel.p.16.png
app/assets/images/browse/industrial.png
app/assets/images/browse/lake.png
app/assets/images/browse/level_crossing.p.16.png
app/assets/images/browse/library.p.16.png
app/assets/images/browse/light_rail.20.png
app/assets/images/browse/lighthouse.p.16.png
app/assets/images/browse/military.png
app/assets/images/browse/mini_round.p.16.png
app/assets/images/browse/motorway.20.png
app/assets/images/browse/museum.p.16.png
app/assets/images/browse/park.png
app/assets/images/browse/parking.p.16.png
app/assets/images/browse/path.20.png
app/assets/images/browse/pharmacy.p.16.png
app/assets/images/browse/pitch.png
app/assets/images/browse/place_of_worship.png
app/assets/images/browse/place_of_worship_unknown3.p.16.png
app/assets/images/browse/police.p.16.png
app/assets/images/browse/post_box.p.16.png
app/assets/images/browse/post_office.p.16.png
app/assets/images/browse/primary.20.png
app/assets/images/browse/prison.p.16.png
app/assets/images/browse/pub.p.16.png
app/assets/images/browse/rail.20.png
app/assets/images/browse/recycling.p.16.png
app/assets/images/browse/reserve.png
app/assets/images/browse/residential.png
app/assets/images/browse/restaurant.p.16.png
app/assets/images/browse/retail.png
app/assets/images/browse/runway.20.png
app/assets/images/browse/school.png
app/assets/images/browse/secondary.20.png
app/assets/images/browse/service.20.png
app/assets/images/browse/shelter2.p.16.png
app/assets/images/browse/shop_bakery.p.16.png
app/assets/images/browse/shop_bicycle.p.16.png
app/assets/images/browse/shop_books.p.16.png
app/assets/images/browse/shop_butcher.p.16.png
app/assets/images/browse/shop_clothes.p.16.png
app/assets/images/browse/shop_convenience.p.16.png
app/assets/images/browse/shop_diy.p.16.png
app/assets/images/browse/shop_estateagent2.p.16.png
app/assets/images/browse/shop_fish.p.16.png
app/assets/images/browse/shop_garden_centre.p.16.png
app/assets/images/browse/shop_gift.p.16.png
app/assets/images/browse/shop_greengrocer.p.16.png
app/assets/images/browse/shop_hairdresser.p.16.png
app/assets/images/browse/shop_jewelry.p.16.png
app/assets/images/browse/shop_supermarket.p.16.png
app/assets/images/browse/station.p.16.png
app/assets/images/browse/subway.20.png
app/assets/images/browse/taxiway.20.png
app/assets/images/browse/telephone.p.16.png
app/assets/images/browse/tertiary.20.png
app/assets/images/browse/theatre.p.16.png
app/assets/images/browse/toilets.p.16.png
app/assets/images/browse/tourism.png
app/assets/images/browse/tourist_castle.p.16.png
app/assets/images/browse/tourist_memorial.p.16.png
app/assets/images/browse/tourist_monument.p.16.png
app/assets/images/browse/tourist_picnic.p.16.png
app/assets/images/browse/tourist_ruins.p.16.png
app/assets/images/browse/tourist_windmill.p.16.png
app/assets/images/browse/tourist_wreck.p.16.png
app/assets/images/browse/track.20.png
app/assets/images/browse/traffic_light.png
app/assets/images/browse/tram.20.png
app/assets/images/browse/transport_parking_bicycle.p.16.png
app/assets/images/browse/transport_rental_bicycle.p.16.png
app/assets/images/browse/transport_rental_car.p.16.png
app/assets/images/browse/tree.p.16.png
app/assets/images/browse/trunk.20.png
app/assets/images/browse/tunnel.20.png
app/assets/images/browse/turning_circle.p.16.png
app/assets/images/browse/unclassified.20.png
app/assets/images/browse/view_point.p.16.png
app/assets/images/browse/wall.20.png
app/assets/images/browse/wood.png
app/assets/images/cc_button.png
app/assets/images/closed_note_marker@2x.png
app/assets/images/confirm-illustration.png
app/assets/images/google.png
app/assets/images/key/mapnik/admin.png
app/assets/images/key/mapnik/allotments.png
app/assets/images/key/mapnik/apron.png
app/assets/images/key/mapnik/bridge.png
app/assets/images/key/mapnik/bridleway.png
app/assets/images/key/mapnik/brownfield.png
app/assets/images/key/mapnik/building.png
app/assets/images/key/mapnik/byway.png
app/assets/images/key/mapnik/cable.png
app/assets/images/key/mapnik/cemetery.png
app/assets/images/key/mapnik/centre.png
app/assets/images/key/mapnik/commercial.png
app/assets/images/key/mapnik/common.png
app/assets/images/key/mapnik/construction.png
app/assets/images/key/mapnik/cycleway.png
app/assets/images/key/mapnik/destination.png
app/assets/images/key/mapnik/farm.png
app/assets/images/key/mapnik/footway.png
app/assets/images/key/mapnik/forest.png
app/assets/images/key/mapnik/golf.png
app/assets/images/key/mapnik/heathland.png
app/assets/images/key/mapnik/industrial.png
app/assets/images/key/mapnik/lake.png
app/assets/images/key/mapnik/military.png
app/assets/images/key/mapnik/motorway.png
app/assets/images/key/mapnik/park.png
app/assets/images/key/mapnik/permissive.png
app/assets/images/key/mapnik/pitch.png
app/assets/images/key/mapnik/primary.png
app/assets/images/key/mapnik/primary12.png
app/assets/images/key/mapnik/private.png
app/assets/images/key/mapnik/rail.png
app/assets/images/key/mapnik/rail13.png
app/assets/images/key/mapnik/reserve.png
app/assets/images/key/mapnik/resident.png
app/assets/images/key/mapnik/retail.png
app/assets/images/key/mapnik/runway.png
app/assets/images/key/mapnik/school.png
app/assets/images/key/mapnik/secondary.png
app/assets/images/key/mapnik/secondary12.png
app/assets/images/key/mapnik/station.png
app/assets/images/key/mapnik/subway.png
app/assets/images/key/mapnik/summit.png
app/assets/images/key/mapnik/tourist.png
app/assets/images/key/mapnik/track.png
app/assets/images/key/mapnik/tram.png
app/assets/images/key/mapnik/trunk.png
app/assets/images/key/mapnik/trunk12.png
app/assets/images/key/mapnik/tunnel.png
app/assets/images/key/mapnik/unclassified.png
app/assets/images/key/mapnik/unclassified13.png
app/assets/images/key/mapnik/unsurfaced.png
app/assets/images/key/mapnik/wood.png
app/assets/images/mag_map-rss2.0.png
app/assets/images/map_sprite.png
app/assets/images/map_zoomin.png
app/assets/images/map_zoomout.png
app/assets/images/marker-blue.png
app/assets/images/marker-green.png
app/assets/images/marker-red.png
app/assets/images/marker-yellow.png
app/assets/images/menu-icon.png
app/assets/images/myopenid.png
app/assets/images/new.png
app/assets/images/new_note_marker@2x.png
app/assets/images/notice.png
app/assets/images/open_note_marker@2x.png
app/assets/images/openid.png
app/assets/images/openid_input.png
app/assets/images/openid_small.png
app/assets/images/osm_logo.png
app/assets/images/osm_logo_114.png
app/assets/images/osm_logo_144.png
app/assets/images/osm_logo_228.png
app/assets/images/osm_logo_72.png
app/assets/images/roles/administrator.png
app/assets/images/roles/blank_moderator.png
app/assets/images/sign-up-illustration-arm.png
app/assets/images/sign-up-illustration.png
app/assets/images/sotm-birmingham-ad.png
app/assets/images/sotm-us-ad.png
app/assets/images/sprite.png
app/assets/images/terms-illustration.png
app/assets/images/users/images/large.png
app/assets/images/users/images/small.png
app/assets/images/welcome-sprite.png
app/assets/images/wordpress.png
app/assets/images/yahoo.png
app/assets/javascripts/index.js
app/assets/javascripts/index/directions.js.erb
app/assets/javascripts/index/query.js
app/assets/javascripts/index/search.js
app/assets/javascripts/leaflet.note.js
app/assets/javascripts/piwik.js
app/assets/stylesheets/common.css.scss
app/assets/stylesheets/parameters.scss
app/controllers/application_controller.rb
app/controllers/browse_controller.rb
app/controllers/changeset_controller.rb
app/controllers/diary_entry_controller.rb
app/controllers/message_controller.rb
app/controllers/notes_controller.rb
app/controllers/redactions_controller.rb
app/controllers/user_controller.rb
app/models/diary_comment.rb
app/models/diary_entry.rb
app/models/message.rb
app/models/old_node.rb
app/models/old_relation.rb
app/models/old_way.rb
app/models/redaction.rb
app/models/user.rb
app/models/user_block.rb
app/views/browse/changeset.html.erb
app/views/layouts/_search.html.erb
config.ru
config/application.rb
config/boot.rb
config/environments/development.rb
config/environments/production.rb
config/environments/test.rb
config/initializers/assets.rb
config/initializers/cookies_serializer.rb
config/initializers/i18n.rb
config/initializers/mime_types.rb
config/initializers/postgresql_adapter.rb [deleted file]
config/initializers/sanitize.rb
config/locales/ast.yml
config/locales/be.yml
config/locales/br.yml
config/locales/bs.yml
config/locales/ca.yml
config/locales/cs.yml
config/locales/cy.yml [new file with mode: 0644]
config/locales/da.yml
config/locales/de.yml
config/locales/diq.yml
config/locales/el.yml
config/locales/es.yml
config/locales/et.yml
config/locales/eu.yml
config/locales/fa.yml
config/locales/fi.yml
config/locales/fr.yml
config/locales/fur.yml
config/locales/gl.yml
config/locales/he.yml
config/locales/hsb.yml
config/locales/hu.yml
config/locales/ia.yml
config/locales/id.yml
config/locales/it.yml
config/locales/ja.yml
config/locales/ka.yml
config/locales/ko.yml
config/locales/ksh.yml
config/locales/lb.yml
config/locales/lv.yml
config/locales/mk.yml
config/locales/mr.yml
config/locales/ms.yml
config/locales/nb.yml
config/locales/nl.yml
config/locales/pa.yml
config/locales/pl.yml
config/locales/pt-BR.yml
config/locales/pt.yml
config/locales/ru.yml
config/locales/sl.yml
config/locales/sq.yml
config/locales/sv.yml
config/locales/ta.yml
config/locales/te.yml
config/locales/tl.yml
config/locales/tr.yml
config/locales/uk.yml
config/locales/vi.yml
config/locales/zh-CN.yml
config/locales/zh-TW.yml
db/migrate/001_create_osm_db.rb
db/migrate/002_cleanup_osm_db.rb
db/migrate/003_sql_session_store_setup.rb
db/migrate/004_user_enhancements.rb
db/migrate/005_tile_tracepoints.rb
db/migrate/006_tile_nodes.rb
db/migrate/007_add_relations.rb
db/migrate/008_remove_segments.rb
db/migrate/010_diary_comments.rb
db/migrate/018_create_acls.rb
db/migrate/020_populate_node_tags_and_remove.rb
db/migrate/021_move_to_innodb.rb
db/migrate/022_key_constraints.rb
db/migrate/023_add_changesets.rb
db/migrate/025_add_end_time_to_changesets.rb
db/migrate/028_add_more_changeset_indexes.rb
db/migrate/029_add_user_foreign_keys.rb
db/migrate/030_add_foreign_keys.rb
db/migrate/031_create_countries.rb
db/migrate/034_create_languages.rb
db/migrate/035_change_user_locale.rb
db/migrate/042_add_foreign_keys_to_oauth_tables.rb
db/migrate/044_create_user_roles.rb
db/migrate/045_create_user_blocks.rb
db/migrate/046_alter_user_roles_and_blocks.rb
db/migrate/054_refactor_map_bug_tables.rb
db/migrate/20110521142405_rename_bugs_to_notes.rb
db/migrate/20111212183945_add_lowercase_user_indexes.rb
db/migrate/20120318201948_create_redactions.rb
db/migrate/20120328090602_drop_session_table.rb
db/migrate/20120404205604_add_user_and_description_to_redaction.rb
db/migrate/20140115192822_add_text_index_to_note_comments.rb
db/migrate/20140507110937_create_changeset_comments.rb
db/migrate/20140519141742_add_join_table_between_users_and_changesets.rb
db/migrate/20150110152606_change_default_formats.rb [new file with mode: 0644]
db/migrate/20150111192335_subscribe_old_changesets.rb [new file with mode: 0644]
db/structure.sql
lib/diff_reader.rb
lib/migrate.rb
script/vagrant/setup/provision.sh
test/controllers/api_controller_test.rb
test/controllers/changeset_controller_test.rb
test/controllers/diary_entry_controller_test.rb
test/controllers/message_controller_test.rb
test/controllers/node_controller_test.rb
test/controllers/notes_controller_test.rb
test/controllers/old_node_controller_test.rb
test/controllers/old_relation_controller_test.rb
test/controllers/old_way_controller_test.rb
test/controllers/relation_controller_test.rb
test/controllers/user_controller_test.rb
test/controllers/way_controller_test.rb
test/fixtures/current_node_tags.yml
test/fixtures/node_tags.yml
test/helpers/application_helper_test.rb
test/helpers/browse_helper_test.rb
test/integration/user_creation_test.rb
test/integration/user_login_test.rb
test/lib/rich_text_test.rb
test/models/changeset_comment_test.rb
test/models/node_test.rb
test/performance/browsing_test.rb [deleted file]
vendor/assets/javascripts/html5shiv.js
vendor/assets/jquery/jquery.cookie.js
vendor/assets/jquery/jquery.simulate.js
vendor/assets/leaflet/leaflet.osm.js
vendor/assets/ohauth/ohauth.js
vendor/assets/potlatch2/potlatch2.swf
vendor/assets/potlatch2/potlatch2/assets.zip
vendor/assets/potlatch2/potlatch2/locales/zh_TW.swf

diff --git a/Gemfile b/Gemfile
index ac030d38d44be8e89318fef6fcd54f8ab427f299..e59705dad6df15aa0ee58da4d64194581fad5004 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -1,7 +1,7 @@
 source 'https://rubygems.org'
 
 # Require rails
-gem 'rails', '4.1.7'
+gem 'rails', '4.2.0'
 
 # Require things which have moved to gems in ruby 1.9
 gem 'bigdecimal', "~> 1.1.0", :platforms => :ruby_19
@@ -16,19 +16,19 @@ gem 'json'
 gem 'pg'
 
 # Use SCSS for stylesheets
-gem 'sass-rails', '~> 4.0.3'
+gem 'sass-rails', '~> 5.0'
 
 # Use Uglifier as compressor for JavaScript assets
 gem 'uglifier', '>= 1.3.0'
 
 # Use CoffeeScript for .js.coffee assets and views
-gem 'coffee-rails', '~> 4.0.0'
+gem 'coffee-rails', '~> 4.1.0'
 
 # Use jquery as the JavaScript library
 gem 'jquery-rails'
 
 # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
-# gem 'jbuilder', '~> 1.2'
+# gem 'jbuilder', '~> 2.0'
 gem 'jsonify-rails'
 
 # Use R2 for RTL conversion
@@ -44,7 +44,7 @@ gem 'rinku', '>= 1.2.2', :require => 'rails_rinku'
 gem 'oauth-plugin', '>= 0.5.1'
 gem 'open_id_authentication', '>= 1.1.0'
 gem 'validates_email_format_of', '>= 1.5.1'
-gem 'composite_primary_keys', '~> 7.0.11'
+gem 'composite_primary_keys', '~> 8.0.0'
 gem 'http_accept_language', '~> 2.0.0'
 gem 'paperclip', '~> 4.0'
 gem 'deadlock_retry', '>= 1.2.0'
index 3f66851755c0c68dda3f30c8a892b84361de5804..fee72773e9fd7fec4fcdb179cb8dad5e1794cea4 100644 (file)
@@ -2,36 +2,45 @@ GEM
   remote: https://rubygems.org/
   specs:
     SystemTimer (1.2.3)
-    actionmailer (4.1.7)
-      actionpack (= 4.1.7)
-      actionview (= 4.1.7)
+    actionmailer (4.2.0)
+      actionpack (= 4.2.0)
+      actionview (= 4.2.0)
+      activejob (= 4.2.0)
       mail (~> 2.5, >= 2.5.4)
-    actionpack (4.1.7)
-      actionview (= 4.1.7)
-      activesupport (= 4.1.7)
-      rack (~> 1.5.2)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+    actionpack (4.2.0)
+      actionview (= 4.2.0)
+      activesupport (= 4.2.0)
+      rack (~> 1.6.0)
       rack-test (~> 0.6.2)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-html-sanitizer (~> 1.0, >= 1.0.1)
     actionpack-page_caching (1.0.2)
       actionpack (>= 4.0.0, < 5)
-    actionview (4.1.7)
-      activesupport (= 4.1.7)
+    actionview (4.2.0)
+      activesupport (= 4.2.0)
       builder (~> 3.1)
       erubis (~> 2.7.0)
-    activemodel (4.1.7)
-      activesupport (= 4.1.7)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-html-sanitizer (~> 1.0, >= 1.0.1)
+    activejob (4.2.0)
+      activesupport (= 4.2.0)
+      globalid (>= 0.3.0)
+    activemodel (4.2.0)
+      activesupport (= 4.2.0)
       builder (~> 3.1)
-    activerecord (4.1.7)
-      activemodel (= 4.1.7)
-      activesupport (= 4.1.7)
-      arel (~> 5.0.0)
-    activesupport (4.1.7)
-      i18n (~> 0.6, >= 0.6.9)
+    activerecord (4.2.0)
+      activemodel (= 4.2.0)
+      activesupport (= 4.2.0)
+      arel (~> 6.0)
+    activesupport (4.2.0)
+      i18n (~> 0.7)
       json (~> 1.7, >= 1.7.7)
       minitest (~> 5.1)
-      thread_safe (~> 0.1)
+      thread_safe (~> 0.3, >= 0.3.4)
       tzinfo (~> 1.1)
-    arel (5.0.1.20140414130214)
-    autoprefixer-rails (3.1.2.20141016)
+    arel (6.0.0)
+    autoprefixer-rails (4.0.2.2)
       execjs
     bigdecimal (1.1.0)
     builder (3.2.2)
@@ -44,42 +53,45 @@ GEM
     climate_control (0.0.3)
       activesupport (>= 3.0)
     cliver (0.3.2)
-    cocaine (0.5.4)
+    cocaine (0.5.5)
       climate_control (>= 0.0.3, < 1.0)
-    coffee-rails (4.0.1)
+    coffee-rails (4.1.0)
       coffee-script (>= 2.2.0)
       railties (>= 4.0.0, < 5.0)
     coffee-script (2.3.0)
       coffee-script-source
       execjs
     coffee-script-source (1.8.0)
-    colorize (0.7.3)
-    composite_primary_keys (7.0.12)
-      activerecord (~> 4.1.7)
-    crass (0.2.1)
+    colorize (0.7.5)
+    composite_primary_keys (8.0.0)
+      activerecord (~> 4.2.0)
+    crass (1.0.1)
     dalli (2.7.2)
     deadlock_retry (1.2.0)
     dynamic_form (1.1.4)
     erubis (2.7.0)
     execjs (2.2.2)
-    faraday (0.9.0)
+    faraday (0.9.1)
       multipart-post (>= 1.2, < 3)
+    globalid (0.3.0)
+      activesupport (>= 4.1.0)
     hike (1.2.3)
-    htmlentities (4.3.2)
+    htmlentities (4.3.3)
     http_accept_language (2.0.2)
-    httpclient (2.5.3.2)
-    i18n (0.6.11)
+    httpclient (2.6.0.1)
+    i18n (0.7.0)
     iconv (0.1)
-    jquery-rails (3.1.2)
-      railties (>= 3.0, < 5.0)
+    jquery-rails (4.0.3)
+      rails-dom-testing (~> 1.0)
+      railties (>= 4.2.0)
       thor (>= 0.14, < 2.0)
-    json (1.8.1)
+    json (1.8.2)
     jsonify (0.3.1)
       multi_json (~> 1.0)
     jsonify-rails (0.3.2)
       actionpack
       jsonify (< 0.4.0)
-    jwt (1.0.0)
+    jwt (1.2.0)
     kgio (2.9.2)
     konacha (3.3.0)
       actionpack (>= 3.1, < 5)
@@ -87,18 +99,20 @@ GEM
       colorize
       railties (>= 3.1, < 5)
       sprockets
-    libxml-ruby (2.7.0)
+    libxml-ruby (2.8.0)
+    loofah (2.0.1)
+      nokogiri (>= 1.5.9)
     mail (2.6.3)
       mime-types (>= 1.16, < 3)
     mime-types (2.4.3)
-    mini_portile (0.6.1)
-    minitest (5.4.2)
+    mini_portile (0.6.2)
+    minitest (5.5.1)
     multi_json (1.10.1)
     multi_xml (0.5.5)
     multipart-post (2.0.0)
-    nokogiri (1.6.4.1)
+    nokogiri (1.6.5)
       mini_portile (~> 0.6.0)
-    nokogumbo (1.1.12)
+    nokogumbo (1.2.0)
       nokogiri
     oauth (0.4.7)
     oauth-plugin (0.5.1)
@@ -116,65 +130,75 @@ GEM
       rack-openid (~> 1.3)
     openstreetmap-i18n-js (3.0.0.rc5.3)
       i18n
-    paperclip (4.2.0)
+    paperclip (4.2.1)
       activemodel (>= 3.0.0)
       activesupport (>= 3.0.0)
       cocaine (~> 0.5.3)
       mime-types
-    pg (0.17.1)
+    pg (0.18.1)
     poltergeist (1.5.1)
       capybara (~> 2.1)
       cliver (~> 0.3.1)
       multi_json (~> 1.0)
       websocket-driver (>= 0.2.0)
-    psych (2.0.6)
+    psych (2.0.9)
     r2 (0.2.5)
-    rack (1.5.2)
-    rack-cors (0.2.9)
+    rack (1.6.0)
+    rack-cors (0.3.1)
     rack-openid (1.4.2)
       rack (>= 1.1.0)
       ruby-openid (>= 2.1.8)
-    rack-test (0.6.2)
+    rack-test (0.6.3)
       rack (>= 1.0)
-    rails (4.1.7)
-      actionmailer (= 4.1.7)
-      actionpack (= 4.1.7)
-      actionview (= 4.1.7)
-      activemodel (= 4.1.7)
-      activerecord (= 4.1.7)
-      activesupport (= 4.1.7)
+    rails (4.2.0)
+      actionmailer (= 4.2.0)
+      actionpack (= 4.2.0)
+      actionview (= 4.2.0)
+      activejob (= 4.2.0)
+      activemodel (= 4.2.0)
+      activerecord (= 4.2.0)
+      activesupport (= 4.2.0)
       bundler (>= 1.3.0, < 2.0)
-      railties (= 4.1.7)
-      sprockets-rails (~> 2.0)
+      railties (= 4.2.0)
+      sprockets-rails
+    rails-deprecated_sanitizer (1.0.3)
+      activesupport (>= 4.2.0.alpha)
+    rails-dom-testing (1.0.5)
+      activesupport (>= 4.2.0.beta, < 5.0)
+      nokogiri (~> 1.6.0)
+      rails-deprecated_sanitizer (>= 1.0.1)
+    rails-html-sanitizer (1.0.1)
+      loofah (~> 2.0)
     rails-i18n (4.0.3)
       i18n (~> 0.6)
       railties (~> 4.0)
-    railties (4.1.7)
-      actionpack (= 4.1.7)
-      activesupport (= 4.1.7)
+    railties (4.2.0)
+      actionpack (= 4.2.0)
+      activesupport (= 4.2.0)
       rake (>= 0.8.7)
       thor (>= 0.18.1, < 2.0)
-    rake (10.3.2)
-    redcarpet (3.2.0)
+    rake (10.4.2)
+    redcarpet (3.2.2)
     rinku (1.7.3)
     ruby-openid (2.6.0)
-    sanitize (3.0.3)
-      crass (~> 0.2.0)
+    sanitize (3.1.0)
+      crass (~> 1.0.1)
       nokogiri (>= 1.4.4)
-      nokogumbo (= 1.1.12)
-    sass (3.2.19)
-    sass-rails (4.0.4)
+      nokogumbo (= 1.2.0)
+    sass (3.4.9)
+    sass-rails (5.0.1)
       railties (>= 4.0.0, < 5.0)
-      sass (~> 3.2.2)
-      sprockets (~> 2.8, < 2.12)
-      sprockets-rails (~> 2.0)
+      sass (~> 3.1)
+      sprockets (>= 2.8, < 4.0)
+      sprockets-rails (>= 2.0, < 4.0)
+      tilt (~> 1.1)
     soap4r-ruby1.9 (2.0.5)
-    sprockets (2.11.3)
+    sprockets (2.12.3)
       hike (~> 1.2)
       multi_json (~> 1.0)
       rack (~> 1.0)
       tilt (~> 1.1, != 1.3.0)
-    sprockets-rails (2.2.0)
+    sprockets-rails (2.2.2)
       actionpack (>= 3.0)
       activesupport (>= 3.0)
       sprockets (>= 2.8, < 4.0)
@@ -184,13 +208,15 @@ GEM
     timecop (0.7.1)
     tzinfo (1.2.2)
       thread_safe (~> 0.1)
-    uglifier (2.5.3)
+    uglifier (2.7.0)
       execjs (>= 0.3.0)
       json (>= 1.8.0)
     validates_email_format_of (1.6.1)
       i18n
     vendorer (0.1.16)
-    websocket-driver (0.4.0)
+    websocket-driver (0.5.1)
+      websocket-extensions (>= 0.1.0)
+    websocket-extensions (0.1.1)
     xpath (2.0.0)
       nokogiri (~> 1.3)
 
@@ -202,8 +228,8 @@ DEPENDENCIES
   actionpack-page_caching
   autoprefixer-rails
   bigdecimal (~> 1.1.0)
-  coffee-rails (~> 4.0.0)
-  composite_primary_keys (~> 7.0.11)
+  coffee-rails (~> 4.1.0)
+  composite_primary_keys (~> 8.0.0)
   dalli
   deadlock_retry (>= 1.2.0)
   dynamic_form
@@ -227,13 +253,13 @@ DEPENDENCIES
   psych
   r2
   rack-cors
-  rails (= 4.1.7)
+  rails (= 4.2.0)
   rails-i18n (~> 4.0.0)
   redcarpet
   rinku (>= 1.2.2)
   ruby-openid (>= 2.2.0)
   sanitize
-  sass-rails (~> 4.0.3)
+  sass-rails (~> 5.0)
   soap4r-ruby1.9
   timecop
   uglifier (>= 1.3.0)
index 90a9b93ef4af7e8fbeb141c4c3a32a382ec029d0..34e3325f06ee528c1a75b5a1ce7a435c9b9265f0 100644 (file)
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ This repository consists of:
 
 A fully-functional Rails Port installation depends on other services, including map tile
 servers and geocoding services, that are provided by other software. The default installation
-uses publically-available services to help with development and testing.
+uses publicly-available services to help with development and testing.
 
 # License
 
index 039e38f47aa6773d588e355ca59d27ce013605d7..28fdc4c576ce8a84a36b220ddd4dce1c322977e7 100644 (file)
--- a/Rakefile
+++ b/Rakefile
@@ -2,6 +2,5 @@
 # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
 
 require File.expand_path('../config/application', __FILE__)
-require 'rake'
 
 OpenStreetMap::Application.load_tasks
index c2267a6d8a41aac7133c256a3b85f4b20e45fcc5..6468d506745b675f06103faad2dbe0aa43a34516 100644 (file)
@@ -1,13 +1,13 @@
 folder 'vendor/assets' do
   folder 'jquery' do
-    file 'jquery.cookie.js', 'https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js'
-    file 'jquery.throttle-debounce.js', 'https://raw.github.com/cowboy/jquery-throttle-debounce/v1.1/jquery.ba-throttle-debounce.js'
-    file 'jquery.simulate.js', 'https://raw.github.com/jquery/jquery-ui/master/tests/jquery.simulate.js'
+    file 'jquery.cookie.js', 'https://raw.githubusercontent.com/carhartl/jquery-cookie/master/src/jquery.cookie.js'
+    file 'jquery.throttle-debounce.js', 'https://raw.githubusercontent.com/cowboy/jquery-throttle-debounce/v1.1/jquery.ba-throttle-debounce.js'
+    file 'jquery.simulate.js', 'https://raw.githubusercontent.com/jquery/jquery-simulate/1.0.0/jquery.simulate.js'
   end
 
   folder 'bootstrap' do
-    file 'bootstrap.tooltip.js', 'https://raw.github.com/twbs/bootstrap/v2.3.2/js/bootstrap-tooltip.js'
-    file 'bootstrap.dropdown.js', 'https://raw.github.com/twbs/bootstrap/v2.3.2/js/bootstrap-dropdown.js'
+    file 'bootstrap.tooltip.js', 'https://raw.githubusercontent.com/twbs/bootstrap/v2.3.2/js/bootstrap-tooltip.js'
+    file 'bootstrap.dropdown.js', 'https://raw.githubusercontent.com/twbs/bootstrap/v2.3.2/js/bootstrap-dropdown.js'
   end
 
   folder 'leaflet' do
@@ -53,6 +53,6 @@ folder 'vendor/assets' do
   end
 
   folder 'javascripts' do
-    file 'html5shiv.js', 'https://raw.github.com/aFarkas/html5shiv/master/src/html5shiv.js'
+    file 'html5shiv.js', 'https://raw.githubusercontent.com/aFarkas/html5shiv/master/src/html5shiv.js'
   end
 end
index 4838e5a702f84280c7bdb2ca95bfc9c87f720a35..89dda0c00c9b5c5efd6a97e62b84001a6a7949cd 100644 (file)
Binary files a/app/assets/images/RSS.png and b/app/assets/images/RSS.png differ
index d5479eea39b7f1ca6baf9d0dc9327b6dac5398fc..d97904e134bc532f5cfd5cb4842e4dfa8b0717d8 100644 (file)
Binary files a/app/assets/images/about/osm.png and b/app/assets/images/about/osm.png differ
index bc76ee09751dccb7c9a70dcbbe75b3697ff693f2..d3809059984f0e945dc7e458b0b45f7b4d4316a3 100644 (file)
Binary files a/app/assets/images/about/sprite.png and b/app/assets/images/about/sprite.png differ
index 65d09d73d6ee1edcde9b43c8052f7d2c8a90b12a..471b31d8fa18c2fbdefe08684e81b0978476243e 100644 (file)
Binary files a/app/assets/images/about/sprite@2x.png and b/app/assets/images/about/sprite@2x.png differ
index 917028b506aa5b4347950de39e34abc987dbda20..cf773f9072c430bd677194dc6f4c1aca512a5417 100644 (file)
Binary files a/app/assets/images/aol.png and b/app/assets/images/aol.png differ
index 463c80ed063f4a953fb53b80a43ec2423a58cdef..afcdc5d2580cb3b906a2c3f01d2aff0033f8fca7 100644 (file)
Binary files a/app/assets/images/attribution_example.png and b/app/assets/images/attribution_example.png differ
index 8f13cd76fe4397d87c335f5f9070c13fcb08743e..e8462b68bcb33c3f8150a844c873728ae70fce11 100644 (file)
Binary files a/app/assets/images/browse/aerodrome.p.16.png and b/app/assets/images/browse/aerodrome.p.16.png differ
index bc8d3fe96e4fa70bfadab0cc3ba01651d34206fd..9dcc925aa905962db92559e79c832f4f658dff60 100644 (file)
Binary files a/app/assets/images/browse/allotments.png and b/app/assets/images/browse/allotments.png differ
index 84b09771b2af1ad066b883539174dd67c9656ad9..0499c586ad5314922390176512a963de9a54c0ec 100644 (file)
Binary files a/app/assets/images/browse/alpinehut.p.16.png and b/app/assets/images/browse/alpinehut.p.16.png differ
index 62caf207ebc9772990813473e163fe89cba2099d..b3f843b3a451f182faf20720d090d6a4c9e98ebc 100644 (file)
Binary files a/app/assets/images/browse/atm2.p.16.png and b/app/assets/images/browse/atm2.p.16.png differ
index a7d30e86d506ced2fb7462f4c7b545c32712942d..e3f194635f83218e0a0e3aec892d739b6ff4f1dd 100644 (file)
Binary files a/app/assets/images/browse/bank2.p.16.png and b/app/assets/images/browse/bank2.p.16.png differ
index 201d66a0385295b032afff3cf991f18b16badc00..ad2c8ebd22073b569949df679705d5f5d283fb96 100644 (file)
Binary files a/app/assets/images/browse/bar.p.16.png and b/app/assets/images/browse/bar.p.16.png differ
index ed4808440ee28be14c7db4bfc87d62ec39598393..8146456fc5d33c88a6f5e2e2aaa415d442527004 100644 (file)
Binary files a/app/assets/images/browse/bridge.20.png and b/app/assets/images/browse/bridge.20.png differ
index bb46bcb8e4ca7e39c994938d65a138056ab7ce32..5e024ada6aad523dc9a947c5eb2739738606058b 100644 (file)
Binary files a/app/assets/images/browse/bridleway.20.png and b/app/assets/images/browse/bridleway.20.png differ
index 76d94cceeb0e35f49a9f1ac8cf18a6478d147046..1b1603399f7d8a3c2622d98f92623ce841ba7a89 100644 (file)
Binary files a/app/assets/images/browse/brownfield.png and b/app/assets/images/browse/brownfield.png differ
index 189bbe928e4c25eb7a4433324a48d930f5a1adc7..fd37114c97bf20ffd593aaaf28a6ef4acb1183a7 100644 (file)
Binary files a/app/assets/images/browse/building.png and b/app/assets/images/browse/building.png differ
index 5224dd119f9304c091b178558ed10d5c53a6941c..182d6eb45afa630dc3342d226dde859e26be9fdb 100644 (file)
Binary files a/app/assets/images/browse/bus_station.n.16.png and b/app/assets/images/browse/bus_station.n.16.png differ
index 7d9d5e8b6c998e55a29ca0b10dddd3ecab6480f4..d50858deb079783592cf33c86ab4d05cedc2d586 100644 (file)
Binary files a/app/assets/images/browse/bus_stop.p.16.png and b/app/assets/images/browse/bus_stop.p.16.png differ
index fb98d24e911564e0285cd778dc8bd8f871c85c53..ee682e3b6443eab3f193bd1311679591a1faa712 100644 (file)
Binary files a/app/assets/images/browse/byway.20.png and b/app/assets/images/browse/byway.20.png differ
index 836f8a540309d5726e38f3f0c225f13ee33b7ff8..75d272c23c4f24ec4494113faf4714930c8a6e6b 100644 (file)
Binary files a/app/assets/images/browse/cafe.p.16.png and b/app/assets/images/browse/cafe.p.16.png differ
index b76912566b3ef6003979030186c9f87d46392b88..bf35aaec46cb5bfb8fd989fc94b916fcd11e0441 100644 (file)
Binary files a/app/assets/images/browse/camping.n.16.png and b/app/assets/images/browse/camping.n.16.png differ
index 1dcc537f6b2387a6d7d12fa44c12e36040d3d0f2..e14c9d4eb0906e2dc63f1ee1fd9ad46656cc2c40 100644 (file)
Binary files a/app/assets/images/browse/car_share.p.16.png and b/app/assets/images/browse/car_share.p.16.png differ
index a4b35a43343d31b8ef31f336865563526f404c9b..b605f4059de8f3bdd8e0c6ced0b8109560eae936 100644 (file)
Binary files a/app/assets/images/browse/caravan_park.n.16.png and b/app/assets/images/browse/caravan_park.n.16.png differ
index 6d6d07222b980e3848cad468d7fe9f3a70c2d131..f89cf18e2beca208c76352bea43f0107e2f321bf 100644 (file)
Binary files a/app/assets/images/browse/cemetery.png and b/app/assets/images/browse/cemetery.png differ
index 10661ae4a70a1c8cf606eeeae5dfb60139fb0f38..92abe24270627578c5360e3e1212ffe65f52b954 100644 (file)
Binary files a/app/assets/images/browse/centre.png and b/app/assets/images/browse/centre.png differ
index 21f7dcb65f792c254058e7f1cf7daefb9e8313d7..14b3efc33633f752af4a952142366817b03674b2 100644 (file)
Binary files a/app/assets/images/browse/cinema.p.16.png and b/app/assets/images/browse/cinema.p.16.png differ
index 0d2d27c141152a500780a497831d2f634ac39dc9..3008f1809a613f8b184c02a69c63ec6bd48ced86 100644 (file)
Binary files a/app/assets/images/browse/commercial.png and b/app/assets/images/browse/commercial.png differ
index b2c4de8268d215e66151a020233a73cb46c44afa..4d0c1b4654d1b9794dec3062761fadafbd6b6624 100644 (file)
Binary files a/app/assets/images/browse/common.png and b/app/assets/images/browse/common.png differ
index a75255098dc7ae0ddee98ce12d0a9999766dac0b..882cf11ba275f380045bfc830b3d30082be040fd 100644 (file)
Binary files a/app/assets/images/browse/cycleway.20.png and b/app/assets/images/browse/cycleway.20.png differ
index b9baef7b790c12b7436045c14c773b5e21ffe451..4ce28753c8a2e64597c21a24b3d9a9e611e98c56 100644 (file)
Binary files a/app/assets/images/browse/drinkingtap.p.16.png and b/app/assets/images/browse/drinkingtap.p.16.png differ
index 63651ef8760aabcf700c71fea59cd909975eda55..5b3be736d510da0da4065fd2f9a18797a73b2333 100644 (file)
Binary files a/app/assets/images/browse/education_nursery.p.16.png and b/app/assets/images/browse/education_nursery.p.16.png differ
index 95744bf6c20ddd4a389e51053854e289ac81d25a..8373892afde03d22ceb80626c38eded1e065db64 100644 (file)
Binary files a/app/assets/images/browse/education_school.p.16.png and b/app/assets/images/browse/education_school.p.16.png differ
index 57c92c39e6de9fe8b7705a6f14f3b5bdaade1c42..1b0fc521432cf17e9e805f4b92ba7a349fd3a83d 100644 (file)
Binary files a/app/assets/images/browse/education_university.p.16.png and b/app/assets/images/browse/education_university.p.16.png differ
index 5b6f0bcfd5561fb6f68dd87734c7e35137553c3c..97890000c048d73e79fe571880b4119f8144352f 100644 (file)
Binary files a/app/assets/images/browse/farm.png and b/app/assets/images/browse/farm.png differ
index 28e78bfec5b6abc8dff91b59ae4f8ae8750b4dc4..713290101a026f7bc1fe0c7b0442710e8c36fa1b 100644 (file)
Binary files a/app/assets/images/browse/fast_food.p.16.png and b/app/assets/images/browse/fast_food.p.16.png differ
index cf245592261b646ec11962c663899f12de5f1d06..c8ec4c0e9ab1d029da9d27b76b2297abd341d637 100644 (file)
Binary files a/app/assets/images/browse/firestation.p.16.png and b/app/assets/images/browse/firestation.p.16.png differ
index 5f69d00f16d477cf95bf1481f0309c7dca079795..fb85d592507b92a36d9c627c582a00fec40186de 100644 (file)
Binary files a/app/assets/images/browse/footway.20.png and b/app/assets/images/browse/footway.20.png differ
index 7e37c5df64c2ad974d3bd4898905f5b476f66717..da748f81d25d6a3ec54f7f01f703faa29e95545a 100644 (file)
Binary files a/app/assets/images/browse/forest.png and b/app/assets/images/browse/forest.png differ
index 7bab32a4da74fb192eb99057dbab2b9ea963769b..ba0b37e7eb4ce1f5b47b6d589995b955e6e238f2 100644 (file)
Binary files a/app/assets/images/browse/fuel.p.16.png and b/app/assets/images/browse/fuel.p.16.png differ
index cee412c89bb7151b154b77dc0d168b8ad94ae87f..adba236c889741fa4744f414e7ec5215dac98524 100644 (file)
Binary files a/app/assets/images/browse/gate2.p.16.png and b/app/assets/images/browse/gate2.p.16.png differ
index f05ff255aaf99ebc7883ef6f4eb3edbbe733ae26..4f7afc4fa627be76753e70beaa8fb572d847fa77 100644 (file)
Binary files a/app/assets/images/browse/golf.png and b/app/assets/images/browse/golf.png differ
index fbea173c300a505aa7f39ac1980aa73fa51fe8ba..ed4e9605862514488e1c3558ebeceb462c501d13 100644 (file)
Binary files a/app/assets/images/browse/halt.p.16.png and b/app/assets/images/browse/halt.p.16.png differ
index e3219f7925e2881934a70bd66ee8c828881c06d9..cc05fe988a577698265431ac4c71c8cb7d9e799c 100644 (file)
Binary files a/app/assets/images/browse/health_dentist.p.16.png and b/app/assets/images/browse/health_dentist.p.16.png differ
index 9cdc46914bcd75840f1596933d0d16bc939cb8d6..8efa8a5b91cd7a7d215f6d6f9bb91a3a5c550231 100644 (file)
Binary files a/app/assets/images/browse/health_doctors.p.16.png and b/app/assets/images/browse/health_doctors.p.16.png differ
index d89ff568f66d522df6f286999c82c060dd3ee780..e27633daf2a86df63bd77b739a442e2aa09efcaa 100644 (file)
Binary files a/app/assets/images/browse/health_opticians.p.16.png and b/app/assets/images/browse/health_opticians.p.16.png differ
index dd8ee1699fba9b7497d6a600154c2094acb039a2..6dba64b10fde7e7bf444679cae20697cffc35f57 100644 (file)
Binary files a/app/assets/images/browse/health_veterinary.p.16.png and b/app/assets/images/browse/health_veterinary.p.16.png differ
index 9342b56da93d1fb000188e9a848c1f4d569f00c2..cb2fc225df09ffbe98cc7e0a97f7099717e4bf5c 100644 (file)
Binary files a/app/assets/images/browse/heathland.png and b/app/assets/images/browse/heathland.png differ
index dd4febf2bd3604768042a755497a7401b7dd1664..9cd448a74d94dfd810b881b35c66554390b31c26 100644 (file)
Binary files a/app/assets/images/browse/hospital.p.16.png and b/app/assets/images/browse/hospital.p.16.png differ
index ddab301d16f3d190c6f5a60929225a8a905d85d5..9362692726d5581eca118e2962baa805f14e8edc 100644 (file)
Binary files a/app/assets/images/browse/hostel.p.16.png and b/app/assets/images/browse/hostel.p.16.png differ
index cd2ba1620f096d41f95ad23b2348ffac5b75842c..3133a89b13e975306afb458fff21aeedfaad6dfb 100644 (file)
Binary files a/app/assets/images/browse/hotel.p.16.png and b/app/assets/images/browse/hotel.p.16.png differ
index e90e4633dff8536f75c416f954e0f0b9acbc6a58..4ad4e51934e53cdc4b76232f34cc1f5abe6a11ed 100644 (file)
Binary files a/app/assets/images/browse/industrial.png and b/app/assets/images/browse/industrial.png differ
index 78cdd020ccf328fb43ea0b26493b069b701ff0ba..c838303f6e3c7cccd3290d118883b9084ee52d0e 100644 (file)
Binary files a/app/assets/images/browse/lake.png and b/app/assets/images/browse/lake.png differ
index 27448359f71ad1826fba0935aa5b89e45fc72ff5..64097e3134d29199ec3ce8d9af10a4e2d8b25448 100644 (file)
Binary files a/app/assets/images/browse/level_crossing.p.16.png and b/app/assets/images/browse/level_crossing.p.16.png differ
index 4e42a73ce0d9485f876495bde21fecbf3ee2bb3a..c3e367d182f8c37ad509cc58baecc515048f63fc 100644 (file)
Binary files a/app/assets/images/browse/library.p.16.png and b/app/assets/images/browse/library.p.16.png differ
index 7f65a627177d6f293dc2cd71be330f2bb6487bdf..d5796712a07bf4c5cf6d063b6afb7d578a09eb95 100644 (file)
Binary files a/app/assets/images/browse/light_rail.20.png and b/app/assets/images/browse/light_rail.20.png differ
index 96ffd440c5f9e9ad884e93ed09d2a0f690872cbd..d5dc99f79a867b2544b74fff98de7d0491d8642c 100644 (file)
Binary files a/app/assets/images/browse/lighthouse.p.16.png and b/app/assets/images/browse/lighthouse.p.16.png differ
index 54741f3d225c1941f5b38be4dfc40fd48521e77f..93905b4d8a74f5ff87db49edaab9078b4a09c33d 100644 (file)
Binary files a/app/assets/images/browse/military.png and b/app/assets/images/browse/military.png differ
index 1448b3ee27dcf67e4825ed3138fa10959c026a61..7d89ec4e6cc98d359a48e10d7606601c96a7a96b 100644 (file)
Binary files a/app/assets/images/browse/mini_round.p.16.png and b/app/assets/images/browse/mini_round.p.16.png differ
index c89fa12a8ad63bab3b3ddbb0bb3ca2acd8c0ed6f..183c7941167501914e2335c029ef69480483ca01 100644 (file)
Binary files a/app/assets/images/browse/motorway.20.png and b/app/assets/images/browse/motorway.20.png differ
index c58d306834df72607b299e97a34acbac0893ed73..c587c04d36b71f46319f697a9b95ad52fb795165 100644 (file)
Binary files a/app/assets/images/browse/museum.p.16.png and b/app/assets/images/browse/museum.p.16.png differ
index fac6f1fb97d420ec7266b94a5e8364ef70af1b96..a60755dd068dae9d0c0aec4c5c7ff887adc69e54 100644 (file)
Binary files a/app/assets/images/browse/park.png and b/app/assets/images/browse/park.png differ
index 51660458a6dff36ccfaa68ff126ca7d4b923b92b..dfe1dee6804fa9ff8cacd543baf1fda6a5e60192 100644 (file)
Binary files a/app/assets/images/browse/parking.p.16.png and b/app/assets/images/browse/parking.p.16.png differ
index 13a090e8911ad30a473be5a6de92c55fcd383c88..d4ff508cc05392f1d16cfe794bff336a793506ae 100644 (file)
Binary files a/app/assets/images/browse/path.20.png and b/app/assets/images/browse/path.20.png differ
index fb1c56c8655a9d225c9c48c671dd2b2555f0b745..1541837a8f06aca892bc6b4ea0af83048d57de12 100644 (file)
Binary files a/app/assets/images/browse/pharmacy.p.16.png and b/app/assets/images/browse/pharmacy.p.16.png differ
index 68333b7a4fad035e45b2462856530e7672c26064..a49af3010c6c247c37ce4ffea26e1c05b4b61aa3 100644 (file)
Binary files a/app/assets/images/browse/pitch.png and b/app/assets/images/browse/pitch.png differ
index 95494f59c78ec01c0e5953662b3cb0e6517aa66e..a45cd9ca027ee43a5eeda6d841f7559c5ab42ac9 100644 (file)
Binary files a/app/assets/images/browse/place_of_worship.png and b/app/assets/images/browse/place_of_worship.png differ
index 08b8329632dc178d94ae9ef23efeed3dcfeb494a..f4db652ce5cc0a32d2600f5b36e2fecd76e4d3c7 100644 (file)
Binary files a/app/assets/images/browse/place_of_worship_unknown3.p.16.png and b/app/assets/images/browse/place_of_worship_unknown3.p.16.png differ
index 2dd87aaf2ef20c1dcd08fc640a2572de85f2908f..e9482854a788c11e88a5eff91308116eba70dd4d 100644 (file)
Binary files a/app/assets/images/browse/police.p.16.png and b/app/assets/images/browse/police.p.16.png differ
index 3119cc135629b89585f14ed279fffa92d5b2557b..7c1656d02e82e018e85a9c7e6afabbc191f44d15 100644 (file)
Binary files a/app/assets/images/browse/post_box.p.16.png and b/app/assets/images/browse/post_box.p.16.png differ
index 743255eb0f119d667ec0ddc67e568e0b39b4f21a..d1e2b4dd4f4195d246ce9df181f527cb476c711c 100644 (file)
Binary files a/app/assets/images/browse/post_office.p.16.png and b/app/assets/images/browse/post_office.p.16.png differ
index 668e25d71465161114ebc8145621ce3e50e66a93..7a6efb4c8ea66dceb637509a373b6ea31df6334e 100644 (file)
Binary files a/app/assets/images/browse/primary.20.png and b/app/assets/images/browse/primary.20.png differ
index 4b2fc4015c905b26e737ec3e1dfb11c5fd7a9a44..7971e1e0f787a3d061b7ea332d566d55e40ac7f3 100644 (file)
Binary files a/app/assets/images/browse/prison.p.16.png and b/app/assets/images/browse/prison.p.16.png differ
index b452a7eadc5971e8038982b672449b913a0b318d..6169f80010938cc848ad325c7d87685c24096e14 100644 (file)
Binary files a/app/assets/images/browse/pub.p.16.png and b/app/assets/images/browse/pub.p.16.png differ
index f93a6ef8a9a454e9cd374b088b3a4a3ab88f5bc5..127bde7243c4241400523db8ed2124fd8d27dd69 100644 (file)
Binary files a/app/assets/images/browse/rail.20.png and b/app/assets/images/browse/rail.20.png differ
index 59eb331aaa16521883dab2d046af93a384335d90..83fdd36f074cba5ec5a79c6456fc9cdd457d4c74 100644 (file)
Binary files a/app/assets/images/browse/recycling.p.16.png and b/app/assets/images/browse/recycling.p.16.png differ
index cf16376f6f04a2b43c09fc8e292fb4f32e6d3006..e1aa792fc4e92bdfd567ab1dab6e54b5d6ff1d74 100644 (file)
Binary files a/app/assets/images/browse/reserve.png and b/app/assets/images/browse/reserve.png differ
index 67c2e34e0c9db0229bc41a65fb4eb8cc977b0f25..e3b850e465fbf8fe881704fecb5cac1cc6ab57f9 100644 (file)
Binary files a/app/assets/images/browse/residential.png and b/app/assets/images/browse/residential.png differ
index 5c410087be8006b1fa242ad6184297ea1145110b..e9e360c0cdfeebc869a2491ce872762beec093de 100644 (file)
Binary files a/app/assets/images/browse/restaurant.p.16.png and b/app/assets/images/browse/restaurant.p.16.png differ
index cc9621111a3292f9d362acbdfd3aba77cb166888..23b097ba4e86c5dcca02b81bc353ffd8921a42f9 100644 (file)
Binary files a/app/assets/images/browse/retail.png and b/app/assets/images/browse/retail.png differ
index dac187ff10270041626caaa0f9b71b59621683ff..de044be1ace97e61cad015d73a9c557456e468f4 100644 (file)
Binary files a/app/assets/images/browse/runway.20.png and b/app/assets/images/browse/runway.20.png differ
index ea35d02aa1812160d70a03e3f5e9acac3473ff75..9361041fcc565c70f9bd30d1d72ab787cb9ad8dd 100644 (file)
Binary files a/app/assets/images/browse/school.png and b/app/assets/images/browse/school.png differ
index f6a758ed942c1df004641e906f1ba9a590597781..dfdfd1bfbee16226013df291ee95ec5294a1eb77 100644 (file)
Binary files a/app/assets/images/browse/secondary.20.png and b/app/assets/images/browse/secondary.20.png differ
index b28d744dde2e918db5ddf661808435745e32dad7..e88a602731d1889156a506fddd556df49418d9fd 100644 (file)
Binary files a/app/assets/images/browse/service.20.png and b/app/assets/images/browse/service.20.png differ
index 09ea5305463cfa13ab9847362544556ba26f180a..38ea444a6d1de41b1f37880172e10d93ca751111 100644 (file)
Binary files a/app/assets/images/browse/shelter2.p.16.png and b/app/assets/images/browse/shelter2.p.16.png differ
index 89de12eb5e58174c2abf4c41913ffae9dcc695f8..27ae96b14006c8a00f6d862515589698d2f45ed9 100644 (file)
Binary files a/app/assets/images/browse/shop_bakery.p.16.png and b/app/assets/images/browse/shop_bakery.p.16.png differ
index d0b3680f01a75efd5ca3d9f9c31b4436224193f2..5bb99b9c8949ca12bb7dfb8b1d02e5b1048299ae 100644 (file)
Binary files a/app/assets/images/browse/shop_bicycle.p.16.png and b/app/assets/images/browse/shop_bicycle.p.16.png differ
index dc241d2020b71db4e31f34393ec33f03e001e1e9..46e9b363d5303ace27c1d73a833c74a4e8346c45 100644 (file)
Binary files a/app/assets/images/browse/shop_books.p.16.png and b/app/assets/images/browse/shop_books.p.16.png differ
index 8ff574093f4a6af9940ecd358aee1ee8a61d8bde..0341f9c3b9d90a4cadd0f60dc2a4b02fa828e8f2 100644 (file)
Binary files a/app/assets/images/browse/shop_butcher.p.16.png and b/app/assets/images/browse/shop_butcher.p.16.png differ
index b028a1cdef7f4974fbc79252763dac2fd5208910..973b6178f266a4c44446a4925b5f1a911734fc62 100644 (file)
Binary files a/app/assets/images/browse/shop_clothes.p.16.png and b/app/assets/images/browse/shop_clothes.p.16.png differ
index 2fc7584d5ced273fda88dbfda7412aa26fbcd40c..21257fe4275dc7bfc46f99fbc260658374336ec3 100644 (file)
Binary files a/app/assets/images/browse/shop_convenience.p.16.png and b/app/assets/images/browse/shop_convenience.p.16.png differ
index b1954ab91dffe4c361692a34f73fd694bd55138e..7cd1af6f8ebfaa0242cf739ad1d4a92b194d2c5c 100644 (file)
Binary files a/app/assets/images/browse/shop_diy.p.16.png and b/app/assets/images/browse/shop_diy.p.16.png differ
index fc2cecff5d4deab91c6d1fda3bd14fae964c73ae..9e7835f24512d686be503d730812ae5f47562129 100644 (file)
Binary files a/app/assets/images/browse/shop_estateagent2.p.16.png and b/app/assets/images/browse/shop_estateagent2.p.16.png differ
index 7e0eabbbd0ec46a9802cc77d27d822f767fe5f6c..53e352286d120cda60bf93e72c68a5b4fc123c8d 100644 (file)
Binary files a/app/assets/images/browse/shop_fish.p.16.png and b/app/assets/images/browse/shop_fish.p.16.png differ
index ca07d4302b0a08bcecc9aa875d7065f645212600..897455532faaabe41dbe53c813bd05b8eccda499 100644 (file)
Binary files a/app/assets/images/browse/shop_garden_centre.p.16.png and b/app/assets/images/browse/shop_garden_centre.p.16.png differ
index ac084f5fa47c5b71c38b0fb12666c322f79b0644..35b38f5a82b05376a8e1067b917c9d10ea276474 100644 (file)
Binary files a/app/assets/images/browse/shop_gift.p.16.png and b/app/assets/images/browse/shop_gift.p.16.png differ
index abb2c5231e9e58242fc8f480fa0cd27eea0b8eca..b9fd7e13745d94f0201e187e34f6969e9877a695 100644 (file)
Binary files a/app/assets/images/browse/shop_greengrocer.p.16.png and b/app/assets/images/browse/shop_greengrocer.p.16.png differ
index aa783f260f632fa56773a3df01867445161f5dac..799c004b990483557bfa103395de794380c4ef81 100644 (file)
Binary files a/app/assets/images/browse/shop_hairdresser.p.16.png and b/app/assets/images/browse/shop_hairdresser.p.16.png differ
index bb9825596728dd72574568845fdc07dc4bce2c26..5b0405ec2e633256d4b0127c83140923b78d5146 100644 (file)
Binary files a/app/assets/images/browse/shop_jewelry.p.16.png and b/app/assets/images/browse/shop_jewelry.p.16.png differ
index 3b4338a96e7295b9dfa15728383590d72124b7ca..cfd5577e395acd6da52ae196bd908bc9db9d8d76 100644 (file)
Binary files a/app/assets/images/browse/shop_supermarket.p.16.png and b/app/assets/images/browse/shop_supermarket.p.16.png differ
index f10492d70ec1dca619a0e910f87e2373fbbed7fc..2ecb17ed869dcd46350e43c275c45c33d485f211 100644 (file)
Binary files a/app/assets/images/browse/station.p.16.png and b/app/assets/images/browse/station.p.16.png differ
index 56b89b03de49a1802880a2a282c96f58a7a402cf..d80cc8792cf02cf0e927dde0793281f44e1467fd 100644 (file)
Binary files a/app/assets/images/browse/subway.20.png and b/app/assets/images/browse/subway.20.png differ
index 3fb1dba7a689a303fc5bd31227936f495205fd79..78507b4ec20b5eacb59278531d9610059f50a6a9 100644 (file)
Binary files a/app/assets/images/browse/taxiway.20.png and b/app/assets/images/browse/taxiway.20.png differ
index 29378e44b97b329311faae2874863c633dcabf50..c2e9b1296576bd4265d1e9908eda0cfa3926d8fd 100644 (file)
Binary files a/app/assets/images/browse/telephone.p.16.png and b/app/assets/images/browse/telephone.p.16.png differ
index 3dd7528c18964028a687983607634a8d775b94d5..49a51f113e405755c9689dbe271dc49fe2a52141 100644 (file)
Binary files a/app/assets/images/browse/tertiary.20.png and b/app/assets/images/browse/tertiary.20.png differ
index 6e0feab5ce3bb148a38857c100195f5f69e2c9ec..a49cd447bcfad8f5b292f9653e7204dc0758f854 100644 (file)
Binary files a/app/assets/images/browse/theatre.p.16.png and b/app/assets/images/browse/theatre.p.16.png differ
index 353208cf7c49b297bfa81b25ba2e9c837d6b7b3f..25cdb3d047a88b416e36c8f73d3c06e6f13a5e75 100644 (file)
Binary files a/app/assets/images/browse/toilets.p.16.png and b/app/assets/images/browse/toilets.p.16.png differ
index c70be84d79333d7dbc295217baa1292f15388c8b..3ba099aa71e854a358b27cd1e519e75f70e3b6a4 100644 (file)
Binary files a/app/assets/images/browse/tourism.png and b/app/assets/images/browse/tourism.png differ
index 477166750e6ca973266e7e54a78652ee73d0a027..085783cd24ee2b2084590c120183c47708a1470e 100644 (file)
Binary files a/app/assets/images/browse/tourist_castle.p.16.png and b/app/assets/images/browse/tourist_castle.p.16.png differ
index 0db93d7291ca20ee454d5445e9ad5dfd45514e49..f9dfa1ab53237b5c1a0102b17fe620d8c15db231 100644 (file)
Binary files a/app/assets/images/browse/tourist_memorial.p.16.png and b/app/assets/images/browse/tourist_memorial.p.16.png differ
index 5c468aa1922063fa384b7662bec1c6589261398b..d41ea997c90fc370f3441ccf2428404fe2250e6b 100644 (file)
Binary files a/app/assets/images/browse/tourist_monument.p.16.png and b/app/assets/images/browse/tourist_monument.p.16.png differ
index 0eff097bfba8cb660bab7077741c6a78b59ab93b..d221bf01f4cba917cd72097603f8cf49ae9bbb49 100644 (file)
Binary files a/app/assets/images/browse/tourist_picnic.p.16.png and b/app/assets/images/browse/tourist_picnic.p.16.png differ
index 804672ec6955ad475aef697498bbfefd7c35b09d..ad7c3f1994bab6e0366c92e564d4eadbe9c6fb26 100644 (file)
Binary files a/app/assets/images/browse/tourist_ruins.p.16.png and b/app/assets/images/browse/tourist_ruins.p.16.png differ
index 9ec568cc60ae25e31c611bd8179a0bd6d5414870..ea000cfae911e974365029278e6bd5ffa70bea07 100644 (file)
Binary files a/app/assets/images/browse/tourist_windmill.p.16.png and b/app/assets/images/browse/tourist_windmill.p.16.png differ
index eb190e2071418b068ea543f6f1aeeed1d213e2b8..b01f19bac6870caa3e792893fe7a8e622c704670 100644 (file)
Binary files a/app/assets/images/browse/tourist_wreck.p.16.png and b/app/assets/images/browse/tourist_wreck.p.16.png differ
index 36e579e20a10a5f144627e9d6356a0f8425f343a..074485b3953ac2d3a93c9ad4cebe742c983a55d6 100644 (file)
Binary files a/app/assets/images/browse/track.20.png and b/app/assets/images/browse/track.20.png differ
index 1c2b3ca7b809175517a59d5f7e0d424c47223abe..bc279925fa7a84a62f54fefbf56bd7afaf149afd 100644 (file)
Binary files a/app/assets/images/browse/traffic_light.png and b/app/assets/images/browse/traffic_light.png differ
index 092ec65e5bdc4f002e7df9093fc2aea0c54a1711..9cbd104be079d50fff55d6ae5bd1bdba9786c328 100644 (file)
Binary files a/app/assets/images/browse/tram.20.png and b/app/assets/images/browse/tram.20.png differ
index ff988ba550af54110c0fb6d54a0b1ef46cfb6f9c..85b706f6579ca711bcdbf98d183aa4b17506dc5b 100644 (file)
Binary files a/app/assets/images/browse/transport_parking_bicycle.p.16.png and b/app/assets/images/browse/transport_parking_bicycle.p.16.png differ
index edf986c1e91012a52b80fef45f65a8fb514ed2b2..1a46fba70fcd59c226e204b9f5666b423e129025 100644 (file)
Binary files a/app/assets/images/browse/transport_rental_bicycle.p.16.png and b/app/assets/images/browse/transport_rental_bicycle.p.16.png differ
index b5fc399c881a599d1d943dfa58cf3cfb86cfe272..7874729a7d9707b5bf7a84c7a09fc0e96bab83f5 100644 (file)
Binary files a/app/assets/images/browse/transport_rental_car.p.16.png and b/app/assets/images/browse/transport_rental_car.p.16.png differ
index c8c3067af7d3279a89cc23c90b43d9fb9f970277..3c17f03a4b7eaed5faa54349ef4e9564c5d70eb0 100644 (file)
Binary files a/app/assets/images/browse/tree.p.16.png and b/app/assets/images/browse/tree.p.16.png differ
index 25b374f3618935851fec7bcf96e1275f5fd37eda..930de64e7724883bac5f4cc3c8a24cd93c35ee5c 100644 (file)
Binary files a/app/assets/images/browse/trunk.20.png and b/app/assets/images/browse/trunk.20.png differ
index 49cd98f19a22dc58f0ceff4ce88dc4fc87947281..bc5ee83a40978747aa8eba4b2441b71df336b442 100644 (file)
Binary files a/app/assets/images/browse/tunnel.20.png and b/app/assets/images/browse/tunnel.20.png differ
index d29def0ff0167460fe832868579de5bc7d2b0ac9..c31c6c80ce8ca0c3f396306e0cf4b1b20bf29cf2 100644 (file)
Binary files a/app/assets/images/browse/turning_circle.p.16.png and b/app/assets/images/browse/turning_circle.p.16.png differ
index 2f687c171dc198ddeb1f2736089933abc5c6ec26..1eebbd9b25631f636d7ac228449b8f04bedb72fc 100644 (file)
Binary files a/app/assets/images/browse/unclassified.20.png and b/app/assets/images/browse/unclassified.20.png differ
index b18660c86a7fb794a172e3bf1d2673487823034d..5f9d81ab7b6ae12c878e0c7c1e0ca82b1aee0ea9 100644 (file)
Binary files a/app/assets/images/browse/view_point.p.16.png and b/app/assets/images/browse/view_point.p.16.png differ
index 12dffce4e23b599d5a79ab10d83f6392de636cf1..a2ce43ae2192ef0c3542b8ae6ba3847d7a8be8ea 100644 (file)
Binary files a/app/assets/images/browse/wall.20.png and b/app/assets/images/browse/wall.20.png differ
index 1bebdfa47447dd4aa4f7eb46ae44f9521edfaf83..329bfa483b1d90e4c1e30a01fc6df1fb6b3bb0d7 100644 (file)
Binary files a/app/assets/images/browse/wood.png and b/app/assets/images/browse/wood.png differ
index f0a944e0b89642ae282047846e55393007b04686..5749f65b87fe31911a44d659727db630f735a9e4 100644 (file)
Binary files a/app/assets/images/cc_button.png and b/app/assets/images/cc_button.png differ
index ea434e90e5578f26d02ce90da7666dbb051ad97e..96a2592e1ec89ab75f5f0101959f9505433588bc 100644 (file)
Binary files a/app/assets/images/closed_note_marker@2x.png and b/app/assets/images/closed_note_marker@2x.png differ
index ad673d547ac6a67f50e9c03df6b2845fe48f793c..08a954a45790756c9bb992ae14b5dd0691eb4dea 100644 (file)
Binary files a/app/assets/images/confirm-illustration.png and b/app/assets/images/confirm-illustration.png differ
index 8d52074038784498732c1e6001a995e8c1cb6130..39f6bc2080a21f9264799f610dfcff5c45270c81 100644 (file)
Binary files a/app/assets/images/google.png and b/app/assets/images/google.png differ
index db9b50616a2ef51ec11366fa36ab688692cf6f6e..0cae05889c9a670e2354cb9aa59ba741a1d618bf 100644 (file)
Binary files a/app/assets/images/key/mapnik/admin.png and b/app/assets/images/key/mapnik/admin.png differ
index 9f8d1baceff2158748e07084b21694cb181b3286..e3977188507d3304e158f6b0a9e1f1eed48c9d41 100644 (file)
Binary files a/app/assets/images/key/mapnik/allotments.png and b/app/assets/images/key/mapnik/allotments.png differ
index ba7ac5427b1611ad0c4db3ad13a36cd36d54764c..bcea5e3fb517b7a02236e7776058aef252c0f8d3 100644 (file)
Binary files a/app/assets/images/key/mapnik/apron.png and b/app/assets/images/key/mapnik/apron.png differ
index c59e05a616bad62b383209679fa2820551a68afa..d388d7b811f2d748741ba6d0fc824bf8f3e95b32 100644 (file)
Binary files a/app/assets/images/key/mapnik/bridge.png and b/app/assets/images/key/mapnik/bridge.png differ
index 53fdd3469bdcd9902123a0400144a510b633d600..9aec1ad3338d7946a52ed75be51a6a00e08de637 100644 (file)
Binary files a/app/assets/images/key/mapnik/bridleway.png and b/app/assets/images/key/mapnik/bridleway.png differ
index 7567846d50583ba07ea2c014bcba35812743800d..c0a12794a4f008f5455d434f52dfb8548d76c3f0 100644 (file)
Binary files a/app/assets/images/key/mapnik/brownfield.png and b/app/assets/images/key/mapnik/brownfield.png differ
index cb24a48d91dfae129bc36f9390f890055469c0d2..bc074feeb8013640d4a5f3cd224462f49f3c909b 100644 (file)
Binary files a/app/assets/images/key/mapnik/building.png and b/app/assets/images/key/mapnik/building.png differ
index 4bb3bdb3ed26e5e5a9d2611b9238a5809ccf9443..3b696ef248f6a875654af41545a00902e44ed670 100644 (file)
Binary files a/app/assets/images/key/mapnik/byway.png and b/app/assets/images/key/mapnik/byway.png differ
index eb391f54135436a37b9b21078840cb332c4858f8..84ff6d8d2bcd4eeae137fb0decb4786187a197ee 100644 (file)
Binary files a/app/assets/images/key/mapnik/cable.png and b/app/assets/images/key/mapnik/cable.png differ
index b0b6670610fb19b14147f65d6dc52c3106c66210..f88f47de0396467d507a97261c8fb4ffafc652c6 100644 (file)
Binary files a/app/assets/images/key/mapnik/cemetery.png and b/app/assets/images/key/mapnik/cemetery.png differ
index 98d5ebe492b414a57fbef24064632e990b88bbf9..a1c4522b795ee7b7e0ba64cef052b7356a07dfd1 100644 (file)
Binary files a/app/assets/images/key/mapnik/centre.png and b/app/assets/images/key/mapnik/centre.png differ
index 2d52c6012a0495dfdc43baa9330819deabdd6bfc..7a2ca5e8d04e5b8308bc12faa2dfea8c462c7075 100644 (file)
Binary files a/app/assets/images/key/mapnik/commercial.png and b/app/assets/images/key/mapnik/commercial.png differ
index c785eb073784351016e8eef5aa6e04918634b265..c1422e7be23162dc9a76fd0a682e0ffed4399da3 100644 (file)
Binary files a/app/assets/images/key/mapnik/common.png and b/app/assets/images/key/mapnik/common.png differ
index 838c08667baef73cdc6f527bb21d2d7fdb31261f..bec836d7e4c367e42fa0baf3f21ebd0eca9998ce 100644 (file)
Binary files a/app/assets/images/key/mapnik/construction.png and b/app/assets/images/key/mapnik/construction.png differ
index 15e793344fefed17d9326068f6c3bf56e8893bfb..a1a16f1edc26b0db39ee436da2e63caf04e7872e 100644 (file)
Binary files a/app/assets/images/key/mapnik/cycleway.png and b/app/assets/images/key/mapnik/cycleway.png differ
index 7368fba21ae12f04e35c68d4956478a86078526b..1fe261dbe60da8734cda4af78491597e1b223715 100644 (file)
Binary files a/app/assets/images/key/mapnik/destination.png and b/app/assets/images/key/mapnik/destination.png differ
index 355352624e6c419defa869f3932ffe77ccf3ebf1..e63e571bbf6505ffa4045270a8f8f7d5f2ddb411 100644 (file)
Binary files a/app/assets/images/key/mapnik/farm.png and b/app/assets/images/key/mapnik/farm.png differ
index 33a35100254e920ac8ced00fe848702df85b869f..4486119baafec27a9cb8fca9ef8327b8b1cc2e09 100644 (file)
Binary files a/app/assets/images/key/mapnik/footway.png and b/app/assets/images/key/mapnik/footway.png differ
index 14c6b4275fe141395ec27305f306cd7cba1ce897..5b341c61dbe32c9bf785b2163770720190530d52 100644 (file)
Binary files a/app/assets/images/key/mapnik/forest.png and b/app/assets/images/key/mapnik/forest.png differ
index ae91f13291b6af78c036e5c74f807b3bed994382..11a623097db4356bfd384688ef73b2f0db14e34a 100644 (file)
Binary files a/app/assets/images/key/mapnik/golf.png and b/app/assets/images/key/mapnik/golf.png differ
index 4238d66b8349ba103ec86f2d7c1dc7e240bec555..d48f9690f3732f2fd7efa613d579292e3d934975 100644 (file)
Binary files a/app/assets/images/key/mapnik/heathland.png and b/app/assets/images/key/mapnik/heathland.png differ
index bc0243c7696165bcf01b87eea76f1d0b1b4e96eb..c5ac802ac5aaff46fd2d061bd22a92fe6d49e6aa 100644 (file)
Binary files a/app/assets/images/key/mapnik/industrial.png and b/app/assets/images/key/mapnik/industrial.png differ
index 28f3a9df9eb3785929b7b97d46c83b42e589dd46..3f16b54d123c8affa6b461ce8ab9a9c9919dfc5f 100644 (file)
Binary files a/app/assets/images/key/mapnik/lake.png and b/app/assets/images/key/mapnik/lake.png differ
index c6a11724aaccbd96adafba50e93ca2e7d6dc81ef..73c82d49eaa748bdbd9bb20eccf0044d068eaeec 100644 (file)
Binary files a/app/assets/images/key/mapnik/military.png and b/app/assets/images/key/mapnik/military.png differ
index 2c962c621650c34cd98737c20aa0e7a0a9a9cf5c..3940c83d2da2b40f304d136c3ecd5ac47bb99a3d 100644 (file)
Binary files a/app/assets/images/key/mapnik/motorway.png and b/app/assets/images/key/mapnik/motorway.png differ
index bce93547368276533e10a1a4244154e0b56149ee..149795a876861f7f0cfd882f441eb288ca5b0dfe 100644 (file)
Binary files a/app/assets/images/key/mapnik/park.png and b/app/assets/images/key/mapnik/park.png differ
index 627b8ad373268c709bb8bd12cbbbd2551401a4d7..d8239f1287e7d7c94f0bcaa72955ed0d33c17475 100644 (file)
Binary files a/app/assets/images/key/mapnik/permissive.png and b/app/assets/images/key/mapnik/permissive.png differ
index 78f5aa17ff5cf8f239d727f3030d07d3eecd004f..98177f60439f303070861fc7a5cd903db1cbb9f6 100644 (file)
Binary files a/app/assets/images/key/mapnik/pitch.png and b/app/assets/images/key/mapnik/pitch.png differ
index 12191ebc437f24044f196cb05e778c19f2570604..a51703c4f065bc956f3e0eba35957011f603ed0e 100644 (file)
Binary files a/app/assets/images/key/mapnik/primary.png and b/app/assets/images/key/mapnik/primary.png differ
index c9b9cd91432e8f5850147939451f9aefd1eef50f..741b13896b60762ccd4a8e157446d8f109b91c83 100644 (file)
Binary files a/app/assets/images/key/mapnik/primary12.png and b/app/assets/images/key/mapnik/primary12.png differ
index 22e7a3a90f24b71153093b56def5886a2376604d..7a5f90042ef480ca94562f101bd6bf7265b5f918 100644 (file)
Binary files a/app/assets/images/key/mapnik/private.png and b/app/assets/images/key/mapnik/private.png differ
index 861f93120fac89d4fcd0676705a34e0ad1e578af..0abf0c1df09c9440b3ce9cf62e0b6fec05b5b914 100644 (file)
Binary files a/app/assets/images/key/mapnik/rail.png and b/app/assets/images/key/mapnik/rail.png differ
index ec87192fb75b8ca2439393fe7a85515969f968c1..957f17c850486bf62e97a2c82465ba2b9f34857f 100644 (file)
Binary files a/app/assets/images/key/mapnik/rail13.png and b/app/assets/images/key/mapnik/rail13.png differ
index 483d43a3c23534516271e73ad2e4e909ff26491c..5e3a79f0d0acb07a8b80d33a76e01d86fcb1e9a9 100644 (file)
Binary files a/app/assets/images/key/mapnik/reserve.png and b/app/assets/images/key/mapnik/reserve.png differ
index 26116d0a105989dd8a12ad75878f28c2d277e991..6ee3c4d2b08b207b8bc19784c79e2e039f6753bc 100644 (file)
Binary files a/app/assets/images/key/mapnik/resident.png and b/app/assets/images/key/mapnik/resident.png differ
index 6469e15bf39886ab217a0e08e87a6fdbddbd61f9..21679921291562f26ac2402f69dd00db35edc7c6 100644 (file)
Binary files a/app/assets/images/key/mapnik/retail.png and b/app/assets/images/key/mapnik/retail.png differ
index 2a0b9d3b9dba9f786bce948dff7b377a65d3bf12..c65672806a6f3d2b50ab2a126f7cb260e5fa48d6 100644 (file)
Binary files a/app/assets/images/key/mapnik/runway.png and b/app/assets/images/key/mapnik/runway.png differ
index c1478c656a7e33db55674a25ebb41c1e40b35097..50f30a2f37b9e9cfeefe938210952d37053cb1b4 100644 (file)
Binary files a/app/assets/images/key/mapnik/school.png and b/app/assets/images/key/mapnik/school.png differ
index 16f2547962c618f496753ec3adab2f81667662d0..cbd457839c28fdc7a811557fa943e1e7a25abac7 100644 (file)
Binary files a/app/assets/images/key/mapnik/secondary.png and b/app/assets/images/key/mapnik/secondary.png differ
index 121670fcf88f8d79868911c461624336afde5e30..b95b18822b5c0d9c1f60c6c5c4552c769c60a3d6 100644 (file)
Binary files a/app/assets/images/key/mapnik/secondary12.png and b/app/assets/images/key/mapnik/secondary12.png differ
index 1a10b1c49b82aa257ed0fd88c18b60a725ff5461..6c36e3c6192ed0b3092aef6687e985231d127fa8 100644 (file)
Binary files a/app/assets/images/key/mapnik/station.png and b/app/assets/images/key/mapnik/station.png differ
index 76ea5e806c205cd17953d586c72c70b92ef5077a..cb42ee2dcf4fe97e5e8eac33c7bae81d6e7b1de0 100644 (file)
Binary files a/app/assets/images/key/mapnik/subway.png and b/app/assets/images/key/mapnik/subway.png differ
index 4a4ec24263102a7cf51f0e54a78e845461b33b87..9dbfcd3608bf26a0ec35878da73631856052dc63 100644 (file)
Binary files a/app/assets/images/key/mapnik/summit.png and b/app/assets/images/key/mapnik/summit.png differ
index df512bb8cfd4385b14568e11bbcdd8da3aa9d33c..bb3cf368609969a516ece6793250d76cc0b186e2 100644 (file)
Binary files a/app/assets/images/key/mapnik/tourist.png and b/app/assets/images/key/mapnik/tourist.png differ
index 60bbbe96c94d84198dfab4f4df1892f56bda80e1..f294edca0960d86ec1ebce40e1b3a78d3302b212 100644 (file)
Binary files a/app/assets/images/key/mapnik/track.png and b/app/assets/images/key/mapnik/track.png differ
index 46f3877ad6ae4b87c0f57b0f22479cd780c1d569..1c64b2877287f1a58218f5a631a3209363894673 100644 (file)
Binary files a/app/assets/images/key/mapnik/tram.png and b/app/assets/images/key/mapnik/tram.png differ
index 690396363286c3f19553bea1ad1cb952894ac598..93611efa3e2bc3621cb1c71daaaa68b79afe4812 100644 (file)
Binary files a/app/assets/images/key/mapnik/trunk.png and b/app/assets/images/key/mapnik/trunk.png differ
index 399e26bb2a85fc375ae3b07b23741447335ce1db..d8becf0208fbbac7117c767cd4995c91be5126cc 100644 (file)
Binary files a/app/assets/images/key/mapnik/trunk12.png and b/app/assets/images/key/mapnik/trunk12.png differ
index cc5b1c32f6ae3c484fa315728fce8c1dca7c69fb..4c52ff4fe5fb90ae3722eaf14724898ca46ad162 100644 (file)
Binary files a/app/assets/images/key/mapnik/tunnel.png and b/app/assets/images/key/mapnik/tunnel.png differ
index 5f3b8c5a59421e833caca8433cf3d853c0680b9b..3cdfb2dda0157645802c4645bb651bb64f6291d0 100644 (file)
Binary files a/app/assets/images/key/mapnik/unclassified.png and b/app/assets/images/key/mapnik/unclassified.png differ
index 5b63d91942f6f6f0f5fd2dfe2083174bb8ff90cf..1a87924622cfeb45b1ab602c9effe7049b0b0b45 100644 (file)
Binary files a/app/assets/images/key/mapnik/unclassified13.png and b/app/assets/images/key/mapnik/unclassified13.png differ
index 2dec21a0d7d185568ec4488fe8e3fa80a882977e..25c21504983fefaf3f04d9b3e4c9d232e6d360d8 100644 (file)
Binary files a/app/assets/images/key/mapnik/unsurfaced.png and b/app/assets/images/key/mapnik/unsurfaced.png differ
index 821781a1c780f03b512cee24730fa8f644c27f81..2413cda6cd2f35e3d07fc38bcee97608a3d6619c 100644 (file)
Binary files a/app/assets/images/key/mapnik/wood.png and b/app/assets/images/key/mapnik/wood.png differ
index c4f3cf3acc3814b04459095648f6f27883db5833..1356dfae5c3932f0e11bf93b127c05bc65ea6110 100644 (file)
Binary files a/app/assets/images/mag_map-rss2.0.png and b/app/assets/images/mag_map-rss2.0.png differ
index 99734b12f4f5bc39a893851ac5493906cbb6655f..f1e16c4852830b41f65c3bd5822996ac4bb06670 100644 (file)
Binary files a/app/assets/images/map_sprite.png and b/app/assets/images/map_sprite.png differ
index 1ac4864d4a0c95a022e19ef38b4544711de39f1e..160a15c08c41c817dfc8dd03dbfaf89f52ff5199 100644 (file)
Binary files a/app/assets/images/map_zoomin.png and b/app/assets/images/map_zoomin.png differ
index d67a87de533e307cb0e95ab2623259d98eb1adae..4fea1e6e493502059b5d4f6ebd4d0c2784f611be 100644 (file)
Binary files a/app/assets/images/map_zoomout.png and b/app/assets/images/map_zoomout.png differ
index 7614b7c7f6816e70965810833819a372ec50620f..98b6726162ba31b42c8a827fc73cf66a054176da 100644 (file)
Binary files a/app/assets/images/marker-blue.png and b/app/assets/images/marker-blue.png differ
index 56a0b1c47ef8524432b9e1f891e27a74b54957b3..f0e64e747fa04ea73fb837f4f141e255c35268a7 100644 (file)
Binary files a/app/assets/images/marker-green.png and b/app/assets/images/marker-green.png differ
index 46c70185a9cce81511db93eaa2a518d00b4fdef6..5ea2a6cc4174c43df080773d46cfa11f1ceee781 100644 (file)
Binary files a/app/assets/images/marker-red.png and b/app/assets/images/marker-red.png differ
index eb6d6ef74c35842986b2cc12641608b69a48efde..394aa5341045b396cace3662b317497d6b91a88d 100644 (file)
Binary files a/app/assets/images/marker-yellow.png and b/app/assets/images/marker-yellow.png differ
index da3f92c5d9b2bef49ae99c106ee68eb058664881..a67c73cf1c30ad943fd951bdfa9a1f3799a26567 100644 (file)
Binary files a/app/assets/images/menu-icon.png and b/app/assets/images/menu-icon.png differ
index 5e410bb8149502b8019644e62000eac51eb34dba..080018f9cb3f747e2781b0a67da5c2b5ea4a97ac 100644 (file)
Binary files a/app/assets/images/myopenid.png and b/app/assets/images/myopenid.png differ
index d6355e0217adb23f6ab401bfa6b9b81ef3004db6..4a9fa8b362368b55aaf0803e286ab10908659635 100644 (file)
Binary files a/app/assets/images/new.png and b/app/assets/images/new.png differ
index 6098079cd7cf1d7b55d281d5d82cc5838c7522fe..756ad6fe5ba510fa4eb3710bb990fd51eb041540 100644 (file)
Binary files a/app/assets/images/new_note_marker@2x.png and b/app/assets/images/new_note_marker@2x.png differ
index a2698d77bae2069880c9fa8ecb63ae107bc6b035..f9285e49b9a9679fc0a7e2cee41e0481e6826663 100644 (file)
Binary files a/app/assets/images/notice.png and b/app/assets/images/notice.png differ
index e465ca918a0748a27d89fd337d511fe4306a428d..84df3f725fba80e4efa08440f9f8209d890355c5 100644 (file)
Binary files a/app/assets/images/open_note_marker@2x.png and b/app/assets/images/open_note_marker@2x.png differ
index dd6f65e9dd1462e3661b862d189a47876882f17a..dc7e01fc094abff1986a76a3a48af2f7a9d00783 100644 (file)
Binary files a/app/assets/images/openid.png and b/app/assets/images/openid.png differ
index b5aa49dfaec71d4b4e6ec803bd2d73f39f94ce1c..954297520c3ee8b4fdb0cf14cab9110b868e724f 100644 (file)
Binary files a/app/assets/images/openid_input.png and b/app/assets/images/openid_input.png differ
index 83bb3028211cbffff861923db88e1dfff91f294f..41adc9fa6e3f26a959a8a96597611ecb7bccacf6 100644 (file)
Binary files a/app/assets/images/openid_small.png and b/app/assets/images/openid_small.png differ
index a2d3671f948fa4b2b130d6b449b73c7a4cccba58..22f116632d5dc879cbba68b3dfed8a853f9dd6c7 100644 (file)
Binary files a/app/assets/images/osm_logo.png and b/app/assets/images/osm_logo.png differ
index 63713fb9a2b90e6397af68d8d71e933465ae15dd..67c4b21cc5cfaae9e6690d9e797b3d609d1b2fcb 100644 (file)
Binary files a/app/assets/images/osm_logo_114.png and b/app/assets/images/osm_logo_114.png differ
index 35a9754505861bcd0cc2719b885cccf1feb5ede1..b24fb1c3acd70fc1125fc6bb4b6c395cd9fb0ac6 100644 (file)
Binary files a/app/assets/images/osm_logo_144.png and b/app/assets/images/osm_logo_144.png differ
index 752d6363b4d7df1cda4ff8843b6200b0e79b0f2a..d387ad25db818df6e6a72ad61e7b9828d2b8edcc 100644 (file)
Binary files a/app/assets/images/osm_logo_228.png and b/app/assets/images/osm_logo_228.png differ
index dc4e6d5aabae84cafba47897060584b3f460e213..2bb1f30e6ee4131b9ac922be764e9131b21473fe 100644 (file)
Binary files a/app/assets/images/osm_logo_72.png and b/app/assets/images/osm_logo_72.png differ
index ea363d25767894e4f65b0c30872590ee08ab5173..6bb919cf625928c3e691a75ea96191e6b6052892 100644 (file)
Binary files a/app/assets/images/roles/administrator.png and b/app/assets/images/roles/administrator.png differ
index 7dc30728432a846e55ac2c1c368845b96424b032..1608387c804ae933708172de8fdc4d6858a979da 100644 (file)
Binary files a/app/assets/images/roles/blank_moderator.png and b/app/assets/images/roles/blank_moderator.png differ
index 5f780299ed0166d561cdc9221c996d3750f972ab..5c837b00b91a95b6aa550ed3d2a5b2fce497aaaf 100644 (file)
Binary files a/app/assets/images/sign-up-illustration-arm.png and b/app/assets/images/sign-up-illustration-arm.png differ
index 0a92b9c5b1fca49e26d5a9fc662b68c3aa3ab9a3..e785ec602821bb9b5e6ac3a1854ac968a939e1bb 100644 (file)
Binary files a/app/assets/images/sign-up-illustration.png and b/app/assets/images/sign-up-illustration.png differ
index 05bb1466be7a228488f3abe70b79f99d51ea5f87..a6c5449fdbdab5e21b7193d42239844f61843de5 100644 (file)
Binary files a/app/assets/images/sotm-birmingham-ad.png and b/app/assets/images/sotm-birmingham-ad.png differ
index c1ab6f26145c7b4f6deadebe36b38d388d166049..c775396c0c2eacc78b99c0e7ab5e863b8b1d855b 100644 (file)
Binary files a/app/assets/images/sotm-us-ad.png and b/app/assets/images/sotm-us-ad.png differ
index e3ed0e7f81185d93ae6d75b8aab27d20d521242a..d5577d4b7121a50486799d697e50f189dcfc835f 100644 (file)
Binary files a/app/assets/images/sprite.png and b/app/assets/images/sprite.png differ
index 475da0e87e5ead68479c8c5037c67a3dca064485..7c32f4f30257d4bdf9deeeea30bc3f4d9ea230c2 100644 (file)
Binary files a/app/assets/images/terms-illustration.png and b/app/assets/images/terms-illustration.png differ
index ec0a7fde6e15d7b4b1974bc7c3684b91d38c70f8..c33266c56b867643e72bd933063e1961848cc1be 100644 (file)
Binary files a/app/assets/images/users/images/large.png and b/app/assets/images/users/images/large.png differ
index 19fd092ccd6dfbdf98a5c4c1040509387f9a1ac7..7e3f60130b06c184ba78651b33f5ef490dd37e0c 100644 (file)
Binary files a/app/assets/images/users/images/small.png and b/app/assets/images/users/images/small.png differ
index 969c53f964f2ca669eecf7892d20dc8891c06509..f904f00cddbb73d0b88c7990956414b70e093b60 100644 (file)
Binary files a/app/assets/images/welcome-sprite.png and b/app/assets/images/welcome-sprite.png differ
index 21e22ed41bb753462f7f3443e31adcaf9f8a06f4..6f63efc2c95ac736b2676badb256ac1a73081c86 100644 (file)
Binary files a/app/assets/images/wordpress.png and b/app/assets/images/wordpress.png differ
index 7bd439d4f72c003b361972f4088cb7b061f28c7e..2a9c4a4f3529e6a3996753aebd7221f1e7259eff 100644 (file)
Binary files a/app/assets/images/yahoo.png and b/app/assets/images/yahoo.png differ
index 66dfa5b6fac3975a2c00daa6b651d76034303ef0..afb6b3d6546b3de788bf0a834c0c6db72ac3b494 100644 (file)
@@ -236,6 +236,10 @@ $(document).ready(function () {
     };
 
     page.load = function() {
+      var params = querystring.parse(location.search.substring(1));
+      if (params.query) {
+        $("#sidebar .search_form input[name=query]").value(params.query);
+      }
       if (!("autofocus" in document.createElement("input"))) {
         $("#sidebar .search_form input[name=query]").focus();
       }
index 30b6349fde6ac0e7ea5c2add73a9f356350dfa79..a8f4feb786a9d44fa9a280f4d3968bfdf35a532b 100644 (file)
@@ -2,6 +2,16 @@
 //= require_tree ./directions_engines
 
 OSM.Directions = function (map) {
+  $(".directions_form a.directions_close").on("click", function(e) {
+    e.preventDefault();
+    var route_from = $(e.target).parent().parent().parent().find("input[name=route_from]").val();
+    if (route_from) {
+      OSM.router.route("/?query=" + encodeURIComponent(route_from) + OSM.formatHash(map));
+    } else {
+      OSM.router.route("/" + OSM.formatHash(map));
+    }
+  });
+
   var awaitingGeocode; // true if the user has requested a route, but we're waiting on a geocode result
   var awaitingRoute;   // true if we've asked the engine for a route and are waiting to hear back
   var dragging;        // true if the user is dragging a start/end point
@@ -22,8 +32,8 @@ OSM.Directions = function (map) {
   });
 
   var endpoints = [
-    Endpoint($("input[name='route_from']"), <%= asset_path('marker-green.png').to_json %>),
-    Endpoint($("input[name='route_to']"),   <%= asset_path('marker-red.png').to_json %>)
+    Endpoint($("#content input[name='route_from']"), <%= asset_path('marker-green.png').to_json %>),
+    Endpoint($("#content input[name='route_to']"),   <%= asset_path('marker-red.png').to_json %>)
   ];
 
   function Endpoint(input, iconUrl) {
@@ -52,10 +62,23 @@ OSM.Directions = function (map) {
     });
 
     input.on("change", function (e) {
+      endpoint.getGeocode();
+    });
+
+    endpoint.getGeocode = function() {
+      var value = input.val();
+
+      // if no one has entered a value yet, then we can't geocode, so don't
+      // even try.
+      if (!value) {
+        return;
+      }
+
       endpoint.awaitingGeocode = true;
 
-      $.getJSON('<%= NOMINATIM_URL %>search?q=' + encodeURIComponent(e.target.value) + '&format=json', function (json) {
+      $.getJSON('<%= NOMINATIM_URL %>search?q=' + encodeURIComponent(value) + '&format=json', function (json) {
         endpoint.awaitingGeocode = false;
+        endpoint.hasGeocode = true;
 
         if (json.length == 0) {
           alert(I18n.t('javascripts.directions.errors.no_place'));
@@ -74,11 +97,12 @@ OSM.Directions = function (map) {
           getRoute();
         }
       });
-    });
+    }
 
     endpoint.setLatLng = function (ll) {
       var precision = OSM.zoomPrecision(map.getZoom());
       input.val(ll.lat.toFixed(precision) + ", " + ll.lng.toFixed(precision));
+      endpoint.hasGeocode = true;
       endpoint.latlng = ll;
       endpoint.marker
         .setLatLng(ll)
@@ -115,6 +139,15 @@ OSM.Directions = function (map) {
   }
 
   function getRoute() {
+    // go fetch geocodes for any endpoints which have not already
+    // been geocoded.
+    for (var ep_i = 0; ep_i < 2; ++ep_i) {
+      var endpoint = endpoints[ep_i];
+      if (!endpoint.hasGeocode && !endpoint.awaitingGeocode) {
+        endpoint.getGeocode();
+        awaitingGeocode = true;
+      }
+    }
     if (endpoints[0].awaitingGeocode || endpoints[1].awaitingGeocode) {
       awaitingGeocode = true;
       return;
@@ -133,14 +166,16 @@ OSM.Directions = function (map) {
              d.lat.toFixed(precision) + ',' + d.lng.toFixed(precision)
     }));
 
-    $(".directions_form .spinner").show();
+    // copy loading item to sidebar and display it. we copy it, rather than
+    // just using it in-place and replacing it in case it has to be used
+    // again.
+    $('#sidebar_content').html($('.directions_form .loader_copy').html());
     awaitingRoute = true;
+    map.setSidebarOverlaid(false);
 
     chosenEngine.getRoute([o, d], function (err, route) {
       awaitingRoute = false;
 
-      $(".directions_form .spinner").hide();
-
       if (err) {
         map.removeLayer(polyline);
 
@@ -155,8 +190,6 @@ OSM.Directions = function (map) {
         .setLatLngs(route.line)
         .addTo(map);
 
-      map.setSidebarOverlaid(false);
-
       if (!dragging) {
         map.fitBounds(polyline.getBounds().pad(0.05));
       }
@@ -220,6 +253,14 @@ OSM.Directions = function (map) {
       $('#sidebar_content').append('<p id="routing_credit">' +
         I18n.t('javascripts.directions.instructions.courtesy', {link: chosenEngine.creditline}) +
         '</p>');
+
+      $('#sidebar_content a.geolink').on('click', function(e) {
+        e.preventDefault();
+        map.removeLayer(polyline);
+        $('#sidebar_content').html('');
+        map.setSidebarOverlaid(true);
+        // TODO: collapse width of sidebar back to previous
+      });
     });
   }
 
@@ -290,6 +331,10 @@ OSM.Directions = function (map) {
       setEngine(params.engine);
     }
 
+    if (params.from) {
+      $(".directions_form input[name='route_from']").val(params.from);
+    }
+
     var o = route[0] && L.latLng(route[0].split(',')),
         d = route[1] && L.latLng(route[1].split(','));
 
index 1f45a687278a37a797576628107037830cb9751a..29916272e6285dfd51db9af120f3119e9944989d 100644 (file)
@@ -95,14 +95,20 @@ OSM.Query = function(map) {
         if (prefixes[key]) {
           if (prefixes[key][value]) {
             return prefixes[key][value];
-          } else {
-            var first = value.substr(0, 1).toUpperCase(),
-              rest = value.substr(1).replace(/_/g, " ");
-
-            return first + rest;
           }
         }
       }
+
+      for (var key in tags) {
+        var value = tags[key];
+
+        if (prefixes[key]) {
+          var first = value.substr(0, 1).toUpperCase(),
+            rest = value.substr(1).replace(/_/g, " ");
+
+          return first + rest;
+        }
+      }
     }
 
     if (!prefix) {
index 46f756f3bc017275fb0c1a51b112d54c65d0aea7..08d2dc96c92b178c7ee10e0d1640ff4b7347c083 100644 (file)
@@ -9,6 +9,16 @@ OSM.Search = function(map) {
     }
   });
 
+  $(".search_form a.button.switch_link").on("click", function(e) {
+    e.preventDefault();
+    var query = $(e.target).parent().parent().find("input[name=query]").val();
+    if (query) {
+      OSM.router.route("/directions?from=" + encodeURIComponent(query) + OSM.formatHash(map));
+    } else {
+      OSM.router.route("/directions" + OSM.formatHash(map));
+    }
+  });
+
   $(".search_form").on("submit", function(e) {
     e.preventDefault();
     $("header").addClass("closed");
index c0f72af208eee184b3e0de58e0f2bcd3bb9216de..0df22eb57f479825aeec2a9515f032371934966e 100644 (file)
@@ -16,7 +16,7 @@ L.OSM.note = function (options) {
     update();
 
     function update() {
-      var disabled = map.getZoom() < 12;
+      var disabled = OSM.STATUS === "database_offline" || map.getZoom() < 12;
       link
         .toggleClass('disabled', disabled)
         .attr('data-original-title', I18n.t(disabled ?
index d327296f63621e97aacecd7e4b7bdbd043134540..19b5619a2558cef99ab7deec512841dd487d9eff 100644 (file)
@@ -11,7 +11,7 @@ if (OSM.PIWIK) {
         piwikTracker = Piwik.getTracker(base + "piwik.php", OSM.PIWIK.site);
       
         if (OSM.user) {
-          piwikTracker.setUserId(OSM.user);
+          piwikTracker.setUserId(OSM.user.toString());
         }
 
         piwikTracker.trackPageView();
index d6549e740debff83c5a316f3a717d1b3b4ee230c..7efe76cb116060cc10d5a76d372bd685b7c36003 100644 (file)
@@ -948,6 +948,15 @@ header .search_forms,
     border-radius: 0 2px 2px 0;
   }
 
+  select {
+    border-radius: $border-radius;
+        border: $border;
+        background-color: white;
+        /* this next line is to polyfill the vertical alignment of text within a select element,
+         * which is different between firefox and chrome. */
+        padding: 0.3em 0;
+  }
+
   .query_options {
     text-align: right;
     font-size: 10px;
@@ -2109,7 +2118,8 @@ a.button {
   input[type="submit"],
   input[type="button"],
   input[type="reset"],
-  .button {
+  .button,
+  .button_to {
     box-sizing: border-box;
     float: left;
     border-radius: 0;
@@ -2122,30 +2132,36 @@ a.button {
     overflow: hidden;
   }
   input:first-child,
-  .button:first-child {
+  .button:first-child,
+  .button_to:first-child {
     border-radius:2px 0 0 2px;
   }
   input:last-child,
-  .button:last-child {
+  .button:last-child,
+  .button_to:last-child {
     border-radius:0 2px 2px 0;
     border-right-width: 0;
   }
   input:only-child,
   .button:only-child,
+  .button_to:only-child,
   *[value="Hide"] + input:last-child,
-  *[value="Hide"] + .button:last-child {
+  *[value="Hide"] + .button:last-child,
+  *[value="Hide"] + .button_to:last-child {
     border-radius:2px;
     border-right-width: 0;
   }
     /* if a 3-button set has a hidden middle button */
   *[value="Hide"] + input:nth-child(3),
-  *[value="Hide"] + .button:nth-child(3) {
+  *[value="Hide"] + .button:nth-child(3),
+  *[value="Hide"] + .button_to:nth-child(3) {
     border-radius:0 2px 2px 0;
     border-right-width: 0;
   }
   /* if a 3-button set starts with a hidden button */
   *[value="Hide"] + input:nth-child(2):not(:last-child),
-  *[value="Hide"] + .button:nth-child(2):not(:last-child) {
+  *[value="Hide"] + .button:nth-child(2):not(:last-child),
+  *[value="Hide"] + .button_to:nth-child(2):not(:last-child) {
     border-radius:2px 0 0 2px;
     border-right-width: 1px;
   }
index 989444a62d77999c5f96dfa5b935122833623250..eb363459c22854b1ec15be3ba9a1400c3d5f46ab 100644 (file)
@@ -16,3 +16,4 @@ $sidebarWidth: 350px;
 $keyline: 1px solid $lightgrey;
 $border-radius: 3px;
 $list-highlight: #FFFFE6;
+$border: 1px solid $grey;
index 90a9672760755a6ee060e8540cb6fc71ea041d5d..bd4a629482b6be70a8639c35533aba09368c6508 100644 (file)
@@ -192,14 +192,22 @@ class ApplicationController < ActionController::Base
 
   def check_database_readable(need_api = false)
     if STATUS == :database_offline or (need_api and STATUS == :api_offline)
-      redirect_to :controller => 'site', :action => 'offline'
+      if request.xhr?
+        report_error "Database offline for maintenance", :service_unavailable
+      else
+        redirect_to :controller => 'site', :action => 'offline'
+      end
     end
   end
 
   def check_database_writable(need_api = false)
     if STATUS == :database_offline or STATUS == :database_readonly or
        (need_api and (STATUS == :api_offline or STATUS == :api_readonly))
-      redirect_to :controller => 'site', :action => 'offline'
+      if request.xhr?
+        report_error "Database offline for maintenance", :service_unavailable
+      else
+        redirect_to :controller => 'site', :action => 'offline'
+      end
     end
   end
 
index f0b92f4b47a33e7f8fbe7208348598f7b5b61cca..f60957ff7db3733ae1a7cb4c3b20f8457056e59c 100644 (file)
@@ -3,7 +3,7 @@ class BrowseController < ApplicationController
 
   before_filter :authorize_web  
   before_filter :set_locale 
-  before_filter { |c| c.check_database_readable(true) }
+  before_filter :except => [ :query ] { |c| c.check_database_readable(true) }
   before_filter :require_oauth
   around_filter :web_timeout
 
index adda8c20c0fe536a882ad7894ef0240973725368..eaa87df7bfa5ba3275daa2c12a92fcee68e65e25 100644 (file)
@@ -336,12 +336,12 @@ class ChangesetController < ApplicationController
     # Notify current subscribers of the new comment
     changeset.subscribers.each do |user|
       if @user != user
-        Notifier.changeset_comment_notification(comment, user).deliver
+        Notifier.changeset_comment_notification(comment, user).deliver_now
       end
     end
 
     # Add the commenter to the subscribers if necessary
-    changeset.subscribers << @user unless changeset.subscribers.exists?(@user)
+    changeset.subscribers << @user unless changeset.subscribers.exists?(@user.id)
 
     # Return a copy of the updated changeset
     render :text => changeset.to_xml.to_s, :content_type => "text/xml"
@@ -359,7 +359,7 @@ class ChangesetController < ApplicationController
     # Find the changeset and check it is valid
     changeset = Changeset.find(id)
     raise OSM::APIChangesetNotYetClosedError.new(changeset) if changeset.is_open?
-    raise OSM::APIChangesetAlreadySubscribedError.new(changeset) if changeset.subscribers.exists?(@user)
+    raise OSM::APIChangesetAlreadySubscribedError.new(changeset) if changeset.subscribers.exists?(@user.id)
 
     # Add the subscriber
     changeset.subscribers << @user
@@ -380,7 +380,7 @@ class ChangesetController < ApplicationController
     # Find the changeset and check it is valid
     changeset = Changeset.find(id)
     raise OSM::APIChangesetNotYetClosedError.new(changeset) if changeset.is_open?
-    raise OSM::APIChangesetNotSubscribedError.new(changeset) unless changeset.subscribers.exists?(@user)
+    raise OSM::APIChangesetNotSubscribedError.new(changeset) unless changeset.subscribers.exists?(@user.id)
 
     # Remove the subscriber
     changeset.subscribers.delete(@user)
index 091744e2226256e0d6aba9cd283a68ec37b896df..741ff15002d2d98e7e0f498e4971d74d772f15cd 100644 (file)
@@ -58,7 +58,7 @@ class DiaryEntryController < ApplicationController
     @diary_comment.user = @user
     if @diary_comment.save
       if @diary_comment.user != @entry.user
-        Notifier.diary_comment_notification(@diary_comment).deliver
+        Notifier.diary_comment_notification(@diary_comment).deliver_now
       end
 
       redirect_to :controller => 'diary_entry', :action => 'view', :display_name => @entry.user.display_name, :id => @entry.id
index fd638e4e7758b26df7be6d2bd42c7a963e9716c0..c7acc90d8f2680438d07573a06e1d30ca774cebc 100644 (file)
@@ -24,14 +24,14 @@ class MessageController < ApplicationController
 
         if @message.save
           flash[:notice] = t 'message.new.message_sent'
-          Notifier.message_notification(@message).deliver
+          Notifier.message_notification(@message).deliver_now
           redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
         end
       end
-    else
-      @message = Message.new(:recipient => @this_user)
-      @title = t 'message.new.title'
     end
+
+    @message ||= Message.new(:recipient => @this_user)
+    @title = t 'message.new.title'
   end
 
   # Allow the user to reply to another message.
index acd88be04329d7f0760ee0e52b69976df581a4d3..7584daf62cfa75f8254154dcf5d3853215c8934d 100644 (file)
@@ -361,7 +361,7 @@ private
 
     note.comments.map { |c| c.author }.uniq.each do |user|
       if notify and user and user != @user
-        Notifier.note_comment_notification(comment, user).deliver
+        Notifier.note_comment_notification(comment, user).deliver_now
       end
     end
   end
index f8713608d70c148a23b7dd1e37c688caa42a409d..d0f90271744661ed8447d88a7a30cc871eeed649 100644 (file)
@@ -10,7 +10,7 @@ class RedactionsController < ApplicationController
   before_filter :check_database_writable, :only => [:create, :update, :destroy]
 
   def index
-    @redactions_pages, @redactions = paginate(:redactions, :order => :id, :per_page => 10)
+    @redactions = Redaction.order(:id)
   end
 
   def new
index dbfc44a37ad7af34cb558658408366a1c00e6391..a7bf53824821a4559672b9d1446eccb7dc74bee3 100644 (file)
@@ -105,7 +105,7 @@ class UserController < ApplicationController
             successful_login(@user)
           else
             session[:token] = @user.tokens.create.token
-            Notifier.signup_confirm(@user, @user.tokens.create(:referer => referer)).deliver
+            Notifier.signup_confirm(@user, @user.tokens.create(:referer => referer)).deliver_now
             redirect_to :action => 'confirm', :display_name => @user.display_name
           end
         else
@@ -165,7 +165,7 @@ class UserController < ApplicationController
 
       if user
         token = user.tokens.create
-        Notifier.lost_password(user, token).deliver
+        Notifier.lost_password(user, token).deliver_now
         flash[:notice] = t 'user.lost_password.notice email on way'
         redirect_to :action => 'login'
       else
@@ -353,7 +353,7 @@ class UserController < ApplicationController
 
   def confirm_resend
     if user = User.find_by_display_name(params[:display_name])
-      Notifier.signup_confirm(user, user.tokens.create).deliver
+      Notifier.signup_confirm(user, user.tokens.create).deliver_now
       flash[:notice] = t 'user.confirm_resend.success', :email => user.email
     else
       flash[:notice] = t 'user.confirm_resend.failure', :name => params[:display_name]
@@ -424,7 +424,7 @@ class UserController < ApplicationController
         unless @user.is_friends_with?(@new_friend)
           if friend.save
             flash[:notice] = t 'user.make_friend.success', :name => @new_friend.display_name
-            Notifier.friend_notification(friend).deliver
+            Notifier.friend_notification(friend).deliver_now
           else
             friend.add_error(t('user.make_friend.failed', :name => @new_friend.display_name))
           end
@@ -733,7 +733,7 @@ private
           flash.now[:notice] = t 'user.account.flash update success confirm needed'
 
           begin
-            Notifier.email_confirm(user, user.tokens.create).deliver
+            Notifier.email_confirm(user, user.tokens.create).deliver_now
           rescue
             # Ignore errors sending email
           end
@@ -742,7 +742,7 @@ private
           @user.errors.set(:email, [])
         end
 
-        user.reset_email!
+        user.restore_email!
       end
     end
   end
index 9d29f52b78e9be2a00762df206a3e1824835e0af..5ace3d1580b4d2413613d79af3bcd993d0414573 100644 (file)
@@ -5,7 +5,6 @@ class DiaryComment < ActiveRecord::Base
   validates_presence_of :body
   validates_associated :diary_entry
 
-  after_initialize :set_defaults
   after_save :spam_check
 
   def body
@@ -23,10 +22,6 @@ class DiaryComment < ActiveRecord::Base
 
 private
 
-  def set_defaults
-    self.body_format = "markdown" unless self.attribute_present?(:body_format)
-  end
-
   def spam_check
     user.spam_check
   end
index 58f8710f95d10d8168989e76d449714f57aab2fd..c0fbac546a9f47756c6239ee06fd9ee3cb1bb883 100644 (file)
@@ -16,7 +16,6 @@ class DiaryEntry < ActiveRecord::Base
                             :greater_than_or_equal_to => -180, :less_than_or_equal_to => 180
   validates_associated :language
 
-  after_initialize :set_defaults
   after_save :spam_check
 
   def body
@@ -25,10 +24,6 @@ class DiaryEntry < ActiveRecord::Base
 
 private
 
-  def set_defaults
-    self.body_format = "markdown" unless self.attribute_present?(:body_format)
-  end
-
   def spam_check
     user.spam_check
   end
index b51c59f4359d950bd614be043ad2bf79e2174ddb..b05d005b04f95ea1eec343228744d744bc2a8935 100644 (file)
@@ -9,8 +9,6 @@ class Message < ActiveRecord::Base
   validates_inclusion_of :message_read, :in => [ true, false ]
   validates_as_utf8 :title
 
-  after_initialize :set_defaults
-
   def self.from_mail(mail, from, to)
     if mail.multipart?
       if mail.text_part
@@ -47,10 +45,4 @@ class Message < ActiveRecord::Base
     md5 << body
     md5.hexdigest
   end
-
-private
-
-  def set_defaults
-    self.body_format = "markdown" unless self.attribute_present?(:body_format)
-  end
 end
index 90304acae4c1f9dadbaceaecc37475703648cbdd..5ea3a778b38d58e5eefc62da019f7e628d5bd4b0 100644 (file)
@@ -63,11 +63,6 @@ class OldNode < ActiveRecord::Base
 
   def save_with_dependencies!
     save!
-    #not sure whats going on here
-    clear_aggregation_cache
-    clear_association_cache
-    #ok from here
-    @attributes.update(OldNode.where(:node_id => self.node_id, :timestamp => self.timestamp, :version => self.version).first.instance_variable_get('@attributes'))
    
     self.tags.each do |k,v|
       tag = OldNodeTag.new
index dc89afa50294ba35710123aa382243676f04c282..5496f7115ad717491a8a292bade768522ed3fcb0 100644 (file)
@@ -31,14 +31,7 @@ class OldRelation < ActiveRecord::Base
   end
 
   def save_with_dependencies!
-
-    # see comment in old_way.rb ;-)
     save!
-    clear_aggregation_cache
-    clear_association_cache
-    @attributes.update(OldRelation.where(:relation_id => self.relation_id, :timestamp => self.timestamp).order("version DESC").first.instance_variable_get('@attributes'))
-
-    # ok, you can touch from here on
 
     self.tags.each do |k,v|
       tag = OldRelationTag.new
index 1552bae0497a10f0b8c5d896ff11d83251bdbf7a..dbdcdd46d62dbaf2f0f591b29681c76d3af4f71a 100644 (file)
@@ -31,19 +31,7 @@ class OldWay < ActiveRecord::Base
   end
 
   def save_with_dependencies!
-
-    # dont touch this unless you really have figured out why it's called
-    # (Rails doesn't deal well with the old ways table (called 'ways') because
-    # it doesn't have a unique key. It knows how to insert and auto_increment
-    # id and get it back but we have that and we want to get the 'version' back
-    # we could add another column but thats a lot of data. No, set_primary_key
-    # doesn't work either.
     save!
-    clear_aggregation_cache
-    clear_association_cache
-    @attributes.update(OldWay.where(:way_id => self.way_id, :timestamp => self.timestamp).order("version DESC").first.instance_variable_get('@attributes'))
-
-    # ok, you can touch from here on
 
     self.tags.each do |k,v|
       tag = OldWayTag.new
index 43f5b3c7bf70ffb67d8a47d8509c31a9e9fb0a8f..a9bdf5580dc68712d1ffef58c4f4743ca9d5db6d 100644 (file)
@@ -14,19 +14,9 @@ class Redaction < ActiveRecord::Base
   has_many :old_ways
   has_many :old_relations
 
-  after_initialize :set_defaults
-
   # this method overrides the AR default to provide the rich 
   # text object for the description field.
   def description
     RichText.new(read_attribute(:description_format), read_attribute(:description))
   end
-
-  private
-
-  # set the default format to be markdown, in the absence of
-  # any other setting.
-  def set_defaults
-    self.description_format = "markdown" unless self.attribute_present?(:description_format)
-  end
 end
index ed0813bee43a9ff14b47b33be7313147ab395b57..7ace4bca47b76a8c6e9369b14cd55ddefc451551 100644 (file)
@@ -216,6 +216,7 @@ class User < ActiveRecord::Base
     diary_comment_score = self.diary_comments.inject(0) { |s,c| s += c.body.spam_score }
 
     score = self.description.spam_score / 4.0
+    score += self.diary_entries.where("created_at > ?", 1.day.ago).count * 10
     score += diary_entry_score / self.diary_entries.length if self.diary_entries.length > 0
     score += diary_comment_score / self.diary_comments.length if self.diary_comments.length > 0
     score -= changeset_score
@@ -242,7 +243,6 @@ private
 
   def set_defaults
     self.creation_time = Time.now.getutc unless self.attribute_present?(:creation_time)
-    self.description_format = "markdown" unless self.attribute_present?(:description_format)
   end
 
   def encrypt_password
index cb1a97dcabfafa8ab5c938dfc408a24174fc8a84..d8fa95cb2319f2aeb7d31a9995641ca1a8496231 100644 (file)
@@ -4,8 +4,6 @@ class UserBlock < ActiveRecord::Base
   belongs_to :user, :class_name => "User", :foreign_key => :user_id
   belongs_to :creator, :class_name => "User", :foreign_key => :creator_id
   belongs_to :revoker, :class_name => "User", :foreign_key => :revoker_id
-  
-  after_initialize :set_defaults
 
   PERIODS = USER_BLOCK_PERIODS
 
@@ -41,12 +39,6 @@ class UserBlock < ActiveRecord::Base
 
 private
 
-  ##
-  # set default values for new records.
-  def set_defaults
-    self.reason_format = "markdown" unless self.attribute_present?(:reason_format)
-  end
-
   ##
   # validate that only moderators are allowed to change the
   # block. this should be caught and dealt with in the controller,
index bbe22792101c283e39fd7084be5a0d930627aa85..efb7bb7f986945a79c47b9a1defb37bcfece763b 100644 (file)
@@ -15,7 +15,7 @@
   
   <div class="buttons clearfix subscribe-buttons">
     <form action="#" class="hide_unless_logged_in">
-      <% if @changeset.subscribers.exists?(@user) %>
+      <% if @user and @changeset.subscribers.exists?(@user.id) %>
         <input class="action-button" type="submit" name="unsubscribe" value="<%= t('javascripts.changesets.show.unsubscribe') %>" data-method="POST" data-url="<%= changeset_unsubscribe_url(@changeset) %>" />
       <% else %>
         <input class="action-button" type="submit" name="subscribe" value="<%= t('javascripts.changesets.show.subscribe') %>" data-method="POST" data-url="<%= changeset_subscribe_url(@changeset) %>" />
index fb4f79eb66e8a039fdd75fb5857f3f47b08f9ed6..441ea3212ab8249396c15c7f4d0a89049c25248f 100644 (file)
@@ -9,7 +9,7 @@
   </form>
 
   <form method="GET" action="<%= directions_path %>" class="directions_form">
-    <div width="100%" align="right" style="height:30px"><%= link_to tag('span', { :class => "icon close"}), root_path, { :title => t('site.search.close_directions_title') } %></div>
+    <div width="100%" align="right" style="height:30px"><%= link_to tag('span', { :class => "icon close"}), root_path, { :title => t('site.search.close_directions_title'), :class => "directions_close" } %></div>
 
     <div class="line">
       <%= image_tag "marker-green.png", :class => 'routing_marker', :id => 'marker_from', :draggable => 'true' %>
@@ -21,6 +21,6 @@
     </div>
     <select class='routing_engines' name='routing_engines'></select>
     <div width="100%" align="right"><%= submit_tag t('site.search.submit_text') %></div>
-    <%= image_tag "searching-small.gif", :class => 'spinner', :style => "vertical-align: middle; display: none;" %>
+    <div class="loader_copy" style="display:none;"><div class="loader"><%= image_tag "searching.gif", :style => "vertical-align: middle;" %></div></div>
   </form>
 </div>
index 5bc2a619e83ea182b17e2507c5e0f2f07f7cf18c..bd83b25412305f93fdb0a892aded30e5178899ba 100644 (file)
--- a/config.ru
+++ b/config.ru
@@ -1,4 +1,4 @@
 # This file is used by Rack-based servers to start the application.
 
-require ::File.expand_path('../config/environment',  __FILE__)
+require ::File.expand_path('../config/environment', __FILE__)
 run Rails.application
index a40336c3303dbe53065420e0c8c53c3bd060ccd8..6a96b9dd6115b87c733f477285f0ee3185ef9242 100644 (file)
@@ -30,6 +30,9 @@ module OpenStreetMap
     # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
     # config.i18n.default_locale = :de
 
+    # Do not swallow errors in after_commit/after_rollback callbacks.
+    config.active_record.raise_in_transactional_callbacks = true
+
     # Custom directories with classes and modules you want to be autoloadable.
     config.autoload_paths += %W(#{config.root}/lib)
 
index 5e5f0c1fac0bcde58936530ada4fd08abcaf5a64..6b750f00b1dff4d94937b97ae0dbf76784b02164 100644 (file)
@@ -1,4 +1,3 @@
-# Set up gems listed in the Gemfile.
 ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
 
-require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
+require 'bundler/setup' # Set up gems listed in the Gemfile.
index a414d1490655db23aa4a00bb688b5a57664c2313..01466ae751953845c603f9806ce45251003f5d54 100644 (file)
@@ -20,13 +20,19 @@ OpenStreetMap::Application.configure do
   config.active_support.deprecation = :log
 
   # Raise an error on page load if there are pending migrations.
-  config.active_record.migration_error = :page_load
+  unless STATUS == :database_offline
+    config.active_record.migration_error = :page_load
+  end
 
   # Debug mode disables concatenation and preprocessing of assets.
   # This option may cause significant delays in view rendering with a large
   # number of complex assets.
   config.assets.debug = true
 
+  # Asset digests allow you to set far-future HTTP expiration dates on all assets,
+  # yet still be able to expire them through the digest params.
+  config.assets.digest = true
+
   # Adds additional error checking when serving assets at runtime.
   # Checks for improperly declared sprockets dependencies.
   # Raises helpful error messages.
index 941070902d9f32c08a910a25c48d42c60e533dac..1dab3556396c7b5ae2e849c2dfbee5ef1ab465fb 100644 (file)
@@ -16,11 +16,13 @@ OpenStreetMap::Application.configure do
 
   # Enable Rack::Cache to put a simple HTTP cache in front of your application
   # Add `rack-cache` to your Gemfile before enabling this.
-  # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
+  # For large-scale production use, consider using a caching reverse proxy like
+  # NGINX, varnish or squid.
   # config.action_dispatch.rack_cache = true
 
-  # Disable Rails's static asset server (Apache or nginx will already do this).
-  config.serve_static_assets = false
+  # Disable serving static files from the `/public` folder by default since
+  # Apache or NGINX already handles this.
+  config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
 
   # Compress JavaScripts and CSS.
   config.assets.js_compressor = :uglifier
@@ -29,17 +31,21 @@ OpenStreetMap::Application.configure do
   # Do not fallback to assets pipeline if a precompiled asset is missed.
   config.assets.compile = false
 
-  # Generate digests for assets URLs.
+  # Asset digests allow you to set far-future HTTP expiration dates on all assets,
+  # yet still be able to expire them through the digest params.
   config.assets.digest = true
 
+  # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
+
   # Specifies the header that your server uses for sending files.
-  # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
-  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
+  # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
+  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
 
   # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
   # config.force_ssl = true
 
-  # Set to :debug to see everything in the log.
+  # Use the lowest log level to ensure availability of diagnostic information
+  # when problems arise.
   config.log_level = :info
 
   # Prepend all log lines with the following tags.
@@ -62,24 +68,19 @@ OpenStreetMap::Application.configure do
   config.action_controller.page_cache_directory = Rails.public_path
 
   # Enable serving of images, stylesheets, and JavaScripts from an asset server.
-  # config.action_controller.asset_host = "http://assets.example.com"
-
-  # `config.assets.precompile` has moved to config/initializers/assets.rb
+  # config.action_controller.asset_host = 'http://assets.example.com'
 
   # Ignore bad email addresses and do not raise email delivery errors.
   # Set this to true and configure the email server for immediate delivery to raise delivery errors.
   # config.action_mailer.raise_delivery_errors = false
 
   # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
-  # the I18n.default_locale when a translation can not be found).
+  # the I18n.default_locale when a translation cannot be found).
   config.i18n.fallbacks = true
 
   # Send deprecation notices to registered listeners.
   config.active_support.deprecation = :notify
 
-  # Disable automatic flushing of the log to improve performance.
-  # config.autoflush_log = false
-
   # Use default logging formatter so that PID and timestamp are not suppressed.
   config.log_formatter = ::Logger::Formatter.new
 
index b0ff645a0195d9813dbc3139a0ae658f29fbfa94..3c8b55457a463302b10910280370ef9afe95d12a 100644 (file)
@@ -12,8 +12,8 @@ OpenStreetMap::Application.configure do
   # preloads Rails for running tests, you may have to set it to true.
   config.eager_load = false
 
-  # Configure static asset server for tests with Cache-Control for performance.
-  config.serve_static_assets  = true
+  # Configure static file server for tests with Cache-Control for performance.
+  config.serve_static_files   = true
   config.static_cache_control = 'public, max-age=3600'
 
   # Show full error reports and disable caching.
@@ -31,6 +31,9 @@ OpenStreetMap::Application.configure do
   # ActionMailer::Base.deliveries array.
   config.action_mailer.delivery_method = :test
 
+  # Randomize the order test cases are executed.
+  config.active_support.test_order = :random
+
   # Print deprecation notices to the stderr.
   config.active_support.deprecation = :stderr
 
index c90054b0a3c3eb4c2df40a279ed10ba87c955072..ef7efcbb95fd8b254192a080cf0c332e5b3971ed 100644 (file)
@@ -3,6 +3,9 @@
 # Version of your assets, change this if you want to expire all your assets.
 Rails.application.config.assets.version = '1.0'
 
+# Add additional assets to the asset load path
+# Rails.application.config.assets.paths << Emoji.images_path
+
 # Precompile additional assets.
 # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
 Rails.application.config.assets.precompile += %w( index.js browse.js welcome.js fixthemap.js )
index 7a06a89f0f9df784b2087d18b248f8d8c770eb72..7f70458dee62b4a0f5233e4be7b8838b8400cbe8 100644 (file)
@@ -1,3 +1,3 @@
 # Be sure to restart your server when you modify this file.
 
-Rails.application.config.action_dispatch.cookies_serializer = :json
\ No newline at end of file
+Rails.application.config.action_dispatch.cookies_serializer = :json
index 156eea4ecad2d8a1992f30d99970d1eb3166bee6..2562b67a0dd8c472bf80889add63ff9d7de74679 100644 (file)
@@ -44,6 +44,6 @@ I18n.fallbacks.map("no" => "nb")
 
 I18n.enforce_available_locales = false
 
-Rails.configuration.after_initialize do |app|
+Rails.configuration.after_initialize do
   I18n.available_locales
 end
index be247274f290811f0ccf61b7dee2b6a488343bc9..576da5285f51cbcd400145e7718dd0f10c3b0835 100644 (file)
@@ -2,6 +2,5 @@
 
 # Add new mime types for use in respond_to blocks:
 # Mime::Type.register "text/richtext", :rtf
-# Mime::Type.register_alias "text/html", :iphone
 Mime::Type.register "application/x-amf", :amf
 Mime::Type.register "application/gpx+xml", :gpx
diff --git a/config/initializers/postgresql_adapter.rb b/config/initializers/postgresql_adapter.rb
deleted file mode 100644 (file)
index 9dcc34f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-if defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
-  module ActiveRecord
-    module ConnectionAdapters
-      class PostgreSQLAdapter
-        def initialize_type_map_with_enums(type_map)
-          OID.alias_type "format_enum", "text"
-          OID.alias_type "gpx_visibility_enum", "text"
-          OID.alias_type "note_status_enum", "text"
-          OID.alias_type "note_event_enum", "text"
-          OID.alias_type "nwr_enum", "text"
-          OID.alias_type "user_role_enum", "text"
-          OID.alias_type "user_status_enum", "text"
-
-          initialize_type_map_without_enums(type_map)
-        end
-
-        alias_method_chain :initialize_type_map, :enums
-      end
-
-      class PostgreSQLColumn
-        def simplified_type_with_enum(field_type)
-          case field_type
-          when /_enum$/
-            :string
-          else
-            simplified_type_without_enum(field_type)
-          end
-        end
-
-        alias_method_chain :simplified_type, :enum
-      end
-    end
-  end
-end
index 0df38f0fa87339702ec4ad6425068fcf3998fa1d..eb3039a132f70db038e6bb7b08bd6e4fb8e7af56 100644 (file)
@@ -1,4 +1,5 @@
 Sanitize::Config::OSM = Sanitize::Config::RELAXED.dup
 
+Sanitize::Config::OSM[:elements] -= [ 'div', 'style' ]
 Sanitize::Config::OSM[:add_attributes] = { 'a' => { 'rel' => 'nofollow' } }
 Sanitize::Config::OSM[:remove_contents] = [ 'script', 'style' ]
index f9766db6b9e722aa368b87a3cddb014c10fec18a..608a48872dda13ac6f785e39dc3bac9af8213276 100644 (file)
@@ -933,10 +933,6 @@ ast:
       text: Fai un donativu
     learn_more: Más información
     more: Más
-    sotm_header: State of the Map 2014
-    sotm_line_1: 8ª Conferencia Añal
-    sotm_line_2: 7-9 de payares de 2014
-    sotm_line_3: Buenos Aires, Arxentina
   license_page:
     foreign:
       title: Tocante a esta traducción
index 893e259ee1395fd9530609abd7d14fcff1246955..a8694a422962942bee43414e57711ee0a130ae33 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Belarusian (беларуская)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: Alex73
 # Author: Jim-by
 # Author: Unomano
 # Author: Дзяніс Тутэйшы
@@ -120,11 +121,17 @@ be:
       way_paginated: Лініі (%{x}-%{y} з %{count})
       relation: Сувязі (%{count})
       relation_paginated: Сувязі (%{x}-%{y} з %{count})
+      comment: Каментары (%{count})
+      hidden_commented_by: Схаваны каментар ад %{user} <abbr title='%{exact_time}'>%{when}
+        таму</abbr>
+      commented_by: Каментар ад %{user} <abbr title='%{exact_time}'>%{when} таму</abbr>
       changesetxml: Набор змен у XML
       osmchangexml: osmChange XML
       feed:
         title: Набор змен %{id}
         title_comment: Набор змен %{id} - %{comment}
+      join_discussion: Увайдзіце ў сістэму, каб далучыцца да абмеркавання
+      discussion: Абмеркаванне
     node:
       title: 'Вузел: %{name}'
       history_title: 'Гісторыя вузла: %{name}'
@@ -181,6 +188,7 @@ be:
       wiki_link:
         key: Вікі-старонка апісання тэгу %{key}
         tag: Вікі-старонка апісання тэгу %{key}=%{value}
+      wikidata_link: Элемент %{page} у Вікідадзеных
       wikipedia_link: Артыкул %{page} на Вікіпедыі
       telephone_link: Патэлефанаваць %{phone_number}
     note:
@@ -204,6 +212,11 @@ be:
       reopened_by_anonymous: Пераадкрыта ананімным карыстальнікам <abbr title='%{exact_time}'>%{when}
         таму</abbr>
       hidden_by: Схавана %{user} <abbr title='%{exact_time}'>%{when} таму</abbr>
+    query:
+      title: Запыт аб’ектаў
+      introduction: Пстрыкніце на карце, каб атрымаць звесткі пра аб'екты паблізу.
+      nearby: Аб’екты паблізу
+      enclosing: Навакольныя аб'екты
   changeset:
     changeset_paging_nav:
       showing_page: Старонка %{page}
@@ -233,6 +246,13 @@ be:
       load_more: Загрузіць больш
     timeout:
       sorry: Прабачце, спіс набораў зменаў, які Вы запыталі, занадта вялікі для атрымання.
+    rss:
+      title_all: Абмеркаванне зменаў OpenStreetMap
+      title_particular: 'Абмеркаванне зменаў OpenStreetMap #%{changeset_id}'
+      comment: Новы каментар на набор зменаў %{changeset_id} ад %{author}
+      commented_at_html: Абноўлена %{when} таму
+      commented_at_by_html: Абноўлена %{when} таму %{user}
+      full: Поўнае абмеркаванне
   diary_entry:
     new:
       title: Новы запіс дзённіку
@@ -621,7 +641,7 @@ be:
           sauna: Сауна
           slipway: Стапель
           sports_centre: Спартыўны цэнтр
-          stadium: Стадыен
+          stadium: Стадыён
           swimming_pool: Плавальны басейн
           track: Бегавая дарожка
           water_park: Аквапарк
@@ -736,6 +756,8 @@ be:
           tram: Трамвай
           tram_stop: Трамвайны прыпынак
           yard: Сартавальная станцыя
+        route:
+          bus: Аўтобусны маршрут
         shop:
           alcohol: Алкагольная крама
           antiques: Антыкварыят
@@ -1247,6 +1269,20 @@ be:
         commented_note: '%{commenter} пераадчыніў заўвагу на карце, якую вы каментавалі.
           Заўвага каля %{place}.'
       details: Больш падрабязна пра ўвагу можна прачытаць на %{url}.
+    changeset_comment_notification:
+      greeting: Прывітанне,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} пракаментаваў адзін з вашых набораў
+          зменаў'
+        subject_other: '[OpenStreetMap] %{commenter} пракаментаваў цікавы вам набор
+          зменаў'
+        your_changeset: '%{commenter} пакінуў каментар на адзін з вашых набораў зменаў,
+          створаных %{time}'
+        commented_changeset: '%{commenter}% пакінуў каментар да набору зменаў, які
+          вы адсочваеце і што быў створаны %{changeset_author} %{time}'
+        partial_changeset_with_comment: з каментаром '%{changeset_comment}'
+        partial_changeset_without_comment: без каментароў
+      details: Дадатковыя звесткі аб наборы зьменаў можна знайсці ў %{url}.
   message:
     inbox:
       title: Уваходныя
@@ -2192,6 +2228,15 @@ be:
       createnote_disabled_tooltip: Наблізце, каб дадаць заўвагу на карту
       map_notes_zoom_in_tooltip: Наблізце, каб убачыць заўвагі на карце
       map_data_zoom_in_tooltip: Павялічце, каб убачыць картаграфічныя дадзеныя
+      queryfeature_tooltip: Атрыманне аб’ектаў
+      queryfeature_disabled_tooltip: Наблізіцеся для атрымання аб'ектаў
+    changesets:
+      show:
+        comment: Каментаваць
+        subscribe: Падпісацца
+        unsubscribe: Адпісацца
+        hide_comment: схаваць
+        unhide_comment: паказаць
     notes:
       new:
         intro: Заўважылі памылку або чагосьці не стае? Дайце іншым удзельнікам магчымасць
@@ -2209,6 +2254,13 @@ be:
         comment: Каментаваць
     edit_help: Перамясціце карту і наблізце месца, якое вы хочаце рэдагаваць, затым
       націсніце тут.
+    query:
+      node: Вузел
+      way: Крывая
+      relation: Сувязь
+      nothing_found: Аб’екты не знойдзены
+      error: 'Памылка сувязі %{server}: %{error}'
+      timeout: Тайм-аўт падключэння да %{server}
   redaction:
     edit:
       description: Апісанне
index 6d60f526d91a52dd850441641fb822fac36be91a..9d4e607373ebba0372548606c7659a76094bc2f7 100644 (file)
@@ -121,11 +121,17 @@ br:
       way_paginated: Hentoù (%{x}-%{y} diwar %{count})
       relation: Darempredoù (%{count})
       relation_paginated: Darempredoù (%{x}-%{y} diwar %{count})
+      comment: Addisplegoù(%{count})
+      hidden_commented_by: Addispleg kuzhet gant %{user} <abbr title='%{exact_time}'>%{when}
+        zo</abbr>
+      commented_by: Addispleg gant %{user} <abbr title='%{exact_time}'>%{when}zo</abbr>
       changesetxml: Strollad kemmoù XML
       osmchangexml: osmChange XML
       feed:
         title: Strollad kemmoù %{id}
         title_comment: Strollad kemmoù %{id} - %{comment}
+      join_discussion: Kevreañ evit kaozeal
+      discussion: Kaozeadenn
     node:
       title: 'Skoulm : %{name}'
       history_title: 'Istor ar skoulm : %{name}'
@@ -206,6 +212,11 @@ br:
       reopened_by_anonymous: Adweredekaet gant un den dianv <abbr title='%{exact_time}'>%{when}
         zo</abbr>
       hidden_by: Kuzhet gant %{user} <abbr title='%{exact_time}'>%{when} zo</abbr>
+    query:
+      title: Arc'hweladurioù enklask
+      introduction: Klikit war ar gartenn evit kavout arc'hweladurioù e-kichen.
+      nearby: Arc'hweladurioù e-kichen
+      enclosing: Arc'hweladurioù stag
   changeset:
     changeset_paging_nav:
       showing_page: Pajenn %{page}
@@ -235,6 +246,14 @@ br:
       load_more: Kargañ muioc'h
     timeout:
       sorry: Ho tigarez, re hir eo adtapout ar roll cheñchamantoù hoc'h eus goulennet.
+    rss:
+      title_all: Kaozeal diwar-benn an holl gemmoù degaset en OpenStreetMap
+      title_particular: 'Kaoz diwar-benn an holl gemmoù #%{changeset_id}degaset en
+        OpenStreetMap'
+      comment: 'Addispleg nevez eus ar strollad kemmoù #%{changeset_id} dre %{author}'
+      commented_at_html: Hizivaet %{when} zo
+      commented_at_by_html: Hizivaet %{when} zo gant %{user}
+      full: Kaoz klok
   diary_entry:
     new:
       title: Enmoned nevez en deizlevr
@@ -279,15 +298,15 @@ br:
       comment_link: Addisplegañ an enmoned-mañ
       reply_link: Respont d'an enmoned-mañ
       comment_count:
-        one: Un evezhiadenn
-        zero: Evezhiadenn ebet
-        other: '%{count} evezhiadenn'
+        one: Un addipleg
+        zero: Addispleg ebet
+        other: '%{count} addipleg'
       edit_link: Aozañ an enmoned-mañ
       hide_link: Kuzhat an elfenn-mañ
       confirm: Kadarnaat
     diary_comment:
       comment_from: Addispleg gant %{link_user}  d'an %{comment_created_at}
-      hide_link: Kuzhat an evezhiadenn-mañ
+      hide_link: Kuzhat an addispleg-mañ
       confirm: Kadarnaat
     location:
       location: 'Lec''hiadur :'
@@ -309,9 +328,9 @@ br:
         pennadoù deizlevr-mañ
       post: Postañ
       when: Peur
-      comment: Evezhiadenn
+      comment: Addipleg
       ago: '%{ago} zo'
-      newer_comments: Evezhiadennoù neves
+      newer_comments: Evezhiadennoù nevesoo'h
       older_comments: Evezhiadennoù koshañ
   export:
     title: Ezporzhiañ
@@ -328,8 +347,9 @@ br:
       too_large:
         advice: 'Ma c''hwit an ezporzhiadur amañ a-us, implijit unan eus an elfennoù
           amañ dindan :'
-        body: Re vras eo an takad-mañ evit bezañ ezporzhiet evel roadennoù XML OpenStreetMap.
-          Zoumit, mar plij, pe diuzit un takad bihanoc'h.
+        body: 'Re vras eo an takad-mañ evit bezañ ezporzhiet evel roadennoù XML OpenStreetMap.
+          Zoumit, mar plij, pe diuzit un takad bihanoc''h pe immplijit unan eus an
+          tarzhioù-mañ evit pellgargañ roadennoù a-yoc''h :'
         planet:
           title: Planedenn OSM
           description: Eilennoù hizivaet ingal eus diaz roadennoù klok OpenStreetMap
@@ -346,7 +366,7 @@ br:
           description: Eztennadennoù evit brasañ kêrioù ar bed hag o ardemezioù
         other:
           title: Tarzhioù all
-          description: Mamennoù all a gaver o roll er wiki OpenStreetMap
+          description: Mammennoù all a gaver o roll er wiki OpenStreetMap
       options: Dibarzhioù
       format: Furmad
       scale: Skeuliad
@@ -384,7 +404,7 @@ br:
           apron: ↓Parklec'h nijerezioù
           gate: Dor
           helipad: biñsporzh
-          runway: Pistenn
+          runway: Leurenn
           taxiway: Roudenn evit an taksioù
           terminal: Termenva
         amenity:
@@ -738,6 +758,8 @@ br:
           tram: Tramgarr
           tram_stop: Arsav tramgarr
           yard: Gar-dibab
+        route:
+          bus: Pennad-hent ar bus
         shop:
           alcohol: Gwezher alkool
           antiques: Hendraezoù
@@ -941,10 +963,6 @@ br:
       text: Ober un donezon
     learn_more: Gouzout hiroc'h
     more: Muioc'h
-    sotm_header: Stad kartenn 2014
-    sotm_line_1: 8vet Prezegenn vloaziek
-    sotm_line_2: 7-9 a viz Du 2014
-    sotm_line_3: Buenos Aires, Arc'hantina
   license_page:
     foreign:
       title: Diwar-benn an droidigezh-mañ
@@ -1257,6 +1275,13 @@ br:
         commented_note: '%{commenter} en deus adweredekaet un notenn war ur gartenn
           hoc''h eus addispleget. Emañ an notenn tost da %{place}.'
       details: Munudoù ouzhpenn diwar-benn an notenn a c'hall bezañ kavet e %{url}.
+    changeset_comment_notification:
+      greeting: Demat,
+      commented:
+        subject_other: '[OpenStreetMap] %{commenter} en deus addispleget unan eus
+          ho notennoù a sell ouzhoc''h'
+        partial_changeset_with_comment: gant an addispleg '%{changeset_comment}'
+        partial_changeset_without_comment: Hep evezhiadenn
   message:
     inbox:
       title: Boest resev
@@ -2208,6 +2233,15 @@ br:
       createnote_disabled_tooltip: Zoumañ da ouzhpennañ un notenn d'ar gartenn
       map_notes_zoom_in_tooltip: Zoumiñ evit gwelet notennoù ar gartenn
       map_data_zoom_in_tooltip: Zoumiñ evit gwelet roadennoù ar gartenn
+      queryfeature_tooltip: Arc'hweladurioù enklask
+      queryfeature_disabled_tooltip: Zoumañ evit an arc'hweladurioù enklask
+    changesets:
+      show:
+        comment: Evezhiadenn
+        subscribe: Koumanantiñ
+        unsubscribe: Digoumanantiñ
+        hide_comment: kuzhat
+        unhide_comment: diskouez
     notes:
       new:
         intro: Gwelet ho peus ur fazi pe un dra a vank ? Roit an dra-se da c'houzout
@@ -2226,6 +2260,11 @@ br:
         comment: Evezhiadenn
     edit_help: Dilec'hiit ar gartenn ha zoumit war ul lec'h a fell deoc'h aozañ, ha
       neuze klikit amañ.
+    query:
+      node: Skoulm
+      way: Hent
+      relation: Darempred
+      nothing_found: Arc'hweladur ebet kavet
   redaction:
     edit:
       description: Deskrivadur
index a3d2dcd749b310cab46a7798c471aa627e8333f4..1f45c23b8544bfd991fe77f5563fd6aa7c34addc 100644 (file)
@@ -163,7 +163,7 @@ bs:
       new_note: Nova bilješka
   changeset:
     changeset_paging_nav:
-      showing_page: Prikaz stranice %{page}
+      showing_page: Stranica %{page}
       next: Sljedeća »
       previous: « Prethodna
     changeset:
@@ -274,7 +274,8 @@ bs:
         Data Commons Open Database License dozvolom</a> (ODbL).
       too_large:
         body: Ovo područje je preveliko da bi se izvezlo kao OpenStreetMap XML podaci.
-          Molimo povećajte (zoom) ili odaberite manje područje.
+          Molimo povećajte (zoom) ili odaberite manje područje ili koristite jedan
+          od izvora navedenih ispod za masovno preuzimanje podataka.
         other:
           title: Drugi izvori
           description: Dodatni izvori ponuđeni na OpenStreetMap wiki
@@ -452,7 +453,7 @@ bs:
           primary_link: Državna cesta
           proposed: Predložena cesta
           raceway: Trkalište
-          residential: Ulica
+          residential: Stambena ulica
           rest_area: Područje za odmor
           road: Cesta
           secondary: Sekundarna cesta
@@ -811,7 +812,7 @@ bs:
   layouts:
     logo:
       alt_text: OpenStreetMap logotip
-    home: Početna
+    home: Idi na početnu lokaciju
     logout: Odjava
     log_in: Prijava
     log_in_tooltip: Prijavite se sa postojećim korisničkim računom
@@ -1007,7 +1008,7 @@ bs:
       confirm: 'Prije nego uradimo bilo šta drugo, moramo potvrditi da je ovaj zahtjev
         došao od Vas, ako je to istina, molimo Vas da kliknete poveznicu ispod da
         potvrdite Vaš račun:'
-      welcome: Želimo Vam dobrodošlicu i takođe želimo Vam dati neke dodatne informacije
+      welcome: Nakon što potvrdite svoj račun, mi ćemo vam dati neke dodatne informacije
         kako bi ste počeli.
     email_confirm:
       subject: '[OpenStreetMap] Potvrdite Vašu e-mail adresu'
@@ -1271,9 +1272,12 @@ bs:
       upload_trace: Poslati GPS trasu
       see_all_traces: Pogledati sve trase
       see_your_traces: Pogledati vlastite trase
-      traces_waiting: Imate %{count} trasu/e/a na čekanju za slanje. Uzmite ovo u
-        obzir, i pričekajte da se završe prije slanja novih trasa, da ne blokirate
-        ostale korisnike.
+      traces_waiting:
+        one: Imate %{count} trasu koja čeka za slanje. Uzmite ovo u obzir i pričekajte
+          da se završi prije nego pošaljete novu trasu, da ne biste blokirali druge
+          korisnike.
+        other: Imate %{count} trase/a na čekanju za slanje. Uzmite ovo u obzir i pričekajte
+          da se završe prije slanja novih trasa, da ne blokirate ostale korisnike.
     trace_optionals:
       tags: Oznake
     view:
@@ -1296,7 +1300,7 @@ bs:
       trace_not_found: Trasa nije pronađena!
       visibility: 'Vidljivost:'
     trace_paging_nav:
-      showing_page: Prikaz stranice %{page}
+      showing_page: Stranica %{page}
       older: Starije trase
       newer: Novije trase
     trace:
@@ -1372,8 +1376,7 @@ bs:
       url: 'URL za zahtjev značke:'
       access_url: 'URL pristupa znački:'
       authorize_url: 'URL ovlaštenja:'
-      support_notice: Podržavamo HMAC-SHA1 (preporučeno) kao i obični tekst u ssl
-        modu.
+      support_notice: Podržavamo HMAC-SHA1 (preporučeno) i potpise RSA-SHA1.
       edit: Urediti detalje
       delete: Izbrisati klijenta
       confirm: Da li ste sigurni?
@@ -1487,7 +1490,7 @@ bs:
       flash changed: Vaša lozinka je promjenjena.
       flash token bad: Niste pronašli tz značku, možda da provjerite URL?
     new:
-      title: Napravite račun
+      title: Otvorite račun
       no_auto_account_create: Nažalost nismo u mogućnosti automatski otvarati korisničke
         račune.
       contact_webmaster: Molimo da kontaktirate s <a href="mailto:webmaster@openstreetmap.org">webmasterom</a>
@@ -1517,7 +1520,7 @@ bs:
             Ukoliko već imate račun, možete se prijaviti na Vaš račun korištenjem Vašeg korisničkog imena i lozinke i onda uvezati račun sa Vašim OtvorenimID u Vašim korisničkim podešavanjima.
           </li>
         </ul>
-      continue: Nastaviti
+      continue: Otvorite račun
       terms accepted: Hvala za prihvatanje novih uslova za doprinosioce!
       terms declined: Žao nam je da ste odlučili ne prihvatiti nove Uslove za doprinosioce.
         Za više informacije, molimo pogledajte <a href="%{url}">ovu wiki stranicu</a>.
@@ -1561,7 +1564,7 @@ bs:
       edits: uređivanja
       traces: trase
       remove as friend: ukloniti kao prijatelja
-      add as friend: dodati kao prijatelja
+      add as friend: dodati prijatelja
       mapper since: 'Maper od:'
       ago: (%{time_in_words_ago} prije)
       ct status: 'Uslovi za doprinosioce:'
@@ -1575,8 +1578,8 @@ bs:
       spam score: 'Spam ocjena:'
       description: Opis
       user location: Lokacija boravišta korisnika
-      if set location: Ako namjestite Vašu lokaciju, zgodna karta i stvari će se pojaviti
-        ovdje. Možete namjestiti lokaciju Vašeg boravišta na %{settings_link} stranici.
+      if set location: Namjestite Vašu početnu lokaciju na %{settings_link} stranici,
+        kako biste vidjeli korisnike u okolini.
       settings_link_text: postavke
       your friends: Vaši prijatelji
       no friends: Niste dodali nijednog prijatelja.
@@ -1605,10 +1608,10 @@ bs:
       unhide_user: otkriti ovog korisnika
       delete_user: izbrisati ovog korisnika
       confirm: Potvrditi
-      friends_changesets: Pretražiti sve setove promjena prijatelja
-      friends_diaries: Pretražiti sve unose u dnevnik od prijatelja
-      nearby_changesets: Pretražiti sve setove promjena obližnjih korisnika
-      nearby_diaries: Pretražiti sve unnose u dnevnik od obližnjih korisnika
+      friends_changesets: promjena spiska prijatelja
+      friends_diaries: unosi u dnevnik prijatelja
+      nearby_changesets: promjene spiska obližnjih korisnika
+      nearby_diaries: unosi u dnevnik obližnjih korisnika
     popup:
       your location: Vaša lokacija
       nearby mapper: Obližnji maper
@@ -1672,11 +1675,11 @@ bs:
         Provjerite e-mail za porukom za potvrdu nove e-mail adrese.
       flash update success: Korisničke informacije su uspješno osvježene.
     confirm:
-      heading: Potvrditi korisnički  račun
+      heading: Provjerite vaš email!
       press confirm button: Pritisnuti potvrditi da bi aktivirali Vaš korisnički račun.
       button: Potvrditi
       already active: Ovaj račun je već potvrđen.
-      unknown token: Izgleda da ta značka ne postoji.
+      unknown token: Taj kod za potvrdu je istekao ili ne postoji.
     confirm_resend:
       success: Poslali smo novu potvrdu na e-mail %{email} a čim potvrdite svoj račun,
         moći ćete početi mapirati.<br /><br />Ako koristite antispam sistem koji šalje
@@ -1697,12 +1700,12 @@ bs:
     make_friend:
       heading: Dodati %{user} kao prijatelja?
       button: Dodati kao prijatelja
-      success: '%{name}  je sada Vaš prijatelj.'
+      success: '%{name} je sada Vaš prijatelj!'
       failed: Žao mi je, nije uspjelo dodavanje %{name} kao prijatelja.
       already_a_friend: Već ste prijatelj sa %{name}.
     remove_friend:
-      heading: Ukloniti %{user} kao prijatelja?
-      button: Ukloniti kao prijatelja
+      heading: Ukloniti %{user} iz prijatelja?
+      button: Ukloniti prijatelja
       success: '%{name} je uklonjen iz prijatelja.'
       not_a_friend: '%{name} nije jedan od Vaših prijatelja.'
     filter:
@@ -1711,8 +1714,8 @@ bs:
       title: Korisnici
       heading: Korisnici
       showing:
-        one: Prikaz stranice %{page} (%{first_item} od %{items})
-        other: Prikaz stranice %{page} (%{first_item}-%{last_item} od %{items})
+        one: Stranica %{page} (%{first_item} od %{items})
+        other: Stranice %{page} (%{first_item}-%{last_item} od %{items})
       summary: '%{name} napravljeno sa %{ip_address} dana %{date}'
       summary_no_ip: '%{name} napravljeno %{date}'
       confirm: Potvrditi odabrane korisnike
@@ -1818,7 +1821,7 @@ bs:
       status: Stanje
       revoker_name: Opozvano od strane
       not_revoked: (nije opozvano)
-      showing_page: Prikaz stranice %{page}
+      showing_page: Stranica %{page}
       next: Sljedeća »
       previous: « Prethodna
     helper:
index e925e908808312a3599c97445634401fb166f254..db93720fbc7081672682a07a5acf48d347dda6bc 100644 (file)
@@ -140,11 +140,17 @@ ca:
       way_paginated: Vies (%{x}-%{y} de %{count})
       relation: Relacions (%{count})
       relation_paginated: Relacions (%{x}-%{y} de %{count})
+      comment: (%{count}) comentaris
+      hidden_commented_by: Comentari ocult de l'usuari %{user} <abbr title='%{exact_time}'>%{when}
+        ago</abbr>
+      commented_by: Comentari de %{user} <abbr title='%{exact_time}'>%{when} ago</abbr>
       changesetxml: XML del conjunt de canvis
       osmchangexml: XML en format osmChange
       feed:
         title: Conjunt de canvis %{id}
         title_comment: Conjunt de canvis %{id} - %{comment}
+      join_discussion: Inicieu sessió per unir-vos a la discussió
+      discussion: Discussió
     node:
       title: 'Node: %{name}'
       history_title: 'Historial del node: %{name}'
@@ -221,6 +227,11 @@ ca:
       reopened_by: Reactivat per %{user}  fa <abbr title='%{exact_time}'>%{when}</abbr>
       reopened_by_anonymous: Reactivat per un anònim fa <abbr title='%{exact_time}'>%{when}</abbr>
       hidden_by: Ocultat per %{user} fa <abbr title='%{exact_time}'>%{when}</abbr>
+    query:
+      title: Consultar característiques
+      introduction: Cliqueu al mapa per trobar característques properes.
+      nearby: Característiques properes
+      enclosing: Característiques adjuntes
   changeset:
     changeset_paging_nav:
       showing_page: Pàgina %{page}
@@ -251,6 +262,13 @@ ca:
     timeout:
       sorry: La llista de conjunt de canvis que heu sol·licitat ha trigat massa a
         recuperar-se.
+    rss:
+      title_all: Discussió del conjunt de canvis d'OpenStreetMap
+      title_particular: 'Discussió del conjunt de canvis #%{changeset_id} d''OpenStreetMap'
+      comment: 'Nou comentari de %{author} al conjunt de canvis #%{changeset_id}'
+      commented_at_html: Actualitzat fa %{when}
+      commented_at_by_html: Actualitzat fa %{when} per %{user}
+      full: Discussió sencera
   diary_entry:
     new:
       title: Nova Entrada de Diari
@@ -546,7 +564,7 @@ ca:
           primary_link: Carretera principal
           proposed: Carretera proposada
           raceway: Vial Ràpid
-          residential: Residencial
+          residential: Carrer Residencial
           rest_area: Àrea de descans
           road: Carretera
           secondary: Carretera secundària
@@ -712,7 +730,7 @@ ca:
           country: País
           county: Comtat
           farm: Granja
-          hamlet: Aldea
+          hamlet: Llogaret
           house: Casa
           houses: Cases
           island: Illa
@@ -757,6 +775,8 @@ ca:
           tram: Tramvia
           tram_stop: Parada de tramvia
           yard: Pati de ferrocarril
+        route:
+          bus: Ruta d'autobús
         shop:
           alcohol: De llicència
           antiques: Antiquari
@@ -879,13 +899,13 @@ ca:
           water_point: Punt d'aigua
           weir: Weir
       admin_levels:
-        level2: Frontera
+        level2: Frontera internacional
         level4: Límit d'estat
         level5: Límit de regió
         level6: Frontera
         level8: Límit de municipi
-        level9: Límit de poble
-        level10: Límit de suburbi
+        level9: Límit de districte
+        level10: Límit de barri
     description:
       title:
         osm_nominatim: Localització des de <a href="http://nominatim.openstreetmap.org/">OpenStreetMap
@@ -964,9 +984,6 @@ ca:
       text: Feu una donació
     learn_more: Aprèn-ne més
     more: Més
-    sotm_line_1: 8a Conferència Annual
-    sotm_line_2: 7-9 de novembre de 2014
-    sotm_line_3: Buenos Aires, Argentina
   license_page:
     foreign:
       title: Quant a la traducció
@@ -1279,6 +1296,20 @@ ca:
         commented_note: '%{commenter} ha reactivat una nota de mapa en la qual hi
           heu comentat. La nota és a prop de %{place}.'
       details: Podeu trobar més detalls de la nota a %{url}.
+    changeset_comment_notification:
+      greeting: Hola,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} ha comentat en un dels vostres
+          conjunts de canvis'
+        subject_other: '[OpenStreetMap] %{commenter} ha comentat en un conjunt de
+          canvis el qual hi esteu interessat'
+        your_changeset: '%{commenter} ha fet un comentari en un dels vostres conjunts
+          de canvis creats a %{time}'
+        commented_changeset: '%{commenter} ha fet un comentari en un conjunt de canvis
+          de %{changeset_author} a %{time} i que esteu seguint'
+        partial_changeset_with_comment: amb comentari '%{changeset_comment}'
+        partial_changeset_without_comment: sense comentari
+      details: Més detalls del conjunt de canvis es poden trobar a %{url}
   message:
     inbox:
       title: Safata d'entrada
@@ -2213,8 +2244,8 @@ ca:
       tooltip_disabled: La llegenda només està disponible per a la capa estàndard
     map:
       zoom:
-        in: Apropar-se
-        out: Allunyar-se
+        in: Amplia
+        out: Allunya
       locate:
         title: Mostra la meva ubicació
         popup: Esteu a {distance} {unit} d'aquest punt
@@ -2239,6 +2270,15 @@ ca:
       createnote_disabled_tooltip: Fes zoom per afegir una nota al mapa
       map_notes_zoom_in_tooltip: Feu zoom per veure les notes del mapa
       map_data_zoom_in_tooltip: Feu zoom per veure les dades del mapa
+      queryfeature_tooltip: Consulta característiques
+      queryfeature_disabled_tooltip: Apropeu-vos per consultar característiques
+    changesets:
+      show:
+        comment: Comentari
+        subscribe: Subscriure's
+        unsubscribe: Donar-se de baixa
+        hide_comment: ocultar
+        unhide_comment: mostrar
     notes:
       new:
         intro: Heu trobat un error o bé hi falta res? Informeu-ne a d'altres col·laboradors
@@ -2257,6 +2297,13 @@ ca:
         comment: Comenta
     edit_help: Moveu el mapa i feu zoom sobre una ubicació que vulgueu editar, i a
       continuació, feu clic aquí.
+    query:
+      node: Node
+      way: Via
+      relation: Relació
+      nothing_found: No s'han trobat característiques
+      error: 'Error en contactar amb %{server}: %{error}'
+      timeout: Temps de contacte amb %{server} excedit
   redaction:
     edit:
       description: Descripció
index bdada882a1416d3600752005eb3bd8665fc4ad08..852516b67169641868ae835fac2bf736252c3d74 100644 (file)
@@ -13,6 +13,7 @@
 # Author: Masox
 # Author: Matěj Grabovský
 # Author: Michaelbrabec
+# Author: Mkyral
 # Author: Mormegil
 # Author: Mr. Richard Bolla
 # Author: Nemo bis
@@ -137,11 +138,17 @@ cs:
       way_paginated: Cesty (%{x}–%{y} z %{count})
       relation: Relace (%{count})
       relation_paginated: Relace (%{x}–%{y} z %{count})
+      comment: Komentáře (%{count})
+      hidden_commented_by: Skrytý komentář od %{user} <abbr title='%{exact_time}'>Před
+        %{when}</abbr>
+      commented_by: <abbr title='%{exact_time}'>Před %{when}</abbr> okomentoval %{user}
       changesetxml: Soubor změn XML
       osmchangexml: osmChange XML
       feed:
         title: Sada změn %{id}
         title_comment: 'Sada změn: %{id} - %{comment}'
+      join_discussion: Pokud chcete diskutovat, přihlaste se
+      discussion: Diskuse
     node:
       title: 'Uzel: %{name}'
       history_title: 'Historie uzlu: %{name}'
@@ -219,6 +226,11 @@ cs:
       reopened_by_anonymous: Reaktivoval <abbr title='%{exact_time}'>před %{when}</abbr>
         anonym
       hidden_by: Skryl <abbr title='%{exact_time}'>před %{when}</abbr> %{user}
+    query:
+      title: Průzkum prvků
+      introduction: Pro nalezení okolních prvků klikněte do mapy.
+      nearby: Okolní prvky
+      enclosing: Umístění prvku
   changeset:
     changeset_paging_nav:
       showing_page: Stránka %{page}
@@ -248,6 +260,13 @@ cs:
       load_more: Načíst další
     timeout:
       sorry: Omlouváme se, ale vámi požadovaný seznam sad změn se načítal příliš dlouho.
+    rss:
+      title_all: Diskuse k sadě změn na OpenStreetMap
+      title_particular: 'Diskuse k sadě změn #%{changeset_id} na OpenStreetMap'
+      comment: '%{author} napsal nový komentář k sadě změn #%{changeset_id}'
+      commented_at_html: Aktualizováno před %{when}
+      commented_at_by_html: Aktualizováno před %{when} uživatelem %{user}
+      full: Celá diskuse
   diary_entry:
     new:
       title: Nový záznam do deníčku
@@ -750,6 +769,8 @@ cs:
           tram: Tramvajová trať
           tram_stop: Tramvajová zastávka
           yard: Přednádraží
+        route:
+          bus: Autobusová linka
         shop:
           alcohol: Prodej alkoholu
           antiques: Starožitnosti
@@ -953,10 +974,6 @@ cs:
       text: Pošlete příspěvek
     learn_more: Více informací
     more: Další
-    sotm_header: State of the Map 2014
-    sotm_line_1: 8. výroční konference
-    sotm_line_2: 7.–9. listopadu 2014
-    sotm_line_3: Buenos Aires, Argentina
   license_page:
     foreign:
       title: O tomto překladu
@@ -1242,6 +1259,20 @@ cs:
         commented_note: '%{commenter} reaktivoval poznámku k mapě, kterou jste komentovali.
           Poznámka je umístěna poblíž %{place}.'
       details: Podrobnosti k poznámce můžete najít na %{url}.
+    changeset_comment_notification:
+      greeting: Ahoj,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} okomentoval jednu z vašich sad
+          změn'
+        subject_other: '[OpenStreetMap] %{commenter} okomentoval jednu ze sad změn,
+          která vás zajímá'
+        your_changeset: '%{commenter} zanechal komentář na jedné z vašich sad změn,
+          vytvořené %{time}.'
+        commented_changeset: '%{commenter} zanechal komentář na sadě změn, kterou
+          %{time} vytvořil %{changeset_author} a kterou sledujete.'
+        partial_changeset_with_comment: s komentářem „%{changeset_comment}“
+        partial_changeset_without_comment: bez komentáře
+      details: Více informací o této sadě změn lze nalézt na %{url}.
   message:
     inbox:
       title: Doručená pošta
@@ -2196,6 +2227,15 @@ cs:
       createnote_disabled_tooltip: Pro přidání poznámky přejděte na větší měřítko
       map_notes_zoom_in_tooltip: Pro zobrazení poznámek k mapě přejděte na větší měřítko.
       map_data_zoom_in_tooltip: Pro zobrazení mapových dat přejděte na větší měřítko.
+      queryfeature_tooltip: Průzkum prvků
+      queryfeature_disabled_tooltip: Pro průzkum prvků přejděte na větší měřítko
+    changesets:
+      show:
+        comment: Okomentovat
+        subscribe: Odebírat
+        unsubscribe: Zrušit odebírání
+        hide_comment: skrýt
+        unhide_comment: odkrýt
     notes:
       new:
         intro: Zahlédli jste chybu nebo prázdné místo? Dejte vědět ostatním uživatelům,
@@ -2213,6 +2253,13 @@ cs:
         comment: Okomentovat
     edit_help: Posuňte si mapu a zvětšete si místo, které chcete editovat, a klikněte
       zde.
+    query:
+      node: Uzel
+      way: Cesta
+      relation: Relace
+      nothing_found: Žádné nalezené objekty
+      error: 'Chyba při připojování k %{server}: %{error}'
+      timeout: Vypršel čas při připojování k %{server}
   redaction:
     edit:
       description: Popis
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
new file mode 100644 (file)
index 0000000..495473c
--- /dev/null
@@ -0,0 +1,1431 @@
+# Messages for Welsh (Cymraeg)
+# Exported from translatewiki.net
+# Export driver: phpyaml
+# Author: Cymrodor
+# Author: Robin Owain
+---
+cy:
+  time:
+    formats:
+      friendly: '%e %B %Y am %H:%M'
+  activerecord:
+    models:
+      acl: Rhestr Rheoli Mynediad
+      country: Gwlad
+      diary_comment: Nodyn Dyddiadur
+      diary_entry: Cofnod Dyddiadur
+      friend: Ffrind
+      language: Iaith
+      message: Neges
+      notifier: Hysbysydd
+      old_relation: Hen Berthynas
+      old_relation_member: Aelod o Hen Berthynas
+      old_relation_tag: Tag Hen Berthynas
+      old_way: Hen Lwybr
+      relation: Perthynas
+      session: Sesiwn
+      trace: Dargopïo
+      tracepoint: Pwynt Dargopïo
+      tracetag: Tag Dargopïo
+      user: Defnyddiwr
+      user_preference: Dewis Defnyddiwr
+      user_token: Tocyn Defnyddiwr
+      way: Llwybr
+      way_node: Cwgn Llwybr
+      way_tag: Tag Llwybr
+    attributes:
+      diary_comment:
+        body: Corff
+      diary_entry:
+        user: Defnyddiwr
+        title: Pwnc
+        latitude: Lledred
+        longitude: Hydred
+        language: Iaith
+      friend:
+        user: Defnyddiwr
+        friend: Ffrind
+      trace:
+        user: Defnyddiwr
+        visible: Gweladwy
+        name: Enw
+        size: Maint
+        latitude: Lledred
+        longitude: Hydred
+        public: Cyhoeddus
+        description: Disgrifiad
+      message:
+        sender: Danfonwr
+        title: Pwnc
+        body: Corff
+        recipient: Derbyniwr
+      user:
+        email: Ebost
+        active: Gweithredol
+        display_name: Dangos Enw
+        description: Disgrifiad
+        languages: Ieithoedd
+        pass_crypt: Cyfrinair
+  editor:
+    default: (currently %{name}) diofyn
+    id:
+      name: iD
+      description: iD (golygydd y porwr)
+  browse:
+    created: Crewyd
+    closed: Wedi cau
+    created_html: Crewyd <abbr title='%{title}'>%{time} yn ôl</abbr>
+    closed_html: Wedi cau <abbr title='%{title}'>%{time} yn ôl</abbr>
+    created_by_html: Crewyd <abbr title='%{title}'>%{time} yn ôl</abbr> gan %{user}
+    deleted_by_html: Dilewyd <abbr title='%{title}'>%{time} yn ôl</abbr> gan %{user}
+    edited_by_html: Golygwyd <abbr title='%{title}'>%{time} yn ôl</abbr> gan %{user}
+    closed_by_html: Caewyd <abbr title='%{title}'>%{time} yn ôl</abbr> gan %{user}
+    version: Fersiwn
+    anonymous: dienw
+    no_comment: (dim sylw)
+    part_of: Rhan o
+    download_xml: Lawrlwytho XML
+    view_history: Gweld yr Hanes
+    view_details: Gweld Manylion
+    location: Lleoliadː
+    changeset:
+      title: '%{id}'
+      belongs_to: Awdur
+      node: Cygnau (%{count})
+      node_paginated: Cygnau (%{x}-%{y} o %{count})
+      way: Llwybrau %{count}
+      way_paginated: Llwybrau (%{x}-%{y} o %{count})
+      comment: Sylwadau (%{count})
+      hidden_commented_by: Sylw cudd gan %{user} <abbr title='%{exact_time}'>%{when}
+        yn ôl</abbr>
+      commented_by: Sylw gan %{user} <abbr title='%{exact_time}'>%{when} yn ôl</abbr>
+      join_discussion: Mewngofnodwch i ymuno yn y sgwrs
+      discussion: Sgwrs
+    way:
+      title: 'Llwybr: %{name}'
+      history_title: 'Hanes Llwybr: %{name}'
+    relation:
+      title: 'Perthynas: %{name}'
+      members: Aelodau
+    relation_member:
+      type:
+        way: Llwybr
+        relation: Perthynas
+    containing_relation:
+      entry: Perthynas %{relation_name}
+      entry_role: Perthynas %{relation_name} (fel %{relation_role})
+    not_found:
+      sorry: 'Ymddiheurwn, ni ellir canfod %{type} #%{id}.'
+      type:
+        way: llwybr
+    timeout:
+      type:
+        way: llwybr
+        relation: perthynas
+    redacted:
+      type:
+        way: llwybr
+        relation: perthynas
+    start_rjs:
+      load_data: Llwytho Data
+      loading: Yn llwytho...
+    tag_details:
+      tags: Tagiau
+      wiki_link:
+        key: Tudalen disgrifiad wici ar gyfer y tag %{key}
+        tag: Tudalen disgrifiad wici ar gyfer y tag %{key}=%{value}
+      wikidata_link: Eitem %{page} ar Wikidata
+      wikipedia_link: Erthygl %{page} ar Wicipedia
+      telephone_link: Galw %{phone_number}
+    note:
+      title: 'Nodyn: %{id}'
+      new_note: Nodyn Newydd
+      description: Disgrifiad
+      hidden_title: Nodyn cudd %{note_name}
+      open_by: Crëwyd gan %{user} <abbr title='%{exact_time}'>%{when} yn ôl</abbr>
+      open_by_anonymous: Crëwyd yn ddienw <abbr title='%{exact_time}'>%{when} yn ôl</abbr>
+      commented_by: Sylw gan %{user} <abbr title='%{exact_time}'>%{when} yn ôl</abbr>
+      commented_by_anonymous: Sylw yn ddienw <abbr title='%{exact_time}'>%{when} yn
+        ôl</abbr>
+      hidden_by: Cuddwyd gan %{user} <abbr title='%{exact_time}'>%{when} yn ôl</abbr>
+    query:
+      title: Nodweddion Ymholiad
+      introduction: Cliciwch ar y map i ddarganfod nodweddion gerllaw.
+      nearby: Nodweddion gerllaw
+      enclosing: Nodweddion amgáu
+  changeset:
+    changeset_paging_nav:
+      showing_page: Tudalen %{page}
+      next: Nesaf »
+      previous: « Blaenorol
+    changeset:
+      anonymous: Dienw
+      no_edits: (dim newid)
+    changesets:
+      id: ID
+      saved_at: Cadwyd
+      user: Defnyddiwr
+      comment: Sylw
+      area: Maes
+    list:
+      load_more: Llwytho mwy
+    rss:
+      commented_at_html: Diweddarwyd %{when} yn ôl
+      commented_at_by_html: Diweddarwyd %{when} yn ôl gan %{user}
+      full: Sgwrs llawn
+  diary_entry:
+    new:
+      title: Cofnod Dyddiadur Newydd
+    list:
+      title: Dyddiaduron defnyddwyr
+      title_friends: Dyddiaduron ffrindiau
+      title_nearby: Dyddiaduron defnyddwyr gerllaw
+      user_title: Dyddiadur %{user}
+      in_language_title: Cofnodion Dyddiadur yn %{language}
+      new: Cofnod Dyddiadur Newydd
+      new_title: Ysgrifennu cofnod newydd yn eich dyddiadur defnyddiwr
+      no_entries: Dim cofnodion dyddiadur
+      recent_entries: Cofnodion dyddiadur diweddar
+      older_entries: Cofnodion Hŷn
+      newer_entries: Confodion Mwy Diweddar
+    edit:
+      title: Golygu cofnod dyddiadur
+      subject: 'Pwnc:'
+      body: 'Corff:'
+      language: 'Iaith:'
+      location: 'Lleoliad:'
+      latitude: Hydred
+      longitude: Lledred
+      use_map_link: defnyddiwch y map
+      save_button: Arbed
+      marker_text: Lleoliad cofnod y dyddiadur
+    view:
+      title: yddiadur %{user} | %{title}
+      user_title: dyddiadur %{user}
+      leave_a_comment: Gadael sylw
+      login_to_leave_a_comment: '%{login_link} i adael sylw'
+      login: Mewngofnodi
+      save_button: Cadw
+    no_such_entry:
+      title: Dim cofnod o'r fath yn y dyddiadur
+      heading: 'Dim cofnod efo''r id: %{id}'
+      body: Ymddiheurwn, ond nid oes cofnod o sylw gyda'r id %{id}. Gwirwch eich sillafu,
+        neu a ydych wedi clicio dolen anghywir?
+    diary_entry:
+      posted_by: Postiwyd gan %{link_user} ar %{created} mewn %{language_link}
+      comment_link: Sylw ar y cofnod hwn
+      reply_link: Ymateb i'r cofnod hwn
+      comment_count:
+        zero: Dim sylwadau
+        one: '%{count} sylw'
+        other: '%{count} sylw'
+      edit_link: Golygu'r cofnod hwn
+      hide_link: Cuddio'r cofnod hwn
+      confirm: Cadarnhau
+    diary_comment:
+      comment_from: Sylwadau gan %{link_user} ar %{comment_created_at}
+      hide_link: Cuddio'r sylw hwn
+      confirm: Cadarnhau
+    location:
+      location: 'Lleoliad:'
+      view: Dangos
+      edit: Golygu
+    feed:
+      user:
+        title: Cofnodion OpenStreetMap ar gyfer %{user}
+        description: Cofnodion dyddiadur diweddar OpenStreetMap gan %{user}
+      language:
+        title: Cofnodion dyddiadur OpenStreetMap mewn %{language_name}
+        description: Cofnodion dyddiadur diweddar gan ddefnyddwyr OpenStreetMap in
+          %{language_name} mewn %{language_name}
+      all:
+        title: Cofnodion dyddiadur OpenStreetMap
+        description: Cofnodion dyddiadur diweddar gan ddefnyddwyr OpenStreetMap
+    comments:
+      has_commented_on: Mae %{display_name} wedi rhoi sylw ar y cofnodion dyddiadurol
+        canlynol
+      post: Post
+      when: Pa bryd
+      comment: Sylw
+      ago: '%{ago} yn ôl'
+      newer_comments: Sylwadau mwy diweddar
+      older_comments: Hen Sylwadau
+  export:
+    title: Allforio
+    start:
+      area_to_export: Ardal i'w Hallforio
+      manually_select: Dewisiwch ardal wahanol
+      format_to_export: Fformatiwch i'w Hallforio
+      osm_xml_data: Data XML OpenStreetMap
+      map_image: Delwedd y Map (dangoser yr haen safonol)
+      licence: Trwydded
+      export_details: Trwyddedir OpenStreetMap ar drwydded <a href="http://opendatacommons.org/licenses/odbl/1.0/">Comin
+        Data Agored (Open Data Commons Open Database License)</a> (ODbL).
+      too_large:
+        other:
+          title: Ffynonellau eraill
+          description: Ffynonellau ychwanegol a nodir ar wici OpenStreetMap
+      options: Dewisiadau
+      format: Fformat
+      scale: Graddfa
+      max: uchafswm
+      image_size: Maint y ddelwedd
+      zoom: Chwyddo
+      add_marker: Ychwanegwch bin ar y map
+      latitude: 'Lledred:'
+      longitude: 'Hydred:'
+      output: Allbwn
+      export_button: Allforio
+  geocoder:
+    search:
+      title:
+        latlon: Canlyniadau o <a href="http://openstreetmap.org/">Internal</a>
+        us_postcode: Canlyniadau o <a href="http://geocoder.us/">Geocoder.us</a>
+        uk_postcode: Canlyniadau o <a href="http://www.npemap.org.uk/">NPEMap / FreeThe
+          Postcode</a>
+        ca_postcode: Canlyniadau o <a href="http://geocoder.ca/">Geocoder.CA</a>
+        osm_nominatim: Canlyniadau o <a href="http://nominatim.openstreetmap.org/">OpenStreetMap
+          Nominatim</a>
+        geonames: Canlyniadau o <a href="http://www.geonames.org/">GeoNames</a>
+        osm_nominatim_reverse: Canlyniadau o <a href="http://nominatim.openstreetmap.org/">OpenStreetMap
+          Nominatim</a>
+        geonames_reverse: Canlyniadau o <a href="http://www.geonames.org/">GeoNames</a>
+    search_osm_nominatim:
+      prefix:
+        aerialway:
+          chair_lift: Cadair godi
+          drag_lift: Cadair lusg
+        aeroway:
+          aerodrome: Maesawyr
+          apron: Ffedog
+          gate: Giat
+          helipad: Pad Hofrennydd
+        amenity:
+          airport: Maes Awyr
+          arts_centre: Canolfan Grefftau
+          atm: Peiriant Codi Arian
+          auditorium: Awditoriwm
+          bank: Banc
+          bar: Bar
+          bbq: Barbeciw
+          bench: Mainc
+          bicycle_parking: Man Cadw Beic
+          bicycle_rental: Man Llogi Beic
+          biergarten: Gardd Gwrw
+          brothel: Puteindy
+          bureau_de_change: Bureau de Change
+          bus_station: Gorsaf Fysiau
+          cafe: Caffi
+          car_rental: Man Llogi Cerbyd
+          car_sharing: Man Rhannu Cerbyd
+          car_wash: Golchwr Cerbyd
+          casino: Casino
+          charging_station: Gorsaf Gwefru
+          cinema: Sinema
+          clinic: Clinic
+          club: Clwb
+          college: Coleg
+          community_centre: Canolfan Cymunedol
+          courthouse: Llys
+          crematorium: Amlosgfa
+          dentist: Deintydd
+          doctors: Meddygfa
+          drinking_water: Dŵr Yfed
+          driving_school: Ysgol Yrru
+          embassy: Llysgenhadaeth
+          emergency_phone: Ffôn Argyfwng
+          fast_food: Bwyd Parod
+          fire_station: Gorsaf Dân
+          food_court: Cwrt Fwydydd
+          fountain: Ffynnon
+          fuel: Tanwydd
+          grave_yard: Mynwent
+          gym: Canolfan Ffitrwydd / Campfa
+          hall: Neuadd
+          health_centre: Canolfan Iechyd
+          hospital: Ysbyty
+          hotel: Gwesty
+          ice_cream: Hufen Iâ
+          kindergarten: Meithrinfa
+          library: Llyfrgell
+          market: Marchnad
+          marketplace: Marchnad
+          mountain_rescue: Achub bywyd mynydd
+          nightclub: Clwb Nôs
+          nursery: Meithrinfa
+          nursing_home: Cartref Nyrsio
+          office: Swyddfa
+          park: Parc
+          parking: Parcio
+          pharmacy: Fferyllfa
+          place_of_worship: Man addoli
+          police: Heddlu
+          post_box: Blwch Llythyrau
+          post_office: Swyddfa Bost
+          preschool: Meithrinfa
+          prison: Carchar
+          pub: Tafarn
+          public_building: Adeilad Cyhoeddus
+          public_market: Marchnad Cyhoeddus
+          reception_area: Derbyniad
+          recycling: Pwynt Ailgylchu
+          restaurant: Bwyty
+          retirement_home: Cartref Ymddeol
+          sauna: Sawna
+          school: Ysgol
+          shelter: Cysgod
+          shop: Siop
+          shopping: Siopa
+          shower: Cawod
+          social_centre: Canolfan Cymdeithasol
+          social_club: Clwb Cymdeithasol
+          social_facility: Cyfleuster cymedithasol
+          studio: Stiwdio
+          supermarket: Archfarchnad
+          swimming_pool: Pwll Nofio
+          taxi: Tacsi
+          telephone: Ffôn Cyhoeddus
+          theatre: Theatr
+          toilets: Tai bach
+          townhall: Neuadd Dref
+          university: Prifysgol
+          veterinary: Milfeddygfa
+          village_hall: Neuadd Bentref
+          waste_basket: Bin sbwriel
+          wifi: Mynediad WiFi
+          WLAN: Mynediad WiFi
+          youth_centre: Canolfan Ieuenctid
+        boundary:
+          census: Ffin Cyfrifiad
+          national_park: Parc Cenedlaethol
+          protected_area: Ardal Warchodol
+        bridge:
+          aqueduct: Dyfrbont
+          suspension: Pont Grog
+          viaduct: Pont Trenau
+          "yes": Pont
+        building:
+          "yes": Adeilad
+        emergency:
+          phone: Ffôn Argyfwng
+        highway:
+          bridleway: Llwybr Ceffyl
+          bus_stop: Stop Bysiau
+          construction: Priffordd yn cael ei Adeiladu
+          cycleway: Llwybr Beicio
+          emergency_access_point: Pwynt Mynediad Argyfwng
+          footway: Llwybr Cerdded
+          ford: Rhyd
+          milestone: Carreg Filltir
+          minor: Ffordd Gefn
+          motorway: Traffordd
+          motorway_junction: Cyffordd Traffordd
+          motorway_link: Ffordd Traffordd
+          path: Llwybr
+          pedestrian: Llwybr Cerddwyr
+          platform: Platfform
+          primary: Priffordd
+          primary_link: Priffordd
+          proposed: Ffordd Arfaethedig
+          rest_area: Man Gorffwys
+          road: Ffordd
+          secondary: Ffordd Eilaidd
+          secondary_link: Ffordd Eilaidd
+          services: Gwasanaethau Traffordd
+          speed_camera: Camera Cyflymder
+          steps: Grisiau
+          street_lamp: Golau Stryd
+          stile: Camfa
+          tertiary: Ffordd Trydyddol
+          tertiary_link: Ffordd Trydyddol
+          track: Trac
+          trail: Llwybr
+          trunk: Cefnffordd
+          trunk_link: Cefnffordd
+          unclassified: Ffordd Diddosbarth
+          unsurfaced: Ffordd Heb Wyneb
+        historic:
+          archaeological_site: Safle Archaeolegol
+          battlefield: Maes Brwydr
+          boundary_stone: Maen Terfyn
+          building: Adeilad
+          castle: Castell
+          church: Eglwys
+          citywalls: Waliau Ddinas
+          fort: Caer
+          house: Tŷ
+          icon: Eicon
+          manor: Maenor
+          memorial: Cofeb
+          mine: Mwynfa
+          monument: Cofadail
+          museum: Amgueddfa
+          ruins: Adfeilion
+          tomb: Beddrod
+          tower: Tŵr
+          wayside_cross: Croes Min Ffordd
+          wayside_shrine: Cysegrfa Min Ffordd
+          wreck: Llongddrylliad
+        landuse:
+          allotments: Rhandiroedd
+          basin: Basn
+          brownfield: Browndir
+          cemetery: Mynwent
+          commercial: Ardal Fasnachol
+          conservation: Cadwraeth
+          construction: Adeiladwaith
+          farm: Fferm
+          farmland: Tir Ffermio
+          farmyard: Buarth Fferm
+          forest: Coedwig
+          garages: Garejis
+          grass: Glaswellt
+          greenfield: Glastir
+          industrial: Ardal Ddiwydiannol
+          landfill: Safle Tirlenwi
+          meadow: Dôl
+          military: Ardal Milwrol
+          mine: Mwynglawdd
+          orchard: Berllan
+          nature_reserve: Gwarchodfa Natur
+          park: Parc
+          piste: Piste
+          quarry: Chwarel
+          railway: Rheilffordd
+          recreation_ground: Maes Chwarae
+          reservoir: Cronfa Ddŵr
+          retail: Adwerthu
+          village_green: Llain Pentref
+          vineyard: Gwinllan
+          wetland: Gwlypdir
+          wood: Coed
+        leisure:
+          beach_resort: Ardal Wyliau
+          common: Tir Comin
+          fishing: Man Pysgota
+          garden: Gardd
+          golf_course: Cwrs Golff
+          ice_rink: Llawr Sglefrio
+          marina: Marina
+          miniature_golf: Golff Pitw
+          nature_reserve: Gwarchodfa Natur
+          park: Parc
+          pitch: Maes Chwarae
+          playground: Lle Chwarae
+          recreation_ground: Maes Hamdden
+          sauna: Sawna
+          slipway: Llithrffordd
+          sports_centre: Canolfan Chwaraeon
+          stadium: Stadiwm
+          swimming_pool: Pwll Nofio
+          track: Trac Rhedeg
+          water_park: Parc Dŵr
+        military:
+          airfield: Maes Awyr Milwrol
+          barracks: Barics
+          bunker: Byncer
+        mountain_pass:
+          "yes": Bwlch Mynydd
+        natural:
+          bay: Bae
+          beach: Traeth
+          cape: Penrhyn
+          cave_entrance: Mynediad Ogof
+          channel: Culfor
+          cliff: Clogwyn
+          crater: Crater
+          dune: Twyn
+          feature: Nodwedd
+          fjord: Ffiord
+          forest: Coedwig
+          geyser: Geiser
+          glacier: Rhewlif
+          heath: Rhos
+          hill: Bryn
+          island: Ynys
+          land: Tir
+          marsh: Cors
+          moor: Gwaun
+          mud: Mwd
+          peak: Copa
+          point: Pwynt
+          reef: Riff
+          ridge: Cefn
+          river: Afon
+          rock: Craig
+          scree: Sgri
+          shoal: Haig
+          spring: Ffynnon
+          stone: Carreg
+          strait: Culfor
+          tree: Coeden
+          valley: Dyffryn
+          volcano: Llosgfynydd
+          water: Dŵr
+          wetland: Gwlypdir
+          wetlands: Gwlypdiroedd
+          wood: Coed
+        office:
+          accountant: Cyfrifydd
+          architect: Pensaer
+          company: Cwmni
+          employment_agency: Asiantaeth Cyflogi
+          estate_agent: Gwerthwr Tai
+          government: Swyddfa Llywodraeth
+          insurance: Swyddfa Yswiriant
+          lawyer: Cyfreithiwr
+          telecommunication: Swyddfa Telegyfathrebu
+          travel_agent: Asiantaeth Deithio
+          "yes": Swyddfa
+        place:
+          airport: Maes Awyr
+          city: Dinas
+          country: Gwlad
+          county: Sir
+          farm: Fferm
+          hamlet: Pentrefan
+          house: Tŷ
+          houses: Tai
+          island: Ynys
+          islet: Ynysig
+          isolated_dwelling: Annedd Unig
+          locality: Ardal
+          moor: Gwaun
+          municipality: Bwrdeistref
+          neighbourhood: Cymdogaeth
+          postcode: Cod Post
+          region: Rhanbarth
+          sea: Môr
+          state: Talaith
+          subdivision: Is-adran
+          suburb: Maestref
+          town: Tref
+          village: Pentref
+        railway:
+          abandoned: Hen Reilffordd
+          construction: Rheilffordd yn cael ei Osod
+          disused: Rheilffordd Segur
+          disused_station: Gorsaf Drenau Segur
+          funicular: Rheilffordd fynydd
+          halt: Stop Trenau
+          historic_station: Hen Orsaf Trenau
+          junction: Cyffordd Rheilffyrdd
+          level_crossing: Croesfan Wastad
+          miniature: Lein Fach
+          narrow_gauge: Lein Fach Gul
+          platform: Platfform Drenau
+          preserved: Rheilffordd ar Gadw
+          proposed: Rheilfford Arfaethedig
+          spur: Cainc Rheilffordd
+          station: Gorsaf Drenau
+          subway: Gorsaf Drenau Tanddaearol
+          subway_entrance: Mynedfa at Drenau Tanddaearol
+          tram: Tramffordd
+          tram_stop: Stop Tramiau
+          yard: Buarth Drenau
+        route:
+          bus: Taith Bws
+        shop:
+          alcohol: Siop Drwyddedig
+          antiques: Hynafolion
+          art: Siop Gelf
+          bakery: Becws
+          beauty: Siop Harddwch
+          beverages: Siop Ddiodau
+          bicycle: Siop Feiciau
+          books: Siop Lyfrau
+          boutique: Boutique
+          butcher: Cigydd
+          car: Siop Geir
+          car_parts: Rhannau Ceir
+          car_repair: Trwsio Ceir
+          carpet: Siop Garpedi
+          charity: Siop Elusen
+          chemist: Fferyllfa
+          clothes: Siop Ddillad
+          computer: Siop Gyfrifiaduron
+          confectionery: Siop Felysion
+          convenience: Siop Bob-peth
+          copyshop: Siop Argraffu
+          cosmetics: Siop Golur
+          deli: Deli
+          department_store: Siop Adrannol
+          discount: Siop Ddisgownt
+          doityourself: DIY
+          dry_cleaning: Sychlanhau
+          electronics: Siop Electroneg
+          estate_agent: Gwerthwr Tai
+          farm: Siop Fferm
+          fashion: Siop Ffasiwn
+          fish: Siop Bysgod
+          florist: Siop Flodau
+          food: Siop Fwyd
+          funeral_directors: Trefnwyr Angladdau
+          furniture: Dodrefn
+          gallery: Galeri
+          garden_centre: Canolfan Gardd
+          general: Siop Gyffredinol
+          gift: Siop Anrhegion
+          greengrocer: Siop Lysiau
+          grocery: Siop y Groser
+          hairdresser: Siop Drin Gwallt
+          hardware: Siop Nwyddau Metel
+          hifi: Sain
+          insurance: Yswiriant
+          jewelry: Siop Gemwaith
+          kiosk: Siop Fechan
+          laundry: Golchdy
+          mall: Canolfan Siopa
+          market: Marchnad
+          mobile_phone: Siop Ffonau Symudol
+          motorcycle: Siop Beiciau Modur
+          music: Siop Gerddoriaeth
+          newsagent: Siop Bapurau
+          optician: Optegydd
+          organic: Siop Fwyd Organig
+          outdoor: Siop Awyr Agored
+          pet: Siop Anifeiliaid Anwes
+          pharmacy: Fferyllfa
+          photo: Siop Luniau
+          salon: Salon Trin Gwallt
+          second_hand: Siol Ail-law
+          shoes: Siop Esgidiau
+          shopping_centre: Canolfan Siopa
+          sports: Siop Chwaraeon
+          stationery: Siop Offer Swyddfa
+          supermarket: Archfarchnad
+          tailor: Teiliwr
+          toys: Siop Degannau
+          travel_agency: Asiantaeth Deithio
+          video: Siop Fideos
+          wine: Siop Drwyddedig
+          "yes": Siop
+        tourism:
+          alpine_hut: Cwt Mynydd
+          artwork: Gwaith Celf
+          attraction: Atyniad
+          bed_and_breakfast: Gweldy a Brecwast
+          cabin: Caban
+          camp_site: Man Gwersylla
+          caravan_site: Parc Carafanau
+          chalet: Chalet
+          guest_house: Llety
+          hostel: Hostel
+          hotel: Gwesty
+          information: Gwybodaeth
+          motel: Motél
+          museum: Amgueddfa
+          picnic_site: Safle Picnic
+          theme_park: Parc Thema
+          valley: Dyffryn
+          viewpoint: Gwylfa
+          zoo: Sw
+        tunnel:
+          culvert: Twnel Ddŵr
+          "yes": Twnel
+        waterway:
+          canal: Camlas
+          dam: Argae
+          derelict_canal: Camlas Diffaith
+          ditch: Ffos
+          dock: Porthladd
+          drain: Draen
+          lock: Loc
+          lock_gate: Llifddor
+          mineral_spring: Ffynnon Dŵr Mwynol
+          mooring: Angori
+          rapids: Dŵr Tyrfol
+          river: Afon
+          riverbank: Glan Afon
+          stream: Nant
+          wadi: Sychnant
+          waterfall: Rheadr
+          water_point: Pwynt Dŵr
+          weir: Cored
+      admin_levels:
+        level2: Ffin Gwledydd
+        level4: Ffin Taleithiau
+        level5: Ffin Rhanbarth
+        level6: Ffin Sir
+        level8: Ffin Dinas
+        level9: Ffin Pentref
+        level10: Ffin Maesdref
+    description:
+      types:
+        cities: Dinasoedd
+        towns: Trefi
+        places: Lleoedd
+    results:
+      no_results: Dim canlyniadau
+      more_results: Mwy o ganlyniadau
+    direction:
+      south_west: de-orllewin
+      south: de
+      south_east: de-ddwyrain
+      east: dwyrain
+      north_east: gogledd-ddwyrain
+      north: gogledd
+      north_west: gogledd-orllewin
+      west: gorllewin
+  layouts:
+    logo:
+      alt_text: Logo OpenStreetMap
+    home: Ewch Adref
+    logout: Allgofnodi
+    log_in: Mewngofnodi
+    log_in_tooltip: Mewngofnodi gyda chyfrif sy'n bodoli
+    sign_up: Cofrestru
+    start_mapping: Dechrau Mapio
+    sign_up_tooltip: Creu cyfrif er mwyn golygu
+    edit: Golygu
+    history: Hanes
+    export: Allforio
+    data: Data
+    export_data: Allforio Data
+    gps_traces: Dargopiadau GPS
+    user_diaries: Dyddiaduron Defnyddwyr
+    user_diaries_tooltip: Gweld dyddiaduron defnyddwyr
+    edit_with: Golygu gyda %{editor}
+    tag_line: Y Map Wici Rhydd o'r Byd
+    intro_header: Croeso i OpenStreetMap!
+    intro_text: Mae OpenStreetMap yn fap o'r byd, wedi'i greu gan bobl fel chi ac
+      sydd ar gael i'w ddefnyddio am ddim a dan drwydded rydd.
+    intro_2_create_account: Creu cyfrif defnyddiwr
+    partners_ic: Imperial College London
+    partners_bytemark: Bytemark Hosting
+    partners_partners: Partneriaid
+    osm_offline: Mae cronfa ddata OpenStreetMap all-lein ar hyn o bryd er mwyn gwaith
+      cynnal a chadw hanfodol.
+    osm_read_only: Nid yw'n bosib golygu cronfa ddata OpenStreetMap ar hyn o bryd
+      tra bod gwaith cynnal a chadw hanfodol yn digwydd.
+    donate: Cefnogwch OpenStreetMap gan %{link} i'r Gronfa Uwchraddio Caledwedd.
+    help: Cymorth
+    about: Ynghylch
+    copyright: Hawlfraint
+    community: Cymuned
+    community_blogs: Blogiau'r Gymuned
+    community_blogs_title: Blogiau gan aelodau cymuned OpenStreetMap
+    foundation: Sefydliad
+    foundation_title: Yr OpenStreetMap Foundation
+    make_a_donation:
+      title: Cefnogwch OpenStreetMap gyda rhodd ariannol
+      text: Gwneud Cyfraniad
+    learn_more: Dysgu Mwy
+    more: Mwy
+  license_page:
+    foreign:
+      title: Ynghylch y cyfieithiad hwn
+      text: Os oes gwrthgyferbyniad rhwng y cyfieithiad hwn a %{english_original_link},
+        bydd y dudalen Saesneg yn cael blaenoriaeth.
+      english_link: y Saesneg gwreiddiol
+    native:
+      title: Ynghylch y dudalen hon
+      mapping_link: dechrau mapio
+    legal_babble:
+      title_html: Hawlfraint a Thrwydded
+      intro_1_html: |-
+        Mae OpenStreetMap yn <i>data agored</i>, dan drwydded <a
+        href="http://opendatacommons.org/licenses/odbl/">Open Data
+        Commons Open Database License</a> (ODbL).
+      credit_title_html: Sut i gydnabod OpenStreetMap
+      attribution_example:
+        title: Enghraifft o gydnabyddiaeth
+      more_title_html: Darganfod rhagor
+      contributors_title_html: Ein cyfrannwyr
+      contributors_gb_html: "<strong>Y Deyrnas Gyfunol</strong>: Cynhwysir data a
+        thestun gan yr Arolwg Ordnans; hawlfraint y Goron a hawl cronfa ddata \n2010-12."
+      infringement_title_html: Torrwyd yr hawlfraint
+  welcome_page:
+    title: Croeso!
+    whats_on_the_map:
+      title: Beth sydd ar y Map
+    basic_terms:
+      title: Termau syml mapio
+    questions:
+      title: Unrhyw gwestiwn?
+    start_mapping: Dechrau Mapio
+    add_a_note:
+      title: Dim amser i olygu? Ychwanegwch nodyn!
+  fixthemap:
+    how_to_help:
+      title: Sut i Helpu
+      join_the_community:
+        title: Ymunwch â'r gymuned
+    other_concerns:
+      title: Gofidion eraill
+  help_page:
+    title: Cael Cymorth
+    welcome:
+      url: /croeso
+      title: Croeso i OSM
+  about_page:
+    next: Nesaf
+    copyright_html: <span>&copy;</span>cyfrannwyr<br>OpenStreetMap
+    local_knowledge_title: Gwybodaeth Leol
+    open_data_title: Data Agored
+    partners_title: Partneriaid
+  notifier:
+    gpx_notification:
+      greeting: Pa hwyl?
+      with_description: gyda'r disgrifiad
+      and_the_tags: 'a''r tagiau canlynol:'
+      and_no_tags: a dim tagiau.
+      failure:
+        subject: Methwyd mewnforio GPX [OpenStreetMap]
+        failed_to_import: 'methwyd a mewnforio. Dyma''r gwall:'
+    signup_confirm:
+      greeting: Pa hwyl!
+      created: Mae rhywun (chi gobeithio!) newydd greu cyfrif yn %{site_url}.
+    email_confirm_plain:
+      greeting: Pa hwyl,
+    note_comment_notification:
+      anonymous: Defnyddiwr anhysbys
+      greeting: Pa hwyl?
+  message:
+    inbox:
+      title: Mewnflwch
+      my_inbox: Fy Mewnflwch
+      outbox: allflwch
+      messages: Mae gennych %{new_messages} a %{old_messages}
+      from: Gan
+      subject: Pwnc
+      date: Dyddiad
+      people_mapping_nearby: person yn mapio gerllaw
+    message_summary:
+      unread_button: Nodi fel heb ei ddarllen
+      read_button: Nodi fel wedi'i ddarllen
+      reply_button: Ateb
+      delete_button: Dileu
+    new:
+      title: Anfon neges
+      send_message_to: Anfon negese newydd at %{name}
+      subject: Pwnc
+      body: Corff
+      send_button: Anfon
+      back_to_inbox: Nôl i'r mewnflwch
+      message_sent: Anfonwyd y neges
+      limit_exceeded: Rydych wedi anfon nifer o negeseuon yn ddiweddar. Arhoswch ychydig
+        cyn ceisio anfon mwy.
+    no_such_message:
+      title: Dim neges o'r fath
+      heading: Dim neges o'r fath
+      body: Ymddiheuriad, nid oes neges gyda'r id yno.
+    outbox:
+      title: Allanflwch
+      my_inbox: Fy %{inbox_link}
+      inbox: mewnflwch
+      outbox: allanflwch
+      messages:
+        one: Mae gennych %{count} neges wedi ei anfon
+        other: Mae gennych %{count} neges wedi eu hanfon
+      to: I
+      subject: Pwnc
+      date: Dyddiad
+    read:
+      title: Darllen neges
+      from: Gan
+      subject: Pwnc
+      date: Dyddiad
+      reply_button: Ateb
+      unread_button: Nodi nad yw wedi ei ddarllen
+      back: Yn ôl
+      to: At
+    sent_message_summary:
+      delete_button: Dileu
+    mark:
+      as_read: Nodwyd fod y neges wedi ei ddarllen
+      as_unread: Nodwyd nad yw'r neges wedi ei ddarllen
+    delete:
+      deleted: Dileuwyd y neges
+  site:
+    index:
+      shortlink: Dolen Fyr
+      createnote: Ychwanegu nodyn
+      license:
+        copyright: Hawlfraint OpenStreetMap a chyfranwyr, dan drwydded agored
+    edit:
+      not_public: Nid ydych wedi gosod eich golygiadau i fod yn gyhoeddus.
+      user_page_link: tudalen defnyddiwr
+      anon_edits_link_text: Darganfyddwch achos hyn.
+    sidebar:
+      search_results: Canlyniadau Chwilio
+      close: Cau
+    search:
+      search: Chwilio
+      where_am_i: Ble ydw i?
+      where_am_i_title: Disgrifiwch eich lleoliad presennol gan ddefnyddio peiriant
+        chwilio.
+      submit_text: Mynd
+    key:
+      table:
+        entry:
+          motorway: Traffordd
+          trunk: Cefnffordd
+          primary: Priffordd
+          secondary: Ffordd eilaidd
+          unclassified: Ffordd annosbarthedig
+          unsurfaced: Ffordd heb arwyneb
+          track: Trac
+          footway: Ffordd droed
+          rail: Rheilffordd
+          subway: Trenau Tanddaearyddol
+          tram:
+            1: tram
+          cable:
+          - Car codi
+          forest: Coedwig
+          wood: Coed
+          golf: Cwrs golff
+          park: Parc
+          tourist: Atyniad twristiaid
+          common:
+          - Comin
+          - dôl
+          retail: Ardal adwerthu
+          industrial: Ardal diwydiannol
+          commercial: Ardal masnachol
+          heathland: Rhostir
+          lake:
+          - Llyn
+          - cronfa ddŵr
+          farm: Fferm
+          cemetery: Mynwent
+          allotments: Rhandiroedd
+          pitch: Maes chwarae
+          centre: Canolfan chwaraeon
+          reserve: Gwarchodfa natur
+          military: Ardal milwrol
+          school:
+          - Ysgol
+          - prifysgol
+          building: Adeilad sylweddol
+          station: Gorsaf drenau
+          summit:
+          - Copa
+          - Crib
+          private: Mynediad preifat
+          permissive: Mynediad gyda chaniatâd
+          destination: Mynediad cyrchfan
+    richtext_area:
+      edit: Golygu
+      preview: Rhagolwg
+    markdown_help:
+      headings: Penawdau
+      heading: Pennawd
+      subheading: Is-bennawd
+      unordered: Rhestr heb drefn
+      ordered: Rhestr mewn trefn
+      first: Eitem gyntaf
+      second: Ail eitem
+      link: Dolen
+      text: Testun
+      image: Delwedd
+      alt: Testun Amgen
+      url: URL
+  trace:
+    edit:
+      filename: 'Enw ffeil:'
+      download: lawrlwytho
+      uploaded_at: 'Uwchlwythwyd:'
+      points: 'Pwyntiau:'
+      start_coord: 'Cyfesuryn dechrau:'
+      map: map
+      edit: golygu
+      owner: 'Perchennog:'
+      description: 'Disgrifiad:'
+      tags: 'Tagiau:'
+      save_button: Cadw Newidiadau
+      visibility: 'Gwelededd:'
+      visibility_help: beth mae hyn yn golygu?
+    trace_form:
+      upload_gpx: 'Uwchlwytho Ffeil GPX:'
+      description: 'Disgrifiad:'
+      tags: 'Tagiau:'
+      visibility: 'Gwelededd:'
+      visibility_help: beth mae hyn yn golygu?
+      upload_button: Uwchlwytho
+      help: Cymorth
+    trace_optionals:
+      tags: Tagiau
+    view:
+      filename: 'Enw ffeil:'
+      download: lawrlwytho
+      uploaded: 'Uwchlwythwyd:'
+      points: 'Pwyntiau:'
+      start_coordinates: 'Cyfesuryn dechrau:'
+      map: map
+      edit: golygu
+      owner: 'Perchennog:'
+      description: 'Disgrifiad:'
+      tags: 'Tagiau:'
+      none: Dim
+      visibility: 'Gwelededd:'
+    trace_paging_nav:
+      showing_page: Tudalen %{page}
+    trace:
+      count_points: '%{count} pwynt'
+      ago: '%{time_in_words_ago} yn ôl'
+      more: mwy
+      view_map: Gweld Map
+      edit: golygu
+      edit_map: Golygu'r Map
+      public: CYHOEDDUS
+      identifiable: CANFYDDADWY
+      private: PREIFAT
+      trackable: OLRHAINADWY
+      by: gan
+      in: mewn
+      map: map
+    list:
+      tagged_with: tagiwyd gyda %{tags}
+  oauth:
+    oauthorize:
+      allow_to: 'Caniatáu''r rhaglen cleient i:'
+      allow_read_prefs: ddarllen eich gosodiadau defnyddiwr.
+      allow_write_prefs: addasu eich gosodiadau defnyddiwr.
+      allow_write_diary: creu cofnodion dyddiadur, sylwadau a gwneud ffrindiau.
+      allow_write_api: addasu'r map.
+      allow_read_gpx: ddarllen eich dargopiadau GPS.
+      allow_write_gpx: uwchlwytho dargopiadau GPS.
+      allow_write_notes: addasu nodiadau.
+    oauthorize_success:
+      title: Caniatawyd y cais awdurdodiad.
+      allowed: Rydych wedi caniatáu mynediad i'ch cyfrif gan y rhaglen %{app_name}.
+      verification: Y cod dilysiad yw %{code}
+    oauthorize_failure:
+      title: Methwyd y cais awdurdodiad.
+      denied: Rydych wedi gwrthod mynediad i'ch cyfrif gan y rhaglen %{app_name}.
+      invalid: Nid yw'r tocyn awdurdodiad yn ddilys.
+    revoke:
+      flash: Rydych wedi diddymu'r tocyn ar gyfer %{application}.
+  oauth_clients:
+    new:
+      title: Cofrestru rhaglen newydd
+      submit: Cofrestru
+    edit:
+      title: Golygu'ch rhaglen
+      submit: Golygu
+    show:
+      url: 'URL Cais Tocyn:'
+      access_url: URL Tocyn Mynediad
+      authorize_url: 'URL Awdurdodi:'
+      edit: Golygu Manylion
+      delete: Dileu Cleient
+      confirm: Ydych yn siŵr?
+      allow_read_prefs: darllen eu gosodiadau defnyddwyr.
+      allow_write_prefs: addasu eu gosodiadau defnyddwyr.
+      allow_write_diary: creu cofnodion dyddiadur, sylwadau a gwneud ffrindiau.
+      allow_write_api: addasu'r map.
+      allow_read_gpx: ddarllen eu dargopiadau GPS preifat.
+      allow_write_gpx: uwchlwytho dargopiadau GPS.
+      allow_write_notes: addasu nodiadau.
+    form:
+      name: Enw
+      required: Angenrheidiol
+      url: Prif URL y Rhaglen
+      allow_read_prefs: darllen eu gosodiadau defnyddwyr.
+      allow_write_prefs: addasu eu gosodiadau defnyddwyr.
+      allow_write_diary: creu cofnodion dyddiadur, sylwadau a gwneud ffrindiau.
+      allow_write_api: addasu'r map.
+      allow_read_gpx: ddarllen eu dargopiadau GPS preifat.
+      allow_write_gpx: uwchlwytho dargopiadau GPS.
+      allow_write_notes: addasu nodiadau.
+  user:
+    login:
+      title: Mewngofnodi
+      heading: Mewngofnodi
+      email or username: 'Cyfeiriad Ebost neu Enw Defnyddiwr:'
+      password: 'Cyfrinair:'
+      openid: '%{logo} OpenID:'
+      remember: Fy nghofio i
+      lost password link: Wedi anghofio'ch cyfrinair?
+      login_button: Mewngofnodi
+      register now: Cofrestru nawr
+      with username: Eisoes gyda chyfrif OpenStreetMap? Mewngofnodwch gyda'ch enw
+        defnyddiwr a'ch cyfrinair.
+      with openid: 'Neu, mewngofnodwch gydag OpenID:'
+      new to osm: Yn newydd i OpenStreetMap?
+      to make changes: I wneud newidiadau i ddata OpenStreetMap, mae'n rhaid cael
+        cyfrif.
+      create account minute: Crewch cyfrif. Dim ond munud mae'n cymryd.
+      no account: Dim cyfrif gennych?
+      openid_logo_alt: Mewngofnodi gydag OpenID
+      openid_providers:
+        openid:
+          title: Mewngofnodi gydag OpenID
+          alt: Mewngofodi gydag URL OpenID
+        google:
+          title: Mewngofnodi gyda Google
+          alt: Mewngofnodi gydag OpenID Google
+        yahoo:
+          title: Mewngofnodi gydag Yahoo
+          alt: Mewngofnodi gydag OpenID Yahoo
+        wordpress:
+          title: Mewngofnodig gyda WordPress
+          alt: Mewngofnodi gydag OpenID WordPress
+        aol:
+          title: Mewngofnodi gydag AOL
+          alt: Mewngofnodi gydag OpenID AOL
+    logout:
+      title: Allgofnodi
+      heading: Allgofnodi o OpenStreetMap
+      logout_button: Allgofnodi
+    lost_password:
+      title: Ailosod cyfrinair
+      heading: Wedi anghofio'ch cyfrinair?
+      email address: 'Cyfeiriad Ebost:'
+      new password button: Ailosod cyfrinair
+      notice email cannot find: Methwyd dod o hyd i'r cyfeiriad ebost yno.
+    reset_password:
+      title: Ailosod cyfrinair
+      heading: Ailosod Cyfinair ar gyfer %{user}
+      password: 'Cyfrinair:'
+      confirm password: 'Cadarnhau''r Cyfrinair:'
+      reset: Ailosod Cyfrinair
+      flash changed: Mae'ch cyfrinair wedi'i newid.
+    new:
+      title: Cofrestru
+      email address: 'Cyfeiriad Ebost:'
+      confirm email address: 'Cadarnhau''r Cyfeiriad Ebost:'
+      password: 'Cyfrinair:'
+      confirm password: 'Cadarnhau''r Cyfrinair:'
+      use openid: Neu, mewngofnodwch gydag %{logo} OpenID
+      continue: Cofrestru
+      terms accepted: Diolch am dderbyn telerau newydd cyfranwyr!
+    terms:
+      title: Telerau cyfranwyr
+      heading: Telerau cyfranwyr
+      consider_pd_why: beth yw hwn?
+      agree: Cytuno
+      decline: Gwrthod
+      legale_names:
+        france: Ffrainc
+        italy: Yr Eidal
+        rest_of_world: Gweddill y byd
+    no_such_user:
+      title: Dim defnyddiwr o'r fath
+      heading: Nid yw'r defnyddiwr %{user} yn bodoli.
+    view:
+      my diary: Fy Nyddiadur
+      new diary entry: cofnod dyddiadur newydd
+      my edits: Fy Ngolygiadau
+      my traces: Fy Nargopiadau
+      my notes: Fy Nodiadau
+      my messages: Fy Negeseuon
+      my profile: Fy Mhroffil
+      my settings: Fy Ngosodiadau
+      my comments: Fy Sylwadau
+      oauth settings: gosodiadau oauth
+      blocks on me: Rhwystrau arnaf i
+      blocks by me: Rhwystrau gennyf i
+      send message: Anfon Neges
+      diary: Dyddiadur
+      edits: Golygiadau
+      traces: Dargopiadau
+      notes: Nodiadau Map
+      remove as friend: Peidio bod yn ffrind
+      add as friend: Ychwanegu Cyfaill
+      mapper since: 'Yn fapiwr ers:'
+      ago: (%{time_in_words_ago} yn ôl)
+      ct status: 'Telerau cyfrannwr:'
+      ct undecided: Heb Benderfynu
+      ct declined: Wedi Gwrthod
+      ct accepted: Derbynwyd %{ago} yn ôl%
+      email address: 'Cyfeiriad ebost:'
+      created from: 'Creuwyd o:'
+      status: 'Statws:'
+      description: Disgrifiad
+      user location: Lleoliad defnyddiwr
+      settings_link_text: gosodiadau
+      your friends: Eich cyfeillion
+      no friends: Nid ydych wedi ychwanegu cyfaill eto.
+      km away: '%{count}km i ffwrdd'
+      m away: '%{count}m i ffwrdd'
+      nearby users: Defnyddwyr eraill gerllaw
+      no nearby users: Nid oes defnyddwyr gerllaw sy'n datgelu eu bod yn mapio eto.
+      role:
+        administrator: Mae'r defnyddiwr hwn yn weinyddwr.
+        moderator: Mae'r defnyddiwr hwn yn gymedrolwr.
+      comments: Sylwadau
+      create_block: rhwystro'r defnyddiwr hwn
+      activate_user: actifadu'r defnyddiwr hwn
+      confirm_user: cadarnhau'r defnyddiwr
+      hide_user: cuddio'r defnyddiwr
+      unhide_user: datguddio'r defnyddiwr
+      delete_user: dileu'r defnyddiwr
+      confirm: Cadarnhau
+      friends_diaries: cofnodion dyddiaduron cyfeillion
+      nearby_diaries: cofnodion dyddiaduron defnyddwyr gerllaw
+    popup:
+      your location: Eich lleoliad
+      nearby mapper: Mapiwr gerllaw
+      friend: Cyfaill
+    account:
+      title: Golygu'r cyfrif
+      my settings: Fy ngosodiadau
+      current email address: 'Cyfeiriad Ebost Presenol:'
+      new email address: 'Cyfeiriad Ebost Newydd:'
+      email never displayed publicly: (byth ei ddangos yn gyhoeddus)
+      openid:
+        openid: 'OpenID:'
+        link text: beth yw hwn?
+      public editing:
+        heading: 'Golygu cyhoeddus:'
+        enabled: Galluogwyd. Ddim yn anhysbys ac yn gallu golygu data.
+        enabled link text: beth yw hwn?
+        disabled link text: pam na allaf olygu?
+      public editing note:
+        heading: Golygu cyhoeddus
+      contributor terms:
+        heading: 'Telerau Cyfranwyr:'
+        agreed: Rydych wedi derbyn y telerau cyfranwyr newydd.
+        not yet agreed: Nid ydych eto wedi cytuno i'r telerau cyfranwyr newydd.
+        review link text: Dilynwch y ddolen hon i adolygu a derbyn y telerau cyfranwyr
+          newydd.
+        link text: beth yw hwn?
+      profile description: 'Disgrifad Proffil:'
+      preferred languages: 'Ieithoedd Dewisedig:'
+      preferred editor: 'Golygydd Dewisedig:'
+      image: 'Delwedd:'
+      gravatar:
+        link text: beth yw hwn?
+      new image: Ychwanegu delwedd
+      keep image: Cadw'r ddelwedd bresennol
+      delete image: Tynnu'r ddelwedd bresennol
+      replace image: Newid y ddelwedd bresennol
+      image size hint: (delweddau sgwâr o leiaf 100x100 yw'r gorau)
+      home location: 'Lleoliad Cartref:'
+      no home location: Nid ydych wedi gosod eich lleoliad cartref.
+      latitude: 'Lledred:'
+      longitude: 'Hydred:'
+      save changes button: Cadw'r Newidiadau
+      make edits public button: Gwneud fy holl olygiadau yn gyhoeddus
+      return to profile: Dychwelyd i'r proffil
+    confirm_email:
+      button: Cadarnhau
+      success: Wedi cadarnhau eich cyfeiriad ebost! Diolch am gofrestru.
+      failure: Mae cyfeiriad ebost eisoes wedi ei gadarnhau gyda'r tocyn hwn.
+    set_home:
+      flash success: Wedi cadw'r lleoliad cartref
+    go_public:
+      flash success: Mae eich holl olygiadau nawr yn gyhoeddus a gallech nawr parhau
+        i olygu.
+    make_friend:
+      heading: Ychwanegu %{user} fel cyfaill?
+      button: Ychwanegu fel cyfaill
+      success: Mae %{name} nawr yn gyfaill i chi!
+      failed: Ymddiheuriadau, methwyd ychwanegu %{name} fel cyfaill.
+      already_a_friend: Rydych eisoes yn gyfaill i %{name}
+    remove_friend:
+      heading: Peidio bod yn gyfaill i %{user}?
+      button: Peidio bod yn gyfaill
+      success: Tynnwyd %{name} o'ch cyfeillion.
+      not_a_friend: Nid yw %{name} yn un o'ch cyfeillion.
+    list:
+      title: Defnyddwyr
+      heading: Defnyddwyr
+  user_role:
+    grant:
+      confirm: Cadarnhau
+    revoke:
+      confirm: Cadarnhau
+  user_block:
+    partial:
+      show: Dangos
+      edit: Golygu
+      confirm: Ydych yn sicr?
+      status: Statws
+      showing_page: Tudalen %{page}
+      next: Nesaf »
+      previous: « Blaenorol
+    helper:
+      time_future: Yn dod i ben mewn %{time}.
+      time_past: Wedi dod i ben %{time} yn ôl.
+    show:
+      status: Statws
+      show: Dangos
+      edit: Golygu
+      confirm: Ydych yn sicr?
+  note:
+    description:
+      commented_at_html: Diweddarwyd %{when} yn ôl
+      commented_at_by_html: Diweddarwyd %{when} yn ôl gan %{user}
+    rss:
+      title: Nodiadau OpenStreetMap
+    entry:
+      comment: Sylw
+      full: Nodyn llawn
+    mine:
+      id: Id
+  javascripts:
+    close: Cau
+    share:
+      title: Rhannu
+      cancel: Diddymu
+      image: Delwedd
+      link: Dolen neu HTML
+      long_link: Dolen
+      short_link: Dolen Fer
+      embed: HTML
+      format: 'Fformat:'
+      scale: 'Graddfa:'
+      download: Lawrlwytho
+      short_url: URL Byr
+    key:
+      title: Allwedd Map
+      tooltip: Allwedd Map
+    map:
+      zoom:
+        in: Chwyddo Mewn
+        out: Chwyddo Allan
+      locate:
+        title: Dangos Fy Lleoliad
+        popup: Rydych o fewn {distance} {unit} o'r pwynt hwn.
+      base:
+        standard: Safonol
+        cycle_map: Map Beicio
+        transport_map: Map Trafnidiaeth
+        hot: Dyngarol
+      layers:
+        header: Haenau Mapiau
+        notes: Nodiadau Map
+        data: Data Map
+        title: Haenau
+      copyright: © <a href='%{copyright_url}'>cyfranwyr OpenStreetMap</a>
+      donate_link_text: <a class='donate-attr' href='%{donate_url}'>Rhoi Cyfraniad</a>
+    site:
+      edit_tooltip: Golygu'r map
+      edit_disabled_tooltip: Chwyddwch mewn i olygu'r map
+      createnote_tooltip: Ychwanegu nodyn i'r map
+      createnote_disabled_tooltip: Chwyddwch mewn i ychwanegu nodyn i'r map
+      map_notes_zoom_in_tooltip: Chwyddwch mewn i weld nodiadau'r map
+      map_data_zoom_in_tooltip: Chwyddwch mewn i weld data'r map
+    changesets:
+      show:
+        comment: Sylw
+        subscribe: Tanysgrifio
+        unsubscribe: Dad-danysgrifio
+        hide_comment: cuddio
+        unhide_comment: datguddio
+    notes:
+      new:
+        add: Ychwanegu Nodyn
+      show:
+        hide: Cuddio
+        resolve: Datrys
+        reactivate: Ail roi ar waith
+        comment_and_resolve: Sylw a Datrys
+        comment: Sylw
+    query:
+      way: Llwybr
+      nothing_found: Ni ddarganfuwyd nodweddion
+      error: 'Gwall cysyltlu gyda %{server}: %{error}'
+  redaction:
+    edit:
+      description: Disgrifiad
+    new:
+      description: Disgrifiad
+    show:
+      description: 'Disgrifiad:'
+      confirm: Ydych yn sicr?
+...
index 85a678adbcd8f0ece747875bbbb86b06e052b190..55cda5d4fc74455d5cc9c10c619a3cb7bd8588cf 100644 (file)
@@ -131,11 +131,18 @@ da:
       way_paginated: Veje (%{x}-%{y} af %{count})
       relation: Relationer (%{count})
       relation_paginated: Relationer (%{x}-%{y} af %{count})
+      comment: Kommentarer (%{count})
+      hidden_commented_by: Skjult kommentar fra %{user} <abbr title='%{exact_time}'>%{when}
+        siden</abbr>
+      commented_by: Kommentar fra %{user} for <abbr title='%{exact_time}'>%{when}
+        siden</abbr>
       changesetxml: XML for ændringssæt
       osmchangexml: XML for osmChange
       feed:
         title: Ændringssæt %{id}
         title_comment: Ændringssæt %{id} - %{comment}
+      join_discussion: Log på for at deltage i diskussionen
+      discussion: Diskussion
     node:
       title: 'Punkt: %{name}'
       history_title: 'Punkthistorik: %{name}'
@@ -217,6 +224,10 @@ da:
       reopened_by_anonymous: Genaktiveret af en anonym for <abbr title='%{exact_time}'>%{when}
         siden</abbr>
       hidden_by: Skjult af %{user} for <abbr title='%{exact_time}'>%{when} siden</abbr>
+    query:
+      title: Forespørgselsfunktioner
+      introduction: Klik på kortet for at finde funktioner i nærheden.
+      nearby: Funktioner i nærheden
   changeset:
     changeset_paging_nav:
       showing_page: Side %{page}
@@ -247,6 +258,13 @@ da:
     timeout:
       sorry: Desværre tog det for lang tid for at hente den liste af ændringssæt du
         har bedt om.
+    rss:
+      title_all: OpenStreetMap diskussion om ændringssæt
+      title_particular: OpenStreetMap diskussion om ændringssæt nummer %{changeset_id}
+      comment: Ny kommentar om ændringssæt nummer %{changeset_id} af %{author}
+      commented_at_html: Opdateret for %{when} siden
+      commented_at_by_html: Opdateret for %{when} siden af %{user}
+      full: Fuldstændig diskussion
   diary_entry:
     new:
       title: Nyt blogindlæg
@@ -749,6 +767,8 @@ da:
           tram: Sporvej
           tram_stop: Sporvognsstoppested
           yard: Jernbaneterræn
+        route:
+          bus: Busrute
         shop:
           alcohol: Spiritusforretning
           antiques: Antikviteter
@@ -951,10 +971,6 @@ da:
       text: Donér
     learn_more: Lær mere
     more: Mere
-    sotm_header: State of the Map 2014
-    sotm_line_1: 8. årlige konference
-    sotm_line_2: 7. til 9. november 2014
-    sotm_line_3: Buenos Aires, Argentina
   license_page:
     foreign:
       title: Om denne oversættelse
@@ -1272,6 +1288,19 @@ da:
         commented_note: '%{commenter} har genaktiveret en kortbemærkning du har kommenteret.
           Bemærkningen er i nærheden af %{place}.'
       details: Flere oplysninger om bemærkningen kan findes på %{url}.
+    changeset_comment_notification:
+      greeting: Hej,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} har kommenteret på et af dine ændringssæt'
+        subject_other: '[OpenStreetMap] %{commenter} har kommenteret på et ændringssæt,
+          du er interesseret i'
+        your_changeset: '%{commenter} har efterladt en kommentar på et af dine ændringssæt,
+          oprettet %{time}'
+        commented_changeset: '%{commenter} har efterladt en kommenter på et kort ændringssæt
+          som du overvåger, oprettet %{time} af %{changeset_author}'
+        partial_changeset_with_comment: med kommentaren '%{changeset_comment}'
+        partial_changeset_without_comment: uden kommentar
+      details: Flere oplysninger om ændringssættet kan findes på %{url}.
   message:
     inbox:
       title: Indbakke
@@ -2217,6 +2246,15 @@ da:
       createnote_disabled_tooltip: Zoom ind for at tilføje en bemærkning til kortet
       map_notes_zoom_in_tooltip: Zoom ind for at se kort kommentarer
       map_data_zoom_in_tooltip: Zoom ind for at se kortdata
+      queryfeature_tooltip: Forespørgselsfunktioner
+      queryfeature_disabled_tooltip: Zoom ind for at få forespørgselsfunktioner
+    changesets:
+      show:
+        comment: Kommentar
+        subscribe: Abonnér
+        unsubscribe: Afmeld
+        hide_comment: skjul
+        unhide_comment: fjern skjul
     notes:
       new:
         intro: Opdaget en fejl eller noget der mangler? Lad andre kortlæggere vide
@@ -2233,6 +2271,13 @@ da:
         comment_and_resolve: Kommentere på og løse
         comment: Kommenter
     edit_help: Flyt kortet og zoom ind på et sted, du vil redigere, og klik så her.
+    query:
+      node: Punkt
+      way: Vej
+      relation: Relation
+      nothing_found: Ingen funktioner fundet
+      error: 'Fejl med at kontakte %{server}: %{error}'
+      timeout: Timeout for kontakt til %{server}
   redaction:
     edit:
       description: Beskrivelse
index 8486fabec2f5adb391788092e9b32e168238e19e..1ca436b5494c3ca7e23b715e063e5257cf93bd58 100644 (file)
@@ -38,6 +38,7 @@
 # Author: The Evil IP address
 # Author: Thomas Bohn
 # Author: Umherirrender
+# Author: Woodpeck
 ---
 de:
   time:
@@ -154,11 +155,17 @@ de:
       way_paginated: Wege (%{x}–%{y} von %{count})
       relation: Relationen (%{count})
       relation_paginated: Relationen (%{x}–%{y} von %{count})
+      comment: Kommentare (%{count})
+      hidden_commented_by: Versteckter Kommentar von %{user} <abbr title='%{exact_time}'>vor
+        %{when}</abbr>
+      commented_by: Kommentar von %{user} <abbr title='%{exact_time}'>vor %{when}</abbr>
       changesetxml: Änderungssatz-XML
       osmchangexml: osmChange XML
       feed:
         title: 'Änderungssatz: %{id}'
         title_comment: Änderungssatz %{id} - %{comment}
+      join_discussion: Melde dich an, um der Diskussion beizutreten
+      discussion: Diskussion
     node:
       title: 'Knoten: %{name}'
       history_title: 'Knotenchronik: %{name}'
@@ -236,6 +243,11 @@ de:
       reopened_by_anonymous: Reaktiviert von anonym <abbr title='%{exact_time}'>vor
         %{when}</abbr>
       hidden_by: Versteckt von %{user} <abbr title='%{exact_time}'>vor %{when}</abbr>
+    query:
+      title: Objektabfrage
+      introduction: Klicke auf die Karte, um benachbarte Objekte zu finden.
+      nearby: Objekte in der Nähe
+      enclosing: Einschließende Objekte
   changeset:
     changeset_paging_nav:
       showing_page: Seite %{page}
@@ -266,6 +278,13 @@ de:
     timeout:
       sorry: Es hat leider zu lange gedauert, die von dir angeforderten Änderungssätze
         abzurufen.
+    rss:
+      title_all: Diskussion zum OpenStreetMap-Änderungssatz
+      title_particular: Diskussion zum OpenStreetMap-Änderungssatz Nr. %{changeset_id}
+      comment: Neuer Kommentar zum Änderungssatz Nr. %{changeset_id} von %{author}
+      commented_at_html: vor %{when} aktualisiert
+      commented_at_by_html: vor %{when} durch %{user} aktualisiert
+      full: Vollständige Diskussion
   diary_entry:
     new:
       title: Selbst Bloggen
@@ -558,7 +577,7 @@ de:
           primary_link: Bundesstraße-Auffahrt
           proposed: Geplante Straße
           raceway: Rennstrecke
-          residential: Straße
+          residential: Wohnstraße
           rest_area: Rastplatz
           road: Straße
           secondary: Landesstraße
@@ -769,6 +788,8 @@ de:
           tram: Straßenbahn
           tram_stop: Haltestelle
           yard: Rangierbahnhof
+        route:
+          bus: Buslinie
         shop:
           alcohol: Spirituosenladen
           antiques: Antiquitätengeschäft
@@ -977,10 +998,6 @@ de:
       text: Spenden
     learn_more: Mehr erfahren
     more: Mehr
-    sotm_header: State of the Map 2014
-    sotm_line_1: 8. Jahreskonferenz
-    sotm_line_2: 7. bis 9. November 2014
-    sotm_line_3: Buenos Aires, Argentinien
   license_page:
     foreign:
       title: Über diese Übersetzung
@@ -1298,6 +1315,21 @@ de:
         commented_note: '%{commenter} hat einen Hinweis in der Nähe von %{place},
           den du kommentiert hattest, reaktivert.'
       details: Weitere Details über den Hinweis findest du unter %{url}.
+    changeset_comment_notification:
+      greeting: Hallo,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} hat zu einem deiner Änderungssätze
+          kommentiert'
+        subject_other: '[OpenStreetMap] %{commenter} hat zu einem Änderungssatz kommentiert,
+          an dem du interessiert bist'
+        your_changeset: '%{commenter} hinterließ einen Kommentar zu einem deiner Änderungssätze,
+          erstellt am %{time}'
+        commented_changeset: '%{commenter} hinterließ einen Kommentar zu einem Kartenänderungssatz,
+          den du beobachtest, erstellt von %{changeset_author} am %{time}'
+        partial_changeset_with_comment: mit dem Kommentar „%{changeset_comment}“
+        partial_changeset_without_comment: ohne Kommentar
+      details: Weitere Einzelheiten über den Änderungssatz können gefunden werden
+        unter %{url}.
   message:
     inbox:
       title: Posteingang
@@ -2275,6 +2307,15 @@ de:
         gewählt werden
       map_notes_zoom_in_tooltip: Vergrößere die Karte, um die Fehler zu sehen.
       map_data_zoom_in_tooltip: Vergrößere die Karte, um die Daten zu sehen.
+      queryfeature_tooltip: Objektabfrage
+      queryfeature_disabled_tooltip: Für Objektabfrage vergrößern
+    changesets:
+      show:
+        comment: Kommentar
+        subscribe: Abonnieren
+        unsubscribe: Abbestellen
+        hide_comment: verstecken
+        unhide_comment: einblenden
     notes:
       new:
         intro: Fehlt etwas oder hast du einen Fehler gefunden? Bitte verschiebe den
@@ -2327,6 +2368,13 @@ de:
         end_oneway: "Ende der Einbahnstrasse "
         unnamed: "(unbekannt)"
         courtesy: "Fahranweisungen stammen von %{link}"
+    query:
+      node: Knoten
+      way: Weg
+      relation: Relation
+      nothing_found: Keine Funktionen gefunden
+      error: 'Fehler beim Kontaktieren von %{server}: %{error}'
+      timeout: Zeitüberschreitung beim Kontaktieren von %{server}
   redaction:
     edit:
       description: Beschreibung
index 9b5f077e706ceb41d78a1a9bb94263f8d5841cb2..a1aec97f721729c0a62347c5ad216d3b1c56fd76 100644 (file)
@@ -135,7 +135,7 @@ diq:
       id: ID
       saved_at: Deme qeydi
       user: Karber
-      comment: Vatış
+      comment: Mışewre
       area: Erz
     list:
       title: Seta vurnayışan
@@ -164,9 +164,9 @@ diq:
     comments:
       post: Bırışe
       when: Key
-      comment: Vatış
+      comment: Mışewre
       ago: Verdê %{ago}
-      newer_comments: Vatışê Tewr Newey
+      newer_comments: Mışewreyê Tewr Neweyi
       older_comments: Vatışo Tewr Kehan
   export:
     start:
@@ -553,7 +553,7 @@ diq:
       second: Çiyo Bahdoyên
       link: Gıre
       text: Metın
-      image: Resim
+      image: Resım
       url: GRE
   trace:
     edit:
@@ -629,7 +629,7 @@ diq:
     login:
       title: Cıkewtış
       heading: Cıkewtış
-      email or username: 'Adresê e-posta yana namey karberi:'
+      email or username: 'Adresa e-posteyi ya zi nameyê karberi:'
       password: 'Parola:'
       openid: '%{logo} OpenID:'
       remember: Mı biya xo viri
@@ -694,7 +694,7 @@ diq:
       my edits: pêştenê mı
       my traces: GPS rêçê mı
       my settings: Eyarê Mı
-      my comments: vatışê mı
+      my comments: Mışewreyê mı
       oauth settings: sazê OAuthi
       blocks on me: bloqeyê mı
       blocks by me: Bloqe kerdışê mı
@@ -767,7 +767,7 @@ diq:
         link text: no çıko?
       preferred languages: 'Zıwanê ke tercih kerê:'
       preferred editor: 'Editorê ke tercih kerê:'
-      image: 'Resim:'
+      image: 'Resım:'
       new image: Yew resım cı ke
       home location: 'Herun:'
       latitude: 'Verıniye:'
index aaf2c0cd0c04ded09125b5a1102fb3d8d5898a9a..8cdd2550611df180eb5246f585c1da43f751c0b9 100644 (file)
@@ -137,11 +137,14 @@ el:
       way_paginated: Διαδρομές (%{x}-%{y} από %{count})
       relation: Σχέσεις (%{count})
       relation_paginated: Σχέσεις (%{x}-%{y} από %{count})
+      comment: Σχόλια (%{count})
       changesetxml: Ομάδας αλλαγών XML
       osmchangexml: osmChange XML
       feed:
         title: Ομάδα αλλαγών %{id}
         title_comment: Ομάδα αλλαγών %{id} - %{comment}
+      join_discussion: Συνδεθείτε για να μπείτε στη συζήτηση
+      discussion: Συζήτηση
     node:
       title: 'Κόμβος: %{name}'
       history_title: 'Ιστορικό Κόμβου: %{name}'
@@ -202,6 +205,7 @@ el:
         tag: Η σελίδα περιγραφής για το χαρακτηριστικό %{key}=%{value}
       wikidata_link: Το αντικείμενο %{page} στο Wikidata
       wikipedia_link: Το άρθρο %{page} στη Βικιπαίδεια
+      telephone_link: Καλέστε %{phone_number}
     note:
       title: 'Σημείωση: %{id}'
       new_note: Νέα Σημείωση
@@ -255,6 +259,8 @@ el:
     timeout:
       sorry: Λυπάμαι, ο κατάλογος των ομάδων αλλαγών που ζήτησες χρειάστηκε πολύ χρόνο
         για να ανακτηθεί.
+    rss:
+      full: Πλήρης συζήτηση
   diary_entry:
     new:
       title: Νέα Καταχώρηση Ημερολογίου
@@ -548,7 +554,7 @@ el:
           primary_link: Κύρια Οδός
           proposed: Προτεινόμενος Δρόμος
           raceway: Αυτοκινητοδρόμιο
-          residential: Î\9fικιÏ\83Ï\84ική Î\9fδÏ\8cÏ\82
+          residential: Î\94Ï\81Ï\8cμοÏ\82 Ï\83ε ÎºÎ±Ï\84οικημένη Ï\80εÏ\81ιοÏ\87ή
           rest_area: Περιοχή Ανάπαυσης
           road: Δρόμος
           secondary: Δευτερεύουσα Οδός
@@ -1016,6 +1022,10 @@ el:
         <a href="http://data.wien.gv.at/">Stadt Wien</a> (υπό  <a href="http://creativecommons.org/licenses/by/3.0/at/deed.de">CC BY</a>),
         <a href="http://www.vorarlberg.at/vorarlberg/bauen_wohnen/bauen/vermessung_geoinformation/weitereinformationen/services/wmsdienste.htm">Land Vorarlberg</a> και
         Land Tirol (υπό <a href="http://www.tirol.gv.at/applikationen/e-government/data/nutzungsbedingungen/">CC BY AT με τροποποιήσεις</a>).
+      contributors_fi_html: "<strong>Φινλανδία</strong>: Περιέχει δεδομένα από το
+        National Land Survey of Finland's Topographic Database\nκαι άλλα datasets,
+        υπό την \n<a href=\"http://www.maanmittauslaitos.fi/en/NLS_open_data_licence_version1_20120501\">NLSFI
+        Άδεια</a>."
       contributors_fr_html: '<strong>Γαλλία</strong>: Περιέχει δεδομένα που προέρχονται
         από το Direction Générale des Impôts.'
       contributors_nl_html: '<strong>Ολλανδία</strong>: Περιέχει δεδομένα που προέρχονται
@@ -1240,6 +1250,10 @@ el:
           Η σημείωση είναι κοντά σε %{place}.
       details: Περισσότερες λεπτομέρειες σχετικά με τη σημείωση μπορούν να βρεθούν
         στο %{url}.
+    changeset_comment_notification:
+      greeting: Γεια,
+      commented:
+        partial_changeset_without_comment: χωρίς σχόλιο
   message:
     inbox:
       title: Εισερχόμενα
@@ -2098,6 +2112,13 @@ el:
       map_notes_zoom_in_tooltip: Μεγεθύνετε τον χάρτη για να δείτε σημειώσεις
       map_data_zoom_in_tooltip: Μεγεθύνετε τον χάρτη για να δείτε τα δεδομένα του
         χάρτη
+    changesets:
+      show:
+        comment: Σχόλιο
+        subscribe: Εγγραφείτε ως συνδρομητής
+        unsubscribe: Κατάργηση εγγραφής
+        hide_comment: απόκρυψη
+        unhide_comment: επανεμφάνιση
     notes:
       new:
         intro: Εντοπίσατε λάθος ή κάτι που λείπει; Πείτε το στους άλλους χαρτογράφους
@@ -2116,6 +2137,11 @@ el:
         comment: Σχολιάστε
     edit_help: Μετακινήστε το χάρτη και να κάνετε ζουμ σε μια τοποθεσία που θέλετε
       να επεξεργαστείτε, στη συνέχεια, κάντε κλικ εδώ.
+    query:
+      node: Κόμβος
+      way: Διαδρομή
+      relation: Σχέση
+      nothing_found: Δεν βρέθηκαν χαρακτηριστικά
   redaction:
     edit:
       description: Περιγραφή
index 36218f4120463a1e334602bd22dfb4b021fbfa35..c2dfed7d6b35580928efe7b8b9647ccf9c0faa33 100644 (file)
@@ -146,11 +146,17 @@ es:
       way_paginated: Vías (%{x}-%{y} de %{count})
       relation: Relaciones (%{count})
       relation_paginated: Relaciones (%{x}-%{y} de %{count})
+      comment: Comentarios (%{count})
+      hidden_commented_by: Comentario oculto de %{user} <abbr title='%{exact_time}'>hace
+        %{when}</abbr>
+      commented_by: Comentario de %{user} <abbr title='%{exact_time}'>hace %{when}</abbr>
       changesetxml: XML del conjunto de cambios
       osmchangexml: XML en formato osmChange
       feed:
         title: Conjunto de cambios %{id}
         title_comment: Conjunto de cambios %{id} - %{comment}
+      join_discussion: Inicie sesión para unirse a la discusión
+      discussion: Discusión
     node:
       title: 'Nodo: %{name}'
       history_title: 'Historial de nodo: %{name}'
@@ -229,6 +235,11 @@ es:
       reopened_by_anonymous: Reactivado por anónimo <abbr title='%{exact_time}'>hace
         %{when}</abbr>
       hidden_by: Oculto por %{user} <abbr title='%{exact_time}'>hace %{when}</abbr>
+    query:
+      title: Características de la consulta
+      introduction: Haga clic en el mapa para encontrar características cercanas.
+      nearby: Características cercanas
+      enclosing: Características envolventes
   changeset:
     changeset_paging_nav:
       showing_page: Página %{page}
@@ -259,6 +270,14 @@ es:
     timeout:
       sorry: Lo sentimos, la lista de conjuntos de cambios que has solicitado ha tardado
         mucho tiempo en obtenerse.
+    rss:
+      title_all: Discusión del conjunto de cambios de OpenStreetMap
+      title_particular: 'Discusión del conjunto de cambios #%{changeset_id} de OpenStreetMap'
+      comment: 'Comentario nuevo sobre el conjunto de cambios #%{changeset_id} de
+        %{author}'
+      commented_at_html: Actualizado hace %{when}
+      commented_at_by_html: Actualizado hace %{when} por %{user}
+      full: Discusión completa
   diary_entry:
     new:
       title: Nueva entrada en el diario
@@ -463,7 +482,7 @@ es:
           hotel: Hotel
           hunting_stand: Apostadero de caza
           ice_cream: Heladería
-          kindergarten: Jardín de niños
+          kindergarten: Escuela infantil/guardería
           library: Biblioteca
           market: Mercado
           marketplace: Mercado
@@ -575,12 +594,12 @@ es:
           archaeological_site: Yacimiento arqueológico
           battlefield: Campo de batalla
           boundary_stone: Mojón
-          building: Edificio
+          building: Edificio histórico
           castle: Castillo
           church: Iglesia
           citywalls: Murallas de la ciudad
           fort: Fuerte
-          house: Casa
+          house: Casa histórica
           icon: Icono
           manor: Casa señorial
           memorial: Memorial
@@ -763,9 +782,11 @@ es:
           tram: Ruta de tranvía
           tram_stop: Parada de tranvía
           yard: Estación de clasificación
+        route:
+          bus: Ruta de autobús
         shop:
           alcohol: Licorería
-          antiques: Antigüedades
+          antiques: Anticuario
           art: Tienda de artículos de arte
           bakery: Panadería
           beauty: Tienda de productos de belleza
@@ -775,18 +796,18 @@ es:
           boutique: Boutique
           butcher: Carnicería
           car: Concesionario
-          car_parts: Repuestos automotrices
+          car_parts: Repuestos de automóvil
           car_repair: Taller mecánico
           carpet: Tienda de alfombras
           charity: Tienda benéfica
           chemist: Droguería
           clothes: Tienda de ropa
           computer: Tienda de informática
-          confectionery: Dulcería
+          confectionery: Confitería
           convenience: Pequeño supermercado
           copyshop: Copistería
           cosmetics: Tienda de cosmética
-          deli: Deli
+          deli: Delicatessen
           department_store: Grandes almacenes
           discount: Tienda de descuento
           doityourself: Tienda de bricolaje
@@ -795,11 +816,11 @@ es:
           estate_agent: Inmobiliaria
           farm: Tienda de productos agrícolas
           fashion: Tienda de moda
-          fish: Tienda de artículos de pesca
+          fish: Pescadería
           florist: Floristería
           food: Tienda de alimentación
           funeral_directors: Funeraria
-          furniture: Mueblería
+          furniture: Tienda de muebles
           gallery: Galería
           garden_centre: Vivero
           general: Tienda de artículos generales
@@ -818,39 +839,39 @@ es:
           mobile_phone: Tienda de telefonía
           motorcycle: Tienda de motocicletas
           music: Tienda de música
-          newsagent: Quiosco de periódicos
+          newsagent: Quiosco de prensa
           optician: Óptica
           organic: Tienda de alimentos orgánicos
           outdoor: Tienda de deportes de aventura
           pet: Tienda de mascotas
           pharmacy: Farmacia
-          photo: Tienda fotográfica
+          photo: Tienda de fotografía
           salon: Salón de belleza
           second_hand: Tienda de segunda mano
           shoes: Zapatería
           shopping_centre: Centro comercial
-          sports: Tienda de artículos deportivos
+          sports: Tienda de deportes
           stationery: Papelería
           supermarket: Supermercado
           tailor: Sastre
           toys: Juguetería
           travel_agency: Agencia de viajes
-          video: Videotienda
-          wine: Licorería
+          video: Videoclub
+          wine: Vinoteca
           "yes": Tienda
         tourism:
           alpine_hut: Cabaña alpina
           artwork: Obra de arte
-          attraction: Atracción
-          bed_and_breakfast: Cama y desayuno (B&B)
+          attraction: Atracción turística
+          bed_and_breakfast: Alojamiento y desayuno (B&B)
           cabin: Cabaña
-          camp_site: Campamento
+          camp_site: Campamento/camping
           caravan_site: Camping para caravanas
           chalet: Chalet
-          guest_house: Albergue
+          guest_house: Pensión
           hostel: Hostal
           hotel: Hotel
-          information: Información
+          information: Información turística
           lean_to: Refugio
           motel: Motel
           museum: Museo
@@ -967,10 +988,6 @@ es:
       text: Hacer una donación
     learn_more: Más información
     more: Más
-    sotm_header: Estado del mapa 2014
-    sotm_line_1: 8.ª Conferencia Anual
-    sotm_line_2: 7-9 de noviembre de 2014
-    sotm_line_3: Buenos Aires, Argentina
   license_page:
     foreign:
       title: Acerca de esta traducción
@@ -1144,7 +1161,7 @@ es:
     wiki:
       url: http://wiki.openstreetmap.org/wiki/ES:Main_Page
       title: wiki.openstreetmap.org
-      description: Buscar la wiki para la documentación de OSM en profundidad.
+      description: Consulta la wiki para la documentación de OSM en profundidad.
   about_page:
     next: Siguiente
     copyright_html: <span>&copy;</span>Colaboradores de<br>OpenStreetMap
@@ -1163,8 +1180,8 @@ es:
       Para aprender más acerca de la comunidad, consulte los <a href='%{diary_path}'>diarios de los usuarios</a>, <a href='http://blogs.openstreetmap.org/'>blogs de la comunidad</a> y el sitio web de la <a href='http://www.osmfoundation.org/'>Fundación OSM</a>.
     open_data_title: Datos abiertos
     open_data_html: 'OpenStreetMap es <i>datos abiertos</i>: puedes usarlo libremente
-      para cualquier propósito, siempre y cuando dé crédito a OpenStreetMap y a sus
-      colaboradores. Si altera o construye los datos en casos determinados debers
+      para cualquier propósito, siempre y cuando des crédito a OpenStreetMap y a sus
+      colaboradores. Si alteras o te basas en los datos en casos determinados, deberás
       distribuir el resultado únicamente bajo la misma licencia. Consulta la <a href=''%{copyright_path}''>
       página sobre Derechos de autor y Licencia</a> para obtener más detalles.'
     partners_title: Socios
@@ -1267,6 +1284,21 @@ es:
         commented_note: '%{commenter} ha reactivado un nota del mapa en la que usted
           ha comentado. La nota está cerca de %{place}.'
       details: Más detalles acerca de la nota pueden encontrarse en %{url}.
+    changeset_comment_notification:
+      greeting: Hola,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} ha comentado en uno de tus conjuntos
+          de cambios'
+        subject_other: '[OpenStreetMap] %{commenter} ha comentado en un conjunto de
+          cambios en el que usted está interesado'
+        your_changeset: '%{commenter} ha dejado un comentario en uno de sus conjuntos
+          de cambios creado el %{time}'
+        commented_changeset: '%{commenter} ha dejado un comentario en un conjunto
+          de cambios de mapa que está siguiendo, creado por %{changeset_author} el
+          %{time}'
+        partial_changeset_with_comment: con el comentario '%{changeset_comment}'
+        partial_changeset_without_comment: sin comentarios
+      details: Más detalles acerca del conjunto de cambios pueden encontrarse en %{url}.
   message:
     inbox:
       title: Buzón de entrada
@@ -1378,7 +1410,7 @@ es:
     search:
       search: Buscar
       where_am_i: ¿Dónde estoy?
-      where_am_i_title: Describe la ubicación actual por medio del motor de búsqueda
+      where_am_i_title: Define la ubicación actual por medio del motor de búsqueda
       submit_text: Ir
     key:
       table:
@@ -1775,7 +1807,7 @@ es:
       openid: '%{logo} OpenID:'
       password: 'Contraseña:'
       confirm password: 'Confirmar contraseña:'
-      use openid: Como alternativa, use %{logo} OpenID para iniciar sesión
+      use openid: Como alternativa, utiliza %{logo} OpenID para iniciar sesión
       openid no password: Con OpenID no se requiere una contraseña, pero algunas herramientas
         extras o servidor pueden seguir necesitándola.
       openid association: |-
@@ -2230,6 +2262,15 @@ es:
       createnote_disabled_tooltip: Acercar para añadir una nota al mapa
       map_notes_zoom_in_tooltip: Acercar para ver notas del mapa
       map_data_zoom_in_tooltip: Acercar para ver datos del mapa
+      queryfeature_tooltip: Consultar características
+      queryfeature_disabled_tooltip: Acercar para consultar características
+    changesets:
+      show:
+        comment: Comentar
+        subscribe: Suscribirse
+        unsubscribe: Desuscribir
+        hide_comment: ocultar
+        unhide_comment: mostrar
     notes:
       new:
         intro: ¿Has detectado un error o falta algo? Hazlo saber a otros cartógrafos
@@ -2247,6 +2288,13 @@ es:
         comment: Comentar
     edit_help: Mueva el mapa el mapa y acerca a una ubicación que desees editar, luego
       haga clic aquí.
+    query:
+      node: Nodo
+      way: Vía
+      relation: Relación
+      nothing_found: No se encontraron características
+      error: 'Error al contactar a %{server}: %{error}'
+      timeout: Tiempo de espera agotado al contactar a %{server}
   redaction:
     edit:
       description: Descripción
index e489b0a9650c207c8e64cb5fcabef04c454907af..86e342c2577f77724877988352702a9b4e55c1e8 100644 (file)
@@ -120,11 +120,18 @@ et:
       way_paginated: Jooned (%{x}-%{y}/%{count})
       relation: Relatsioonid (%{count})
       relation_paginated: Relatsioonid (%{x}-%{y}/%{count})
+      comment: Kommentaare (%{count})
+      hidden_commented_by: Peidetud kommentaar kasutajalt %{user} <abbr title='%{exact_time}'>%{when}
+        tagasi</abbr>
+      commented_by: Kommentaar kasutajalt %{user} <abbr title='%{exact_time}'>%{when}
+        tagasi</abbr>
       changesetxml: Muutuskogumi XML
       osmchangexml: osmChange XML
       feed:
         title: Muutuskogum %{id}
         title_comment: Muutuskogum %{id} - %{comment}
+      join_discussion: Logi sisse, kui soovid arutelus osaleda
+      discussion: Arutelu
     node:
       title: 'Sõlm: %{name}'
       history_title: 'Sõlme ajalugu: %{name}'
@@ -182,7 +189,9 @@ et:
       wiki_link:
         key: Sildi %{key} kirjelduse leht vikis
         tag: Sildi %{key}=%{value} kirjelduse leht vikis
+      wikidata_link: '%{page} Wikidatas'
       wikipedia_link: Artikkel %{page} Vikipeedias
+      telephone_link: Helista %{phone_number}
     note:
       title: 'Märkus: %{id}'
       new_note: Uus märkus
@@ -236,6 +245,13 @@ et:
       load_more: Laadi veel
     timeout:
       sorry: Kahjuks võttis taotletud muutuskogumite laadimine liiga kaua aega.
+    rss:
+      title_all: OpenStreetMap muutuskogumi arutelu
+      title_particular: 'OpenStreetMap muutuskogumi #%{changeset_id} arutelu'
+      comment: 'Uus kommentaar muutuskogumis #%{changeset_id} kasutajalt %{author}'
+      commented_at_html: Uuendatud %{when} tagasi
+      commented_at_by_html: Uuendatud %{when} tagasi kasutaja %{user} poolt
+      full: Kogu arutelu
   diary_entry:
     new:
       title: Uus päeviku sissekanne
@@ -441,6 +457,8 @@ et:
           preschool: Lasteaed
           prison: Vangla
           pub: Pubi
+          public_building: Ühiskondlik hoone
+          public_market: Turg
           reception_area: Vastuvõtt
           recycling: Jäätmekäitluspunkt
           restaurant: Restoran
@@ -641,6 +659,7 @@ et:
           tram_stop: Trammipeatus
         shop:
           antiques: Antikvariaat
+          bakery: Pagariäri
           bicycle: Rattapood
           books: Raamatupood
           boutique: Butiik
@@ -682,6 +701,7 @@ et:
           optician: Prillipood
           pet: Lemmikloomapood
           pharmacy: Apteek
+          photo: Fotopood
           salon: Ilusalong
           shoes: Kingapood
           shopping_centre: Kaubanduskeskus
@@ -691,6 +711,7 @@ et:
           tailor: Rätsep
           toys: Mänguasjapood
           travel_agency: Reisiagentuur
+          wine: Alkoholipood
           "yes": Pood
         tourism:
           alpine_hut: Alpimaja
@@ -712,6 +733,7 @@ et:
         tunnel:
           "yes": Tunnel
         waterway:
+          boatyard: Verf
           canal: Kanal
           dam: Tamm
           ditch: Kraav
@@ -720,7 +742,9 @@ et:
           river: Jõgi
           riverbank: Jõekallas
           stream: Oja
+          wadi: Vadi
           waterfall: Kosk
+          water_point: Veevõtukoht
           weir: Pais
       admin_levels:
         level2: Riigipiir
@@ -1654,6 +1678,7 @@ et:
       ct accepted: Vastu võetud %{ago}  tagasi
       latest edit: 'Viimane muudatus %{ago}:'
       email address: 'E-posti aadress:'
+      created from: 'Loodud:'
       status: 'Staatus:'
       spam score: 'Rämpsposti tulemus:'
       description: Kirjeldus
@@ -2028,12 +2053,20 @@ et:
       createnote_disabled_tooltip: Suurenda, et lisada kaardile märkus
       map_notes_zoom_in_tooltip: Suumi sisse, et näha kaardil märkuseid
       map_data_zoom_in_tooltip: Suumi sisse, et näha kaardi andmeid
+    changesets:
+      show:
+        comment: Kommentaar
+        subscribe: Telli
+        unsubscribe: Lõpeta tellimus
+        hide_comment: peida
+        unhide_comment: nähtavale
     notes:
       new:
         intro: Märkasid viga või või midagi, mis vajab täiendamist? Anna sellest teada
           teistele kaardistajatele, et me võiksime seda parandada. Lohista marker
           õigele kohale ja kirjuta märkus, et probleemi selgitada. (Palun ära kirjuta
-          siia isiklikku informatsiooni.)
+          siia isiklikku informatsiooni või infot autoriõigustega kaitstud kaartidelt
+          või kataloogide nimekirjast.)
         add: Lisa märkus
       show:
         anonymous_warning: Käesolev märkus sisaldab kommentaare anonüümsetelt kasutajatelt,
@@ -2045,6 +2078,12 @@ et:
         comment: Kommenteeri
     edit_help: Nihuta kaarti ja suumi sisse asukohta mida soovid redigeerida ja seejärel
       kliki siia.
+    query:
+      node: Sõlm
+      way: Joon
+      relation: Relatsioon
+      error: 'Viga ühendumisel serveriga %{server}: %{error}'
+      timeout: Ühendumine aegus serveriga %{server}
   redaction:
     edit:
       description: Kirjeldus
index c700982a6b4de3e08de9500f01c145b3816a935d..cab092b771d5057e571f733762d9c0f6f485d025 100644 (file)
@@ -100,15 +100,23 @@ eu:
       title: 'Oharra: %{id}'
   changeset:
     changeset_paging_nav:
+      showing_page: '%{page}. orrialdea'
       next: Hurrengoa »
       previous: « Aurrekoa
     changeset:
       anonymous: Anonimoa
+      no_edits: (aldaketarik gabe)
     changesets:
       id: ID
       saved_at: Noiz gordeta
       user: Erabiltzailea
+      comment: Iruzkina
+    list:
+      load_more: Gehiago kargatu
   diary_entry:
+    list:
+      older_entries: Sarrera zaharragoak
+      newer_entries: Sarrera berriagoak
     edit:
       subject: 'Gaia:'
       body: 'Testua:'
@@ -135,6 +143,9 @@ eu:
       location: 'Kokapena:'
       view: Ikusi
       edit: Aldatu
+    comments:
+      newer_comments: Iruzkin berriagoak
+      older_comments: Iruzkin zaharragoak
   export:
     start:
       format_to_export: Esportatzeko formatua
@@ -164,6 +175,7 @@ eu:
         amenity:
           airport: Aireportu
           arts_centre: Arte Zentroa
+          artwork: Artelana
           atm: Kutxazain automatikoa
           auditorium: Entzunareto
           bank: Banku
@@ -228,8 +240,10 @@ eu:
           retirement_home: Nagusien etxea
           sauna: Sauna
           school: Ikastetxe
+          shelter: Aterpea
           shop: Denda
           shopping: Erosketak
+          shower: Dutxa
           studio: Estudio
           supermarket: Supermerkatu
           swimming_pool: Igerilekua
@@ -269,6 +283,7 @@ eu:
           primary: Lehen mailako errepide
           primary_link: Errepide nagusi
           residential: Bizileku
+          rest_area: Atsedenlekua
           road: Errepide
           secondary: Bigarren mailako errepide
           secondary_link: Bigarren mailako errepide
@@ -357,6 +372,7 @@ eu:
           insurance: Aseguruetako bulegoa
           lawyer: Abokatua
           ngo: GKE bulegoa
+          travel_agent: Bidaia-agentzia
           "yes": Bulegoa
         place:
           airport: Aireportu
@@ -395,8 +411,11 @@ eu:
         shop:
           art: Arte-denda
           bakery: Okindegi
+          bicycle: Bizikleta-denda
           books: Liburudenda
+          boutique: Boutique
           butcher: Harategi
+          car: Auto-denda
           chemist: Farmazia
           clothes: Arropa denda
           computer: Ordenagailu-denda
@@ -432,8 +451,10 @@ eu:
           supermarket: Supermerkatu
           toys: Jostailu Denda
           travel_agency: Bidaia-agentzia
+          "yes": Denda
         tourism:
           alpine_hut: Aterpe alpinoa
+          artwork: Artelana
           attraction: Atrakzio
           bed_and_breakfast: Ohe eta gosari (B&B)
           cabin: Kabina
@@ -450,6 +471,8 @@ eu:
           valley: Haran
           viewpoint: Behatoki
           zoo: Zoologiko
+        tunnel:
+          "yes": Tunela
         waterway:
           canal: Kanal
           dam: Urtegia
@@ -481,14 +504,21 @@ eu:
     logo:
       alt_text: OpenStreetMap logoa
     home: hasiera
-    logout: saioa itxi
+    logout: Saioa itxi
     log_in: Saioa hasi
     sign_up: izena eman
     edit: Aldatu
     history: Historia
     export: Esportatu
+    data: Datuak
+    export_data: Esportatu datuak
     help: Laguntza
     about: Honi buruz
+    community: Komunitatea
+    community_blogs: Komunitateko blogak
+    community_blogs_title: OpenStreetMap komunitateko kideen blogak
+    foundation: Fundazioa
+    foundation_title: OpenStreetMap Fundazioa
     make_a_donation:
       text: Dohaintza egin
     learn_more: Gehiago ikasi
@@ -499,8 +529,31 @@ eu:
     native:
       title: Orrialde honi buruz
       native_link: Euskara version
+    legal_babble:
+      title_html: Egile-eskubideak eta lizentzia
+      contributors_at_html: |-
+        <strong>Austria</strong>: Honako iturrietatik ateratako datuak ditu:
+        <a href="http://data.wien.gv.at/">Stadt Wien</a> (<a href="http://creativecommons.org/licenses/by/3.0/at/deed.de">CC BY</a> lizentziapean),
+        <a href="http://www.vorarlberg.at/vorarlberg/bauen_wohnen/bauen/vermessung_geoinformation/weitereinformationen/services/wmsdienste.htm">Land Vorarlberg</a> eta
+        Land Tirol (<a href="http://www.tirol.gv.at/applikationen/e-government/data/nutzungsbedingungen/">CC BY AT zuzenketekin</a> lizentziapean).
+      contributors_fr_html: '<strong>Frantzia</strong>: Direction Générale des Impôts-etik
+        ateratako datuak ditu.'
   welcome_page:
     title: Ongi etorri!
+    questions:
+      title: Galderarik?
+  fixthemap:
+    how_to_help:
+      title: Nola lagundu
+  help_page:
+    welcome:
+      url: /welcome
+      title: Ongi etorri OSM-ra
+    help:
+      url: https://help.openstreetmap.org/
+      title: help.openstreetmap.org
+  about_page:
+    next: Hurrengoa
   notifier:
     diary_comment_notification:
       hi: Kaixo %{to_user},
@@ -519,6 +572,7 @@ eu:
     lost_password_html:
       greeting: Kaixo,
     note_comment_notification:
+      anonymous: Erabiltzale anonimoa
       greeting: Kaixo,
   message:
     inbox:
@@ -671,6 +725,8 @@ eu:
       lost password link: Pasahitza ahaztu duzu?
       login_button: Saioa hasi
       register now: Erregistratu orain
+      create account minute: Sortu kontu bat. Minutu bat besterik ez duzu behar.
+      no account: Ez al duzu konturik?
     logout:
       title: Saio-itxiera
       heading: OpenStreetMap-etik saioa itxi
@@ -694,7 +750,7 @@ eu:
       display name: 'Erakusteko izena:'
       password: 'Pasahitza:'
       confirm password: 'Pasahitza berretsi:'
-      continue: Jarraitu
+      continue: Eman izena
     terms:
       consider_pd_why: zer da hau?
       agree: Ados
@@ -706,6 +762,9 @@ eu:
     view:
       my diary: nire egunerokoa
       my edits: nire aldaketak
+      my notes: Nire oharrak
+      my messages: Nire mezuak
+      my profile: Nire profila
       my settings: Nire Hobespenak
       my comments: Nire Iruzkinak
       send message: Mezua bidali
@@ -755,6 +814,8 @@ eu:
       preferred languages: 'Hobetsitako hizkuntzak:'
       preferred editor: 'Lehenetsitako Editorea:'
       image: 'Irudia:'
+      gravatar:
+        link text: zer da hau?
       new image: Irudi bat gehitu
       latitude: 'Latitude:'
       longitude: 'Longitude:'
@@ -786,6 +847,7 @@ eu:
     partial:
       show: Erakutsi
       edit: Aldatu
+      confirm: Ziur zaude?
       creator_name: Egilea
       status: Egoera
       next: Hurrengoa »
@@ -799,8 +861,25 @@ eu:
     mine:
       creator: Sortzailea
       description: Deskribapena
+  javascripts:
+    close: Itxi
+    share:
+      title: Partekatu
+      cancel: Utzi
+    changesets:
+      show:
+        subscribe: Harpidetu
+        unsubscribe: Harpidetza kendu
+        hide_comment: ezkutatu
+        unhide_comment: erakutsi
+    notes:
+      new:
+        add: Gehitu oharra
+      show:
+        hide: Ezkutatu
   redaction:
     show:
       description: 'Deskribapena:'
       user: 'Sortzailea:'
+      confirm: Ziur zaude?
 ...
index 7157e75d625d52f19d832deb5ed1d5f8262c1460..2dd16829c75b7ef95ea6dcb7ac42a45e6c0ab40a 100644 (file)
@@ -136,11 +136,13 @@ fa:
       way_paginated: راه ها (%{x}-%{y} از %{count})
       relation: روابط (%{count})
       relation_paginated: روابط (%{x}-%{y} از %{count})
+      comment: نظرها (%{count})
       changesetxml: تغییرات انجام شده XML
       osmchangexml: osmChange XML
       feed:
         title: تغییرات انجام شده %{id}
         title_comment: تغییرات انجام شده %{id} - %{comment}
+      discussion: بحث
     node:
       title: 'گره: %{name}'
       history_title: 'تاریخچه گره: %{name}'
@@ -220,6 +222,10 @@ fa:
       reopened_by_anonymous: دوباره فعال شده توسط ناشناس <abbr title='%{exact_time}'>%{when}
         قبل</abbr>
       hidden_by: مخفی شد توسط %{user} <abbr title='%{exact_time}'>%{when} قبل</abbr>
+    query:
+      title: کوئری ویژگی‌ها
+      nearby: ویژگی‌های نزدیک
+      enclosing: ویژگی‌های نزدیک
   changeset:
     changeset_paging_nav:
       showing_page: صفحهٔ %{page}
@@ -301,7 +307,7 @@ fa:
       confirm: تأیید
     diary_comment:
       comment_from: نظر از %{link_user} در %{comment_created_at}
-      hide_link: پنهانکردن این نظر
+      hide_link: پنهان کردن این نظر
       confirm: تأیید
     location:
       location: 'مکان:'
@@ -538,7 +544,7 @@ fa:
           primary_link: جادهٔ اصلی
           proposed: راه پیشنهادی
           raceway: مسیر مسابقه
-          residential: مسکونی
+          residential: راه مسکونی
           rest_area: استراحتگاه
           road: جاده
           secondary: جاده دوم
@@ -749,6 +755,8 @@ fa:
           tram: واگن برقی
           tram_stop: ایستگاه واگن برقی
           yard: محوطه راه آهن
+        route:
+          bus: مسیر اتوبوس
         shop:
           alcohol: مجوز غیر فعال
           antiques: عتیقه جات
@@ -952,10 +960,6 @@ fa:
       text: کمک مالی
     learn_more: اطلاعات بیشتر
     more: بیشتر
-    sotm_header: وضعیت نقشهٔ ۲۰۱۴
-    sotm_line_1: هشتمین کنفرانس سالانه
-    sotm_line_2: ۷ تا ۹ نوامبر ۲۰۱۴
-    sotm_line_3: بوینس‌آیرس، آرژانتین
   license_page:
     foreign:
       title: درباره این ترجمه‌ها
@@ -1258,6 +1262,10 @@ fa:
         commented_note: '%{commenter} یکی از یادداشت های نقشه که شما در آن نظر گذاشته
           اید را دوباره فعال کرد. یادداشت نزدیک %{place} است.'
       details: اطلاعات بیشتر درباره ی یادداشت در %{url} یافت می‌شود.
+    changeset_comment_notification:
+      greeting: سلام ،
+      commented:
+        partial_changeset_without_comment: بدون نظر
   message:
     inbox:
       title: صندوق دریافت
@@ -1982,7 +1990,7 @@ fa:
       summary: '%{name} ایجاد شده از %{ip_address} در %{date}'
       summary_no_ip: '  %{name}در  %{date} ایجاد شد'
       confirm: تأیید کاربران انتخاب‌شده
-      hide: پنهانکردن کاربران انتخاب شده
+      hide: پنهان کردن کاربران انتخاب شده
       empty: هیچ کاربر مشابهی یافت نشد
     suspended:
       title: حساب کاربری معلق شده
@@ -2203,6 +2211,15 @@ fa:
       createnote_disabled_tooltip: بزرگنمایی برای افزودن یک یادداشت به نقشه
       map_notes_zoom_in_tooltip: بزرگنمایی برای دیدن یادداشت های نقشه
       map_data_zoom_in_tooltip: بزرگنمایی برای دیدن داده های نقشه
+      queryfeature_tooltip: کوئری ویژگی‌ها
+      queryfeature_disabled_tooltip: بزرگنمایی کوئری ویژگی‌ها
+    changesets:
+      show:
+        comment: نظر
+        subscribe: اشتراک
+        unsubscribe: لغو اشتراک
+        hide_comment: نهفتن
+        unhide_comment: نمایش
     notes:
       new:
         intro: چیزی مشکل دارد؟ به نقشه‌کش‌های دیگر اصلاع دهید تا آن را اصلاح کنند.
@@ -2219,6 +2236,13 @@ fa:
         comment: نظر
     edit_help: نقشه را جابجا کنید و روی مکانی که میخواهید ویرایش کنید بزرگنمایی کنید،
       سپس اینجا کلیک کنید.
+    query:
+      node: گره
+      way: راه
+      relation: ارتباط
+      nothing_found: ویژگی‌ای یافت نشد
+      error: 'خطار در ارتباط %{server}: %{error}'
+      timeout: اتمام زمان %{server}
   redaction:
     edit:
       description: شرح
index c129174820e98b73ff5a3b60a489eea1d3b7474c..24d94dcd18bb3882b5fce3a4fea8b152f2a331c8 100644 (file)
@@ -134,17 +134,24 @@ fi:
     changeset:
       title: 'Muutoskokoelma: %{id}'
       belongs_to: Lähettäjä
-      node: Pisteet(%{count})
-      node_paginated: Pisteet(%{x}-%{y} / %{count})
+      node: Pisteet (%{count})
+      node_paginated: Pisteet (%{x}-%{y} / %{count})
       way: Reitit (%{count})
       way_paginated: Reitit (%{x}-%{y} of %{count})
       relation: Relaatiot (%{count})
       relation_paginated: Relaatiot (%{x}-%{y} / %{count})
+      comment: Kommentit (%{count})
+      hidden_commented_by: Käyttäjän %{user} piilotettu kommentti <abbr title='%{exact_time}'>%{when}
+        sitten</abbr>
+      commented_by: Kommentti käyttäjältä %{user} <abbr title='%{exact_time}'>%{when}
+        sitten</abbr>
       changesetxml: Muutoskokoelman XML
       osmchangexml: osmChange XML
       feed:
         title: Muutoskokoelma %{id}
         title_comment: Muutoskokoelma %{id} - %{comment}
+      join_discussion: Kirjaudu sisään, jos haluat osallistua keskusteluun
+      discussion: Keskustelu
     node:
       title: 'Piste: %{name}'
       history_title: Pisteen %{name} historia
@@ -169,7 +176,7 @@ fi:
       entry: Relaatio %{relation_name}
       entry_role: Relaatio %{relation_name} (rooli %{relation_role})
     not_found:
-      sorry: '%{type} %{id} ei ole olemassa.'
+      sorry: 'Pahoittelemme, %{type} #%{id} ei ole olemassa.'
       type:
         node: Pistettä
         way: Polkua
@@ -226,6 +233,11 @@ fi:
         sitten</abbr>
       hidden_by: Piilottanut käyttäjä %{user} <abbr title='%{exact_time}'>%{when}
         sitten</abbr>
+    query:
+      title: Ominaisuuskysely
+      introduction: Näytä luettelo lähistön karttakohteista napsauttamalla karttaa.
+      nearby: Lähistön karttakohteet
+      enclosing: Ympäröivät karttakohteet
   changeset:
     changeset_paging_nav:
       showing_page: Sivu %{page}
@@ -256,6 +268,10 @@ fi:
     timeout:
       sorry: Valitettavasti pyytämäsi muutoskokoelmien listan hakeminen kesti liian
         kauan.
+    rss:
+      commented_at_html: Päivitetty %{when} sitten
+      commented_at_by_html: '%{user} päivittänyt %{when} sitten'
+      full: Koko keskustelu
   diary_entry:
     new:
       title: Uusi päiväkirjamerkintä
@@ -754,6 +770,8 @@ fi:
           tram: Raitiotie
           tram_stop: Raitiovaunupysäkki
           yard: Ratapiha
+        route:
+          bus: Bussireitti
         shop:
           alcohol: Alkoholikauppa
           antiques: Antiikkia
@@ -956,10 +974,6 @@ fi:
       text: Lahjoita
     learn_more: Lisätietoja
     more: Lisää
-    sotm_header: State of the Map 2014
-    sotm_line_1: 8. vuosikokous
-    sotm_line_2: 7.-9.11.2014
-    sotm_line_3: Buenos Aires, Argentiina
   license_page:
     foreign:
       title: Tietoja tästä käännöksestä
@@ -1254,6 +1268,10 @@ fi:
           viesti lähetetään siksi, että olet kommentoinut tätä karttailmoitusta, joka
           on lähellä paikkaa %{place}.'
       details: Lisää tietoja merkinnästä löytyy osoitteesta %{url}.
+    changeset_comment_notification:
+      greeting: Hei,
+      commented:
+        partial_changeset_without_comment: ei kommenttia
   message:
     inbox:
       title: Saapuneet
@@ -1813,6 +1831,7 @@ fi:
       email address: 'Sähköpostiosoite:'
       created from: 'Tekijä:'
       status: 'Tila:'
+      spam score: 'Spam-pisteet:'
       description: Kuvaus
       user location: Käyttäjän sijainti
       if set location: Määrittelet sijaintisi sivulla %{settings_link} nähdäksesi
@@ -2180,11 +2199,21 @@ fi:
       createnote_disabled_tooltip: Lähennä karttaa ennen karttavirheestä ilmoittamista.
       map_notes_zoom_in_tooltip: Näytä karttailmoitukset lähentämällä karttaa
       map_data_zoom_in_tooltip: Näytä kartta-aineisto lähentämällä karttaa
+      queryfeature_tooltip: Karttakohdeluettelo
+      queryfeature_disabled_tooltip: Näytä ominaisuusluettelo suurentamalla karttaa
+    changesets:
+      show:
+        comment: Kommentti
+        subscribe: Tilaa
+        unsubscribe: Lopeta tilaus
+        hide_comment: piilota
+        unhide_comment: näytä
     notes:
       new:
-        intro: Auta parantamaan karttatietokantaa ilmoittamalla virheistä. Muut kartoittajat
-          näkevät tämän ilmoituksen ja voivat korjata ongelman, joten valitse sijainti
-          ja kirjoita virheen kuvaus mahdollisimman huolellisesti.
+        intro: Huomasitko virheen tai puuttuvan kohteen? Ilmoita siitä muille kartoittajille,
+          jolloin voimme korjata asian. Siirrä merkkipiste oikeaan kohtaan ja kirjoita
+          selite ongelmasta. (Älä kirjoita yksityistietojasi tai tietoa tekijänoikeudella
+          suojatuista kartoista tai kansiolistoista.)
         add: Lähetä ilmoitus
       show:
         anonymous_warning: Tässä karttailmoituksessa on kommentteja tunnistautumattomilta
@@ -2195,6 +2224,13 @@ fi:
         comment_and_resolve: Kommentoi + ratkaise
         comment: Kommentoi
     edit_help: Siirrä ja lähennä kartta muokattavaan paikkaan ja napsauta sitten tästä.
+    query:
+      node: Piste
+      way: Viiva
+      relation: Relaatio
+      nothing_found: Karttakohteita ei löytynyt
+      error: 'Yhteysvirhe palvelimeen %{server}: %{error}'
+      timeout: Yhteyden aikakatkaisu palvelimeen %{server}
   redaction:
     edit:
       description: Kuvaus
index f4d900d15bbc88697b4df466b50234f0ef5431e9..df8e6fd144fd3ea15a496e76fe330823c55d4bc9 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for French (français)
 # Exported from translatewiki.net
 # Export driver: phpyaml
+# Author: 0x010C
 # Author: Alno
 # Author: Boniface
 # Author: Cquoi
@@ -74,7 +75,7 @@ fr:
       tracepoint: Point de la trace
       tracetag: Attribut de la trace
       user: Utilisateur
-      user_preference: Préférence de l’utilisateur
+      user_preference: Préférences de l’utilisateur
       user_token: Jeton de l’utilisateur
       way: Chemin
       way_node: Nœud du chemin
@@ -131,19 +132,19 @@ fr:
   browse:
     created: Créé
     closed: Fermé
-    created_html: Créé <abbr title='%{title}'>il y a %{time}</abbr>
-    closed_html: Fermé <abbr title='%{title}'>il y a %{time}</abbr>
+    created_html: Créé il y a <abbr title='%{title}'>%{time}</abbr>
+    closed_html: Fermé il y a <abbr title='%{title}'>%{time}</abbr>
     created_by_html: Créé <abbr title='%{title}'>il y a %{time}</abbr> par %{user}
-    deleted_by_html: Supprimé <abbr title='%{title}'>il y a %{time}</abbr> par %{user}
-    edited_by_html: Modifié <abbr title='%{title}'>il y a %{time}</abbr> par %{user}
-    closed_by_html: Fermé <abbr title='%{title}'>il y a %{time}</abbr> par %{user}
+    deleted_by_html: Supprimé il y a <abbr title='%{title}'>%{time}</abbr> par %{user}
+    edited_by_html: Modifié il y a <abbr title='%{title}'>%{time}</abbr> par %{user}
+    closed_by_html: Fermé il y a <abbr title='%{title}'>%{time}</abbr> par %{user}
     version: Version
     in_changeset: Groupe de modifications
     anonymous: anonyme
     no_comment: (aucun commentaire)
     part_of: Partie de
     download_xml: Télécharger le XML
-    view_history: Voir l’historique
+    view_history: Afficher l’historique
     view_details: Afficher les détails
     location: 'Emplacement :'
     changeset:
@@ -155,11 +156,17 @@ fr:
       way_paginated: Chemins (%{x} à %{y} sur %{count})
       relation: Relations (%{count})
       relation_paginated: Relations (%{x} à %{y} sur %{count})
+      comment: Commentaires (%{count})
+      hidden_commented_by: Commentaire masqué de %{user} <abbr title='%{exact_time}'>il
+        y a %{when}</abbr>
+      commented_by: Commentaire de %{user} <abbr title='%{exact_time}'>%il y a %{when}</abbr>
       changesetxml: XML du groupe de modifications
       osmchangexml: XML osmChange
       feed:
         title: Groupe de modifications %{id}
         title_comment: Groupe de modifications %{id} – %{comment}
+      join_discussion: Se connecter pour rejoindre la discussion
+      discussion: Discussion
     node:
       title: 'Nœud : %{name}'
       history_title: 'Historique du nœud : %{name}'
@@ -207,9 +214,9 @@ fr:
         way: chemin
         relation: relation
     start_rjs:
-      feature_warning: Le chargement de %{num_features} caractéristiques pourrait
-        rendre votre navigateur lent ou il pourrait ne plus répondre. Êtes-vous sûr
-        de vouloir afficher ces données ?
+      feature_warning: Le chargement de %{num_features} objets pourrait rendre votre
+        navigateur lent ou le bloquer. Êtes-vous sûr de vouloir afficher ces données
+        ?
       load_data: Charger les données
       loading: Chargement...
     tag_details:
@@ -233,13 +240,16 @@ fr:
       commented_by: Commenté par %{user} <abbr title='%{exact_time}'>il  y a %{when}</abbr>
       commented_by_anonymous: Commenté par un utilisateur anonyme <abbr title='%{exact_time}'>il
         y a %{when}</abbr>
-      closed_by: Résolu par %{user} <abbr title='%{exact_time}'>il y a %{when}</abbr>
-      closed_by_anonymous: Résolu par un utilisateur anonyme <abbr title='%{exact_time}'>il
-        y a %{when}</abbr>
-      reopened_by: Réactivé par %{user} <abbr title='%{exact_time}'>il y a %{when}</abbr>
-      reopened_by_anonymous: Réactivé par un utilisateur anonyme <abbr title='%{exact_time}'>il
-        y a %{when}</abbr>
-      hidden_by: Masqué par %{user} <abbr title='%{exact_time}'>il y a %{when}</abbr>
+      closed_by: Résolu par %{user} il y a <abbr title='%{exact_time}'>%{when}</abbr>
+      closed_by_anonymous: Résolu par un utilisateur anonyme il y a <abbr title='%{exact_time}'>%{when}</abbr>
+      reopened_by: Réactivé par %{user} il y a <abbr title='%{exact_time}'>%{when}</abbr>
+      reopened_by_anonymous: Réactivé par un utilisateur anonyme il y a <abbr title='%{exact_time}'>%{when}</abbr>
+      hidden_by: Masqué par %{user} il y a <abbr title='%{exact_time}'>%{when}</abbr>
+    query:
+      title: Requête sur les objets
+      introduction: Cliquer sur la carte pour trouver les objets à proximité.
+      nearby: Objets à proximité
+      enclosing: Objets englobants
   changeset:
     changeset_paging_nav:
       showing_page: Page %{page}
@@ -269,7 +279,16 @@ fr:
       load_more: Charger plus
     timeout:
       sorry: Désolé, la liste des groupes de modifications que vous avez demandée
-        met trop de temps pour être récupérée.
+        met trop de temps pour être chargée.
+    rss:
+      title_all: Discussion sur le groupe de modifications OpenStreetMap
+      title_particular: Discussion sur le groupe de modifications OpenStreetMap nº
+        %{changeset_id}
+      comment: Nouveau commentaire sur le groupe de modifications nº %{changeset_id}
+        par %{author}
+      commented_at_html: Mis à jour il y a %{when}
+      commented_at_by_html: Mis à jour il y a %{when} par %{user}
+      full: Discussion complète
   diary_entry:
     new:
       title: Nouvelle entrée du journal
@@ -281,8 +300,8 @@ fr:
       in_language_title: Entrées du journal en %{language}
       new: Nouvelle entrée du journal
       new_title: Écrire une nouvelle entrée dans votre journal
-      no_entries: Aucune entrée de journal
-      recent_entries: 'Entrées récentes du journal:'
+      no_entries: Aucun article de journal
+      recent_entries: Articles récents du journal
       older_entries: Entrées plus anciennes
       newer_entries: Entrées plus récentes
     edit:
@@ -312,7 +331,7 @@ fr:
     diary_entry:
       posted_by: Posté par %{link_user} à %{created} en %{language_link}
       comment_link: Commenter cette entrée
-      reply_link: Répondre a cette entrée
+      reply_link: Répondre à cet article
       comment_count:
         zero: Aucun commentaire
         one: '%{count} commentaire'
@@ -330,15 +349,15 @@ fr:
       edit: Modifier
     feed:
       user:
-        title: Entrées du journal d’OpenStreetMap pour %{user}
-        description: Entrées récentes du journal d’OpenStreetMap pour %{user}
+        title: Articles du journal OpenStreetMap de %{user}
+        description: Articles récents du journal OpenStreetMap de %{user}
       language:
-        title: Entrées du journal d’OpenStreetMap en %{language_name}
-        description: Entrées récentes du journal des utilisateurs d’OpenStreetMap
+        title: Articles de journaux OpenStreetMap en %{language_name}
+        description: Articles récents des journaux d’utilisateurs d’OpenStreetMap
           en %{language_name}
       all:
-        title: Entrées du journal d’OpenStreetMap
-        description: Entrées récentes du journal des utilisateurs d’OpenStreetMap
+        title: Articles des journaux OpenStreetMap
+        description: Articles récents des journaux d’utilisateurs OpenStreetMap
     comments:
       has_commented_on: '%{display_name} a commenté les entrées de journal suivantes'
       post: Envoyer
@@ -352,30 +371,30 @@ fr:
     start:
       area_to_export: Zone à exporter
       manually_select: Sélectionner manuellement une autre zone
-      format_to_export: Format à exporter
-      osm_xml_data: Données XML d’OpenStreetMap
-      map_image: Image de carte (affiche un calque normal)
+      format_to_export: Format d’export
+      osm_xml_data: Données XML OpenStreetMap
+      map_image: Image de la carte (affiche le calque standard)
       embeddable_html: HTML incorporable.
       licence: Licence
       export_details: Les données d’OpenStreetMap sont publiées sous la <a href="http://opendatacommons.org/licenses/odbl/1.0/">licence
-        Open Data Commons ­– Base de données Ouverte</a> (ODbL).
+        Open Data Commons Open Database</a> (ODbL).
       too_large:
         advice: 'Si l’export ci-dessus échoue, veuillez envisager l’utilisation d’une
-          des sources listées ci-dessous :'
-        body: 'Cette zone est trop vaste pour être exportée comme données XML OpenStreetMap.
-          Veuillez zoomer ou sélectionner une zone plus petite, ou utiliser une des
-          sources suivantes pour le téléchargement de données massives :'
+          des sources listées ci-dessous:'
+        body: Cette zone est trop vaste pour être exportée  au format OpenStreetMap
+          XML. Veuillez zoomer ou sélectionner une zone plus petite, ou utiliser une
+          des sources suivantes pour le téléchargement de données massives.
         planet:
           title: Planète OSM
           description: Copies régulièrement mises à jour de la base de données complète
             de OpenStreetMap
         overpass:
-          title: API passerelle
+          title: API Overpass
           description: Télécharger ce cadre englobant depuis un miroir de la base
-            de données dOpenStreetMap
+            de données dOpenStreetMap
         geofabrik:
           title: Téléchargements de Geofabrik
-          description: Extractions régulièrement mises à jour de continents, pays
+          description: Extractions régulièrement mises à jour des continents, pays
             et villes sélectionnées
         metro:
           title: Extractions de Metro
@@ -389,7 +408,7 @@ fr:
       max: max
       image_size: Taille de l’image
       zoom: Zoom
-      add_marker: Ajouter un marqueur à la carte
+      add_marker: Ajouter un marqueur sur la carte
       latitude: 'Lat :'
       longitude: 'Lon :'
       output: Sortie
@@ -417,11 +436,11 @@ fr:
           station: Gare de télécabine
         aeroway:
           aerodrome: Aérodrome
-          apron: Tablier
+          apron: Aire de stationnement
           gate: Porte
           helipad: Héliport
           runway: Piste
-          taxiway: Voie de manœuvre
+          taxiway: Voie de circulation (Taxiway)
           terminal: Terminal
         amenity:
           airport: Aéroport
@@ -473,7 +492,7 @@ fr:
           hospital: Hôpital
           hotel: Hôtel
           hunting_stand: Stand de tir
-          ice_cream: Crème glacée
+          ice_cream: Glacier
           kindergarten: Jardin d’enfant
           library: Bibliothèque
           market: Marché
@@ -481,7 +500,7 @@ fr:
           mountain_rescue: Secours en montagne
           nightclub: Boîte de nuit
           nursery: Nurserie
-          nursing_home: Soins infirmiers
+          nursing_home: Maison de retraite médicalisée
           office: Bureau
           park: Parc
           parking: Parking
@@ -492,7 +511,7 @@ fr:
           post_office: Bureau de poste
           preschool: Préscolaire
           prison: Prison
-          pub: Bar
+          pub: Pub
           public_building: Bâtiment public
           public_market: Marché public
           reception_area: Zone de livraison
@@ -501,7 +520,7 @@ fr:
           retirement_home: Maison de retraite
           sauna: Sauna
           school: École
-          shelter: Refuge
+          shelter: Abri
           shop: Boutique
           shopping: Commerce
           shower: Douche
@@ -576,7 +595,7 @@ fr:
           stile: Échalier
           tertiary: Route tertiaire
           tertiary_link: Route tertiaire
-          track: Piste
+          track: Chemin
           trail: Sentier
           trunk: Voie express
           trunk_link: Voie express
@@ -661,7 +680,7 @@ fr:
           sports_centre: Centre sportif
           stadium: Stade
           swimming_pool: Piscine
-          track: Piste
+          track: Piste de course
           water_park: Parc aquatique
         military:
           airfield: Terrain d’aviation militaire
@@ -716,7 +735,7 @@ fr:
           company: Entreprise
           employment_agency: Agence pour l’emploi
           estate_agent: Agent immobilier
-          government: Agence gouvernementale
+          government: Administration publique
           insurance: Agence d’assurance
           lawyer: Avocat
           ngo: Agence d’une ONG
@@ -735,7 +754,7 @@ fr:
           island: Île
           islet: Îlot
           isolated_dwelling: Habitation isolée
-          locality: Localité
+          locality: Lieu-dit
           moor: Maure
           municipality: Municipalité
           neighbourhood: Quartier
@@ -752,10 +771,10 @@ fr:
           abandoned: Voie ferrée abandonnée
           construction: Voie ferrée en construction
           disused: Voie ferrée désaffectée
-          disused_station: Gare désaffectée
-          funicular: Voie de funiculaire
+          disused_station: Gare ferroviaire désaffectée
+          funicular: Funiculaire
           halt: Arrêt de train
-          historic_station: Arrêt de train historique
+          historic_station: Gare ferroviaire historique
           junction: Jonction ferroviaire
           level_crossing: Passage à niveau
           light_rail: Voie ferrée légère
@@ -774,6 +793,8 @@ fr:
           tram: Tramway
           tram_stop: Arrêt de tram
           yard: Voie de triage
+        route:
+          bus: Trajet du bus
         shop:
           alcohol: Vendeur d’alcool à emporter / caviste
           antiques: Antiquaire
@@ -829,7 +850,7 @@ fr:
           mobile_phone: Boutique de téléphones mobiles
           motorcycle: Magasin de motos
           music: Boutique de musique / disquaire
-          newsagent: Marchand de journaux / maison de la presse
+          newsagent: Marchand de journaux
           optician: Opticien
           organic: Magasin d’alimentation bio
           outdoor: Magasin d’articles pour activité en plein air
@@ -856,7 +877,7 @@ fr:
           bed_and_breakfast: Gîte
           cabin: Hutte
           camp_site: Camping
-          caravan_site: Site de caravane
+          caravan_site: Site pour caravanes
           chalet: Chalet
           guest_house: Maison d'hôte
           hostel: Auberge
@@ -871,15 +892,15 @@ fr:
           viewpoint: Point de vue
           zoo: Zoo
         tunnel:
-          culvert: Ponceau
+          culvert: Buse
           "yes": Tunnel
         waterway:
           artificial: Cours d’eau artificiel
           boatyard: Chantier naval
           canal: Canal
           connector: Canal de connexion
-          dam: Digue
-          derelict_canal: Canal de délaissement
+          dam: Barrage
+          derelict_canal: Canal de décharge
           ditch: Fossé
           dock: Dock
           drain: Drain
@@ -896,13 +917,13 @@ fr:
           water_point: Point d’eau
           weir: Barrage
       admin_levels:
-        level2: Frontière du pays
-        level4: Frontière d’État / de province
+        level2: Frontière de pays
+        level4: Limite d’État, province ou région
         level5: Frontière de région
-        level6: Frontière de comté
-        level8: Frontière de ville
-        level9: Frontière de village
-        level10: Frontière de quartier
+        level6: Limite de département
+        level8: Limite communale
+        level9: Limite de village ou arrondissement municipal
+        level10: Limite de quartier
     description:
       title:
         osm_nominatim: Localisation depuis <a href="http://nominatim.openstreetmap.org/">OpenStreetMap
@@ -945,16 +966,16 @@ fr:
     export_data: Exporter les données
     gps_traces: Traces GPS
     gps_traces_tooltip: Gérer les traces GPS
-    user_diaries: Journaux
+    user_diaries: Journaux des utilisateurs
     user_diaries_tooltip: Voir les journaux d’utilisateurs
     edit_with: Modifier avec %{editor}
     tag_line: La carte wiki libre du monde
     intro_header: Bienvenue dans OpenStreetMap !
     intro_text: OpenStreetMap est une carte du monde, créée par des gens comme vous
       et libre d’utilisation sous licence libre.
-    intro_2_create_account: Créez un compte d'utilisateur
-    partners_html: L'hébergement est pris en charge par %{ucl}, %{ic} et %{bytemark},
-      et d'autres %{partners}.
+    intro_2_create_account: Créez un compte dutilisateur
+    partners_html: L’hébergement est pris en charge par %{ucl}, %{ic}, %{bytemark}
+      et dautres %{partners}.
     partners_ucl: le Centre VR de l’UCL
     partners_ic: le Collège impérial de Londres
     partners_bytemark: Hébergement Bytemark
@@ -978,10 +999,6 @@ fr:
       text: Faire un don
     learn_more: En savoir plus
     more: Plus
-    sotm_header: État de la carte 2014
-    sotm_line_1: 8e Conférence Annuelle
-    sotm_line_2: 7-9 novembre 2014
-    sotm_line_3: Buenos Aires, Argentine
   license_page:
     foreign:
       title: À propos de cette traduction
@@ -1001,7 +1018,7 @@ fr:
         OpenStreetMap est un ensemble de <i>données ouvertes</i>, disponibles sous la licence <a
         href="http://opendatacommons.org/licenses/odbl/">Open Data Commons Open Database License</a> (ODbL).
       intro_2_html: Vous êtes libre de copier, distribuer, transmettre et adapter
-        nos données, à condition que vous créditiez OpenStreetMap et ses contributeurs.
+        nos données, à condition que vous créditiez, OpenStreetMap et ses contributeurs.
         Si vous modifiez ou utilisez nos données dans d’autres œuvres dérivées, vous
         ne pouvez distribuer celles-ci que sous la même licence. Le <a href="http://opendatacommons.org/licenses/odbl/1.0/">texte
         légal</a> complet détaille vos droits et responsabilités.
@@ -1012,163 +1029,149 @@ fr:
       credit_1_html: Nous demandons que votre crédit comporte la mention « © les contributeurs
         d’OpenStreetMap ».
       credit_2_html: |-
-        Vous devez également préciser clairement que les données sont disponibles sous la licence
-          ODbL, et si vous utilisez les tuiles de notre carte, que la carte est sous
-          la licence CC-BY-SA. Vous pouvez mentionner ceci avec un lien hypertexte vers
-          <a href="http://www.openstreetmap.org/copyright">cette page de mentions légales</a>.
-          Alternativement, et obligatoirement si vous distribuez OpenStreetMap sous
-          forme de données brutes, vous pouvez directement nommer et fournir un lien vers la ou les licences.
-          Sur les supports où les liens hypertexte sont impossibles (par exemple sur un support papier), nous vous suggérons
-          de rediriger vos lecteurs vers le site openstreetmap.org (éventuellement en développant
-          &laquo;&nbsp;OpenStreetMap&nbsp;&raquo; en l'adresse openstreetmap.org), vers opendatacommons.org, et,
-          si c'est pertinent, vers creativecommons.org.
+        Vous devez également préciser clairement que les données sont disponibles sous la licence ODbL et, si vous utilisez les tuiles de notre carte, que la carte est sous la licence CC-BY-SA. Vous pouvez mentionner ceci avec un lien hypertexte vers
+        <a href="http://www.openstreetmap.org/copyright">cette page de mentions légales</a>.
+        Alternativement, et obligatoirement si vous distribuez OpenStreetMap sous forme de données brutes, vous pouvez directement nommer et fournir un lien vers la ou les licences. Sur les supports où les liens hypertexte sont impossibles (par exemple sur un support papier), nous vous suggérons de rediriger vos lecteurs vers le site openstreetmap.org (éventuellement en développant « OpenStreetMap » en l’adresse openstreetmap.org), vers opendatacommons.org et, si c’est pertinent, vers creativecommons.org.
       credit_3_html: |-
         Pour une carte électronique navigable, le crédit devrait apparaître dans le coin de la carte.
-        Par exemple:
+        Par exemple:
       attribution_example:
-        alt: Exemple d'attribution OpenStreetMap sur une page internet
-        title: Exemple d'attribution
+        alt: Exemple d’attribution d’OpenStreetMap sur une page internet
+        title: Exemple dattribution
       more_title_html: Pour trouver plus d’informations
-      more_1_html: |-
-        Si vous voulez obtenir plus d’informations sur comment réutiliser nos données et nous créditer, lisez la <a
-          href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">FAQ
-          légale</a>.
+      more_1_html: Pour obtenir plus d’informations sur la façon de réutiliser nos
+        données et de nous créditer, veuillez lire la <a href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">FAQ
+        légale</a>.
       more_2_html: |-
-        Bien qu'OpenStreetMap soit un ensemble de données libres et ouverte, nous ne pouvons pas fournir une API gratuite en libre accès pour les développeurs tiers.
-        Veuillez vous référer à notre <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">politique d'utilisation de l'API</a>, à notre <a href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">politique d'utilisation des tuiles</a>, et à la <a href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">politique d'utilisation de Nominatim</a>.
+        Bien qu’OpenStreetMap soit un jeu de données libres et ouvertes, nous ne pouvons pas nous même fournir une API gratuite et en libre accès pour les développeurs tiers.
+        Veuillez vous référer à notre <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">politique d’utilisation de l’API</a>, à notre <a href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">politique d’utilisation des tuiles</a>, et à la <a href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">politique d’utilisation de Nominatim</a>.
       contributors_title_html: Nos contributeurs
-      contributors_intro_html: "Nos collaborateurs sont des milliers de personnes.
-        Nous incluons également \n ouvertement-données sous licence des agences nationales
-        de cartographie \n et d'autres sources, parmi eux&nbsp;:"
-      contributors_at_html: |-
-        <strong>Autriche</strong>: Contient des données sur
-           <a href="http://data.wien.gv.at/">la ville de Vienne</a> (sous licence
-           <a href="http://creativecommons.org/licenses/by/3.0/at/deed.de">CC BY 3.0 Autriche</a>),
-           <a href="http://www.vorarlberg.at/vorarlberg/bauen_wohnen/bauen/vermessung_geoinformation/weitereinformationen/services/wmsdienste.htm">la région du Vorarlberg.</a> et la région du Tyrol (sous licence <a href="http://www.tirol.gv.at/applikationen/e-government/data/nutzungsbedingungen/">CC-BY AT avec amendements</a>).
-      contributors_ca_html: |-
-        <strong>Canada</strong> : contient des données de
-           <em>GeoBase</em>®, <em>GeoGratis</em> (© Département des Ressources
-           naturelles du Canada), <em>CanVec</em> (© Département des Ressources
-           naturelles du Canada) et <em>StatCan</em> (Division Géographie,
-           Statistiques du Canada).
-      contributors_fi_html: "<strong>Finlande</strong> : Contient des données de la
+      contributors_intro_html: 'Nos contributeurs sont des milliers de personnes.
+        Nous incluons également des données publiées sous licence ouverte par des
+        agences nationales de cartographie et par d’autres sources, notamment :'
+      contributors_at_html: '<strong>Autriche</strong> : contient des données sur
+        la <a href="http://data.wien.gv.at/">ville de Vienne</a> (sous licence <a
+        href="http://creativecommons.org/licenses/by/3.0/at/deed.de">CC BY</a>), la
+        <a href="http://www.vorarlberg.at/vorarlberg/bauen_wohnen/bauen/vermessung_geoinformation/weitereinformationen/services/wmsdienste.htm">région
+        du Vorarlberg</a> et la région du Tyrol (sous licence <a href="http://www.tirol.gv.at/applikationen/e-government/data/nutzungsbedingungen/">CC
+        BY AT avec amendements</a>).'
+      contributors_ca_html: '<strong>Canada</strong> : contient des données de <em>GeoBase</em>®,
+        <em>GeoGratis</em> (© Département des Ressources naturelles du Canada), <em>CanVec</em>
+        (© Département des Ressources naturelles du Canada) et <em>StatCan</em> (Division
+        Géographie, Statistiques du Canada).'
+      contributors_fi_html: '<strong>Finlande</strong> : contient des données de la
         Base de données topographique de l’Inspection nationale du territoire de Finlande
-        et d’autres ensembles de données, sous \n<a href=\"http://www.maanmittauslaitos.fi/en/NLS_open_data_licence_version1_20120501\">licence
-        NLSFI</a>."
-      contributors_fr_html: |-
-        <strong>France</strong> : contient des données de la
-           <em>Direction générale des impôts</em>.
-      contributors_nl_html: |-
-        <strong>Pays-Bas</strong>: Contient des données &copy; AND, 2007
-        (<a href="http://www.and.com">www.and.com</a>)
-      contributors_nz_html: |-
-        <strong>Nouvelle-Zélande</strong> : contient des données provenant du
-           <em>Land Information New Zealand</em>. © Copyright de la Couronne réservé.
+        et d’autres ensembles de données, sous <a href="http://www.maanmittauslaitos.fi/en/NLS_open_data_licence_version1_20120501">licence
+        NLSFI</a>.'
+      contributors_fr_html: '<strong>France</strong> : contient des données de la
+        <em>Direction générale des finances publiques</em> (anciennement la <em>Direction
+        générale des impôts</em>).'
+      contributors_nl_html: '<strong>Pays-Bas</strong> : contient des données © <abbr
+        title="Automotive Navigation Data">AND</abbr>, 2007 (<a href="http://www.and.com">www.and.com</a>).'
+      contributors_nz_html: '<strong>Nouvelle-Zélande</strong> : contient des données
+        provenant du <em>Land Information New Zealand</em>. Copyright de la Couronne
+        réservé.'
       contributors_za_html: |-
-        <strong>Afrique du Sud</strong>: Contient des données issues de
-        <a href="http://www.ngi.gov.za/">Direction principale:
-        Information Géospatiale Nationale</a>, tous droits de l'État réservés.
-      contributors_gb_html: '<strong>Royaume Uni</strong>: Contient des données de
-        l''Institut Géographique National &copy; Droits de la couronne et de la base
-        de données 2010-12.'
-      contributors_footer_1_html: |-
-        Pour plus de détails sur ceux-ci, et les autres sources utilisées pour aider à améliorer OpenStreetMap, voyez la <a
-        href="http://wiki.openstreetmap.org/wiki/Contributors">page des Contributeurs</a> sur le wiki de OpenStreetMap.
-      contributors_footer_2_html: |-
-        L’inclusion de données dans OpenStreetMap n’implique pas que les
-          fournisseurs d’origine du contenu approuvent OpenStreetMap, ni ne fournissent, ne garantissent ou
-          n’acceptent quelque responsabilité que ce soit.
-      infringement_title_html: Violation des droits d'auteur
-      infringement_1_html: |-
-        Nous rappelons aux contributeurs d’OSM qu’ils ne doivent jamais ajouter de données provenant de
-          sources protégées par le droit d’auteur (copyright) ou des droits voisins (par ex. Google Maps ou des cartes imprimées) sans
-          autorisation explicite de la part des détenteurs des droits d’auteur.
+        <strong>Afrique du Sud</strong> : contient des données issues de la <a href="http://www.ngi.gov.za/">Direction principale des
+        Informations Géospatiales Nationales</a>, copyright de l’État réservé.
+      contributors_gb_html: '<strong>Royaume-Uni</strong> : contient des données issues
+        de l’<em>Ordnance Survey</em> © 2010-2012 Droits d’auteurs et de la base de
+        données de la Couronne.'
+      contributors_footer_1_html: Pour plus de détails sur celles-ci et sur les autres
+        sources utilisées pour aider à améliorer OpenStreetMap, consultez la page
+        des <a href="http://wiki.openstreetmap.org/wiki/Contributors">contributeurs</a>
+        sur le wiki d’OpenStreetMap.
+      contributors_footer_2_html: L’inclusion de données dans OpenStreetMap n’implique
+        pas que les fournisseurs d’origine du contenu approuvent OpenStreetMap, ni
+        qu’ils garantissent ou acceptent quelque responsabilité que ce soit.
+      infringement_title_html: Violation des droits d’auteur
+      infringement_1_html: Nous rappelons aux contributeurs d’OSM qu’ils ne doivent
+        jamais ajouter de données provenant de sources protégées par le droit d’auteur
+        (copyright) ou des droits voisins (par ex. <em>Google Maps</em> ou des cartes
+        imprimées) sans autorisation explicite de la part des détenteurs de ces droits.
       infringement_2_html: Si vous pensez que des données ont été ajoutées à la base
-        de données OpenStreetMap ou à ce site en violation des droits d'auteur, veuillez
+        de données OpenStreetMap ou à ce site en violation des droits dauteur, veuillez
         vous référer à notre <a href="http://www.osmfoundation.org/wiki/License/Takedown_procedure">procédure
-        de retrait de données</a> ou notifiez nous directement à travers notre <a
+        de retrait de données</a> ou notifiez-nous directement à travers notre <a
         href="http://dmca.openstreetmap.org/">formulaire en ligne</a>.
   welcome_page:
-    title: Bienvenue !
-    introduction_html: |-
-      Bienvenue à OpenStreetMap, la carte du monde libre et éditable. Maintenant que vous
-      Ãªtes enregistré, vous avez tout ce qu'il faut pour commencer Ã  cartographier. Ce qui
-      suit est un petit guide des choses les plus importantes à savoir.
+    title: Bienvenue!
+    introduction_html: Bienvenue à OpenStreetMap, la carte du monde libre et éditable.
+      Maintenant que vous êtes enregistré, vous avez tout ce qu’il faut pour commencer
+      Ã  cartographier. Ce qui suit est un petit guide des choses les plus importantes
+      à savoir.
     whats_on_the_map:
-      title: Ce qu'il y a sur la carte
-      on_html: |-
-        OpenStreetMap sert à cartographier des choses à la fois <em>réelles et actuelles</em>
-        - il inclut des millions de bâtiments, de routes, et d'autres détails de lieux. Vous
-        pouvez cartographier n'importe quel élément du monde réel qui vous intéresse.
-      off_html: |-
-        Ce qui est par contre <em>exclu</em> sont les données subjectives comme les cotes de
-        popularité, les éléments historiques ou hypothétiques, et les données venant de source
-        copyrightée. À moins d'avoir une permission spéciale, ne copiez pas à partir d'une
+      title: Ce quil y a sur la carte
+      on_html: OpenStreetMap sert à cartographier des objets qui sont à la fois <em>réels
+        et actuels</em> — il contient des millions de bâtiments, de routes et d’autres
+        détails sur des lieux. Vous pouvez cartographier n’importe quel élément du
+        monde réel qui vous intéresse.
+      off_html: Ce qui est par contre <em>exclu</em> sont les données subjectives
+        comme les cotes de popularité, les éléments historiques ou hypothétiques,
+        et les données venant de source protégées par le droit d’auteur ou des droits
+        voisins. À moins d’avoir une permission spéciale, ne copiez rien depuis une
         carte papier ou en ligne.
     basic_terms:
-      title: Vocabulaire de base de cartographie
-      paragraph_1_html: OpenStreetMap a son propre jargon. Voici quelques mots clefs
+      title: Terminologie de base pour la cartographie
+      paragraph_1_html: OpenStreetMap a son propre jargon. Voici quelques mots-clefs
         qui vous seront utiles.
       editor_html: Un <strong>éditeur</strong> est un programme ou site web qui vous
-        permet d'éditer la carte.
-      node_html: Un <strong>nœud</strong> est un point sur la carte, comme un restaurant
-        ou un arbre individuel.
-      way_html: |-
-        Un <strong>chemin</strong est une ligne ou une surface, comme par exemple une rue, un
-        ruisseau, un lac, ou un bâtiment.
-      tag_html: |-
-        Un <strong>tag</strong> est une information à propos d'un nœud ou d'un chemin, comme
-        le nom d'un restaurant ou la vitesse limite d'une rue.
+        permet de modifier la carte.
+      node_html: Un <strong>nœud</strong> est un point sur la carte, tel qu’un seul
+        restaurant ou un arbre isolé.
+      way_html: Un <strong>chemin</strong est une ligne ou une surface, comme par
+        exemple une rue, un ruisseau, un lac ou un bâtiment.
+      tag_html: Un <strong>attribut</strong> (ou <em>tag</em>) est une information
+        à propos d’un nœud ou d’un chemin, comme le nom d’un restaurant ou la limite
+        de vitesse d’une route.
     questions:
-      title: Des questions ?
+      title: Des questions?
       paragraph_1_html: |-
-        OpenStreetMap a plusieurs ressources pour apprendre le projet, pour poser et répondre à des questions, et pour discuter en collaboration avec d’autres et documenter les sujets de cartographie.
+        OpenStreetMap propose plusieurs ressources pour apprendre à travailler dans le projet, pour poser des questions et y répondre, et pour discuter et documenter les sujets de cartographie en collaboration avec d’autres utilisateurs.
         <a href='%{help_url}'>Trouvez de l’aide ici</a>.
     start_mapping: Commencer à cartographier
     add_a_note:
-      title: Pas le temps d'éditer ? Ajoutez une note !
+      title: Pas le temps d’effectuer les modifications ? Ajoutez une note !
       paragraph_1_html: |-
-        Si vous voulez juste faire une petite correction et n'avez pas le temps de vous
-        enregistrer et d'apprendre à éditer, il est facile d'ajouter une note.
+        Si vous voulez juste une petite correction et n’avez pas le temps de vous
+        enregistrer sur le projet et d’apprendre à effectuer les modifications, il est facile d’ajouter une note.
       paragraph_2_html: |-
-        Allez simplement sur <a href='%{map_url}'>la carte</a> et cliquez sur l'icône note:
-        <span class='icon note'></span>. Cela ajoutera un marqueur sur la carte, que vous
-        pouvez déplacer en faisant glisser la carte. Ajoutez votre message puis cliquez sur
-        "ajouter une note", et d'autres contributeurs iront regarder.
+        Allez simplement sur <a href='%{map_url}'>la carte</a> et cliquez sur l’icône note :
+        <span class='icon note'></span>. Cela ajoutera un marqueur sur la carte, que vous pouvez déplacer en faisant glisser la carte. Ajoutez votre message puis cliquez sur Enregistrer, et d’autres contributeurs iront regarder.
   fixthemap:
     title: Signaler un problème / Corriger la carte
     how_to_help:
       title: Comment aider
       join_the_community:
         title: Rejoindre la communauté
-        explanation_html: |-
-          Si vous avez remarqué un problème avec nos données de carte, par exemple une route manquante ou votre adresse, le meilleur moyen de
-          faire est de rejoindre la communauté OpenStreetMap et d’ajouter ou réparer les données vous-même.
+        explanation_html: Si vous avez remarqué un problème avec nos données de carte,
+          par exemple s’il manque une route ou votre adresse, le meilleur moyen de
+          faire est de rejoindre la communauté OpenStreetMap et d’ajouter ou réparer
+          les données vous-même.
       add_a_note:
         instructions_html: |-
           Cliquez simplement sur <a class='icon note'></a> ou cette même icône sur l’affichage de la carte.
-          Cela ajoutera un marqueur à la carte, que vous pourrez déplacer en le tirant. Ajoutez votre message, puis cliquez sur enregistrer, et d’autres cartographes l’investigueront.
+          Cela placera un marqueur sur la carte, que vous pourrez déplacer en le glissant. Ajoutez votre message, puis cliquez sur Enregistrer, et d’autres cartographes l’étudieront.
     other_concerns:
       title: Autres préoccupations
-      explanation_html: "Si vous êtes préoccupé par la manière dont nos données sont
-        utilisées ou sur leur contenu, veuillez consulter notre\n<a href='/copyright'>page
-        d e droit d’auteur</a> pour des informations plus légales, ou contacter le
-        \n<a href='http://wiki.osmfoundation.org/wiki/Working_Groups'>groupe de travail
-        OSMF</a> approprié."
+      explanation_html: Si vous êtes préoccupé par la manière dont nos données sont
+        utilisées ou sur leur contenu, veuillez consulter notre <a href='/copyright'>page
+        des droits d’auteur</a> pour des informations légales ou contacter le <a href='http://wiki.osmfoundation.org/wiki/Working_Groups'>groupe
+        de travail OSMF</a> approprié.
   help_page:
     title: Obtenir de l’aide
-    introduction: OpenStreetMap a plusieurs ressources pour apprendre le projet, pour
-      poser et répondre à des questions, et pour discuter en collaboration avec d’autres
-      et documenter les sujets de cartographie.
+    introduction: OpenStreetMap propose plusieurs ressources pour apprendre à travailler
+      dans le projet, pour poser des questions et y répondre, et pour discuter et
+      documenter les sujets de cartographie en collaboration avec d’autres utilisateurs.
     welcome:
       url: /welcome
       title: Bienvenue à OSM
-      description: Commencer avec ce guide rapide couvrant les bases dOpenStreetMap.
+      description: Commencer avec ce guide rapide couvrant les bases dOpenStreetMap.
     help:
       url: https://help.openstreetmap.org/
       title: help.openstreetmap.org
-      description: Poser une question ou chercher des réponses sur le site questions-et-réponses
-        dOSM.
+      description: Poser une question ou chercher des réponses sur le site de questions-et-réponses
+        dOSM.
     wiki:
       url: http://wiki.openstreetmap.org/
       title: wiki.openstreetmap.org
@@ -1200,79 +1203,77 @@ fr:
     partners_title: Partenaires
   notifier:
     diary_comment_notification:
-      subject: '[OpenStreetMap] %{user} a ajouté un commentaire sur votre entrée du
+      subject: '[OpenStreetMap] %{user} a posté un commentaire sur un article de votre
         journal'
       hi: Bonjour %{to_user},
-      header: '%{from_user} a ajouté un commentaire sur un de vos entrées récentes
-        du journal d''OpenStreetMap avec le sujet %{subject} :'
-      footer: Vous pouvez également lire le commentaire sur %{readurl}, commenter
+      header: '%{from_user} a posté un commentaire sur un article récent de votre
+        journal OpenStreetMap avec le sujet %{subject} :'
+      footer: Vous pouvez également lire le commentaire sur %{readurl}, le commenter
         sur %{commenturl} ou répondre sur %{replyurl}
     message_notification:
       hi: Bonjour %{to_user},
       header: '%{from_user} vous a envoyé un message depuis OpenStreetMap avec le
-        sujet %{subject} :'
+        sujet %{subject}:'
       footer_html: Vous pouvez aussi lire le message à %{readurl} et vous pouvez y
         répondre à %{replyurl}
     friend_notification:
       subject: '[OpenStreetMap] %{user} vous a ajouté comme ami'
       had_added_you: '%{user} vous a ajouté comme ami dans OpenStreetMap.'
-      see_their_profile: 'Vous pouvez voir son profil ici : %{userurl}.'
-      befriend_them: 'Vous pouvez également l''ajouter comme ami ici : %{befriendurl}.'
+      see_their_profile: 'Vous pouvez voir son profil ici: %{userurl}.'
+      befriend_them: 'Vous pouvez également l''ajouter comme ami ici: %{befriendurl}.'
     gpx_notification:
       greeting: Bonjour,
       your_gpx_file: Il semble que votre fichier GPX
-      with_description: avec les description
-      and_the_tags: 'et les mots-clés suivants :'
+      with_description: avec la description
+      and_the_tags: 'et les mots-clés suivants:'
       and_no_tags: et sans mot-clé.
       failure:
-        subject: '[OpenStreetMap] Erreur lors de l''import GPX'
-        failed_to_import: 'n''a pas pu être importé. Voici l''erreur :'
-        more_info_1: Plus d'informations sur les erreurs lors de l'import GPX et comment
-          les éviter
-        more_info_2: 'peuvent être trouvés sur :'
+        subject: '[OpenStreetMap] Échec de l’import GPX'
+        failed_to_import: 'n’a pas pu être importé. Voici l’erreur :'
+        more_info_1: Plus d’informations sur les échecs d’import GPX et comment les
+          éviter
+        more_info_2: 'peuvent être trouvés sur:'
       success:
         subject: '[OpenStreetMap] Import GPX réussi'
-        loaded_successfully: s'est chargé correctement avec %{trace_points} points
-          sur %{possible_points}.
+        loaded_successfully: s’est chargé correctement avec %{trace_points} des %{possible_points}
+          points possibles.
     signup_confirm:
       subject: '[OpenStreetMap] Bienvenue dans OpenStreetMap'
-      greeting: Bonjour!
-      created: Quelqu'un (vous, avec un peu de chance) vient juste de créer un compte
-        sur %{site_url}.
-      confirm: 'Avant que nous fassions quoi que ce  soit d''autre, nous avons besoin
-        d''une confirmation que cette demande provient bien de vous; si c''est bien
-        le cas, veuillez donc cliquer sur le lien ci-dessous ^pour confirmer votre
-        compte:'
-      welcome: Une fois que vous aurez confirmé votre compte, nous vous fournirons
-        des informations supplémentaires pour démarrer.
+      greeting: Bonjour !
+      created: Quelqu’un (vous, espérons-le) vient juste de créer un compte sur %{site_url}.
+      confirm: 'Avant que nous fassions quoi que ce soit d’autre, nous avons besoin
+        d’une confirmation que cette demande provient bien de vous ; si c’est le cas,
+        veuillez cliquer le lien ci-dessous pour confirmer votre compte :'
+      welcome: Une fois votre compte confirmé, nous vous fournirons des informations
+        supplémentaires pour bien démarrer.
     email_confirm:
       subject: '[OpenStreetMap] Confirmation de votre adresse de courriel'
     email_confirm_plain:
       greeting: Bonjour,
-      hopefully_you: Quelqu’un (vous avec un peu de chance) aimerait modifier son
-        adresse de courriel sur %{server_url} en %{new_address}.
-      click_the_link: Si vous êtes à l'origine de cette requête, cliquez sur le lien
-        ci-dessous pour confirmer cette modification.
+      hopefully_you: Quelqu’un (vous, espérons-le) aimerait modifier son adresse de
+        courriel sur %{server_url} en %{new_address}.
+      click_the_link: Si vous êtes à l’origine de cette demande, cliquez le lien ci-dessous
+        pour confirmer cette modification.
     email_confirm_html:
       greeting: Bonjour,
-      hopefully_you: Quelqu'un (probablement vous) aimerait changer son adresse de
-        courriel de %{server_url} à %{new_address}.
-      click_the_link: Si c'est vous, veuillez cliquer sur le lien ci-dessous pour
-        confirmer la modification.
+      hopefully_you: Quelqu’un (vous, espérons-le) aimerait changer son adresse de
+        courriel de %{server_url} en %{new_address}.
+      click_the_link: Si vous êtes à l’origine de cette demande, cliquez le lien ci-dessous
+        pour confirmer cette modification.
     lost_password:
       subject: '[OpenStreetMap] Demande de réinitialisation du mot de passe'
     lost_password_plain:
       greeting: Bonjour,
-      hopefully_you: Quelqu’un (peut-être vous) a demandé la réinitialisation du mot
-        de passe du compte openstreetmap.org de cette adresse de courriel.
-      click_the_link: Si vous êtes à l'origine de cette requête, cliquez sur le lien
-        ci-dessous pour réinitialiser votre mot de passe.
+      hopefully_you: Quelqu’un (vous, espérons-le) a demandé la réinitialisation du
+        mot de passe du compte openstreetmap.org associé à cette adresse de courriel.
+      click_the_link: Si vous êtes à l’origine de cette demande, cliquez le lien ci-dessous
+        pour réinitialiser votre mot de passe.
     lost_password_html:
       greeting: Bonjour,
-      hopefully_you: Quelqu'un (probablement vous) a demandé que le mot de passe du
-        compte openstreetmap.org avec cette adresse de courriel soit réinitialisé.
-      click_the_link: Si c'est vous, veuillez cliquer sur le lien ci-dessous pour
-        réinitialiser votre mot de passe.
+      hopefully_you: Quelqu’un (vous, espérons-le) a demandé la réinitialisation du
+        mot de passe du compte openstreetmap.org associé à cette adresse de courriel.
+      click_the_link: Si vous êtes à l’origine de cette demande, cliquez le lien ci-dessous
+        pour réinitialiser votre mot de passe.
     note_comment_notification:
       anonymous: Un utilisateur anonyme
       greeting: Bonjour,
@@ -1299,6 +1300,21 @@ fr:
         commented_note: '%{commenter} a réactivé une note de carte que vous avez commentée.
           La note se trouve près de %{place}.'
       details: Plus de détail sur la note peut être obtenu à %{url}.
+    changeset_comment_notification:
+      greeting: Bonjour,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} a commenté un de vos ensembles
+          de changements'
+        subject_other: '[OpenStreetMap] %{commenter} a commenté un ensemble de changements
+          auquel vous vous intéressez'
+        your_changeset: '%{commenter} a laissé un commentaire sur un de vos ensembles
+          de changement créé le %{time}'
+        commented_changeset: '%{commenter} a laissé un commentaire sur un ensemble
+          de changements de carte que vous surveillez créé par %{changeset_author}
+          le %{time}'
+        partial_changeset_with_comment: avec le commentaire '%{changeset_comment}'
+        partial_changeset_without_comment: sans commentaire
+      details: Plus de détails sur l’ensemble de modifications à %{url}.
   message:
     inbox:
       title: Boîte de réception
@@ -1503,7 +1519,7 @@ fr:
   trace:
     visibility:
       private: Privé (partagé anonymement, points non ordonnés)
-      public: Public (affiché dans la liste des traces et anonyme, points non ordonnés)
+      public: Public (affiché dans la liste des traces et anonymisé, points non ordonnés)
       trackable: Pistable (partagé uniquement de façon anonyme, points ordonnés avec
         les dates)
       identifiable: Identifiable (affiché dans la liste des traces et identifiable,
@@ -1603,7 +1619,7 @@ fr:
     delete:
       scheduled_for_deletion: Piste prévue pour la suppression
     make_public:
-      made_public: Piste rendue publique
+      made_public: Trace GPS rendue publique
     offline_warning:
       message: Le système d'envoi GPX est actuellement indisponible
     offline:
@@ -2272,6 +2288,15 @@ fr:
       createnote_disabled_tooltip: Zoomer pour ajouter une note sur la carte
       map_notes_zoom_in_tooltip: Zoomez pour lire les notes sur la carte
       map_data_zoom_in_tooltip: Zoomez pour lire voir les données sur la carte
+      queryfeature_tooltip: Requête sur les objets
+      queryfeature_disabled_tooltip: Zoomer plus pour rechercher des objets
+    changesets:
+      show:
+        comment: Commentaire
+        subscribe: S’inscrire
+        unsubscribe: De désinscrire
+        hide_comment: masquer
+        unhide_comment: démasquer
     notes:
       new:
         intro: Vous avez repéré une erreur ou un manque ? Faites le savoir à d’autres
@@ -2290,6 +2315,13 @@ fr:
         comment: Commentaire
     edit_help: Déplacez la carte et zoomer sur un emplacement que vous voulez modifier,
       puis cliquez là.
+    query:
+      node: Nœud
+      way: Chemin
+      relation: Relation
+      nothing_found: Pas d'objets trouvés
+      error: 'Erreur en contactant %{server} : %{error}'
+      timeout: Délai dépassé en contactant %{server}
   redaction:
     edit:
       description: Description
index 4e668c474e654afde355ae495cf26fba1960b5b4..fdd50ef701f69895e5a87be679f09178158ee33c 100644 (file)
@@ -118,11 +118,17 @@ fur:
       way_paginated: Viis (%{x}-%{y} su %{count})
       relation: Relazions (%{count})
       relation_paginated: Relazions (%{x}-%{y} su %{count})
+      comment: Coments (%{count})
+      hidden_commented_by: Coment platât di %{user} <abbr title='%{exact_time}'>%{when}
+        indaûr</abbr>
+      commented_by: Coment di %{user} <abbr title='%{exact_time}'>%{when} indaûr</abbr>
       changesetxml: Grup di cambiaments XML
       osmchangexml: XML in formât osmChange
       feed:
         title: Grup di cambiaments %{id}
         title_comment: Grup di cambiaments %{id} - %{comment}
+      join_discussion: Jentre par partecipâ ae discussion
+      discussion: Discussion
     node:
       title: 'Grop: %{name}'
       history_title: 'Storic dal grop: %{name}'
@@ -174,7 +180,9 @@ fur:
       wiki_link:
         key: La pagjine de vichi cu la descrizion de etichete %{key}.
         tag: La pagjine de vichi cu la descrizion de etichete %{key}=%{value}
+      wikidata_link: L'element %{page} su Wikidata
       wikipedia_link: La vôs su %{page} te Vichipedie
+      telephone_link: Clame %{phone_number}
     note:
       title: 'Note: %{id}'
       new_note: Gnove note
@@ -194,6 +202,10 @@ fur:
       reopened_by_anonymous: Tornade a ativâ di un anonim <abbr title='%{exact_time}'>%{when}
         indaûr</abbr>
       hidden_by: Platade di %{user} <abbr title='%{exact_time}'>%{when} indaûr</abbr>
+    query:
+      introduction: Frache su la mape par cjatâ lis robis dongje.
+      nearby: Elements dongje
+      enclosing: Elements includûts
   changeset:
     changeset_paging_nav:
       showing_page: Pagjine %{page}
@@ -217,10 +229,20 @@ fur:
       empty: Nissun grup di cambiaments cjatât.
       empty_area: Nissun grup di cambiaments in cheste zone.
       empty_user: Nissun grup di cambiaments par chest utent.
+      no_more: Nissun altri grup di cambiaments cjatât.
+      no_more_area: Nissun altri grup di cambiaments in cheste zone cjatât.
+      no_more_user: Nissun altri grup di cambiaments par chest utent.
       load_more: Cjame di plui
     timeout:
       sorry: Nus displâs, la liste dai grups di cambiaments che tu âs domandât e je
         stade masse timp a cjamâsi.
+    rss:
+      title_all: Discussion sul grup di cambiaments di OpenStreetMap
+      title_particular: 'Discussion sul grup di cambiaments #%{changeset_id} di OpenStreetMap'
+      comment: 'Gnûf coment sul grup di cambiaments #%{changeset_id} di %{author}'
+      commented_at_html: Inzornât %{when} indaûr
+      commented_at_by_html: Inzornât %{when} indaûr di %{user}
+      full: Dute la discussion
   diary_entry:
     new:
       title: Gnove vôs dal diari
@@ -309,6 +331,8 @@ fur:
         body: Cheste aree e je masse grande par espuartâle come dâts XML di OpenStreetMap.
           Par plasê incrès il zoom, sielç une aree plui piçule o dopre une des sorzints
           ca sot par discjamâ un grum di dâts.
+        overpass:
+          title: API Overpass
         other:
           title: Altris sorzints
           description: Altris sorzints elencadis su la wiki di OpenStreetMap
@@ -362,6 +386,7 @@ fur:
           cinema: Cine
           clinic: Cliniche
           community_centre: Centri civic
+          crematorium: Crematori
           dentist: Dentist
           doctors: Dotôrs
           dormitory: Dormitori
@@ -381,6 +406,7 @@ fur:
           kindergarten: Scuelute
           library: Biblioteche
           market: Marcjât
+          nightclub: Club noturni
           office: Ufizi
           park: Parc
           parking: Parcament
@@ -575,10 +601,12 @@ fur:
           bicycle: Buteghe di bicicletis
           books: Librerie
           butcher: Becjarie
+          car: Vendite di machinis
           car_parts: Tocs par machinis
           car_repair: Riparazion di machinis
           carpet: Buteghe di tapêts
           clothes: Buteghe di vistîts
+          copyshop: Copisterie
           electronics: Buteghe di eletroniche
           gallery: Galarie di art
           hairdresser: Piruchîr o barbîr
@@ -592,11 +620,13 @@ fur:
           pharmacy: Farmacie
           photo: Buteghe di fotografie
           shoes: Buteghe di scarpis
+          sports: Buteghe di articui sportîfs
           supermarket: Supermarcjât
           toys: Negozi di zugatui
           travel_agency: Agjenzie di viaçs
           "yes": Buteghe
         tourism:
+          attraction: Atrazion
           hostel: Ostel
           hotel: Hotel
           information: Informazions
@@ -1028,6 +1058,8 @@ fur:
       allow_write_prefs: modificâ lis tôs preferencis dal utent.
       allow_write_diary: creâ vôs dal diari, comentâ e zontâ amîs.
       allow_write_api: modificâ la mape.
+      allow_read_gpx: lei i tiei percors GPS privâts.
+      allow_write_gpx: cjamâ percors GPS.
       allow_write_notes: cambiâ lis notis.
     oauthorize_success:
       verification: Il codiç di verifiche al è %{code}.
@@ -1477,11 +1509,19 @@ fur:
       createnote_disabled_tooltip: Aumente il zoom par zontâ une note ae mape
       map_notes_zoom_in_tooltip: Aumente il zoom par viodi lis notis su la mape
       map_data_zoom_in_tooltip: Aumente il zoom par viodi i dâts de mape
+    changesets:
+      show:
+        comment: Coment
+        subscribe: Notiti
+        unsubscribe: Disnotiti
+        hide_comment: plate
+        unhide_comment: mostre
     notes:
       new:
         intro: Âstu cjatât un erôr o alc ch'al mancje? Informe i altris mapadôrs cussì
           che al podedi jessi corezût. Sposte il segnalut te posizion juste e inserìs
-          une note par spiegâ il probleme. (Par plasê no stâ zontâ informazions personâls).
+          une note par spiegâ il probleme. (Par plasê no stâ zontâ informazions personâls
+          ni informazions che a vegnin di mapis cuviertis pal copyright o di elencs).
         add: Zonte une note
       show:
         anonymous_warning: Cheste note e inclût coments di utents anonims che a varessin
@@ -1493,6 +1533,13 @@ fur:
         comment: Coment
     edit_help: Môf la mape e aumente il zoom tal lûc che tu vuelis cambiâ, po frache
       culì
+    query:
+      node: Grop
+      way: Vie
+      relation: Relazion
+      nothing_found: Nissune carataristiche cjatade
+      error: 'Erôr contatant %{server}: %{error}'
+      timeout: Timp scjadût contatant %{server}
   redaction:
     edit:
       description: Descrizion
index a097508f1c46c2409d4eaab8d82be9f2716c86ee..595cf2a1b60007b4639e06f5b055dd7e941823fe 100644 (file)
@@ -120,11 +120,17 @@ gl:
       way_paginated: Camiños (%{x}-%{y} de %{count})
       relation: Relacións (%{count})
       relation_paginated: Relacións (%{x}-%{y} de %{count})
+      comment: Comentarios (%{count})
+      hidden_commented_by: Comentario oculto de %{user} <abbr title='%{exact_time}'>
+        fai %{when}</abbr>
+      commented_by: Comentario de %{user} <abbr title='%{exact_time}'> fai %{when}</abbr>
       changesetxml: Conxunto de cambios XML
       osmchangexml: osmChange XML
       feed:
         title: Conxunto de cambios %{id}
         title_comment: Conxunto de cambios %{id} - %{comment}
+      join_discussion: Inicie sesión para unirse á discusión
+      discussion: Conversa
     node:
       title: 'Nodo: %{name}'
       history_title: 'Historial do nodo: %{name}'
@@ -203,6 +209,11 @@ gl:
       reopened_by_anonymous: Reactivado por un anónimo <abbr title='%{exact_time}'>hai
         %{when}</abbr>
       hidden_by: Agochado por %{user} <abbr title='%{exact_time}'>hai %{when}</abbr>
+    query:
+      title: Características da consulta
+      introduction: Prema no mapa para atopar características preto de aquí.
+      nearby: Características preto de aquí
+      enclosing: Características envolventes
   changeset:
     changeset_paging_nav:
       showing_page: Páxina %{page}
@@ -233,6 +244,13 @@ gl:
     timeout:
       sorry: Sentímolo, a lista do conxunto de cambios solicitada tardou demasiado
         tempo en ser recuperada.
+    rss:
+      title_all: Discusión do conxunto de cambios de OpenStreetMap
+      title_particular: 'Conversa do conxunto de cambios #%{changeset_id} de OpenStreetMap'
+      comment: 'Comentario novo sobre o conxunto de cambios #%{changeset_id} de %{author}'
+      commented_at_html: Actualizado fai %{when}
+      commented_at_by_html: Actualizado hai %{when} por %{user}
+      full: Conversa completa
   diary_entry:
     new:
       title: Nova entrada no diario
@@ -525,7 +543,7 @@ gl:
           primary_link: Estrada principal
           proposed: Proxecto de estrada
           raceway: Circuíto
-          residential: Residencial
+          residential: Estrada residencial
           rest_area: Área de lecer
           road: Estrada
           secondary: Estrada secundaria
@@ -736,6 +754,8 @@ gl:
           tram: Vía de tranvías
           tram_stop: Parada de tranvías
           yard: Estación de clasificación
+        route:
+          bus: Ruta de autobús
         shop:
           alcohol: Tenda de licores
           antiques: Tenda de antigüidades
@@ -1263,6 +1283,20 @@ gl:
         commented_note: '%{commenter} reactivou unha das súas notas de mapa nas que
           vostede comentou. A nota está preto de %{place}.'
       details: Pode atopar máis detalles da nota en %{url}.
+    changeset_comment_notification:
+      greeting: Ola,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} comentou nun dos teus conxuntos
+          de cambios'
+        subject_other: '[OpenStreetMap] %{commenter} comentou nun conxunto de cambios
+          no que vostede está interesado'
+        your_changeset: '%{commenter} deixou un comentario nun dos seus conxuntos
+          de cambios creado o %{time}'
+        commented_changeset: '%{commenter} deixou un comentario nun conxunto de cambios
+          de mapa que está seguindo, creado por %{changeset_author} o %{time}'
+        partial_changeset_with_comment: co comentario '%{changeset_comment}'
+        partial_changeset_without_comment: sen comentarios
+      details: Máis detalles sobre o conxunto de cambios poden atoparse en %{url}.
   message:
     inbox:
       title: Caixa de entrada
@@ -2217,6 +2251,15 @@ gl:
       createnote_disabled_tooltip: Achegar o mapa para engadirlle unha nota
       map_notes_zoom_in_tooltip: Achegar para ver as notas do mapa
       map_data_zoom_in_tooltip: Achegar para ver os datos do mapa
+      queryfeature_tooltip: Características da consulta
+      queryfeature_disabled_tooltip: Acercar para consultar características
+    changesets:
+      show:
+        comment: Comentario
+        subscribe: Subscribirse
+        unsubscribe: Cancelar a subscrición
+        hide_comment: agochar
+        unhide_comment: mostrar
     notes:
       new:
         intro: Atopou un erro ou descubriu que falta algún dato? Informe aos outros
@@ -2234,6 +2277,13 @@ gl:
         comment: Comentar
     edit_help: Desplace o mapa e amplíeo na localización que queira editar; logo,
       prema aquí.
+    query:
+      node: Nodo
+      way: Camiño
+      relation: Relación
+      nothing_found: Non se atoparon características
+      error: 'Error ó contactar a %{server}: %{error}'
+      timeout: Tempo de espera esgotado ó contactar a %{server}
   redaction:
     edit:
       description: Descrición
index f4e02fcee35883e398d7d10cb98cfc80a6aad82f..42f129d4fa0a237876cedea41a83595f7a5c0c1b 100644 (file)
@@ -135,11 +135,17 @@ he:
       way_paginated: דרכים (%{x}–%{y} מתוך %{count})
       relation: יחסים (%{count})
       relation_paginated: יחסים (%{x}–%{y} מתוך %{count})
+      comment: הערות (%{count})
+      hidden_commented_by: הערה מוסתרת ממשתמש %{user} <abbr title='%{exact_time}'>לפני
+        %{when}</abbr>
+      commented_by: הערה ממשתמש %{user} <abbr title='%{exact_time}'>לפני %{when}</abbr>
       changesetxml: XML של ערכת שינויים
       osmchangexml: osmChange XML
       feed:
         title: ערכת שינויים %{id}
         title_comment: ערכת שינויים %{id} – %{comment}
+      join_discussion: נא להיכנס לחשבון כדי להצטרף לדיון
+      discussion: דיון
     node:
       title: 'צומת: %{name}'
       history_title: 'היסטוריית הצומת: %{name}'
@@ -187,7 +193,7 @@ he:
         way: דרך
         relation: יחס
     start_rjs:
-      feature_warning: ×ª×ª×\91צע ×\98×¢×\99נת %{num_features} ×ª×\9b×\95× ות, וזה עלול לגרום לדפדפן להיות
+      feature_warning: ×ª×ª×\91צע ×\98×¢×\99נת %{num_features} ×\99ש×\95×\99ות, וזה עלול לגרום לדפדפן להיות
         תקוע. האם ברצונך באמת להציג את הנתונים האלה?
       load_data: טעינת נתונים
       loading: בטעינה...
@@ -216,6 +222,11 @@ he:
       reopened_by_anonymous: הופעל מחדש על־ידי אלמוני <abbr title='%{exact_time}'>לפני
         %{when}</abbr>
       hidden_by: הוסתר על־ידי %{user} <abbr title='%{exact_time}'>לפני %{when}</abbr>
+    query:
+      title: שאילתת ישויות
+      introduction: יש ללחוץ עלהמפה כדי למצוא ישויות בסביבה.
+      nearby: ישויות בסביבה
+      enclosing: ישויות סובבות
   changeset:
     changeset_paging_nav:
       showing_page: הדף %{page}
@@ -245,6 +256,13 @@ he:
       load_more: לטעון עוד
     timeout:
       sorry: סליחה, לוקח יותר מדי זמן לאחזר על רשימת ערכות השינויים שביקשת.
+    rss:
+      title_all: דיון בערכת שינויים של OpenStreetMap
+      title_particular: דיון בערכת שינויים מס' %{changeset_id} של OpenStreetMap
+      comment: הערה חדשה על בערכת שינויים מס' %{changeset_id} מאת %{author}
+      commented_at_html: עודכן לפני %{when}
+      commented_at_by_html: עודכן לפני %{when} על־ידי %{user}
+      full: דיון מלא
   diary_entry:
     new:
       title: רשומת יומן חדשה
@@ -532,7 +550,7 @@ he:
           primary_link: דרך ראשית
           proposed: דרך מוצעת
           raceway: מסלול מרוצים
-          residential: מגורים
+          residential: ×\93ר×\9a ×\91×\90×\96×\95ר ×\9e×\92×\95ר×\99×\9d
           rest_area: אזור מנוחה
           road: דרך
           secondary: דרך משנית
@@ -647,7 +665,7 @@ he:
           cliff: מצוק
           crater: מכתש
           dune: חולית
-          feature: ×ª×\9b×\95× ×\94
+          feature: ×\99ש×\95ת
           fell: תל
           fjord: פיורד
           forest: יער
@@ -743,6 +761,8 @@ he:
           tram: חשמלית
           tram_stop: תחנת חשמלית
           yard: מוסך רכבות
+        route:
+          bus: נתיב אוטובוסים
         shop:
           alcohol: חנות אלכוהול
           antiques: עתיקות
@@ -947,10 +967,6 @@ he:
       text: תרומה
     learn_more: מידע נוסף
     more: עוד
-    sotm_header: State of the Map 2014
-    sotm_line_1: הכנס השמיני השנתי
-    sotm_line_2: 7–9 בנובמבר 2014
-    sotm_line_3: בואנוס איירס, ארגנטינה
   license_page:
     foreign:
       title: אודות תרגום זה
@@ -1074,7 +1090,7 @@ he:
     whats_on_the_map:
       title: מה על המפה
       on_html: OpenStreetMap הוא מקום למיפוי דברים אמתיים ונוכחיים – הוא מכיל מיליוני
-        ×\9e×\91× ×\99×\9d, ×\93ר×\9b×\99×\9d ×\95פר×\98×\99×\9d ×\90×\97ר×\99×\9d ×¢×\9c ×\9eק×\95×\9e×\95ת. ×\90פשר ×\9c×\9eפ×\95ת ×\9b×\9c ×\93×\91ר ×\9e×\94×¢×\95×\9c×\9d ×\9eהאמתי שמעניין
+        ×\9e×\91× ×\99×\9d, ×\93ר×\9b×\99×\9d ×\95פר×\98×\99×\9d ×\90×\97ר×\99×\9d ×¢×\9c ×\9eק×\95×\9e×\95ת. ×\90פשר ×\9c×\9eפ×\95ת ×\9b×\9c ×\99ש×\95ת ×\9e×\94×¢×\95×\9c×\9d האמתי שמעניין
         אותך.
       off_html: מה שאין פה זה מידע דעתני כמו דירוגים, מקומות היסטוריים או היפותטיים
         ונתונים ומקורות שמוגבלים בזכויות יוצרים. אנו דורשים ממך לא להוסיף  מידע ממפות
@@ -1252,6 +1268,20 @@ he:
         commented_note: הערה במפה שהגבת עליה הופעלה מחדש על־ידי %{commenter}. ההערה
           היא ליד %{place}.
       details: אפשר למצוא פרטים נוספים על ההערה בכתובת %{url}
+    changeset_comment_notification:
+      greeting: שלום,
+      commented:
+        subject_own: '[OpenStreetMap] המשתמש %{commenter} העיר על אחד מערכות השינויים
+          שלך'
+        subject_other: '[OpenStreetMap] המשתמש %{commenter} העיר על אחד מערכות השינויים
+          שהתעניית בהן'
+        your_changeset: המשתמש %{commenter} העיר על אחד מערכות השינויים שלך שיצרת
+          ב־%{time}
+        commented_changeset: המשתמש %{commenter} העיר על אחד מערכות השינויים במפה
+          שעקבת אחריה שנוצרה על־ידי %{changeset_author} ב־%{time}
+        partial_changeset_with_comment: עם ההערה '%{changeset_comment}'
+        partial_changeset_without_comment: ללא הערה
+      details: פרטים נוספים על ערכת השינויים אפשר למצוא בכתובת %{url}
   message:
     inbox:
       title: תיבת דואר נכנס
@@ -2165,6 +2195,15 @@ he:
       createnote_disabled_tooltip: נא להתקרב כדי להוסיף הערה למפה
       map_notes_zoom_in_tooltip: התקרבות כדי לראות הערות על המפה
       map_data_zoom_in_tooltip: יש לקרב את המפה כדי לראות נתוני מפה
+      queryfeature_tooltip: שאילתת ישויות
+      queryfeature_disabled_tooltip: תקריב לשאילתת ישויות
+    changesets:
+      show:
+        comment: הערה
+        subscribe: מינוי
+        unsubscribe: ביטול מינוי
+        hide_comment: הסתרה
+        unhide_comment: ביטול הסתרה
     notes:
       new:
         intro: יש פה טעות או שחסר משהו? אנו מבקשים ממך לספר את זה לממפים אחרים. לשם
@@ -2180,6 +2219,13 @@ he:
         comment_and_resolve: להגיב ולפתור
         comment: להגיב
     edit_help: יש להזיז את המפה ולהתמקד על מיקום שברצונך לערוך ואז ללחוץ כאן.
+    query:
+      node: צומת
+      way: דרך
+      relation: יחס
+      nothing_found: לא נמצאו ישויות
+      error: 'שגיאה תקשורת עם %{server}, מידע נוסף: %{error}'
+      timeout: פג זמן ההתקשרות על %{server}
   redaction:
     edit:
       description: תיאור
index 38037d52b79ae4475abeaccd99ed49319f49fd44..c7c7ac808c03e42eaa659eee742d2dea3ef4e381 100644 (file)
@@ -123,6 +123,7 @@ hsb:
       feed:
         title: Sadźba změnow %{id}
         title_comment: Sadźba změnow %{id} - %{comment}
+      discussion: Diskusija
     node:
       title: 'Suk: %{name}'
       history_title: 'Sukata historija: %{name}'
@@ -203,6 +204,9 @@ hsb:
       reopened_by_anonymous: Reaktiwizowany wot anonymneho <abbr title='%{exact_time}'>před
         %{when}</abbr>
       hidden_by: Schowany wot %{user} <abbr title='%{exact_time}'>před %{when}</abbr>
+    query:
+      introduction: Klikń na kartu, zo by susodne objekty namakał(a).
+      nearby: Objekty w bliskosći
   changeset:
     changeset_paging_nav:
       showing_page: Strona %{page}
@@ -232,6 +236,9 @@ hsb:
       load_more: Wjace začitać
     timeout:
       sorry: Bohužel je předołho trało, skupiny změny, kotrež sy požadał, wotwołać.
+    rss:
+      commented_at_by_html: Před %{when} wot %{user} nahraty
+      full: Dospołna diskusija
   diary_entry:
     new:
       title: Nowy dźenikowy zapisk
@@ -736,6 +743,8 @@ hsb:
           tram: Tramwajka
           tram_stop: Tramwajkowe zastanišćo
           yard: Ranžěrowanske dwórnišćo
+        route:
+          bus: Busowa linija
         shop:
           alcohol: Wobchod za spirituozy
           antiques: Wobchod starožitnosćow
@@ -1230,6 +1239,12 @@ hsb:
         commented_note: '%{commenter} je kartowu pokazku reaktiwizował,  kotruž sy
           komentował. Pokazka je blisko %{place}.'
       details: Dalše podrobnosće wo pokazce móžeš pod %{url} namakać.
+    changeset_comment_notification:
+      greeting: Witaj,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} je jednu z twojich změnow komentował(a)'
+        partial_changeset_with_comment: z komentarom „%{changeset_comment}“
+        partial_changeset_without_comment: bjez komentara
   message:
     inbox:
       title: Póstowy kašćik
@@ -2185,6 +2200,13 @@ hsb:
       createnote_disabled_tooltip: Powjetš kartu, zo by pokazku přidał
       map_notes_zoom_in_tooltip: Powjetš kartu, zo by pokazki widźał
       map_data_zoom_in_tooltip: Powjetš kartu, zo by daty widźał
+    changesets:
+      show:
+        comment: Komentar
+        subscribe: Abonować
+        unsubscribe: Wotskazać
+        hide_comment: schować
+        unhide_comment: pokazać
     notes:
       new:
         intro: Sy zmylk widźał abo zo něšto faluje? Informuj druhich kartografow,
@@ -2202,6 +2224,11 @@ hsb:
         comment: Komentar
     edit_help: Přesuń kartu do městna, kotrež chceš wobdźěłać, powjetš tam a klikń
       potom tu.
+    query:
+      node: Suk
+      way: Puć
+      relation: Relacija
+      nothing_found: Žane funkcije namakane
   redaction:
     edit:
       description: Wopisanje
index 315734c77e5648633302e78a705fbc257a10ce9b..5017d8148000333daa1a6a614f927b38b8fe190c 100644 (file)
@@ -944,9 +944,6 @@ hu:
       text: Adományozz
     learn_more: További info
     more: Több
-    sotm_line_1: 8. éves konferencia
-    sotm_line_2: 2014. november 7-9.
-    sotm_line_3: Buenos Aires, Argentína
   license_page:
     foreign:
       title: Erről a fordításról
index 8a031e75b11931c8bd33771c9ae4edae1fdf8817..00ea28758eb8e71c894634468bb4d8cc30253e7f 100644 (file)
@@ -179,6 +179,7 @@ ia:
       wiki_link:
         key: Le pagina wiki que describe le etiquetta %{key}
         tag: Le pagina wiki que describe le etiquetta %{key}=%{value}
+      wikidata_link: Le elemento %{page} in Wikidatos
       wikipedia_link: Le articulo %{page} in Wikipedia
       telephone_link: Telephonar %{phone_number}
     note:
@@ -1129,6 +1130,11 @@ ia:
       contribue e mantene datos sur stratas, sentieros, cafés, stationes ferroviari
       e multo plus, in tote le mundo.
     local_knowledge_title: Cognoscentia local
+    local_knowledge_html: |-
+      OpenStreetMap mitte le emphase sur le cognoscentia local. Contributores usa
+      imageria aeree, apparatos GPS e cartas ordinari de terreno pro verificar que OSM
+      es accurate e actual.
+    community_driven_title: Dirigite per le communitate
   notifier:
     diary_comment_notification:
       subject: '[OpenStreetMap] %{user} commentava un entrata de tu diario'
index 0e343cbe021a18f94d356f227ebaba7d675e79f5..51800880547e0ef95bd7555f667294db9d94cd16 100644 (file)
@@ -10,6 +10,7 @@
 # Author: Irwangatot
 # Author: Iwan Novirion
 # Author: Relly Komaruzaman
+# Author: Rizkiahmadz
 # Author: Vasanthi
 # Author: Wulankhairunisa
 # Author: 아라
@@ -129,11 +130,14 @@ id:
       way_paginated: Jalan (%{x}-%{y} dari %{count})
       relation: Hubungan (%{count})
       relation_paginated: Hubungan (%{x}-%{y} dari %{count})
+      comment: Komentar %{count}
       changesetxml: Set Perubahan XML
       osmchangexml: osmChange XML
       feed:
         title: Set Perubahan %{id}
         title_comment: Set Perubahan %{id} - %{comment}
+      join_discussion: Masuk untuk bergabung diskusi
+      discussion: Diskusi
     node:
       title: 'Simpul: %{name}'
       history_title: 'Riwayat Simpul: %{name}'
@@ -245,6 +249,8 @@ id:
     timeout:
       sorry: Maaf, daftar kumpulan set perubahan yang Anda minta terlalu lama untuk
         diambil.
+    rss:
+      full: Diskusi penuh
   diary_entry:
     new:
       title: Entri Baru Catatan Harian
@@ -747,6 +753,8 @@ id:
           tram: Jalur Trem
           tram_stop: Perhentian Trem
           yard: Emplasemen
+        route:
+          bus: Rute Bus
         shop:
           alcohol: Pub (di Inggris)
           antiques: Toko Benda Antik
@@ -1261,6 +1269,10 @@ id:
         commented_note: '%{commenter} telah meninggalkan komentar pada catatan peta
           yang Anda komentari. Catatan ini dekat %{place}.'
       details: Rincian lebih lanjut mengenai catatan dapat ditemukan di %{url}.
+    changeset_comment_notification:
+      greeting: Halo,
+      commented:
+        partial_changeset_without_comment: tanpa komentar
   message:
     inbox:
       title: Kotak Masuk
@@ -2214,6 +2226,13 @@ id:
       createnote_disabled_tooltip: Perbesar untuk menambahkan catatan pada peta
       map_notes_zoom_in_tooltip: Perbesar untuk melihat catatan peta
       map_data_zoom_in_tooltip: Perbesar untuk melihat data peta
+    changesets:
+      show:
+        comment: Komentar
+        subscribe: Berlangganan
+        unsubscribe: Berhenti berlangganan
+        hide_comment: sembunyikan
+        unhide_comment: Jangan sembunyikan
     notes:
       new:
         intro: Melihat kesalahan atau sesuatu yang hilang? Biarkan pembuat peta lainnya
@@ -2231,6 +2250,12 @@ id:
         comment: Komentar
     edit_help: Memindahkan peta dan memperbesar lokasi yang ingin Anda sunting, kemudian
       klik di sini.
+    query:
+      node: Node/Titik
+      relation: Relasi
+      nothing_found: Tidak ada fasilitas yang ditemukan
+      error: 'Kelasahan menghubungi %{server}: %{error}'
+      timeout: Waktu habis menghubungi %{server}
   redaction:
     edit:
       description: Deskripsi
index 3283d8b9f010edddaf60d6ecfe1d619182fa455d..2ed733e59ff810ed745d696ae301c0719b558fb0 100644 (file)
@@ -16,6 +16,7 @@
 # Author: Karika
 # Author: Lollo
 # Author: LucioGE
+# Author: Macofe
 # Author: Massimo itaca
 # Author: McDutchie
 # Author: Nemo bis
@@ -144,11 +145,15 @@ it:
       way_paginated: Ways (%{x}-%{y} di %{count})
       relation: Relazioni (%{count})
       relation_paginated: Relazioni (%{x}-%{y} di %{count})
+      comment: Commenti (%{count})
+      commented_by: Commento da %{user} <abbr title='%{exact_time}'>%{when} fa</abbr>
       changesetxml: Gruppo di modifiche XML
       osmchangexml: modificheOsm XML
       feed:
         title: Gruppo di modifiche %{id}
         title_comment: Gruppo di modifiche %{id} - %{comment}
+      join_discussion: Fai login per unirti alla discussione
+      discussion: Discussione
     node:
       title: 'Nodo: %{name}'
       history_title: 'Cronologia nodo: %{name}'
@@ -229,6 +234,10 @@ it:
       reopened_by_anonymous: Riattivata da anonimo <abbr title='%{exact_time}'>%{when}
         fa</abbr>
       hidden_by: Nascosta da %{user} <abbr title='%{exact_time}'>%{when} fa</abbr>
+    query:
+      title: Funzionalità di query
+      introduction: Clicca sulla cartina per disponibilità nei pressi.
+      nearby: Disponibilità nei pressi
   changeset:
     changeset_paging_nav:
       showing_page: Pagina %{page}
@@ -259,6 +268,10 @@ it:
     timeout:
       sorry: Siamo spiacenti, l'elenco delle modifiche che hai richiesto necessitava
         di troppo tempo per poter essere recuperato.
+    rss:
+      commented_at_html: Aggiornato %{when} fa
+      commented_at_by_html: Aggiornato %{when} fa da %{user}
+      full: Discussione completa
   diary_entry:
     new:
       title: Nuova voce del diario
@@ -550,7 +563,7 @@ it:
           primary_link: Strada primaria
           proposed: Strada proposta
           raceway: Pista
-          residential: Residenziale
+          residential: Strada residenziale
           rest_area: Area di Sosta
           road: Strada generica
           secondary: Strada secondaria
@@ -761,6 +774,8 @@ it:
           tram: Tramvia
           tram_stop: Fermata del tram
           yard: Zona di manovra ferroviaria
+        route:
+          bus: Percorso bus
         shop:
           alcohol: Alcolici
           antiques: Antiquario
@@ -964,10 +979,6 @@ it:
       text: Fai una donazione
     learn_more: Ulteriori informazioni
     more: Altro
-    sotm_header: Stato della mappa 2014
-    sotm_line_1: 8ª conferenza annuale
-    sotm_line_2: 7-9 novembre 2014
-    sotm_line_3: Buenos Aires, Argentina
   license_page:
     foreign:
       title: A proposito di questa traduzione
@@ -1276,6 +1287,15 @@ it:
         commented_note: '%{commenter} ha riattivato una nota che avevi commentato.
           La nota si trova vicino a %{place}.'
       details: Ulteriori dettagli sulla nota possono essere trovati su %{url}.
+    changeset_comment_notification:
+      greeting: Ciao,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} ha commentato uno dei tuoi changeset'
+        subject_other: '[OpenStreetMap] %{commenter} ha commentato su uno dei changeset
+          cui sei interessato'
+        your_changeset: '%{commenter} ha lasciato un commento su uno dei tuoi changeset
+          creato il %{time}'
+        partial_changeset_without_comment: senza commento
   message:
     inbox:
       title: Posta in arrivo
@@ -2235,6 +2255,12 @@ it:
       createnote_disabled_tooltip: Ingrandisci la mappa per aggiungere una nota
       map_notes_zoom_in_tooltip: Zooma per vedere le note della mappa
       map_data_zoom_in_tooltip: Zooma per vedere i dati della mappa
+    changesets:
+      show:
+        comment: Commento
+        subscribe: Iscriviti
+        unsubscribe: Cancella iscrizione
+        hide_comment: nascondi
     notes:
       new:
         intro: Ti sei accorto di un errore o di qualcosa che manca? Fallo sapere agli
@@ -2253,6 +2279,8 @@ it:
         comment: Commenta
     edit_help: Sposta la mappa e usa lo zoom sulla posizione che vuoi modificare,
       quindi clicca qui.
+    query:
+      relation: Relazione
   redaction:
     edit:
       description: Descrizione
index 2873060f6f453876114455608b6df4d96f3e45c1..55a3b1016673ddbc7439269c1e3203fc3151fea1 100644 (file)
@@ -135,11 +135,16 @@ ja:
       way_paginated: ウェイ (%{x}-%{y} / %{count})
       relation: リレーション (%{count})
       relation_paginated: リレーション (%{x}-%{y} / %{count})
+      comment: コメント (%{count}件)
+      hidden_commented_by: '%{user}さんからの<abbr title=''%{exact_time}''>%{when}前</abbr>の非表示のコメント'
+      commented_by: '%{user}さんからの<abbr title=''%{exact_time}''>%{when}前</abbr>のコメント'
       changesetxml: 変更セット XML
       osmchangexml: OSM 差分 XML
       feed:
         title: 変更セット %{id}
         title_comment: 変更セット %{id} - %{comment}
+      join_discussion: 議論に参加するにはログインしてください
+      discussion: 議論
     node:
       title: 'ノード: %{name}'
       history_title: 'ノードの履歴: %{name}'
@@ -212,6 +217,9 @@ ja:
       reopened_by: '%{user}さんが<abbr title=''%{exact_time}''>%{when}前</abbr>に再開'
       reopened_by_anonymous: 誰かが<abbr title='%{exact_time}'>%{when}前</abbr>に再開
       hidden_by: '%{user}さんが<abbr title=''%{exact_time}''>%{when}前</abbr>に非表示化'
+    query:
+      introduction: 地図上をクリックすると、近くの地物を探します。
+      nearby: 近くの地物
   changeset:
     changeset_paging_nav:
       showing_page: ページ %{page}
@@ -524,7 +532,7 @@ ja:
           primary_link: 主要地方道
           proposed: 計画中の道路
           raceway: 競技コース
-          residential: 住宅
+          residential: 住宅地内道路
           rest_area: 休憩所
           road: 道路
           secondary: 一般県道
@@ -735,6 +743,8 @@ ja:
           tram: 路面軌道
           tram_stop: トラム停留所
           yard: 車両基地
+        route:
+          bus: バス路線
         shop:
           alcohol: 酒屋
           antiques: 骨董品
@@ -934,8 +944,6 @@ ja:
       text: 寄付
     learn_more: 詳細
     more: その他
-    sotm_line_2: 2014年11月7日-9日
-    sotm_line_3: アルゼンチン ブエノスアイレス
   license_page:
     foreign:
       title: この翻訳について
@@ -1155,6 +1163,8 @@ ja:
         your_note: '%{commenter}さんが%{place}付近にあるあなたの地図メモの1つを再開しました。'
         commented_note: '%{commenter}さんが、%{place}付近にあるあなたがコメントした地図メモを再開しました。'
       details: メモについての詳細は %{url} を参照。
+    changeset_comment_notification:
+      greeting: こんにちは、
   message:
     inbox:
       title: 受信箱
index 7846b5cd64bcc33a2dffac74fbc925872c151657..233a2d5ad6866e12492a7be9b8b5020021aa31b3 100644 (file)
@@ -2,6 +2,7 @@
 # Exported from translatewiki.net
 # Export driver: phpyaml
 # Author: David1010
+# Author: MIKHEIL
 # Author: Temuri rajavi
 ---
 ka:
@@ -348,7 +349,7 @@ ka:
           platform: ბაქანი
           primary: მთავარი გზა
           primary_link: მთავარი გზა
-          residential: საცხოვრებელი
+          residential: საცხოვრებელი ქუჩა
           rest_area: მოსასვენებელი ტერიტორია
           road: გზა
           secondary: მეორადი გზა
index 58358d1af7bfe32c6b1885a7bb5e20c9972484b5..7f4c599e42a263091192017a667f731312c9de89 100644 (file)
@@ -4,6 +4,7 @@
 # Author: B891202
 # Author: Freebiekr
 # Author: Hym411
+# Author: IRTC1015
 # Author: Kwj2772
 # Author: Priviet
 # Author: Revi
@@ -110,7 +111,7 @@ ko:
     in_changeset: 바뀜집합
     anonymous: 익명
     no_comment: (덧글 없음)
-    part_of: '다음의 부분:'
+    part_of: '다음의 일부:'
     download_xml: XML 다운로드
     view_history: 역사 보기
     view_details: 자세한 내용 보기
@@ -124,11 +125,18 @@ ko:
       way_paginated: 길 (%{count} 중 %{x}-%{y})
       relation: 관계 (%{count})
       relation_paginated: 관계 (%{count} 중 %{x}-%{y})
+      comment: 의견 (%{count})
+      hidden_commented_by: '%{user} 사용자가 <abbr title=''%{exact_time}''>%{when} 전</abbr>에
+        남긴 숨겨진 덧글'
+      commented_by: '%{user} 사용자가 <abbr title=''%{exact_time}''>%{when} 전</abbr>에
+        덧글을 남김'
       changesetxml: 바뀜집합 XML
-      osmchangexml: osm바뀜 XML
+      osmchangexml: osmChange XML
       feed:
         title: 바뀜집합 %{id}
         title_comment: 바뀜집합 %{id} - %{comment}
+      join_discussion: 토론에 참여하려면 로그인
+      discussion: 토론
     node:
       title: '노드: %{name}'
       history_title: '노드 역사: %{name}'
@@ -137,8 +145,8 @@ ko:
       history_title: '길 역사: %{name}'
       nodes: 노드
       also_part_of:
-        one: '%{related_ways} 길의 부분'
-        other: '%{related_ways} 길의 부분'
+        one: '%{related_ways} 길의 일부'
+        other: '%{related_ways} 길의 일부'
     relation:
       title: '관계: %{name}'
       history_title: '관계 역사: %{name}'
@@ -345,7 +353,7 @@ ko:
       format: 형식
       scale: 축척
       max: 최대
-      image_size: 이미지 크기
+      image_size: 그림 크기
       zoom: 확대
       add_marker: 지도에 표시 추가
       latitude: '위도:'
@@ -521,7 +529,7 @@ ko:
           primary_link: 주요 도로
           proposed: 제안 도로
           raceway: 경마장
-          residential: 주
+          residential: 주거 도로
           rest_area: 휴게소
           road: 도로
           secondary: 보조 도로
@@ -732,6 +740,8 @@ ko:
           tram: 전차
           tram_stop: 전차 정거장
           yard: 철도 기지
+        route:
+          bus: 버스 노선
         shop:
           alcohol: 주점
           antiques: 골동품 상점
@@ -931,10 +941,6 @@ ko:
       text: 기부하기
     learn_more: 더 알아보기
     more: 더 보기
-    sotm_header: 지도의 나라 2014
-    sotm_line_1: 8차 연례 회의
-    sotm_line_2: 2014년 11월 7일~9일
-    sotm_line_3: 아르헨티나, 부에노스 아이레스
   license_page:
     foreign:
       title: 이 번역에 대한 정보
@@ -1237,6 +1243,15 @@ ko:
         commented_note: '%{commenter} 사용자가 당신이 덧글을 남긴 지도 참고를 다시 활성했습니다. 참고는 %{place}
           근처에 있습니다.'
       details: 참고에 대한 자세한 사항은 %{url} 에서 찾을 수 있습니다.
+    changeset_comment_notification:
+      greeting: 안녕하세요,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} 사용자가 당신의 바뀜집합에 덧글을 남겼습니다'
+        subject_other: '[OpenStreetMap] %{commenter} 사용자가 당신이 관심 있는 바뀜집합에 덧글을 남겼습니다'
+        your_changeset: '%{commenter} 사용자가 당신이 %{time}에 만든 바뀜집합에 덧글을 달았습니다'
+        commented_changeset: '%{commenter} 사용자가 %{changeset_author}이 %{time}에 만든,
+          주시 중인 지도 바뀜집합에 덧글을 달았습니다'
+      details: 바뀜집합에 대한 자세한 사항은 %{url} 에서 찾을 수 있습니다.
   message:
     inbox:
       title: 받은 쪽지함
@@ -2125,6 +2140,12 @@ ko:
       createnote_disabled_tooltip: 지도에 참고를 추가하려면 확대
       map_notes_zoom_in_tooltip: 지도 참고를 보려면 확대
       map_data_zoom_in_tooltip: 지도 데이터를 보려면 확대
+    changesets:
+      show:
+        comment: 덧글
+        subscribe: 구독
+        unsubscribe: 구독 해지
+        hide_comment: 숨기기
     notes:
       new:
         intro: 실수했거나 없는 무언가를 발견했나요? 다른 매퍼에게 알려주어 고칠 수 있게 해주세요. 마커를 올바른 위치로 옮기고, 참고를
@@ -2138,6 +2159,10 @@ ko:
         comment_and_resolve: 덧글 & 해결
         comment: 덧글
     edit_help: 편집하려는 위치에 지도를 이동하고 확대한 다음, 여기를 클릭하세요.
+    query:
+      node: 노드
+      way: 길
+      relation: 관계
   redaction:
     edit:
       description: 설명
index b550ed1b5b298b6357b1043c0d26eef559663b16..1d2122ad5d898366c9f849e2d01bea502fc54e00 100644 (file)
@@ -411,7 +411,7 @@ ksh:
     account:
       preferred languages: 'De vörjetroke Schprooche::'
     confirm_resend:
-      failure: 'Dä Metmaacher „%{user} “ ham_mer nit jefonge.'
+      failure: 'Dä Metmaacher „%{name} “ ham_mer nit jefonge.'
     confirm_email:
       heading: 'Donn en neue Adräß för de <i lang="en">e-mail</i> beschtäätejje'
   user_block:
index 69bae315e768b73f1f88c37ad6333dea83ba74b9..cdc5833350063ede742ff2baf6825a75e5755464 100644 (file)
@@ -84,11 +84,13 @@ lb:
       way_paginated: Weeër (%{x}–%{y} vu(n) %{count})
       relation: Relatiounen (%{count})
       relation_paginated: Relatiounen (%{x}-%{y} vu(n) %{count})
+      comment: Bemierkungen (%{count})
       changesetxml: XML mam Set vun Ännerungen
       osmchangexml: osmChange XML
       feed:
         title: 'Set vun Ännerungen: %{id}'
         title_comment: Set vun Ännerungen %{id} - %{comment}
+      discussion: Diskussioun
     node:
       title: 'Knuet: %{name}'
     way:
@@ -141,10 +143,18 @@ lb:
       new_note: Nei Notiz
       description: Beschreiwung
       hidden_title: Verstoppt Notiz N° %{note_name}
+      open_by: Ugeluecht vum %{user} <abbr title='%{exact_time}'>viru(n) %{when}</abbr>
+      open_by_anonymous: Ugeluecht vun engem Anonymen <abbr title='%{exact_time}'>
+        viru(n) %{when}</abbr>
       commented_by: Bemierkung vum %{user} <abbr title='%{exact_time}'> viru(n) %{when}</abbr>
       commented_by_anonymous: Bemierkung vun engem Anonymen <abbr title='%{exact_time}'>
         viru(n) %{when}</abbr>
+      closed_by: Geléist vum %{user} <abbr title='%{exact_time}'>viru(n) %{when}</abbr>
+      closed_by_anonymous: Geléist vun engem Anonymen <abbr title='%{exact_time}'>
+        viru(n) %{when}</abbr>
       reopened_by: Reaktivéiert vum %{user} <abbr title='%{exact_time}'>viru(n) %{when}</abbr>
+      reopened_by_anonymous: Reaktivéiert vun engem Anonymen <abbr title='%{exact_time}'>
+        viru(n) %{when}</abbr>
       hidden_by: Verstoppt vum %{user} <abbr title='%{exact_time}'>viru(n) %{when}</abbr>
   changeset:
     changeset_paging_nav:
@@ -172,6 +182,10 @@ lb:
       no_more_area: Keng weider Sette vun Ännerungen an dëser Géigend.
       no_more_user: Keng weider Sette vun Ännerunge vun dësem Benotzer.
       load_more: Méi lueden
+    rss:
+      commented_at_html: Viru(n) %{when} aktualiséiert
+      commented_at_by_html: Viru(n) %{when} vum %{user} aktualiséiert
+      full: Komplett Diskussioun
   diary_entry:
     list:
       title: Blogge vun de Benotzer
@@ -299,6 +313,7 @@ lb:
           preschool: Spillschoul
           prison: Prisong
           pub: Bistro
+          public_market: Ëffentleche Maart
           reception_area: Rezeptiounsberäich
           recycling: Recycling-Center
           restaurant: Restaurant
@@ -320,6 +335,8 @@ lb:
           vending_machine: Verkaafsautomat
           veterinary: Déiereklinik
           waste_basket: Drecksback
+        boundary:
+          national_park: Nationalpark
         bridge:
           suspension: Hänkbréck
           viaduct: Viadukt
@@ -403,7 +420,10 @@ lb:
           airfield: Militärfluchhafen
           barracks: Kasär
           bunker: Bunker
+        mountain_pass:
+          "yes": Pass an de Bierger
         natural:
+          bay: Bucht
           beach: Plage
           cape: Kap
           channel: Kanal
@@ -458,6 +478,7 @@ lb:
           abandoned: Fréier Eisebunn
           construction: Eisebunn (am Bau)
           disused: Fréier Eisebunn
+          historic_station: Historesch Eisebunnsstatioun
           miniature: Miniatur-Eisebunn
           proposed: Proposéiert Eisebunnslinn
           station: Gare (Eisebunn)
@@ -512,6 +533,7 @@ lb:
           motel: Motel
           museum: Musée
           picnic_site: Piknikplaz
+          theme_park: Fräizäitpark
           valley: Dall
           viewpoint: Aussiichtspunkt
           zoo: Zoo
@@ -556,6 +578,7 @@ lb:
     export_data: Donnéeën exportéieren
     user_diaries: Benotzer Bloggen
     edit_with: Ännere mat %{editor}
+    intro_header: Wëllkomm bei OpenStreetMap!
     intro_2_create_account: E Benotzerkont uleeën
     partners_partners: Partner
     osm_offline: D'OpenStreetMap Datebank ass elo net disponibel well dru geschafft
@@ -657,6 +680,8 @@ lb:
       anonymous: En anonyme Benotzer
       greeting: Salut,
       details: Méi Detailer iwwer d'Notiz fannt Dir op %{url}.
+    changeset_comment_notification:
+      greeting: Salut,
   message:
     inbox:
       messages: Dir hutt %{new_messages} a(n) %{old_messages}
@@ -745,6 +770,7 @@ lb:
           - Spëtzt
     richtext_area:
       edit: Änneren
+      preview: Kucken ouni ofzespäicheren
     markdown_help:
       headings: Iwwerschrëften
       heading: Iwwerschrëft
@@ -815,6 +841,8 @@ lb:
       description_without_count: GPX-Fichier vum %{user}
   oauth:
     oauthorize:
+      allow_read_prefs: Är Benotzerastellunge liesen.
+      allow_write_prefs: Är Benotzerastellungen änneren.
       allow_write_api: d'Kaart änneren.
       allow_write_notes: Notizen änneren.
   oauth_clients:
@@ -846,15 +874,25 @@ lb:
       login_button: Umellen
       register now: Elo aschreiwen
       new to osm: Nei bei OpenStreetMap?
+      create account minute: Maacht e Benotzerkont. Et dauert nëmmen eng Minutt.
+      no account: Hutt Dir kee Benotzerkont?
+      openid_logo_alt: Alogge mat enger OpenID
       openid_providers:
         openid:
           title: Alogge mat OpenID
+          alt: Alogge mat enger OpenID URL
         google:
           title: Alogge mat Google
+          alt: Alogge mat enger Google OpenID
         yahoo:
           title: Alogge mat Yahoo
+          alt: Alogge mat enger Yahoo OpenID
+        wordpress:
+          title: Alogge mat Wordpress
+          alt: Alogge mat enger Wordpress OpenID
         aol:
           title: Alogge mat AOL
+          alt: Alogge mat enger AOL OpenID
     logout:
       title: Ofmellen
       heading: Vun OpenStreetMap ofmellen
@@ -912,6 +950,8 @@ lb:
       remove as friend: Frënd ewechhuelen
       add as friend: Frënd derbäisetzen
       ago: (viru(n) %{time_in_words_ago})
+      ct accepted: Viru(n) %{ago} akzeptéert
+      latest edit: 'Lescht Ännerung %{ago}:'
       email address: 'E-Mail-Adress:'
       status: 'Status:'
       description: Beschreiwung
@@ -948,6 +988,7 @@ lb:
       new email address: 'Nei E-Mail-Adress:'
       email never displayed publicly: (ni ëffentlech gewisen)
       openid:
+        link: http://wiki.openstreetmap.org/wiki/OpenID
         link text: wat ass dat?
       public editing:
         enabled link text: wat ass dëst?
@@ -1097,12 +1138,18 @@ lb:
         title: Weise wou ech sinn
         popup: Dir sidd {distance} {unit} vun dësem Punkt ewech
       base:
+        standard: Standard
         cycle_map: Vëloskaart
         hot: Humanitär
       donate_link_text: <a class='donate-attr' href='%{donate_url}'>Maacht een Don</a>
     site:
       edit_tooltip: Kaart änneren
       edit_disabled_tooltip: Erazoomen fir d'Kaart z'änneren
+    changesets:
+      show:
+        comment: Bemierkung
+        hide_comment: verstoppen
+        unhide_comment: nees weisen
     notes:
       new:
         add: Notiz derbäisetzen
@@ -1111,6 +1158,9 @@ lb:
         resolve: Léisen
         reactivate: Reaktivéieren
         comment: Bemierkung
+    query:
+      way: Wee
+      relation: Relatioun
   redaction:
     edit:
       description: Beschreiwung
index 59dae1ceaefb729021458cf6559fdde3bb0b2e0e..fd852f6bb6226deba9034feadef472d2d7512338 100644 (file)
@@ -126,11 +126,13 @@ lv:
       way_paginated: Ceļi (%{x}-%{y} no %{count})
       relation: Relācijas (%{count})
       relation_paginated: Relācijas (%{x}-%{y} no %{count})
+      comment: Komentāri (%{count})
       changesetxml: Izmaiņu kopas XML
       osmchangexml: osmChange XML
       feed:
         title: Izmaiņu kopa %{id}
         title_comment: Izmaiņu kopa %{id} - %{comment}
+      discussion: Diskusija
     node:
       title: 'Punkts: %{name}'
       history_title: 'Punkta vēsture: %{name}'
@@ -238,6 +240,8 @@ lv:
     timeout:
       sorry: Atvainojiet, jūsu pieprasīto izmaiņu kopu ielāde prasīja pārāk daudz
         laika.
+    rss:
+      full: Pilna diskusija
   diary_entry:
     new:
       title: Jauns dienasgrāmatas ieraksts
@@ -528,7 +532,7 @@ lv:
           primary_link: Galvenais valsts ceļš
           proposed: Ieplānots Ceļš
           raceway: Sacensību trase
-          residential: Dzīvojamā
+          residential: Dzīvojamā zona
           rest_area: Atpūtas zona
           road: Ceļš
           secondary: Sekundāras nozīmes ceļš
@@ -739,6 +743,8 @@ lv:
           tram: Tramvajs
           tram_stop: Tramvaja pietura
           yard: Dzelzceļa Pagalms
+        route:
+          bus: Autobusa maršruts
         shop:
           alcohol: Alkohola Veikals
           antiques: Senlietas
@@ -942,10 +948,6 @@ lv:
       text: Ziedot attīstībai
     learn_more: Uzzināt Vairāk
     more: Vairāk
-    sotm_header: State of the Map 2014
-    sotm_line_1: 8. ikgadējā konference
-    sotm_line_2: 2014. gada 7.-9. novembris
-    sotm_line_3: Buenosairesa, Argentīna
   license_page:
     foreign:
       title: Par šo tulkojumu
@@ -2180,6 +2182,9 @@ lv:
       createnote_disabled_tooltip: Pietuvini karti, lai pievienotu piezīmi
       map_notes_zoom_in_tooltip: Pietuvināt, lai redzētu piezīmes
       map_data_zoom_in_tooltip: Pietuvināt, lai redzētu kartes datus
+    changesets:
+      show:
+        hide_comment: paslēpt
     notes:
       new:
         intro: Piezīmes domātas, lai norādītu uz kartes kļūdām. Ja vēlies pamēģināt
index 6c0207ee14e15cd6e9045021109e84012d6edd13..f6850d606c5e5cd5bba510baf5991088f7af77d1 100644 (file)
@@ -123,11 +123,17 @@ mk:
       way_paginated: Патишта (%{x}-%{y} од вкупно %{count})
       relation: Односи (%{count})
       relation_paginated: Односи (%{x}-%{y} од вкупно %{count})
+      comment: Коментари (%{count})
+      hidden_commented_by: Скриен коментар на %{user} <abbr title='%{exact_time}'>пред
+        %{when}</abbr>
+      commented_by: Коментар на %{user} <abbr title='%{exact_time}'>пред %{when}</abbr>
       changesetxml: XML за измените
       osmchangexml: osmChange XML
       feed:
         title: Измени %{id}
         title_comment: Измени %{id} - %{comment}
+      join_discussion: Најавете се за да се приклучите во разговорот
+      discussion: Разговор
     node:
       title: 'Јазол: %{name}'
       history_title: 'Историја на јазолот: %{name}'
@@ -204,6 +210,11 @@ mk:
       reopened_by_anonymous: Преактивирано од анонимен <abbr title='%{exact_time}'>пред
         %{when}</abbr>
       hidden_by: Скриено од %{user} <abbr title='%{exact_time}'>пред %{when}</abbr>
+    query:
+      title: Пребарување на особености
+      introduction: Стиснете на картата за да ги најдете особеностите во близина.
+      nearby: Особености во близина
+      enclosing: Обиколни особености
   changeset:
     changeset_paging_nav:
       showing_page: Страница %{page}
@@ -234,6 +245,13 @@ mk:
     timeout:
       sorry: За жал, на списокот на измени што го побаравте му требаше предолго за
         да се преземе.
+    rss:
+      title_all: Разговор за промена на OpenStreetMap
+      title_particular: 'Разговор за промената #%{changeset_id} на OpenStreetMap'
+      comment: 'Нов коментар за промената #%{changeset_id} на %{author}'
+      commented_at_html: Подновено пред %{when}
+      commented_at_by_html: Подновено пред %{when} од %{user}
+      full: Целосен разговор
   diary_entry:
     new:
       title: Нова дневничка ставка
@@ -333,7 +351,7 @@ mk:
           title: Планетата на OSM
           description: Редовно подновувани примероци на целата база на OpenStreetMap
         overpass:
-          title: Ð\9fÑ\80илог „Надвозник“
+          title: Ð\98звÑ\80Ñ\88ник „Надвозник“
           description: Преземете ја оваа рамка од огледална база на базата на OpenStreetMap
         geofabrik:
           title: Geofabrik
@@ -525,7 +543,7 @@ mk:
           primary_link: Главен пат
           proposed: Предложен пат
           raceway: Тркачка патека
-          residential: Станбен
+          residential: Станбена улица
           rest_area: Одмориште
           road: Пат
           secondary: Спореден пат
@@ -736,6 +754,8 @@ mk:
           tram: Трамвајска линија
           tram_stop: Трамвајска постојка
           yard: Железничко депо
+        route:
+          bus: Автобуска линија
         shop:
           alcohol: Алкохол на црно
           antiques: Старинарница
@@ -941,10 +961,6 @@ mk:
       text: Дарувајте
     learn_more: Дознајте повеќе
     more: Повеќе
-    sotm_header: Состојба на картата 2014 г.
-    sotm_line_1: XVIII Годишна конференција
-    sotm_line_2: 7-9 ноември 2014 г.
-    sotm_line_3: Буенос Аирес, Аргентина
   license_page:
     foreign:
       title: За овој превод
@@ -998,8 +1014,8 @@ mk:
         href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">Правни ЧПП</a>.
       more_2_html: |-
         Иако OpenStreetMap работи со отворени податоци, ние не можеме да понудиме
-        Ð±ÐµÑ\81плаÑ\82ни Ð¿Ñ\80огÑ\80амÑ\81ки Ð¿Ñ\80илози (API) за карти на трети програмери.
-        Ð\9fогледаÑ\98Ñ\82е Ð³Ð¸ <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">пÑ\80авилаÑ\82а Ð·Ð° Ñ\83поÑ\82Ñ\80еба Ð½Ð° Ð¿Ñ\80илогот</a>,
+        Ð±ÐµÑ\81плаÑ\82ни Ð¸Ð·Ð²Ñ\80Ñ\88ниÑ\86и (API) за карти на трети програмери.
+        Ð\9fогледаÑ\98Ñ\82е Ð³Ð¸ <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">пÑ\80авилаÑ\82а Ð·Ð° Ñ\83поÑ\82Ñ\80еба Ð½Ð° Ð¸Ð·Ð²Ñ\80Ñ\88никот</a>,
         <a href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">правилата за употреба на полињата</a>
         и <a href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">Nominatim</a>.
       contributors_title_html: Нашите учесници
@@ -1135,7 +1151,7 @@ mk:
     next: Следно
     copyright_html: <span>&copy;</span>Учесници на<br>OpenStreetMap
     used_by: '%{name} обезбедува картографски податоци на стотици мрежни места, мобилни
-      Ð¿Ñ\80илози и сметачки уреди'
+      Ð¸Ð·Ð²Ñ\80Ñ\88ниÑ\86и и сметачки уреди'
     lede_text: |-
       OpenStreetMap ја гради заедница од учесници што придонесуваат со свои содржини и ги одржуваат податоците
       за патишта, патеки, кафеани, железнички станици и многу друго ширум светот.
@@ -1255,6 +1271,19 @@ mk:
         commented_note: '%{commenter} реши картографска белешка на која имате коментирано.
           Белешката се наоѓа близу %{place}.'
       details: Поподробно за белешката на %{url}.
+    changeset_comment_notification:
+      greeting: Здраво,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} искоментира на една од вашите промени'
+        subject_other: '[OpenStreetMap] %{commenter} искоментира на промена што ве
+          интересира'
+        your_changeset: '%{commenter} даде коментар на една од вашите промени направени
+          во %{time}'
+        commented_changeset: '%{commenter} даде коментар на променa што ја набљудувате
+          направена од %{changeset_author} во %{time}'
+        partial_changeset_with_comment: со коментарот „%{changeset_comment}“
+        partial_changeset_without_comment: без коментар
+      details: Поподробно за промената на %{url}.
   message:
     inbox:
       title: Примени
@@ -1479,7 +1508,7 @@ mk:
       description: 'Опис:'
       tags: 'Ознаки:'
       tags_help: одделено со запирка
-      save_button: Ð¡Ð¾чувај промени
+      save_button: Ð\97ачувај промени
       visibility: 'Видливост:'
       visibility_help: што значи ова?
       visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces?uselang=mk
@@ -1580,15 +1609,15 @@ mk:
     setup_user_auth:
       blocked: Пристапот кон API ви е блокиран. Најавете се на посредникот за да дознаете
         повеќе.
-      need_to_see_terms: Ð\92аÑ\88иоÑ\82 Ð¿Ñ\80иÑ\81Ñ\82ап Ð´Ð¾ Ð¿Ñ\80иложниоÑ\82 Ð¿Ñ\80огÑ\80ам (API) е привремено запрен.
+      need_to_see_terms: Ð\92аÑ\88иоÑ\82 Ð¿Ñ\80иÑ\81Ñ\82ап Ð´Ð¾ Ð¸Ð·Ð²Ñ\80Ñ\88ниÑ\87киоÑ\82 Ð¿Ñ\80огÑ\80ам е привремено запрен.
         Најавете се на мрежниот посредник за да ги погледате Условите за учесниците.
         Нема потреба да се согласувате со услоците, но мора да ги прочитате.
   oauth:
     oauthorize:
       title: Овластете пристап до вашата сметка
-      request_access: Ð\9fÑ\80огÑ\80амÑ\81киоÑ\82 Ð¿Ñ\80илог %{app_name} Ð±Ð°Ñ\80а Ð¿Ñ\80иÑ\81Ñ\82ап Ð´Ð¾ Ð²Ð°Ñ\88аÑ\82а Ñ\81меÑ\82ка,
-        %{user}. Видете дали би сакале прилогот да ги има следните можности. Можете
-        Ð´Ð° Ð¾Ð´Ð±ÐµÑ\80еÑ\82е ÐºÐ¾Ð»ÐºÑ\83 Ñ\88Ñ\82о Ñ\81акаÑ\82е.
+      request_access: Ð\98звÑ\80Ñ\88никоÑ\82 %{app_name} Ð±Ð°Ñ\80а Ð¿Ñ\80иÑ\81Ñ\82ап Ð´Ð¾ Ð²Ð°Ñ\88аÑ\82а Ñ\81меÑ\82ка, %{user}.
+        Видете дали би сакале извршникот да ги има следните можности. Можете да одберете
+        колку што сакате.
       allow_to: 'Дозволи му на клиентскиот програм да:'
       allow_read_prefs: ви ги чита корисничките прилагодувања.
       allow_write_prefs: ги менува вашите кориснички прилагодувања.
@@ -1599,11 +1628,11 @@ mk:
       allow_write_notes: измена на белешки.
     oauthorize_success:
       title: Барањето за овластување е дозволено
-      allowed: Ð\9dа Ð¿Ñ\80илогот %{app_name} му дадовте пристап до вашата сметка.
+      allowed: Ð\9dа Ð¸Ð·Ð²Ñ\80Ñ\88никот %{app_name} му дадовте пристап до вашата сметка.
       verification: Потврдниот код гласи %{code}.
     oauthorize_failure:
       title: Барањето за овластување не успеа
-      denied: Ð\9dа Ð¿Ñ\80илогот %{app_name} му го одбивте пристапот до вашата сметка.
+      denied: Ð\9dа Ð¸Ð·Ð²Ñ\80Ñ\88никот %{app_name} му го одбивте пристапот до вашата сметка.
       invalid: Шифрата за овластување е неважечка.
     revoke:
       flash: Ja поништивте шифрата за %{application}
@@ -2216,6 +2245,15 @@ mk:
       createnote_disabled_tooltip: Приближете за да додадете белешка
       map_notes_zoom_in_tooltip: Приближете за да ги видите белешките
       map_data_zoom_in_tooltip: Приближете за да ги видите податоците
+      queryfeature_tooltip: Пребарување на особености
+      queryfeature_disabled_tooltip: Зголеми на пребарувањето на особеностите
+    changesets:
+      show:
+        comment: Коментар
+        subscribe: Претплати се
+        unsubscribe: Откажи претплата
+        hide_comment: скриј
+        unhide_comment: откриј
     notes:
       new:
         intro: Забележавте некоја грешка или нешто недостасува? Дајте им на знаење
@@ -2234,6 +2272,13 @@ mk:
         comment: Коментирај
     edit_help: Поместете ја картата и приближете во местото што сакате да го уредите,
       па стиснете тука.
+    query:
+      node: Јазол
+      way: Пат
+      relation: Однос
+      nothing_found: Не пронајдов ниедна особеност
+      error: 'Грешка при поврзувањето со %{server}: %{error}'
+      timeout: Истече времето за поврзување со %{server}
   redaction:
     edit:
       description: Опис
index 7230a340b722e98a37a9ebb74d4273b21eadaa9a..d363187dde1c510b08ffee3042a82679d4a1f05f 100644 (file)
@@ -190,18 +190,18 @@ mr:
       closed_title: 'निराकरण झालेली टीप #%{note_name}'
       hidden_title: 'लपविलेली टीप #%{note_name}'
       open_by: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr>%{user} ने तयार केले
-      open_by_anonymous: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr>%{user}अनामिकाने
+      open_by_anonymous: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr> अनामिकाने
         तयार केले
       commented_by: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr>%{user} ची टिप्पणी
-      commented_by_anonymous: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr>%{user}
-        à¤\85नामिà¤\95ाà¤\9aà¥\80 à¤\9fिपà¥\8dपणà¥\80
+      commented_by_anonymous: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr> अनामिकाची
+        टिप्पणी
       closed_by: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr>%{user} ने वियोजित
         केले
-      closed_by_anonymous: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr>%{user}अनामिकाने
+      closed_by_anonymous: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr> अनामिकाने
         वियोजित केले
       reopened_by: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr>%{user} ने सक्रिय
         केले
-      reopened_by_anonymous: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr>%{user}अनामिकाने
+      reopened_by_anonymous: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr> अनामिकाने
         सक्रिय केले
       hidden_by: <abbr title='%{exact_time}'>%{when} पूर्वी</abbr>%{user} ने लपविले
   changeset:
index a07c9b6564d3a1fd0cf7634cc921e6b6df7efb69..e023fddbe17e610ed3d21e873561cd4c867ab014 100644 (file)
@@ -525,7 +525,7 @@ ms:
           primary_link: Jalan Utama
           proposed: Jalan Raya yang Dicadangkan
           raceway: Jalan Lumba
-          residential: Perumahan
+          residential: Jalan Perumahan
           rest_area: Kawasan Rehat
           road: Jalan Raya
           secondary: Jalan Sekunder
@@ -939,9 +939,6 @@ ms:
       text: Derma
     learn_more: Ketahui Lebih Lanjut
     more: Selebihnya
-    sotm_header: State of the Map 2014
-    sotm_line_2: 7-9 November 2014
-    sotm_line_3: Buenos Aires, Argentina
   license_page:
     foreign:
       title: Perihal terjemahan ini
index 3d61e185b72ef1a98dbb6cfa2d63836889c2524a..b195dce5c502ed4d562a8d085f38d5b68ea7f14c 100644 (file)
@@ -8,6 +8,7 @@
 # Author: Gustavf
 # Author: Haakon K
 # Author: Hansfn
+# Author: Janhoy
 # Author: Laaknor
 # Author: Nemo bis
 # Author: Nghtwlkr
@@ -531,7 +532,7 @@ nb:
           primary_link: Primær vei
           proposed: Foreslått vei
           raceway: Racerbane
-          residential: Bolig
+          residential: Bolig-vei
           rest_area: Rasteplass
           road: Vei
           secondary: Sekundær vei
index d54e19b4b407fe7a1ff3c2f3440d470f298e95a4..d5451830c003401729b83e08af49ad2f5daaffbd 100644 (file)
@@ -138,11 +138,17 @@ nl:
       way_paginated: Wegen (%{x}-%{y} van %{count})
       relation: Relaties (%{count})
       relation_paginated: Relaties (%{x}-%{y} van %{count})
+      comment: Reacties (%{count})
+      hidden_commented_by: Verborgen reactie van %{user} <abbr title='%{exact_time}'>%{when}
+        geleden</abbr>
+      commented_by: Reactie van %{user} <abbr title='%{exact_time}'>%{when} geleden</abbr>
       changesetxml: Changeset-XML
       osmchangexml: osmChange-XML
       feed:
         title: Set wijzigingen %{id}
         title_comment: Set wijzigingen %{id} - %{comment}
+      join_discussion: Meld u aan om mee te praten
+      discussion: Overleg
     node:
       title: 'Node: %{name}'
       history_title: 'Nodegeschiedenis: %{name}'
@@ -201,9 +207,9 @@ nl:
       wiki_link:
         key: De wikipagina die het label %{key} beschrijft
         tag: De wikipagina die het label %{key}=%{value} beschrijft
-      wikidata_link: Het %{page}-item op Wikidata
+      wikidata_link: Het item %{page} op Wikidata
       wikipedia_link: De pagina %{page} op Wikipedia
-      telephone_link: Bel %{phone_number}
+      telephone_link: '%{phone_number} bellen'
     note:
       title: 'Opmerking: %{id}'
       new_note: Nieuwe opmerking
@@ -227,6 +233,11 @@ nl:
       reopened_by_anonymous: <abbr title='%{exact_time}'>%{when} geleden</abbr> opnieuw
         geactiveerd door anoniem
       hidden_by: <abbr title='%{exact_time}'>%{when} ago</abbr> verborgen door %{user}
+    query:
+      title: Nabije objecten opvragen
+      introduction: Klik op de kaart om nabije eigenschappen te ontdekken.
+      nearby: Nabije eigenschappen
+      enclosing: Omsluitende eigenschappen
   changeset:
     changeset_paging_nav:
       showing_page: Pagina %{page}
@@ -257,6 +268,13 @@ nl:
     timeout:
       sorry: Het duurde te lang om de lijst met wijzigingensets die u hebt opgevraagd
         op te halen.
+    rss:
+      title_all: Overleg over een wijzigingenset van OpenStreetMap
+      title_particular: 'Overleg over een wijzigingenset van OpenStreetMap #%{changeset_id}'
+      comment: 'Nieuwe reactie bij wijzigingenset #%{changeset_id} door %{author}'
+      commented_at_html: '%{when} geleden bijgewerkt'
+      commented_at_by_html: '%{when} geleden bijgewerkt door %{user}'
+      full: Volledig overleg
   diary_entry:
     new:
       title: Nieuw dagboekbericht
@@ -362,9 +380,9 @@ nl:
         geofabrik:
           title: Geofabrik downloads
           description: Regelmatig bijgewerkt extracten van continenten, landen en
-            geselecteerde steden
+            een selectie van steden
         metro:
-          title: Metro extracten
+          title: Metro-extracten
           description: Extracten voor grote wereldsteden en hun omliggende gebieden
         other:
           title: Andere bronnen
@@ -406,7 +424,7 @@ nl:
           apron: Platform
           gate: Gate
           helipad: Helikopterplatform
-          runway: Start-en landingsbaan
+          runway: Start- en landingsbaan
           taxiway: Taxibaan
           terminal: Terminal
         amenity:
@@ -760,6 +778,8 @@ nl:
           tram: Tramrails
           tram_stop: Tramhalte
           yard: Rangeerterrein
+        route:
+          bus: Busroute
         shop:
           alcohol: Slijterij
           antiques: Antiek
@@ -963,10 +983,6 @@ nl:
       text: Doneren
     learn_more: Meer lezen
     more: Meer
-    sotm_header: Staat van de kaart 2014
-    sotm_line_1: 8e jaarlijkse conferentie
-    sotm_line_2: 7-9 november 2014
-    sotm_line_3: Buenos Aires, Argentinië
   license_page:
     foreign:
       title: Over deze vertaling
@@ -1020,7 +1036,7 @@ nl:
       more_title_html: Meer informatie
       more_1_html: |-
         U kunt meer lezen over het gebruik van onze gegevens en hoe naamsvermelding toe te passen in de <a
-        href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">Veel gestelde juridische
+        href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">Veelgestelde juridische
         vragen</a>.
       more_2_html: |-
         Hoewel OpenStreetMap open data is, kunnen we geen gratis
@@ -1286,6 +1302,20 @@ nl:
         commented_note: '%{commenter} heeft een kaartopmerking waarop u hebt gereageerd
           opnieuw geactiveerd. De opmerking is gemaakt bij %{place}.'
       details: Meer details over de opmerking zijn te vinden op %{url}.
+    changeset_comment_notification:
+      greeting: Hallo,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} heeft gereageerd op een van uw
+          wijzigingensets'
+        subject_other: '[OpenStreetMap] %{commenter} heeft gereageerd op een wijzigingenset
+          waar u interesse in hebt'
+        your_changeset: '%{commenter} heeft gereageerd op een van uw wijzigingenset
+          gemaakt op %{time}'
+        commented_changeset: '%{commenter} heeft gereageerd op een wijzigingenset
+          die u volgt die gemaakt is door %{changeset_author} op %{time}'
+        partial_changeset_with_comment: met reactie "%{changeset_comment}"
+        partial_changeset_without_comment: zonder reactie
+      details: Meer details over de wijzigingenset kunt u vinden op %{url}.
   message:
     inbox:
       title: Postvak IN
@@ -1363,7 +1393,7 @@ nl:
     index:
       js_1: U gebruikt een browser die JavaScript niet ondersteunt, of u hebt JavaScript
         uitgeschakeld.
-      js_2: OpenStreetMap gebruikt JavaScript voor de slippy-kaart.
+      js_2: OpenStreetMap gebruikt JavaScript voor de slippykaart.
       permalink: Permanente koppeling
       shortlink: Korte koppeling
       createnote: Opmerking toevoegen
@@ -1384,7 +1414,8 @@ nl:
       potlatch_unsaved_changes: U hebt wijzigingen gemaakt die nog niet zijn opgeslagen.
         Om op te slaan in Potlach, deselecteert u de huidige weg of het huidige punt
         als u in livemodus bewerkt, of klikt u op de knop Opslaan.
-      potlatch2_not_configured: Potlatch 2 is niet ingesteld - zi http://wiki.openstreetmap.org/wiki/The_Rails_Port
+      potlatch2_not_configured: Potlatch 2 is niet ingesteld - zie http://wiki.openstreetmap.org/wiki/The_Rails_Port
+        voor meer informatie
       potlatch2_unsaved_changes: U hebt wijzigingen die nog niet zijn opgeslagen.
         Om op te slaan in Potlatch 2 moet u op "Opslaan" klikken.
       id_not_configured: iD is niet ingesteld
@@ -1484,7 +1515,7 @@ nl:
       url: URL
   trace:
     visibility:
-      private: Privé (alleen gedeeld als anoniem; ongeordende punten)
+      private: Persoonlijk (alleen gedeeld als anoniem; ongeordende punten)
       public: Publiek (weergegeven in tracklijst en als anonieme, ongeordende punten)
       trackable: Traceerbaar (alleen gedeeld als anoniem; geordende punten met tijdstempels)
       identifiable: Identificeerbaar (weergegeven in tracklijst en als identificeerbare,
@@ -1568,7 +1599,7 @@ nl:
       edit_map: Kaart bewerken
       public: OPENBAAR
       identifiable: IDENTIFICEERBAAR
-      private: PRIVÉ
+      private: PERSOONLIJK
       trackable: TRACEERBAAR
       by: door
       in: in
@@ -1622,7 +1653,7 @@ nl:
       allow_write_prefs: uw gebruikersvoorkeuren wijzigen
       allow_write_diary: dagboekberichten schrijven, reacties geven en vrienden maken
       allow_write_api: de kaart wijzigen
-      allow_read_gpx: uw privé-GPS-tracks lezen
+      allow_read_gpx: uw persoonlijke GPS-tracks lezen
       allow_write_gpx: GPS-tracks uploaden
       allow_write_notes: opmerkingen wijzigen.
     oauthorize_success:
@@ -1676,7 +1707,7 @@ nl:
       register_new: Uw toepassing registreren
     form:
       name: Naam
-      required: verplicht
+      required: Vereist
       url: Toepassings-URL
       callback_url: Callback-URL
       support_url: Ondersteunings-URL
@@ -1685,11 +1716,11 @@ nl:
       allow_write_prefs: gebruikersinstellingen wijzigen
       allow_write_diary: dagboekberichten schrijven, reacties en vrienden toevoegen
       allow_write_api: de kaart wijzigen
-      allow_read_gpx: privé-GPS-tracks lezen
+      allow_read_gpx: Persoonlijke GPS-tracks lezen
       allow_write_gpx: GPS-tracks uploaden
       allow_write_notes: opmerkingen wijzigen.
     not_found:
-      sorry: Sorry, die %{type} kan niet gevonden worden.
+      sorry: Die %{type} kan helaas niet gevonden worden.
     create:
       flash: De informatie is geregistreerd
     update:
@@ -1707,23 +1738,23 @@ nl:
       lost password link: Wachtwoord vergeten?
       login_button: Aanmelden
       register now: Nu inschrijven
-      with username: 'Hebt u al een account bij OpenStreetMap? Meld aan met uw gebruikersnaam
+      with username: 'Hebt u al een gebruiker bij OpenStreetMap? Meld aan met uw gebruikersnaam
         en wachtwoord:'
       with openid: 'U kunt ook aanmelden met uw OpenID:'
       new to osm: Is OpenStreetMap nieuw voor u?
       to make changes: Om wijzigingen in OpenStreetMap te maken, moet u een gebruiker
         hebben.
       create account minute: Maak een gebruiker aan. Dat is snel gebeurd.
-      no account: Hebt u geen account?
+      no account: Hebt u geen gebruiker?
       account not active: Uw gebruiker is helaas nog niet actief.<br />Klik op de
         koppeling in de bevestiging om deze te activeren of <a href="%{reconfirm}">vraag
         een nieuwe bevestiging per e-mail aan</a>.
       account is suspended: Uw gebruiker is automatisch opgeschort vanwege verdachte
         activiteit.<br />Neem contact op met de <a href="%{webmaster}">webmaster</a>
         als u deze handeling wilt bespreken.
-      auth failure: Sorry, met deze gegevens kunt u niet aanmelden.
-      openid missing provider: Sorry, we konden geen contact maken met uw OpenID-provider
-      openid invalid: Sorry, uw OpenID lijkt misvormd te zijn
+      auth failure: Met deze gegevens kunt u helaas niet aanmelden.
+      openid missing provider: We konden helaas geen contact maken met uw OpenID-provider
+      openid invalid: Uw OpenID lijkt helaas misvormd te zijn
       openid_logo_alt: Aanmelden met een OpenID
       openid_providers:
         openid:
@@ -1755,9 +1786,9 @@ nl:
         in te stellen.
       notice email on way: Spijtig om te horen dat u het vergeten bent, maar er is
         een e-mail onderweg zodat u uw wachtwoord opnieuw kunt instellen.
-      notice email cannot find: Kon dat e-mailadres niet vinden, sorry.
+      notice email cannot find: Dat e-mailadres kon helaas niet gevonden worden.
     reset_password:
-      title: reset wachtwoord
+      title: Wachtwoord opnieuw instellen
       heading: Wachtwoord voor %{user} opnieuw instellen
       password: 'Wachtwoord:'
       confirm password: 'Wachtwoord bevestigen:'
@@ -1793,12 +1824,12 @@ nl:
       openid no password: Met OpenID is een wachtwoord niet verplicht, maar sommige
         extra hulpmiddelen of servers kunnen het nog steeds nodig hebben.
       openid association: |-
-        <p>Uw OpenID is nog niet gekoppeld aan een OpenStreetMap-account.</p>
+        <p>Uw OpenID is nog niet gekoppeld aan een OpenStreetMapgebruiker.</p>
         <ul>
-          <li>Als u nieuw bent bij OpenStreetMap, maak dan een account aan met behulp van het onderstaande formulier.</li>
+          <li>Als u nieuw bent bij OpenStreetMap, maak dan een gebruiker aan met behulp van het onderstaande formulier.</li>
           <li>
-            Als u al een account heeft, kunt u zich aanmelden met uw gebruikersnaam en wachtwoord
-            en daarna uw account koppelen aan uw OpenID in uw gebruikersinstellingen.
+            Als u al een gebruiker heeft, kunt u zich aanmelden met uw gebruikersnaam en wachtwoord
+            en daarna uw gebruiker koppelen aan uw OpenID in uw gebruikersinstellingen.
           </li>
         </ul>
       continue: Registreren
@@ -1829,8 +1860,8 @@ nl:
     no_such_user:
       title: Deze gebruiker bestaat niet
       heading: De gebruiker %{user} bestaat niet
-      body: Sorry, er is geen gebruiker met de naam %{user}. Controleer de spelling,
-        of misschien is de koppeling waarop u hebt geklikt onjuist.
+      body: Er is geen gebruiker met de naam %{user}. Controleer de spelling, of misschien
+        is de koppeling waarop u hebt geklikt onjuist.
     view:
       my diary: Dagboek
       new diary entry: nieuw dagboekbericht
@@ -1866,7 +1897,7 @@ nl:
       user location: Gebruikerslocatie
       if set location: Stel uw thuislocatie in via de pagina %{settings_link} om gebruikers
         in uw buurt te zien.
-      settings_link_text: voorkeuren
+      settings_link_text: instellingen
       your friends: Uw vrienden
       no friends: U hebt nog geen vrienden toegevoegd.
       km away: '%{count} km verwijderd'
@@ -1997,7 +2028,7 @@ nl:
       heading: '%{user} als vriend toevoegen?'
       button: Als vriend toevoegen
       success: '%{name} is nu uw vriend.'
-      failed: Sorry, het toevoegen van %{name} als vriend is mislukt.
+      failed: Het toevoegen van %{name} als vriend is helaas mislukt.
       already_a_friend: U bent al bevriend met %{name}.
     remove_friend:
       heading: '%{user} als vriend verwijderen?'
@@ -2061,7 +2092,7 @@ nl:
       heading: Blokkade aanmaken voor %{name}
       reason: De reden waarom %{name} is geblokkeerd. Blijf kalm en redelijk en geef
         zoveel mogelijk details over de situatie. Dit bericht is voor iedereen zichtbaar.
-        Bedank u dat niet alle gebruikers het gemeenschapsjargon begrijpen, dus formuleer
+        Bedenk u dat niet alle gebruikers het gemeenschapsjargon begrijpen, dus formuleer
         begrijpelijk.
       period: Hoe lang, per nu, moet de gebruiker worden uitgesloten van het gebruik
         van de API?
@@ -2236,13 +2267,22 @@ nl:
       createnote_disabled_tooltip: Zoom in om een opmerking bij de kaart te maken
       map_notes_zoom_in_tooltip: Inzoomen om de kaartnotities te bekijken
       map_data_zoom_in_tooltip: Inzommen om de kaartgegeven te bekijken
+      queryfeature_tooltip: Nabije objecten opvragen
+      queryfeature_disabled_tooltip: Zoom in om objectinformatie op te vragen
+    changesets:
+      show:
+        comment: Reactie
+        subscribe: Abonneren
+        unsubscribe: Uitschrijven
+        hide_comment: verbergen
+        unhide_comment: zichtbaar maken
     notes:
       new:
-        intro: Een fout gezien of mist er iets? Laat het andere kaartmakers weten
+        intro: Een fout gezien of ontbreekt er iets? Laat het andere kaartmakers weten
           zodat wij het kunnen oplossen. Verplaats de markering naar de correcte positie
-          en beschrijf het probleem. (Vul hier alstublieft geen persoonlijke informatie
+          en beschrijf het probleem. Vul hier alstublieft geen persoonlijke informatie
           of informatie van auteursrechtelijk beschermde kaarten of mappenlijsten
-          in.)
+          in.
         add: Opmerking toevoegen
       show:
         anonymous_warning: In deze opmerking staan reacties van anonieme gebruikers
@@ -2254,6 +2294,13 @@ nl:
         comment: Reageren
     edit_help: Verplaats de kaar en zoom in op een plaats die u wilt bewerken. Klik
       er daarna op.
+    query:
+      node: Node
+      way: Weg
+      relation: Relatie
+      nothing_found: Geen eigenschappen gevonden
+      error: 'Fout bij het verbinding maken met %{server}: %{error}'
+      timeout: Timeout bij het verbinding maken met %{server}
   redaction:
     edit:
       description: Beschrijving
index 03d8405174afe1c5d2e1b6a58971c0823d924ef3..baf76788003be82ef5854ae4fcf6197db3fd6ed1 100644 (file)
@@ -682,9 +682,6 @@ pa:
       text: ਦਾਨ ਦਿਉ
     learn_more: ਹੋਰ ਜਾਣੋ
     more: ਹੋਰ
-    sotm_line_1: ੮ਵਾਂ ਸਲਾਨਾ ਸੰਮੇਲਨ
-    sotm_line_2: ੭-੯ ਨਵੰਬਰ ੨੦੧੪
-    sotm_line_3: ਬੁਏਨਸ ਆਇਰਸ, ਅਰਜਨਟੀਨਾ
   license_page:
     foreign:
       title: ਇਸ ਤਰਜਮੇ ਬਾਰੇ
index 7c4d99c0bed5b3dc225ae2a2ff4b4bf996ec3d56..fa8917baeb7f1b485f70f9bed90e5b789fe0feda 100644 (file)
@@ -2,12 +2,14 @@
 # Exported from translatewiki.net
 # Export driver: phpyaml
 # Author: Ajank
+# Author: Alan ffm
 # Author: Andrzej aa
 # Author: BdgwksxD
 # Author: BeginaFelicysym
 # Author: Chrumps
 # Author: Cysioland
 # Author: Dalis
+# Author: Darellur
 # Author: Debeet
 # Author: Deejay1
 # Author: Ireun
@@ -46,22 +48,22 @@ pl:
       message: Wiadomość
       node: Węzeł
       node_tag: Znacznik węzła
-      notifier: Notifier
+      notifier: Zgłaszający
       old_node: Wcześniejszy węzeł
       old_node_tag: Tag wcześniejszego węzła
       old_relation: Stara relacja
-      old_relation_member: Członek wcześniejszej relacji
+      old_relation_member: Członek starej relacji
       old_relation_tag: Tag wcześniejszej relacji
       old_way: Wcześniejsza droga
-      old_way_node: Węzeł wcześniejszej linii
-      old_way_tag: Tag wcześniejszej linii
+      old_way_node: Węzeł starej linii
+      old_way_tag: Tag starej linii
       relation: Relacja
       relation_member: Członek relacji
-      relation_tag: Znacznik relacji
+      relation_tag: Tag relacji
       session: Sesja
       trace: Ślad
       tracepoint: Punkt śladu
-      tracetag: Znacznik śladu
+      tracetag: Tag śladu
       user: Użytkownik
       user_preference: Preferencje użytkownika
       user_token: Token użytkownika
@@ -97,7 +99,7 @@ pl:
       user:
         email: E-mail
         active: Aktywny
-        display_name: Publiczna nazwa
+        display_name: Wyświetlana nazwa
         description: Opis
         languages: Języki
         pass_crypt: Hasło
@@ -114,9 +116,9 @@ pl:
       description: Potlatch 2 (w przeglądarce)
     remote:
       name: Zdalne sterowanie
-      description: JOSM lub Markaartor
+      description: Zdalne sterowanie (JOSM lub Merkaartor)
   browse:
-    created: Utworzenie
+    created: Utworzone
     closed: Zamknięte
     created_html: Utworzone <abbr title='%{title}'>%{time} temu</abbr>
     closed_html: Zamknięte <abbr title='%{title}'>%{time} temu</abbr>
@@ -142,11 +144,17 @@ pl:
       way_paginated: Linie (%{x}-%{y} z %{count})
       relation: Relacje (%{count})
       relation_paginated: Relacje (%{x}-%{y} z %{count})
+      comment: Komentarze (%{count})
+      hidden_commented_by: Ukryty komentarz od użytkownika %{user} <abbr title='%{exact_time}'>%{when}
+        temu</abbr>
+      commented_by: Komentarz od %{user} <abbr title='%{exact_time}'>%{when} temu</abbr>
       changesetxml: XML w formacie zestawu zmian
       osmchangexml: XML w formacie osmChange
       feed:
         title: Zestaw zmian %{id}
         title_comment: Zestaw zmian %{id} - %{comment}
+      join_discussion: Zaloguj się, aby dołączyć do dyskusji
+      discussion: Dyskusja
     node:
       title: 'Węzeł: %{name}'
       history_title: 'Historia węzła: %{name}'
@@ -227,6 +235,11 @@ pl:
       reopened_by_anonymous: Reaktywowana anonimowo <abbr title='%{exact_time}'>%{when}
         temu</abbr>
       hidden_by: Ukryte przez %{user} <abbr title='%{exact_time}'>%{when} temu</abbr>
+    query:
+      title: Dane obiektu
+      introduction: Kliknij na mapie, by sprawdzić obiekty w pobliżu
+      nearby: Obiekty w pobliżu
+      enclosing: Większe, zakrywające obiekty
   changeset:
     changeset_paging_nav:
       showing_page: Strona %{page}
@@ -257,6 +270,13 @@ pl:
     timeout:
       sorry: Niestety, pobieranie listy zestawów zmian, którą chciałeś zobaczyć, trwało
         zbyt długo.
+    rss:
+      title_all: Dyskusja na temat zestawu zmian
+      title_particular: 'Dyskusja na temat zestawu zmian #%{changeset_id}'
+      comment: 'Nowy komentarz do zestawu zmian #%{changeset_id}% autorstwa %{author}'
+      commented_at_html: Zaktualizowano %{when} temu
+      commented_at_by_html: Zaktualizowano %{when} temu przez %{user}
+      full: Pełna dyskusja
   diary_entry:
     new:
       title: Nowy wpis do dziennika
@@ -548,7 +568,7 @@ pl:
           primary_link: Droga pierwszorzędna – dojazd
           proposed: Droga planowana
           raceway: Tor wyścigowy
-          residential: Droga osiedlowa
+          residential: Droga lokalna
           rest_area: Miejsce obsługi podróżnych
           road: Droga
           secondary: Droga drugorzędna
@@ -759,6 +779,8 @@ pl:
           tram: Linia tramwajowa
           tram_stop: Przystanek tramwajowy
           yard: Stacja postojowa, lokomotywownia
+        route:
+          bus: Linia autobusowa
         shop:
           alcohol: Sklep monopolowy
           antiques: Antyki
@@ -882,10 +904,10 @@ pl:
           weir: Jaz
       admin_levels:
         level2: Granica kraju
-        level4: Granica stanu
+        level4: 'Granica:'
         level5: Granica regionu
-        level6: Granica hrabstwa
-        level8: Granica miasta
+        level6: 'Granica:'
+        level8: Granica miejscowości
         level9: Granica wsi
         level10: Granica przedmieścia
     description:
@@ -961,7 +983,6 @@ pl:
       text: Przekaż darowiznę
     learn_more: Dowiedz się więcej
     more: Więcej
-    sotm_line_3: Buenos Aires, Argentyna
   license_page:
     foreign:
       title: Informacje o tłumaczeniu
@@ -1253,6 +1274,20 @@ pl:
         commented_note: '%{commenter} ponownie aktywował uwagę, którą skomentowałeś.
           Znajduje się ona w lokalizacji: %{place}.'
       details: 'Więcej informacji na temat uwagi można znaleźć pod adresem: %{url}.'
+    changeset_comment_notification:
+      greeting: Cześć,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} skomentował jeden z twoich zestawów
+          zmian'
+        subject_other: '[OpenStreetMap] %{commenter} skomentował zestaw zmian'
+        your_changeset: '%{commenter} zostawił komentarz do jednego z twoich zestawów
+          zmian, utworzonego %{time}'
+        commented_changeset: '%{commenter} zostawił komentarz do zestawu zmian, który
+          śledzisz, utworzonego %{time} przez %{changeset_author}'
+        partial_changeset_with_comment: z komentarzem '%{changeset_comment}'
+        partial_changeset_without_comment: bez komentarza
+      details: 'Więcej informacji na temat zestawu zmian można znaleźć pod adresem:
+        %{url}.'
   message:
     inbox:
       title: Wiadomości odebrane
@@ -1399,7 +1434,7 @@ pl:
           apron:
           - Płyta lotniska
           - terminal
-          admin: Granica administracyjna
+          admin: 'Granica:'
           forest: Las
           wood: Puszcza
           golf: Pole golfowe
@@ -1579,7 +1614,7 @@ pl:
       description_without_count: Plik GPX od %{user}
   application:
     require_cookies:
-      cookies_needed: Wydaje się, że masz wyłączoną obsługę ciasteczek (cookies) w
+      cookies_needed: Wydaje się, że masz wyłączoną obsługę cookies (ciasteczek) w
         swojej przeglądarce internetowej – włącz ją, zanim przejdziesz dalej.
     require_moderator:
       not_a_moderator: Musisz być moderatorem, aby wykonać tą akcję.
@@ -2102,7 +2137,7 @@ pl:
       reason: Powód blokady
       status: Status
       revoker_name: Odwołana przez
-      not_revoked: (nie odwołana)
+      not_revoked: (nieodwołana)
       showing_page: Strona %{page}
       next: Następna »
       previous: « Poprzednia
@@ -2215,6 +2250,15 @@ pl:
       createnote_disabled_tooltip: Przybliż mapę, by dodać uwagę
       map_notes_zoom_in_tooltip: Powiększ, aby zobaczyć uwagi
       map_data_zoom_in_tooltip: Powiększ, aby zobaczyć dane mapy
+      queryfeature_tooltip: Obejrzyj dane obiektu
+      queryfeature_disabled_tooltip: Użyj powiększenia, aby obejrzeć dane obiektu
+    changesets:
+      show:
+        comment: Komentarz
+        subscribe: Obserwuj
+        unsubscribe: Nie obserwuj
+        hide_comment: ukryj
+        unhide_comment: pokaż
     notes:
       new:
         intro: Zauważyłeś błąd lub brak czegoś? Daj znać innym maperom, aby mogli
@@ -2232,6 +2276,13 @@ pl:
         comment: Dodaj komentarz
     edit_help: Przesuń mapę i powiększ miejsce, które chcesz edytować, a następnie
       kliknij tutaj.
+    query:
+      node: Węzeł
+      way: Linia
+      relation: Relacja
+      nothing_found: Nie znaleziono obiektów
+      error: 'Błąd komunikacji z %{server}: %{error}'
+      timeout: Przekroczono czas oczekiwania z:%{server}
   redaction:
     edit:
       description: Opis
index f538c10f58a65fbf66d9fc823d69341d51410de0..531120687336982cda1ce6881ffb4caf6fd295e3 100644 (file)
@@ -3,6 +3,7 @@
 # Export driver: phpyaml
 # Author: Amgauna
 # Author: BraulioBezerra
+# Author: Brunomelnic
 # Author: Dianakc
 # Author: Diego Queiroz
 # Author: Fmca
@@ -20,6 +21,7 @@
 # Author: Rodrigo Avila
 # Author: Tuliouel
 # Author: Vgeorge
+# Author: Wille
 # Author: 555
 ---
 pt-BR:
@@ -92,7 +94,7 @@ pt-BR:
       user:
         email: E-mail
         active: Ativo
-        display_name: Nome para Exibição
+        display_name: Nome para exibição
         description: Descrição
         languages: Idiomas
         pass_crypt: Senha
@@ -139,11 +141,17 @@ pt-BR:
       way_paginated: Linhas (%{x}-%{y} de %{count})
       relation: Relações (%{count})
       relation_paginated: Relações (%{x}-%{y} of %{count})
+      comment: Comentários (%{count})
+      hidden_commented_by: Comentário oculto de %{user} <abbr title='%{exact_time}'>%{when}
+        atrás</abbr>
+      commented_by: Comentado por %{user} há <abbr title='%{exact_time}'>%{when} atrás</abbr>
       changesetxml: XML do conjunto de alterações
       osmchangexml: osmChange XML
       feed:
         title: Conjunto de alterações %{id}
         title_comment: Conjunto de alterações %{id} - %{comment}
+      join_discussion: Entre para participar da discussão
+      discussion: Discussão
     node:
       title: 'Ponto: %{name}'
       history_title: 'Histórico do nó: %{name}'
@@ -192,8 +200,8 @@ pt-BR:
         way: caminho
         relation: relação
     start_rjs:
-      feature_warning: Carregando %{num_features} feições, o que pode deixar seu navegador
-        lento ou sem resposta. Tem certeza que quer exibir estes dados?
+      feature_warning: Carregando %{num_features} elementos, o que pode deixar seu
+        navegador lento ou sem resposta. Tem certeza que quer exibir estes dados?
       load_data: Carregar dados
       loading: Carregando...
     tag_details:
@@ -224,6 +232,11 @@ pt-BR:
       reopened_by_anonymous: Reaberto por um usuário anônimo há <abbr title='%{exact_time}'>%{when}
         atrás</abbr>
       hidden_by: Ocultado por %{user} há <abbr title='%{exact_time}'>%{when} atrás</abbr>
+    query:
+      title: Características da consulta
+      introduction: Clique no mapa para encontrar características ao redor
+      nearby: Características próximas
+      enclosing: Características envolventes
   changeset:
     changeset_paging_nav:
       showing_page: Página %{page}
@@ -254,6 +267,13 @@ pt-BR:
     timeout:
       sorry: Desculpe. A lista de conjuntos de alterações que você solicitou está
         demorando muito tempo para ser recuperada.
+    rss:
+      title_all: Discussão de conjunto de alterações do OpenStreetMap
+      title_particular: 'Discussão do conjunto de alteração #%{changeset_id} do OpenStreetMap'
+      comment: 'Comentário novo no conjunto de alterações #%{changeset_id} por %{author}'
+      commented_at_html: Atualizando %{when} atrás
+      commented_at_by_html: Atualizado há %{when} por %{user}
+      full: Discussão completa
   diary_entry:
     new:
       title: Nova Entrada de Diário
@@ -547,7 +567,7 @@ pt-BR:
           primary_link: Via Primária
           proposed: Via em planejamento
           raceway: Pista de corrida
-          residential: Residencial
+          residential: Via Residencial
           rest_area: Área de Descanso
           road: Estrada
           secondary: Via Secundária
@@ -758,6 +778,8 @@ pt-BR:
           tram: Rota de bonde
           tram_stop: Parada de bonde
           yard: Estação de classificação
+        route:
+          bus: Rota de Ônibus
         shop:
           alcohol: Loja de bebidas alcoolicas
           antiques: Antiguidades
@@ -965,10 +987,6 @@ pt-BR:
       text: Faça uma doação
     learn_more: Saiba mais
     more: Mais
-    sotm_header: Estado do Mapa 2014
-    sotm_line_1: 8ª Conferência anual
-    sotm_line_2: De 7 a 9 de novembro de 2014
-    sotm_line_3: Buenos Aires, Argentina
   license_page:
     foreign:
       title: Sobre esta tradução
@@ -1173,7 +1191,7 @@ pt-BR:
       por grandes desastres, e muitos mais.
       Para saber mais sobre a nossa comunidade, veja os <a href='%{diary_path}'>diários dos editores</a>,
       <a href='http://blogs.openstreetmap.org/'>blogues da comunidade</a>, e o site da <a href='http://www.osmfoundation.org/'>OSM Foundation</a>.
-    open_data_title: Data de Abertura
+    open_data_title: Dados Abertos
     open_data_html: |-
       O OpenStreetMap é constituído por <i>dados abertos</i>: qualquer
       pessoa tem a liberdade de usar os dados para qualquer fim desde
@@ -1282,6 +1300,21 @@ pt-BR:
         commented_note: '%{commenter} reativou uma nota de um mapa que você comentou.
           A nota está próxima a %{place}.'
       details: Mais detalhes sobre a nota podem ser encontradas em %{url}.
+    changeset_comment_notification:
+      greeting: Olá,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} comentou um de seus conjuntos de
+          alterações'
+        subject_other: '[OpenStreetMap] %{commenter} comentou um conjunto de alterações
+          que interessa a você'
+        your_changeset: '%{commenter} deixou um comentários em seu conjunto de alterações
+          em %{time}'
+        commented_changeset: '%{commenter} deixou um comentário em um grupo de alterações
+          do mapa criado por %{changeset_author} em %{time}, que você está acompanhando'
+        partial_changeset_with_comment: com comentário %{changeset_comment}
+        partial_changeset_without_comment: sem comentários
+      details: Mais detalhes sobre o conjunto de alterações podem ser encontrados
+        em %{url}
   message:
     inbox:
       title: Caixa de Entrada
@@ -1781,7 +1814,7 @@ pt-BR:
       not displayed publicly: Não será exibido publicamente (veja a <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
         title="política de privacidade no wiki incluindo seção sobre endereços de
         e-mail">política de privacidade</a>)
-      display name: 'Nome a ser exibido:'
+      display name: 'Nome para exibição:'
       display name description: Seu nome de usuário disponível publicamente. Você
         pode mudá-lo posteriormente nas preferências.
       openid: '%{logo} OpenID:'
@@ -1826,7 +1859,7 @@ pt-BR:
       legale_names:
         france: França
         italy: Itália
-        rest_of_world: Resto do mundo
+        rest_of_world: Outros países
     no_such_user:
       title: Usuário não existe
       heading: O usuário %{user} não existe
@@ -2238,6 +2271,15 @@ pt-BR:
       createnote_disabled_tooltip: Ampliar para adicionar uma nota ao mapa
       map_notes_zoom_in_tooltip: Zoom para ver notas no mapa
       map_data_zoom_in_tooltip: Zoom para ver dados do mapa
+      queryfeature_tooltip: Consultar elementos
+      queryfeature_disabled_tooltip: Aproxime para consultar elementos
+    changesets:
+      show:
+        comment: Comentário
+        subscribe: Inscrever
+        unsubscribe: Cancelar inscrição
+        hide_comment: esconder
+        unhide_comment: mostrar
     notes:
       new:
         intro: Localizou um erro ou algo faltando? Informe outros mapeadores para
@@ -2255,6 +2297,13 @@ pt-BR:
         comment: Comentar
     edit_help: Mover o mapa e ampliar uma localização que pretende editar e clique
       aqui.
+    query:
+      node: Ponto
+      way: Linha
+      relation: Relação
+      nothing_found: Nenhum elemento encontrado
+      error: 'Erro ao contatar %{server}: %{error}'
+      timeout: Tempo esgotado com %{server}
   redaction:
     edit:
       description: Descrição
index ee460d17f019e2d0378f5594244c584b5614b91b..37ded693db871b283d40dab2acaac5a38726175d 100644 (file)
@@ -6,6 +6,7 @@
 # Author: Giro720
 # Author: Gmare
 # Author: Hamilton Abreu
+# Author: Imperadeiro90
 # Author: Imperadeiro98
 # Author: Indech
 # Author: JasonZe
@@ -20,6 +21,7 @@
 # Author: Ruben
 # Author: SandroHc
 # Author: ViriatoLusitano
+# Author: Vitorvicentevalente
 # Author: Waldir
 ---
 pt:
@@ -136,11 +138,14 @@ pt:
       way_paginated: Linhas (%{x}-%{y} de %{count})
       relation: Relações (%{count})
       relation_paginated: Relações (%{x}-%{y} of %{count})
+      comment: Comentários (%{count})
       changesetxml: Conjunto de alterações XML
       osmchangexml: XML no formato osmChange
       feed:
         title: Conjunto de alterações %{id}
         title_comment: Conjunto de alterações %{id} - %{comment}
+      join_discussion: Inicie sessão para se juntar à discussão
+      discussion: Discussão
     node:
       title: 'Nó: %{name}'
       history_title: 'Histórico do Nó: %{name}'
@@ -251,6 +256,10 @@ pt:
     timeout:
       sorry: Pedimos desculpa, mas a lista de conjuntos de alterações que pediu excedeu
         o tempo limite de resposta.
+    rss:
+      commented_at_html: Atualizado há %{when}
+      commented_at_by_html: Atualizado há %{when} por %{user}
+      full: Discussão completa
   diary_entry:
     new:
       title: Nova entrada no diário
@@ -496,7 +505,7 @@ pt:
           telephone: Telefone Público
           theatre: Teatro
           toilets: Casas de Banho
-          townhall: Câmara Municipal
+          townhall: Câmara Municipal / Junta de Freguesia
           university: Universidade
           vending_machine: Máquina de venda automática
           veterinary: Clínica Veterinária
@@ -544,7 +553,7 @@ pt:
           primary_link: Nó de ligação a uma Estrada Primária
           proposed: Estrada sob Planeamento
           raceway: Autódromo
-          residential: Residencial
+          residential: Rua Residencial
           rest_area: Área de Descanso
           road: Estrada
           secondary: Estrada Secundária
@@ -755,6 +764,8 @@ pt:
           tram: Linha de Elétrico
           tram_stop: Paragem de Elétrico
           yard: Pátio de Manobras Ferroviário
+        route:
+          bus: Rota de Autocarros
         shop:
           alcohol: Venda de Bebidas (Off License)
           antiques: Antiguidades
@@ -1264,6 +1275,8 @@ pt:
         commented_note: '%{commenter} reabriu um erro no mapa em que você comentou.
           O erro encontra-se perto de %{place}.'
       details: Ver mais detalhes sobre o erro reportado em %{url}.
+    changeset_comment_notification:
+      greeting: Olá,
   message:
     inbox:
       title: Caixa de Entrada
@@ -2223,6 +2236,11 @@ pt:
         para poder reportar um erro
       map_notes_zoom_in_tooltip: Aproxime para ver erros reportados
       map_data_zoom_in_tooltip: Aproxime para ver dados do mapa
+    changesets:
+      show:
+        comment: Comentário
+        subscribe: Subscrever
+        hide_comment: ocultar
     notes:
       new:
         intro: Encontrou um erro ou existe algo em falta? Avise os outros mapeadores
@@ -2241,6 +2259,8 @@ pt:
         comment: Gravar
     edit_help: Mova o mapa e amplie a localização que pretende editar e depois clique
       aqui.
+    query:
+      relation: Relação
   redaction:
     edit:
       description: Descrição
index 9121b403f8bf61b90e343994c51c06b8f7cf8e6e..92c54decfdc86e4202e1ec85253eb6e67463a3fd 100644 (file)
@@ -31,6 +31,8 @@
 # Author: Santacloud
 # Author: Spider
 # Author: TarzanASG
+# Author: Tourorist
+# Author: XAN
 # Author: Yuri Nazarov
 # Author: Zverik
 # Author: Александр Сигачёв
@@ -153,11 +155,14 @@ ru:
       way_paginated: Линии (%{x}-%{y} из %{count})
       relation: Отношения (%{count})
       relation_paginated: Отношения (%{x}-%{y} из %{count})
+      comment: Комментарии (%{count})
       changesetxml: XML пакета правок
       osmchangexml: osmChange XML
       feed:
         title: Пакет правок %{id}
         title_comment: Пакет правок %{id} — %{comment}
+      join_discussion: Войдите в систему, чтобы присоединиться к обсуждению
+      discussion: Обсуждение
     node:
       title: 'Точка: %{name}'
       history_title: 'История точки: %{name}'
@@ -266,6 +271,10 @@ ru:
     timeout:
       sorry: К сожалению, список пакетов правок, который вы запросили, слишком большой
         для извлечения.
+    rss:
+      commented_at_html: Обновлена %{when} назад
+      commented_at_by_html: Обновлена %{when} назад %{user}
+      full: Полное обсуждение
   diary_entry:
     new:
       title: Сделать новую запись в дневнике
@@ -769,6 +778,8 @@ ru:
           tram: Трамвай
           tram_stop: Трамвайная остановка
           yard: Депо
+        route:
+          bus: Автобусный маршрут
         shop:
           alcohol: Винный магазин
           antiques: Антиквариат
@@ -894,7 +905,7 @@ ru:
         level2: Граница страны
         level4: Граница штата, субъекта
         level5: Граница региона
-        level6: Ð\93Ñ\80аниÑ\86а Ñ\81Ñ\82Ñ\80анÑ\8b
+        level6: Ð\93Ñ\80аниÑ\86а Ñ\80айона
         level8: Граница города
         level9: Граница села, деревни
         level10: Граница пригорода
@@ -972,10 +983,6 @@ ru:
       text: Поддержать проект
     learn_more: Узнать больше
     more: Ещё
-    sotm_header: State of the Map 2014
-    sotm_line_1: 8-я ежегодная конференция
-    sotm_line_2: 7—9 ноября 2014 года
-    sotm_line_3: Буэнос-Айрес, Аргентина
   license_page:
     foreign:
       title: Об этом переводе
@@ -1094,8 +1101,8 @@ ru:
         понятий, которые стоит иметь ввиду.
       editor_html: <strong>Редактор</strong> — это программа или веб-сайт, которые
         можно использовать для редактирования карты.
-      node_html: <strong>Точка</strong> — простейший элемент карты, вроде входа в
-        ресторан или отдельного дерева.
+      node_html: <strong>Точка</strong> (node) — простейший элемент карты, вроде входа
+        в ресторан или отдельного дерева.
       way_html: <strong>Линия</strong> — это отрезок или кривая, соединяющая точки,
         обозначающая, к примеру, дорогу, ручей, контур озера или здания.
       tag_html: <strong>Тег</strong> – это единица описания точки или линии, например
@@ -1274,6 +1281,11 @@ ru:
         commented_note: '%{commenter} переоткрыл одну из отметок, которые вы комментировали.
           Отметка недалеко от %{place}.'
       details: Подробнее о заметке %{url}.
+    changeset_comment_notification:
+      greeting: Привет,
+      commented:
+        partial_changeset_with_comment: с комментарием '%{changeset_comment}'
+        partial_changeset_without_comment: без комментария
   message:
     inbox:
       title: Входящие
@@ -1719,7 +1731,7 @@ ru:
       to make changes: Чтобы вносить изменения в данные OpenStreetMap, вы должны иметь
         учётную запись.
       create account minute: Создайте учётную запись. Это займёт не больше минуты.
-      no account: У вас нет аккаунта?
+      no account: У вас нет учётной записи?
       account not active: Извините, ваша учётная запись ещё не активирована.<br />Чтобы
         активировать её, пожалуйста, нажмите на ссылку в отправленном вам письме,
         или <a href="%{reconfirm}">запросите отправку нового письма-подтверждения</a>.
@@ -1779,7 +1791,7 @@ ru:
       about:
         header: Свободно редактируемая
         html: |-
-          <p>в Ð\9eÑ\82лиÑ\87ие Ð¾Ñ\82 Ð´Ñ\80Ñ\83гиÑ\85 ÐºÐ°Ñ\80Ñ\82, ÐºÐ°Ñ\80Ñ\82Ñ\8b OpenStreetMap Ð¿Ð¾Ð»Ð½Ð¾Ñ\81Ñ\82Ñ\8cÑ\8e Ñ\81оздаÑ\8eÑ\82Ñ\81Ñ\8f Ð¾Ð±Ñ\8bÑ\87нÑ\8bми Ð»Ñ\8eдÑ\8cми Ð²Ñ\80оде Ð²Ð°Ñ\81
+          <p>Ð\92 Ð¾Ñ\82лиÑ\87ие Ð¾Ñ\82 Ð´Ñ\80Ñ\83гиÑ\85 ÐºÐ°Ñ\80Ñ\82, OpenStreetMap Ð¿Ð¾Ð»Ð½Ð¾Ñ\81Ñ\82Ñ\8cÑ\8e Ñ\81оздаÑ\8eÑ\82Ñ\81Ñ\8f Ñ\82акими Ð¶Ðµ Ð»Ñ\8eдÑ\8cми, ÐºÐ°Ðº Ð¸ Ð²Ñ\8b,
           и они свободны для исправления, обновления, загрузки и использования каждым.</p>
           <p>Зарегистрируйтесь, чтобы сделать свой вклад. Мы отправим вам письмо, чтобы подтвердить ваш аккаунт.</p>
       license_agreement: Для подтверждения своей учётной записи вам необходимо согласиться
@@ -2254,6 +2266,13 @@ ru:
       createnote_disabled_tooltip: Приблизьте карту, чтобы добавить заметку
       map_notes_zoom_in_tooltip: Увеличьте масштаб, чтобы увидеть примечания к карте
       map_data_zoom_in_tooltip: Увеличьте масштаб, чтобы увидеть данные карты
+    changesets:
+      show:
+        comment: Комментарий
+        subscribe: Подписаться
+        unsubscribe: Отписаться
+        hide_comment: скрыть
+        unhide_comment: показать
     notes:
       new:
         intro: Заметили ошибку или отсутствие чего-то? Дайте знать об этом другим
@@ -2272,6 +2291,12 @@ ru:
         comment: Прокомментировать
     edit_help: Передвиньте карту и увеличьте место, которые вы хотите править, затем
       кликните здесь.
+    query:
+      node: Точка
+      way: Линия
+      relation: Отношение
+      error: 'Ошибка связи с %{server}: %{error}'
+      timeout: Тайм-аут обращения к %{server}
   redaction:
     edit:
       description: Описание
index b8c0cd883e7c9f745df8dbcd538c133681258cdd..a1dcb616ab1ce601251394f3c25d2495fec36622 100644 (file)
@@ -123,11 +123,18 @@ sl:
       way_paginated: Poti (%{x}-%{y} od %{count})
       relation: Zveze (%{count})
       relation_paginated: Zveze (%{x}-%{y} od %{count})
+      comment: Komentarji (%{count})
+      hidden_commented_by: Skrit komentar uporabnika %{user} <abbr title='%{exact_time}'>%{when}
+        nazaj</abbr>
+      commented_by: Komentar uporabnika %{user} <abbr title='%{exact_time}'>%{when}
+        nazaj</abbr>
       changesetxml: Paket sprememb XML
       osmchangexml: osmChange XML
       feed:
         title: Paket sprememb %{id}
         title_comment: Paket sprememb %{id} - %{comment}
+      join_discussion: Prijavite se za pridružitev pogovoru
+      discussion: Pogovor
     node:
       title: 'Vozlišče: %{name}'
       history_title: 'Zgodovina vozlišča: %{name}'
@@ -225,6 +232,8 @@ sl:
       load_more: Naloži več
     timeout:
       sorry: Žal je seznam zahtevanih sprememb predolg za prenos.
+    rss:
+      full: Celoten pogovor
   diary_entry:
     new:
       title: Nov zapis v dnevnik uporabnikov
@@ -509,7 +518,7 @@ sl:
           primary_link: Priključek na glavno cesto
           proposed: Predlagana cesta
           raceway: Dirkališče
-          residential: Stanovanjska
+          residential: Stanovanjska cesta
           rest_area: Počivališče
           road: Nedoločena cesta
           secondary: Regionalna cesta
@@ -1106,6 +1115,20 @@ sl:
         commented_note: '%{commenter} je zopet aktiviral/-a opombo na zemljevidu,
           ki ste jo vi komentirali. Opomba je v bližini %{place}.'
       details: Več podrobnosti o opombi lahko najdete na %{url}.
+    changeset_comment_notification:
+      greeting: Pozdravljeni,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} je komentiral enega izmed vaših
+          paketov sprememb'
+        subject_other: '[OpenStreetMap] %{commenter} je komentiral paket sprememb,
+          ki vas zanima'
+        your_changeset: '%{commenter} je podal komentar na enega od vaših paketov
+          sprememb ustvarjen %{time}'
+        commented_changeset: '%{commenter} je podal komentar na paket sprememb, ki
+          vas zanima, katerega je %{changeset_author} ustvaril %{time}'
+        partial_changeset_with_comment: s komentarjem "%{changeset_comment}"
+        partial_changeset_without_comment: brez komentarja
+      details: Več podrobnosti o tem paketu sprememb lahko najdete na %{url}.
   message:
     inbox:
       title: Prejeta pošta
@@ -2052,6 +2075,12 @@ sl:
       createnote_disabled_tooltip: Povečaj za dodati opombo na zemljevid
       map_notes_zoom_in_tooltip: Povečaj za prikaz opomb zemljevida
       map_data_zoom_in_tooltip: Povečaj za prikaz podatkov zemljevida
+    changesets:
+      show:
+        comment: Komentiraj
+        subscribe: Naroči me
+        unsubscribe: Odjavi me
+        hide_comment: skrij
     notes:
       new:
         add: Dodaj opombo
@@ -2063,6 +2092,10 @@ sl:
         reactivate: Znova aktiviraj
         comment_and_resolve: Komentiraj in razreši
         comment: Komentar
+    query:
+      node: Vozlišče
+      way: Pot
+      relation: Zveza
   redaction:
     edit:
       description: Opis
index ec2d2303aa0bd5f5125a5477678c89dd39cb0e33..24d884de5a722e79049251daaed4a8154ae36f08 100644 (file)
@@ -102,18 +102,15 @@ sq:
   browse:
     created: Krijuar
     closed: I Mbyllur
-    created_html: Krijuar <abbr title='<span class="notranslate" translate="asnjë">%{titull}'>%</span>{kohë}
-      më parë</abbr>
-    closed_html: Të mbyllura <abbr title='<span class="notranslate" translate="asnjë">%{titull}'>%</span>{kohë}
-      më parë</abbr>
-    created_by_html: Të Krijuar <abbr title='<span class="notranslate" translate="asnjë">%{titull}'>%</span>{kohë}
-      më parë</abbr> nga %{user}
-    deleted_by_html: Të Fshira <abbr title='<span class="notranslate" translate="asnjë">%{titull}'>%</span>{kohë}
-      më parë</abbr> nga %{user}
-    edited_by_html: të Redaktuara <abbr title='<span class="notranslate" translate="asnjë">%{titull}'>%</span>{kohë}
-      më parë</abbr> nga %{user}
-    closed_by_html: Të mbyllura <abbr title='<span class="notranslate" translate="asnjë">%{titull}'>%</span>{kohë}
-      më parë</abbr> nga %{user}
+    created_html: Krijuar <abbr title='%{title}'>%{time} më parë</abbr>
+    closed_html: Të mbyllura <abbr title='%{title}'>%{time} më parë</abbr>
+    created_by_html: Të Krijuar <abbr title='%{title}'>%{time} më parë</abbr> nga
+      %{user}
+    deleted_by_html: Të Fshira <abbr title='%{title}'>%{time} më parë</abbr> nga %{user}
+    edited_by_html: të Redaktuara <abbr title='%{title}'>%{time} më parë</abbr> nga
+      %{user}
+    closed_by_html: Të mbyllura <abbr title='%{title}'>%{time} më parë</abbr> nga
+      %{user}
     version: Versioni
     in_changeset: Grupi i ndryshimeve
     anonymous: Anonim
@@ -127,14 +124,11 @@ sq:
       title: Ndryshim%{id}
       belongs_to: Autori
       node: Nyjet (%{count})
-      node_paginated: Nyjet (<span class="notranslate" translate="asnjë">%{x}-%</span>{y}
-        nga %{count})
+      node_paginated: Nyjet (%{x}-%{y} nga %{count})
       way: Mënyra (%{count})
-      way_paginated: Mënyra (<span class="notranslate" translate="asnjë">%{x}-%</span>{y}
-        nga %{count})
+      way_paginated: Mënyra (%{x}-%{y} nga %{count})
       relation: Marrëdhëniet (%{count})
-      relation_paginated: Marrëdhëniet (<span class="notranslate" translate="asnjë">%{x}-%</span>{y}
-        nga %{count})
+      relation_paginated: Marrëdhëniet (%{x}-%{y} nga %{count})
       changesetxml: Ndryshim en XML
       osmchangexml: Ndrsyhim i OSM-s en XML
       feed:
index 9f83bc0693d6e6f1c68ca4a4b651b153cdfefa52..3ee249fe84aa087927924ae98eed0b0c5628f6d5 100644 (file)
@@ -147,11 +147,17 @@ sv:
       way_paginated: Sträckor (%{x}-%{y} av %{count})
       relation: Förbindelser (%{count})
       relation_paginated: Förbindelser (%{x}-%{y} av %{count})
+      comment: Kommentarer (%{count})
+      hidden_commented_by: Dold kommentar från %{user} <abbr title='%{exact_time}'>%{when}
+        sedan</abbr>
+      commented_by: Kommentar från %{user} <abbr title='%{exact_time}'>%{when} sedan</abbr>
       changesetxml: XML för ändringsset
       osmchangexml: osmChange XML
       feed:
         title: Ändringsset %{id}
         title_comment: Ändringsset %{id} - %{comment}
+      join_discussion: Logga in för att delta i diskussionen
+      discussion: Diskussion
     node:
       title: 'Nod: %{name}'
       history_title: 'Nodhistorik: %{name}'
@@ -229,6 +235,8 @@ sv:
       reopened_by_anonymous: Återaktiverad av anonym <abbr title='%{exact_time}'>%{when}
         sedan</abbr>
       hidden_by: Gömd av %{user} <abbr title='%{exact_time}'>%{when} sedan</abbr>
+    query:
+      introduction: Klicka på kartan för att hitta närliggande funktioner.
   changeset:
     changeset_paging_nav:
       showing_page: Sida %{page}
@@ -259,6 +267,9 @@ sv:
     timeout:
       sorry: Kunde tyvärr inte lista begärda ändringsset. Begäran tog för lång tid
         att hämta.
+    rss:
+      commented_at_html: Uppdaterades för %{when} sedan
+      full: Fullständig diskussion
   diary_entry:
     new:
       title: Nytt dagboksinlägg
@@ -551,7 +562,7 @@ sv:
           primary_link: På-/avfart till riksväg (primär väg)
           proposed: Föreslagen väg
           raceway: Racerbana
-          residential: Bostadsgata
+          residential: Bostadsområde
           rest_area: Rastplats
           road: Väg
           secondary: Länsväg (sekundärväg)
@@ -762,6 +773,8 @@ sv:
           tram: Spårväg
           tram_stop: Spårvagnshållplats
           yard: Bangård
+        route:
+          bus: Busslinje
         shop:
           alcohol: Spritbutik
           antiques: Antikviteter
@@ -967,10 +980,6 @@ sv:
       text: Donera
     learn_more: Läs mer
     more: Mer
-    sotm_header: State of the Map 2014
-    sotm_line_1: 8:e årliga konferensen
-    sotm_line_2: 7-9 november 2014
-    sotm_line_3: Buenos Aires, Argentina
   license_page:
     foreign:
       title: Om denna översättning
@@ -1283,6 +1292,11 @@ sv:
         commented_note: '%{commenter} har återaktiverat en kartnotering du har kommenterat
           på. Noteringen är nära %{place}.'
       details: Mer detaljer om anteckningen finns på %{url}.
+    changeset_comment_notification:
+      greeting: Hej,
+      commented:
+        partial_changeset_with_comment: med kommentar '%{changeset_comment}'
+        partial_changeset_without_comment: utan kommentar
   message:
     inbox:
       title: Inkorg
@@ -2104,7 +2118,7 @@ sv:
       revoke: Upphäv!
       flash: Denna blockering har upphävts.
     period:
-      one: 1 timma
+      one: 1 timme
       other: '%{count} timmar'
     partial:
       show: Visa
@@ -2229,6 +2243,13 @@ sv:
       createnote_disabled_tooltip: Zooma in för att lägga till anteckningar på kartan
       map_notes_zoom_in_tooltip: Zooma in för att se kartanteckningar
       map_data_zoom_in_tooltip: Zooma in för att se kartdata
+    changesets:
+      show:
+        comment: Kommentera
+        subscribe: Prenumerera
+        unsubscribe: Avsluta prenumeration
+        hide_comment: dölj
+        unhide_comment: Sluta dölja
     notes:
       new:
         intro: Upptäckt ett misstag eller något som saknas? Låt andra karterare veta
@@ -2246,6 +2267,13 @@ sv:
         comment: Kommentera
     edit_help: Flytta kartan och zooma in på en plats som du vill redigera, klicka
       sedan här.
+    query:
+      node: Nod
+      way: Sträcka
+      relation: Relation
+      nothing_found: Inga sökresultat hittades
+      error: 'Problem med att kontakta %{server}: %{error}'
+      timeout: Timeout vid kontakt med %{server}
   redaction:
     edit:
       description: Beskrivning
index b8ac4fb23a8ff55f277ac53cc98a5a8253698fb9..35ef5ad8ad9a8c88bf59060162f0c861808f5d93 100644 (file)
@@ -2,6 +2,7 @@
 # Exported from translatewiki.net
 # Export driver: phpyaml
 # Author: Aswn
+# Author: ElangoRamanujam
 # Author: Karthi.dr
 # Author: Krishnaprasaths
 # Author: Sank
@@ -308,7 +309,7 @@ ta:
           platform: நடைமேடை
           primary: முதன்மையான சாலை
           primary_link: முதன்மையான சாலை
-          residential: குடியிருப்பு
+          residential: குடியிருப்புச் சாலை
           road: சாலை
           secondary: இரண்டாம் நிலை சாலை
           secondary_link: இரண்டாம் நிலை சாலை
index d4eb290a427e28c4fc3fdd205784a1e7039c0f9a..1dc7bd17251bff51742f2e591ad1c25e8770d6e3 100644 (file)
@@ -87,6 +87,7 @@ te:
       way: మార్గాలు (%{count})
       relation: సంబంధాలు (%{count})
       relation_paginated: '%{count} లో %{x}-%{y} యొక్క సంబంధాలు'
+      discussion: చర్చ
     relation:
       title: 'సంబంధం: %{name}'
       history_title: 'సంబంధపు చరిత్ర: %{name}'
@@ -115,7 +116,7 @@ te:
     note:
       title: 'గమనిక: %{id}'
       new_note: కొత్త గమనిక
-      description: 'వివరణ:'
+      description: వివరణ
   changeset:
     changeset_paging_nav:
       showing_page: పేజీ %{page}
@@ -133,6 +134,8 @@ te:
     list:
       title_user: '%{user} చేసిన మార్పులు'
       load_more: మరిన్ని చూపించు
+    rss:
+      full: పూర్తి చర్చ
   diary_entry:
     new:
       title: కొత్త దినచర్య పద్దు
@@ -482,6 +485,9 @@ te:
       title: సందేహాలున్నాయా?
     add_a_note:
       title: సరిదిద్దేంత సమయం లేదా? ఒక గమనికను చేర్చండి!
+  fixthemap:
+    how_to_help:
+      title: ఎలా తోడ్పడాలి
   help_page:
     title: సహాయం పొందడం
   about_page:
index 082a5b32e873028c33e0e9c546e7ed3a3123ad23..0e0f15d9837889f6090a0869918e36dc453e7d02 100644 (file)
@@ -2,6 +2,7 @@
 # Exported from translatewiki.net
 # Export driver: phpyaml
 # Author: AnakngAraw
+# Author: Chitetskoy
 # Author: Ianlopez1115
 # Author: Jewel457
 # Author: Jojit fb
@@ -1896,8 +1897,8 @@ tl:
     map:
       base:
         standard: Pamantayan
-        cycle_map: Mapa ng Ikot
-        transport_map: Mapa ng Biyahe
+        cycle_map: Mapa ng Pagbibisikleta
+        transport_map: Mapa ng Transportasyon
         mapquest: Bukas ang MapQuest
     site:
       edit_tooltip: Baguhin ang mapa
index 7cb2bea2fa1ad0a7993dfd64c4d964fa2fa91254..b8bf7e9691421e9b2b4356fa43221743a4453059 100644 (file)
@@ -47,6 +47,7 @@ tr:
       relation: İlişki
       relation_member: Relasyon Üyesi
       session: Oturum
+      trace: Rota
       tracepoint: İzleme Noktası
       tracetag: İzleme Etiketi
       user: Kullanıcı
@@ -137,6 +138,8 @@ tr:
       feed:
         title: Değişiklik takımı %{id}
         title_comment: Değişiklik takımı %{id} - %{comment}
+      join_discussion: Tartışmaya katılmak için lütfen giriş yap
+      discussion: Tartışma
     node:
       title: 'Nokta: %{name}'
       history_title: 'Nokta Geçmişi: %{name}'
@@ -203,6 +206,8 @@ tr:
         önceki</abbr> yorumu'
       commented_by_anonymous: Anonim kullanıcının <abbr title='%{exact_time}'>%{when}
         önceki</abbr> yorumu
+    query:
+      title: Özellikleri Göster
   changeset:
     changeset_paging_nav:
       showing_page: 'Sayfa: %{page}'
@@ -226,6 +231,10 @@ tr:
       load_more: Daha fazla
     timeout:
       sorry: Üzgünüz, değişiklik kayıtlarının listelenmesi fazla sürdü.
+    rss:
+      title_all: Değişiklik takımı tartışması
+      title_particular: 'Değişiklik takımı #%{changeset_id} tartışması'
+      full: Bütün tartışma
   diary_entry:
     new:
       title: Yeni Günlük Girdisi
@@ -321,6 +330,8 @@ tr:
           diğer kaynakları kullan.
         planet:
           title: OSM Gezegeni
+        overpass:
+          title: Overpass API
         geofabrik:
           title: Geofabrik İndirmeleri
         metro:
@@ -906,8 +917,6 @@ tr:
       text: Bağış Yapın
     learn_more: Daha Fazla Bilgi
     more: Daha fazla
-    sotm_line_2: 7-9 Kasım 2014
-    sotm_line_3: Buenos Aires, Arjantin
   license_page:
     foreign:
       title: Bu çeviri hakkında
@@ -976,6 +985,7 @@ tr:
     help:
       url: https://help.openstreetmap.org/
       title: help.openstreetmap.org
+      description: Bir soru sor veya OSM'ın soru-ve-cevap sitesinde yanıtları ara.
     wiki:
       url: http://wiki.openstreetmap.org/
       title: wiki.openstreetmap.org
@@ -983,6 +993,8 @@ tr:
     next: İleri
     copyright_html: <span>&copy;</span>OpenStreetMap<br>katkıda bulunanları
     local_knowledge_title: Yerel Bilgi
+    community_driven_title: Katılım Kaynaklı
+    open_data_title: Açık Veri
     partners_title: Ortaklar
   notifier:
     diary_comment_notification:
@@ -1096,6 +1108,8 @@ tr:
       permalink: Kalıcı Bağlantı
       shortlink: Kısa Bağlantı
       createnote: Bir not ekle
+      license:
+        copyright: Telif Hakkı OpenStreetMap ve katılımcılar, açık lisans altında
     edit:
       user_page_link: kullanıcı sayfası
       anon_edits: (%{link})
@@ -1282,6 +1296,8 @@ tr:
       message: GPX dosya gönderme sistemi şu anda kullanılamıyor
     offline:
       heading: GPX Yükleme Servisi Çevrimdışı
+    georss:
+      title: OpenStreetMap GPS İzleri
   oauth:
     oauthorize_success:
       verification: Doğrulama kodu %{code}.
@@ -1677,7 +1693,10 @@ tr:
       edit_disabled_tooltip: Haritayı düzenlemek için yakınlaştırın
       createnote_tooltip: Haritaya bir not ekle
       createnote_disabled_tooltip: Not eklemek için haritayı yakınlaştır
+      map_notes_zoom_in_tooltip: Harita notları görmek için yakınlaştır
       map_data_zoom_in_tooltip: Harita verileri görmek için yakınlaştır
+      queryfeature_tooltip: Özellikleri göster
+      queryfeature_disabled_tooltip: Özellikler görmek için yakınlaştır
     notes:
       new:
         intro: Bir hata ya da eksik bir şey mi var? Bu sorunun düzeltilebilmesi için
index 3b636088c584db52305789abf04fbe1bee967504..f3d17d7809e6b2143e1cdfab28d12071db66b67a 100644 (file)
@@ -19,6 +19,7 @@
 # Author: Sev
 # Author: Shirayuki
 # Author: SteveR
+# Author: Ypryima
 # Author: Yurkoy
 # Author: Ата
 # Author: Тест
@@ -138,11 +139,17 @@ uk:
       way_paginated: Лінії (%{x}-%{y} із %{count})
       relation: Зв’язки (%{count})
       relation_paginated: Зв’язки (%{x}-%{y} із %{count})
+      comment: Коментарі (%{count})
+      hidden_commented_by: Прихований коментар від %{user} <abbr title='%{exact_time}'>%{when}
+        тому</abbr>
+      commented_by: Коментар від %{user} <abbr title='%{exact_time}'>%{when} тому</abbr>
       changesetxml: XML набір змін
       osmchangexml: osmChange XML
       feed:
         title: Набір змін %{id}
         title_comment: Набір змін %{id} — %{comment}
+      join_discussion: Увійдіть в систему, щоб приєднатися до обговорення
+      discussion: Обговорення
     node:
       title: 'Точка: %{name}'
       history_title: 'Історія точки: %{name}'
@@ -226,6 +233,11 @@ uk:
       reopened_by_anonymous: Відновлено анонімом <abbr title='%{exact_time}'>%{when}
         тому</abbr>
       hidden_by: Приховано учасником %{user} <abbr title='%{exact_time}'>%{when} тому</abbr>
+    query:
+      title: Отримати об’єкти
+      introduction: Клацніть на мапі, щоб отримати дані про об’єкти поруч.
+      nearby: Об’єкти поруч
+      enclosing: Оточуючі об’єкти
   changeset:
     changeset_paging_nav:
       showing_page: Сторінка %{page}
@@ -256,6 +268,13 @@ uk:
     timeout:
       sorry: На жаль, список наборів змін який ви запросили, потребує забагато часу
         для завантаження.
+    rss:
+      title_all: Обговорення наборів змін в OpenStreetMap
+      title_particular: 'Обговорення набору змін OpenStreetMap #%{changeset_id}'
+      comment: 'Новий коментар до набору змін #%{changeset_id} від %{author}'
+      commented_at_html: Оновлено %{when} тому
+      commented_at_by_html: Оновлено %{when} тому користувачем %{user}
+      full: Все обговорення
   diary_entry:
     new:
       title: Створити новий запис у щоденнику
@@ -546,7 +565,7 @@ uk:
           primary_link: З’єднання з головною дорогою
           proposed: Пропонована дорога
           raceway: Гоночна траса
-          residential: Ð\92Ñ\83лиÑ\86Ñ\8f місцевого значення
+          residential: Ð\94оÑ\80ога місцевого значення
           rest_area: Зона відпочинку
           road: Дорога
           secondary: Другорядна дорога
@@ -757,6 +776,8 @@ uk:
           tram: Трамвайні колії
           tram_stop: Трамвайна зупинка
           yard: Депо
+        route:
+          bus: Автобусний Маршрут
         shop:
           alcohol: Спиртні напої
           antiques: Антикваріат
@@ -959,10 +980,6 @@ uk:
       text: Підтримайте проект
     learn_more: Дізнатись більше
     more: Більше
-    sotm_header: Мапа за станом на 2014 рік
-    sotm_line_1: 8-ма щорічна конференція
-    sotm_line_2: 7-9 листопада 2014 року
-    sotm_line_3: Буенос-Айрес, Аргентина
   license_page:
     foreign:
       title: Про цей переклад
@@ -1252,6 +1269,22 @@ uk:
         commented_note: '%{commenter} поновив нотатку, прокоментовану вами, що знаходиться
           біля %{place}.'
       details: Докладніше про нотатку %{url}.
+    changeset_comment_notification:
+      greeting: Привіт,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} прокоментував один з ваших наборів
+          змін'
+        subject_other: '[OpenStreetMap] %{commenter} прокоментував набір змін, до
+          якого ви залишали свій коментар'
+        your_changeset: '%{commenter} залишив коментар до одного з ваших наборів змін,
+          створених %{time}'
+        commented_changeset: '%{commenter} залишив коментар до набору змін, що ви
+          переглядаєте, створений %{changeset_author} – %{time}'
+        partial_changeset_with_comment: з коментарем '%{changeset_comment}'
+        partial_changeset_without_comment: без коментарів
+      details: |2-
+
+        Більше деталей про зміни, які можуть бути знайдені в %{url}.
   message:
     inbox:
       title: Вхідні
@@ -1304,9 +1337,9 @@ uk:
         з кимось із %{people_mapping_nearby_link}?
       people_mapping_nearby: користувачів поблизу вас
     reply:
-      wrong_user: Ви увійшли як `%{user}', але повідомлення, на яке ви хочете відповісти,
-        Ð±Ñ\83ло Ð²Ñ\96дпÑ\80авлено Ð½Ðµ Ñ\86Ñ\8cомÑ\83 ÐºÐ¾Ñ\80иÑ\81Ñ\82Ñ\83ваÑ\87Ñ\83. Ð\91Ñ\83дÑ\8c Ð»Ð°Ñ\81ка, Ñ\83вÑ\96йдÑ\96Ñ\82Ñ\8c Ð· Ð¿Ñ\80авилÑ\8cним Ñ\96мâ\80\99Ñ\8fм
-        користувача щоб відповісти.
+      wrong_user: Ви увійшли як „%{user}“, але повідомлення, на яке ви хочете відповісти,
+        Ð±Ñ\83ло Ð½Ð°Ð´Ñ\96Ñ\81лане Ð½Ðµ Ð²Ð°Ð¼. Ð\91Ñ\83дÑ\8c Ð»Ð°Ñ\81ка, Ñ\83вÑ\96йдÑ\96Ñ\82Ñ\8c Ð· Ð²Ñ\96дповÑ\96дним Ñ\96мâ\80\99Ñ\8fм ÐºÐ¾Ñ\80иÑ\81Ñ\82Ñ\83ваÑ\87а
+        щоб відповісти.
     read:
       title: Перегляд повідомлення
       from: Від
@@ -1316,9 +1349,9 @@ uk:
       unread_button: Позначити як непрочитане
       back: Назад
       to: 'Кому:'
-      wrong_user: Ви увійшли як `%{user}', але повідомлення, яке ви хочете прочитати,
-        Ð½Ðµ Ð±Ñ\83ло Ð²Ñ\96дпÑ\80авлено Ñ\86им ÐºÐ¾Ñ\80иÑ\81Ñ\82Ñ\83ваÑ\87ем, Ñ\87и Ð¿Ñ\80изнаÑ\87ено Ð´Ð»Ñ\8f Ñ\86Ñ\8cого ÐºÐ¾Ñ\80иÑ\81Ñ\82Ñ\83ваÑ\87а.
-        Будь ласка, увійдіть під правильним ім'ям користувача, щоб прочитати його.
+      wrong_user: Ви увійшли як „%{user}“, але повідомлення, яке ви хочете прочитати,
+        Ð½Ðµ Ð±Ñ\83ло Ð½Ð°Ð´Ñ\96Ñ\81лане Ð²Ð°Ð¼Ð¸, Ñ\87и Ð¿Ñ\80изнаÑ\87ено Ð´Ð»Ñ\8f Ð²Ð°Ñ\81. Ð\91Ñ\83дÑ\8c Ð»Ð°Ñ\81ка, Ñ\83вÑ\96йдÑ\96Ñ\82Ñ\8c Ð¿Ñ\96д Ð²Ñ\96дповÑ\96дним
+        ім’ям користувача, щоб прочитати його.
     sent_message_summary:
       delete_button: Вилучити
     mark:
@@ -2205,6 +2238,15 @@ uk:
       createnote_disabled_tooltip: Треба наблизитись для додання нотатки
       map_notes_zoom_in_tooltip: Збільшить масштаб, щоб побачити більше нотаток
       map_data_zoom_in_tooltip: Збільшить, щоб побачити дані мапи
+      queryfeature_tooltip: Отримати об’єкти
+      queryfeature_disabled_tooltip: Наблизитись для отримання об’єктів
+    changesets:
+      show:
+        comment: Коментар
+        subscribe: Підписатися
+        unsubscribe: Відписатись
+        hide_comment: приховати
+        unhide_comment: показати
     notes:
       new:
         intro: Помітили помилку або чогось не вистачає? Дайте знати іншим картографам,
@@ -2222,6 +2264,13 @@ uk:
         comment: Коментар
     edit_help: Перемістіть мапу і наблизьтесь до місця, яке ви бажаєте змінити, потім
       клацніть тут.
+    query:
+      node: Точка
+      way: Лінія
+      relation: Зв’язок
+      nothing_found: Об’єкти не знайдені
+      error: 'Помилка зв’язку %{server}: %{error}'
+      timeout: Сервер не відповідає %{server}
   redaction:
     edit:
       description: Опис
index cbe65cf30b1c90a3f04f8dd10bb1f5598dc5d56c..14a55671da80ef8321d26e4992a24952d62b4abf 100644 (file)
@@ -120,11 +120,17 @@ vi:
       way_paginated: Các lối (%{x}–%{y} trên %{count})
       relation: Các quan hệ (%{count})
       relation_paginated: Các quan hệ (%{x}–%{y} trên %{count})
+      comment: Bình luận (%{count})
+      hidden_commented_by: Bình luận ẩn của %{user} <abbr title='%{exact_time}'>cách
+        đây %{when}</abbr>
+      commented_by: Bình luận của %{user} <abbr title='%{exact_time}'>cách đây %{when}</abbr>
       changesetxml: Bộ thay đổi XML
       osmchangexml: osmChange XML
       feed:
         title: Bộ thay đổi %{id}
         title_comment: Bộ thay đổi %{id} – %{comment}
+      join_discussion: Đăng nhập để tham gia thảo luận
+      discussion: Thảo luận
     node:
       title: 'Nốt: %{name}'
       history_title: 'Lịch sử Nốt: %{name}'
@@ -202,6 +208,11 @@ vi:
       reopened_by: Mở lại bởi %{user} <abbr title='%{exact_time}'>cách đây %{when}</abbr>
       reopened_by_anonymous: Mở lại vô danh <abbr title='%{exact_time}'>cách đây %{when}</abbr>
       hidden_by: Ẩn bởi %{user} <abbr title='%{exact_time}'>cách đây %{when}</abbr>
+    query:
+      title: Thăm dò Yếu tố
+      introduction: Nhấn chuột vào bản đồ để tìm những yếu tố lân cận.
+      nearby: Yếu tố lân cận
+      enclosing: Yếu tố bao gồm
   changeset:
     changeset_paging_nav:
       showing_page: Trang %{page}
@@ -231,6 +242,13 @@ vi:
       load_more: Tải tiếp
     timeout:
       sorry: Rất tiếc, lấy danh sách bộ thay đổi tốn quá nhiều thì giờ.
+    rss:
+      title_all: Thảo luận về bộ thay đổi tại OpenStreetMap
+      title_particular: 'Thảo luận về bộ thay đổi #%{changeset_id} tại OpenStreetMap'
+      comment: 'Bình luận mới về bộ thay đổi #%{changeset_id} của %{author}'
+      commented_at_html: Được cập nhật cách đây %{when}
+      commented_at_by_html: Được %{user} cập nhật cách đây %{when}
+      full: Thảo luận đầy đủ
   diary_entry:
     new:
       title: Mục Nhật ký Mới
@@ -731,6 +749,8 @@ vi:
           tram: Đường Xe điện
           tram_stop: Ga Xép Điện
           yard: Sân ga
+        route:
+          bus: Tuyến Xe buýt
         shop:
           alcohol: Tiệm Rượu
           antiques: Tiệm Đồ cổ
@@ -935,10 +955,6 @@ vi:
       text: Quyên góp
     learn_more: Tìm hiểu Thêm
     more: Thêm
-    sotm_header: Tình trạng Bản đồ 2014
-    sotm_line_1: Hội nghị Hàng năm Lần thứ 8
-    sotm_line_2: Ngày 7–9 tháng 11 năm 2014
-    sotm_line_3: Buenos Aires, Argentina
   license_page:
     foreign:
       title: Thông tin về bản dịch này
@@ -1238,6 +1254,20 @@ vi:
         commented_note: '%{commenter} đã mở lại một ghi chú mà bạn đã bình luận, ghi
           chú gần %{place}.'
       details: Xem chi tiết về ghi chú tại %{url}.
+    changeset_comment_notification:
+      greeting: Chào bạn,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} đã bình luận về một bộ thay đổi
+          của bạn'
+        subject_other: '[OpenStreetMap] %{commenter} đã bình luận về một bộ thay đổi
+          mà bạn đang quan tâm'
+        your_changeset: '%{commenter} đã bình luận về một bộ thay đổi do bạn lưu vào
+          %{time}'
+        commented_changeset: '%{commenter} đã bình luận về một bộ thay đổi mà bạn
+          đang theo dõi do %{changeset_author} lưu vào %{time}'
+        partial_changeset_with_comment: với lời bình luận “%{changeset_comment}”
+        partial_changeset_without_comment: không có lời bình luận
+      details: Xem chi tiết về bộ thay đổi tại %{url}.
   message:
     inbox:
       title: Hộp thư
@@ -2173,6 +2203,15 @@ vi:
       createnote_disabled_tooltip: Phóng to để thêm một ghi chú vào bản đồ
       map_notes_zoom_in_tooltip: Phóng to để xem các ghi chú trên bản đồ
       map_data_zoom_in_tooltip: Phóng to để xem dữ liệu bản đồ
+      queryfeature_tooltip: Thăm dò yếu tố
+      queryfeature_disabled_tooltip: Phóng to để thăm dò yếu tố
+    changesets:
+      show:
+        comment: Bình luận
+        subscribe: Theo dõi
+        unsubscribe: Không theo dõi
+        hide_comment: ẩn
+        unhide_comment: bỏ ẩn
     notes:
       new:
         intro: Bản đồ có thiếu gì hay sai lầm không? Hãy báo cho chúng tôi để chúng
@@ -2190,6 +2229,13 @@ vi:
         comment: Bình luận
     edit_help: Di chuyển bản đồ và phóng to một vị trí mà bạn muốn sửa đổi, rồi nhấn
       chuột vào đây.
+    query:
+      node: Nốt
+      way: Lối
+      relation: Quan hệ
+      nothing_found: Không tìm thấy yếu tố nào
+      error: 'Lỗi khi kết nối với %{server}: %{error}'
+      timeout: Hết thời gian kết nối với %{server}
   redaction:
     edit:
       description: Miêu tả
index 187b08369e10f4f7c79b71bb06dc84245cd33dac..a1084e35251f06040bb7cc61e130b791ce6d6c7a 100644 (file)
@@ -28,8 +28,8 @@ zh-CN:
     dir: ltr
   time:
     formats:
-      friendly: '%Y年%B%e日 %H:%M'
-      blog: '%Y年%B%e日'
+      friendly: '%Y 年%B %e 日 %H:%M'
+      blog: '%Y年 %B e日'
   activerecord:
     models:
       acl: 访问控制列表
@@ -101,7 +101,7 @@ zh-CN:
   printable_name:
     with_version: '%{id},版本 %{version}'
   editor:
-    default: 默认 (目前为 %{name})
+    default: 默认(目前为 %{name})
     potlatch:
       name: Potlatch 1
       description: Potlatch 1 (浏览器内编辑器)
@@ -126,7 +126,7 @@ zh-CN:
     version: 版本
     in_changeset: 修改集合
     anonymous: 匿名用户
-    no_comment: (无注)
+    no_comment: (无注)
     part_of: 属于
     download_xml: 下载 XML
     view_history: 查看历史
@@ -141,11 +141,16 @@ zh-CN:
       way_paginated: 路径 (%{x}-%{y},共 %{count})
       relation: 关系 (%{count})
       relation_paginated: 关系 (%{x}-%{y},共 %{count})
+      comment: 评论 (%{count})
+      hidden_commented_by: <abbr title='%{exact_time}'>%{when}前</abbr>来自 %{user} 的隐藏评论
+      commented_by: <abbr title='%{exact_time}'>%{when}前</abbr>来自 %{user} 的评论
       changesetxml: 修改集合 XML
       osmchangexml: osm 修改 XML
       feed:
         title: 修改集合 %{id}
         title_comment: 修改集合 %{id} - %{comment}
+      join_discussion: 登录以加入讨论
+      discussion: 讨论
     node:
       title: 节点:%{name}
       history_title: 节点历史:%{name}
@@ -171,7 +176,7 @@ zh-CN:
       entry: 关系 %{relation_name}
       entry_role: 关系 %{relation_name} (作为 %{relation_role})
     not_found:
-      sorry: '对ä¸\8dèµ·ï¼\8cæ\89¾ä¸\8då\88°%{type} #%{id}。'
+      sorry: '对ä¸\8dèµ·ï¼\8cæ\97 æ³\95æ\89¾å\88° %{type} #%{id}。'
       type:
         node: 节点
         way: 路径
@@ -194,7 +199,7 @@ zh-CN:
     start_rjs:
       feature_warning: 正在载入 %{num_features} 个特征,这可能使您的浏览器变慢或失去响应。您确定想要显示该数据吗?
       load_data: 载入数据
-      loading: 正在载入……
+      loading: 正在载入...
     tag_details:
       tags: 标签
       wiki_link:
@@ -204,21 +209,26 @@ zh-CN:
       wikipedia_link: 维基百科上的 %{page} 条目
       telephone_link: 请拨打 %{phone_number}
     note:
-      title: 注释:%{id}
-      new_note: 新注释
+      title: 笔记:%{id}
+      new_note: 新笔记
       description: 说明
-      open_title: 未解决注释#%{note_name}
-      closed_title: 已解决注释#%{note_name}
-      hidden_title: 隐藏注释#%{note_name}
+      open_title: '未解决笔记 #%{note_name}'
+      closed_title: '已解决笔记 #%{note_name}'
+      hidden_title: '隐藏笔记 #%{note_name}'
       open_by: '%{user} 创建于 <abbr title=''%{exact_time}''>%{when} 前</abbr>'
       open_by_anonymous: 匿名用户创建于 <abbr title='%{exact_time}'>%{when} 前</abbr>
       commented_by: '%{user} 于 <abbr title=''%{exact_time}''>%{when} 前</abbr>发表的评论'
       commented_by_anonymous: 匿名用户于 <abbr title='%{exact_time}'>%{when} 前</abbr>发表的评论
       closed_by: '%{user} 解决于 <abbr title=''%{exact_time}''>%{when} 前</abbr>'
       closed_by_anonymous: 匿名用户解决于 <abbr title='%{exact_time}'>%{when} 前</abbr>
-      reopened_by: '%{user} 重于 <abbr title=''%{exact_time}''>%{when} 前</abbr>'
-      reopened_by_anonymous: 匿名用户重于 <abbr title='%{exact_time}'>%{when} 前</abbr>
+      reopened_by: '%{user} 重新激活于 <abbr title=''%{exact_time}''>%{when} 前</abbr>'
+      reopened_by_anonymous: 匿名用户重新激活于 <abbr title='%{exact_time}'>%{when} 前</abbr>
       hidden_by: '%{user} 隐藏于 <abbr title=''%{exact_time}''>%{when} 前</abbr>'
+    query:
+      title: 查询特征
+      introduction: 点击地图以查找附近特征。
+      nearby: 附近特征
+      enclosing: 内测功能
   changeset:
     changeset_paging_nav:
       showing_page: 第 %{page} 页
@@ -232,7 +242,7 @@ zh-CN:
       id: ID
       saved_at: 保存于
       user: 用户
-      comment: 注
+      comment: 注
       area: 区域
     list:
       title: 修改集合
@@ -248,6 +258,13 @@ zh-CN:
       load_more: 载入更多
     timeout:
       sorry: 对不起,检索您请求的修改集合的列表时间过长。
+    rss:
+      title_all: OpenStreetMap 修改集合讨论
+      title_particular: 'OpenStreetMap 修改集合 #%{changeset_id} 讨论'
+      comment: '%{author} 对修改集合 #%{changeset_id} 的新评论'
+      commented_at_html: 更新于 %{when} 前
+      commented_at_by_html: '%{user} 上传于 %{when} 前'
+      full: 完整讨论
   diary_entry:
     new:
       title: 新日记文章
@@ -291,7 +308,8 @@ zh-CN:
       reply_link: 回复该文章
       comment_count:
         zero: 没有评论
-        other: '%{count}条评论'
+        one: '%{count} 个评论'
+        other: '%{count} 个评论'
       edit_link: 编辑该文章
       hide_link: 隐藏该文章
       confirm: 确认
@@ -743,8 +761,10 @@ zh-CN:
           tram: 电车轨道
           tram_stop: 有轨电车站
           yard: 车辆段
+        route:
+          bus: 公交路线
         shop:
-          alcohol: 酒类销售执照
+          alcohol: 无许可证
           antiques: 古玩店
           art: 艺术品店
           bakery: 面包店
@@ -816,7 +836,7 @@ zh-CN:
           toys: 玩具店
           travel_agency: 旅行社
           video: 音像店
-          wine: 酒类销售执照
+          wine: 执照
           "yes": 商店
         tourism:
           alpine_hut: 高山小屋
@@ -946,10 +966,6 @@ zh-CN:
       text: 捐款
     learn_more: 了解更多
     more: 更多
-    sotm_header: 2014年地图状态
-    sotm_line_1: 第8届年会
-    sotm_line_2: 2014年11月7~9日
-    sotm_line_3: 阿根廷布宜诺斯
   license_page:
     foreign:
       title: 关于本译文
@@ -1003,7 +1019,7 @@ zh-CN:
       contributors_nl_html: <strong>荷兰</strong>:含有&copy; AND data, 2007(<a href="http://www.and.com">www.and.com</a>)
       contributors_nz_html: <strong>新西兰</strong>:包含来自新西兰土地信息部的数据。Crown 版权所有。
       contributors_za_html: <strong>南非</strong>:包含来自<a href="http://www.ngi.gov.za/">行政局:国家地球空间信息</a>,国家版权所有。
-      contributors_gb_html: <strong>英国</strong>:包含来自 Ordnance 的调查数据,&copy; 皇家版权所有及数据库权利,2010-12。
+      contributors_gb_html: <strong>英国</strong>:包含来自 Ordnance 的调查数据,&copy; Crown 版权所有及数据库权利,2010-12。
       contributors_footer_1_html: |-
         关于其进一步的细节,及其他被用来帮助提升 OpenStreetMap 的来源,详见 OpenStreetMap Wiki 的<a
         href="http://wiki.openstreetmap.org/wiki/Contributors">贡献者页面</a>。
@@ -1032,9 +1048,9 @@ zh-CN:
         href='%{help_url}'>点此获取帮助</a>。
     start_mapping: 开始绘制地图
     add_a_note:
-      title: 没有时间编辑?添加注释
-      paragraph_1_html: 如果您这是想做一些微小改动而没有时间登录来学习如何编辑,那做一些注释是非常容易的。
-      paragraph_2_html: 只要去<a href='%{map_url}'>地图</a>并单击注释图标:<span class='icon note'></span>。这将在地图上添加一个标记,您可以拖动它,并添加您的注释,然后单击保存,其他人可以确认是否正确。
+      title: 没有时间编辑?添加笔记
+      paragraph_1_html: 如果您这是想做一些微小改动而没有时间登录来学习如何编辑,那做一些笔记是非常容易的。
+      paragraph_2_html: 只要去<a href='%{map_url}'>地图</a>并单击笔记图标:<span class='icon note'></span>。这将在地图上添加一个标记,您可以拖动它,并添加您的笔记,然后单击保存,其他人可以确认是否正确。
   fixthemap:
     title: 报告问题/修正地图
     how_to_help:
@@ -1122,12 +1138,12 @@ zh-CN:
       subject: '[OpenStreetMap] 确认您的电子邮件地址'
     email_confirm_plain:
       greeting: 您好,
-      hopefully_you: 有人(希望是您)想要在%{server_url}将他的电子邮件地址变更为 %{new_address}。
-      click_the_link: 如果这是您,请点击下面的链接以确认变更
+      hopefully_you: 有人(希望是您)想要在%{server_url}将他的电子邮件地址修改为 %{new_address}。
+      click_the_link: 如果这是您,请点击下面的链接以确认修改
     email_confirm_html:
       greeting: 您好,
-      hopefully_you: 某人(希望是您)想要变更他们的电子邮件地址 %{server_url} 为 %{new_address}。
-      click_the_link: 如果这是您,请点击下面的链接以确认变更
+      hopefully_you: 某人(希望是您)想要修改他们的电子邮件地址 %{server_url} 为 %{new_address}。
+      click_the_link: 如果这是您,请点击下面的链接以确认修改
     lost_password:
       subject: '[OpenStreetMap] 密码重置请求'
     lost_password_plain:
@@ -1142,21 +1158,31 @@ zh-CN:
       anonymous: 匿名用户
       greeting: 您好,
       commented:
-        subject_own: '[OpenStreetMap] %{commenter} 评论了您的一个注释'
-        subject_other: '[OpenStreetMap] %{commenter} 评论了您感兴趣的一个注释'
-        your_note: '%{commenter} 评论了您在 %{place} 附近的一个注释。'
-        commented_note: '%{commenter} 评论了您感兴趣的一个地图注释。该注释位于 %{place} 附近。'
+        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} 附近。'
+        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}找到。
+        subject_own: '[OpenStreetMap] %{commenter} 重新激活了您的一个笔记'
+        subject_other: '[OpenStreetMap] %{commenter} 重新激活了您感兴趣的一个笔记'
+        your_note: '%{commenter} 重新激活了您在 %{place} 附近的一个笔记。'
+        commented_note: '%{commenter} 重新激活了您感兴趣的一个地图笔记。该笔记位于 %{place} 附近。'
+      details: 更多关于笔记的详细信息可以在%{url}找到。
+    changeset_comment_notification:
+      greeting: 您好,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter}在您的一个修改集合中做出了评论'
+        subject_other: '[OpenStreetMap] %{commenter} 评论了您感兴趣的一个修改集合'
+        your_changeset: '%{commenter} 在您于 %{time} 创建的一个修改集合留了言'
+        commented_changeset: '%{commenter} 在您监视的由 %{changeset_author} 于 %{time} 创建的一个地图修改集合中留了言'
+        partial_changeset_with_comment: 带评论“%{changeset_comment}”
+        partial_changeset_without_comment: 没有评论
+      details: 更多关于修改集合的详细信息可以在 %{url} 找到。
   message:
     inbox:
       title: 收件箱
@@ -1226,7 +1252,7 @@ zh-CN:
       js_2: OpenStreetMap 使用 JavaScript 让地图更平滑。
       permalink: 固定链接
       shortlink: 短链接
-      createnote: 添加注释
+      createnote: 添加笔记
       license:
         copyright: 版权所有 OpenStreetMap及其贡献者,采用开放授权协议
       remote_failed: 编辑失败 - 请确保已加载 JOSM 或 Merkaartor 并启用了远程控制
@@ -1241,8 +1267,8 @@ zh-CN:
         Adobe.com 下载 Flash Player</a>。<a href="http://wiki.openstreetmap.org/wiki/Editing">其他几种选择</a>也可以用来编辑
         OpenStreetMap。
       potlatch_unsaved_changes: 您有尚未保存的修改。(要在 Potlatch 中保存,如果在在线模式下编辑,您需要取消选择当前的路径或节点;或者点击保存,如果有保存按钮。)
-      potlatch2_not_configured: 尚未配置 Potlatch 2 - 请参阅http://wiki.openstreetmap.org/wiki/The_Rails_Port#Potlatch_2
-        for more information
+      potlatch2_not_configured: 尚未配置 Potlatch 2 - 请参阅 http://wiki.openstreetmap.org/wiki/The_Rails_Port#Potlatch_2
+        以获得更多信息
       potlatch2_unsaved_changes: 您有尚未保存的修改。(要在 Potlatch 2 中保存,您应该点击保存。)
       id_not_configured: iD 尚未配置
       no_iframe_support: 您的浏览器不支持 HTML 嵌入式框架,这是此功能所需要的。
@@ -1258,7 +1284,7 @@ zh-CN:
       table:
         entry:
           motorway: 高速公路
-          trunk: å¹²çº¿道路
+          trunk: å\9f\8eå¸\82å¿«é\80\9f道路
           primary: 一级道路
           secondary: 二级道路
           unclassified: 未分类道路
@@ -1325,7 +1351,8 @@ zh-CN:
       edit: 编辑
       preview: 预览
     markdown_help:
-      title_html: 使用<a href="http://daringfireball.net/projects/markdown/">Markdown</a>解析
+      title_html: 使用 <a href="http://daringfireball.net/projects/markdown/">Markdown</a>
+        解析
       headings: 标题
       heading: 标题
       subheading: 副标题
@@ -1340,16 +1367,16 @@ zh-CN:
       url: URL
   trace:
     visibility:
-      private: 私有(只以匿名分享,无顺序的点)
-      public: 公开(以匿名显示于轨迹清单,无顺序的点)
-      trackable: 可追踪(只以匿名分享,有时间戳记顺序的点)
-      identifiable: 可识别(以可识别的方式显示于轨迹清单,有时间戳记顺序的点)
+      private: 私有 (只以匿名分享,无顺序的点)
+      public: 公开 (以匿名显示于轨迹清单,无顺序的点)
+      trackable: 可追踪 (只以匿名分享,有时间戳记顺序的点)
+      identifiable: 可识别 (以可识别的方式显示于轨迹清单,有时间戳记顺序的点)
     create:
-      upload_trace: 上传GPS轨迹
-      trace_uploaded: 你的 GPX 文件已经被上传,正等待被输入数据库。这通常在半小时之内,当上传结束后会发邮件通知你
+      upload_trace: 上传 GPS 轨迹
+      trace_uploaded: 您的 GPX 文件已经被上传,正等待被输入数据库。这通常在半小时之内,当上传结束后会发邮件通知您
     edit:
-      title: 编辑轨迹%{name}
-      heading: 编辑轨迹%{name}
+      title: 编辑轨迹 %{name}
+      heading: 编辑轨迹 %{name}
       filename: 文件名:
       download: 下载
       uploaded_at: 上传于:
@@ -1361,12 +1388,12 @@ zh-CN:
       description: 说明:
       tags: 标签:
       tags_help: 用逗号分隔
-      save_button: 保存变更
+      save_button: 保存修改
       visibility: 可见性:
       visibility_help: 这是什么意思?
       visibility_help_url: http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
     trace_form:
-      upload_gpx: 上传GPX文件:
+      upload_gpx: 上传 GPX 文件:
       description: 说明:
       tags: 标签:
       tags_help: 用逗号分隔
@@ -1379,13 +1406,13 @@ zh-CN:
     trace_header:
       upload_trace: 上传轨迹
       see_all_traces: 查看所有轨迹
-      see_your_traces: 查看的轨迹
-      traces_waiting: 有 %{count} 条轨迹正等待上传,请在上传更多轨迹前等待这些传完,以确保不会给其他用户造成队列拥堵。
+      see_your_traces: 查看的轨迹
+      traces_waiting: 有 %{count} 条轨迹正等待上传,请在上传更多轨迹前等待这些传完,以确保不会给其他用户造成队列拥堵。
     trace_optionals:
       tags: 标签
     view:
-      title: 查看轨迹%{name}
-      heading: 查看轨迹%{name}
+      title: 查看轨迹 %{name}
+      heading: 查看轨迹 %{name}
       pending: 挂起
       filename: 文件名:
       download: 下载
@@ -1403,13 +1430,13 @@ zh-CN:
       trace_not_found: 未找到轨迹!
       visibility: 可见性:
     trace_paging_nav:
-      showing_page: 第%{page}
+      showing_page: 第 %{page} 
       older: 较旧轨迹
       newer: 较新轨迹
     trace:
       pending: 挂起
-      count_points: '%{count}个点'
-      ago: '%{time_in_words_ago}前'
+      count_points: '%{count} 个点'
+      ago: '%{time_in_words_ago} 前'
       more: 更多
       trace_details: 查看轨迹详情
       view_map: 查看地图
@@ -1423,12 +1450,12 @@ zh-CN:
       in: 于
       map: 地图
     list:
-      public_traces: 公开GPS轨迹
-      your_traces: 你的GPS轨迹
-      public_traces_from: 来自%{user}的公开GPS轨迹
-      description: 浏览最近上传的GPS轨迹
-      tagged_with: 以%{tags}标记
-      empty_html: 尚无轨迹。<a href='%{upload_link}'>上传新轨迹</a>或在<a href='http://wiki.openstreetmap.org/wiki/Beginners_Guide_1.2'>维基页面</a>上了解
+      public_traces: 公开 GPS 轨迹
+      your_traces: 您的 GPS 轨迹
+      public_traces_from: 来自 %{user} 的公开 GPS 轨迹
+      description: 浏览最近上传的 GPS 轨迹
+      tagged_with: 以 %{tags} 标记
+      empty_html: 尚无轨迹。<a href='%{upload_link}'>上传新轨迹</a>或在<a href='http://wiki.openstreetmap.org/wiki/Beginners_Guide_1.2'>wiki页面</a>上了解
         GPS 轨迹。
     delete:
       scheduled_for_deletion: 计划删除的轨迹
@@ -1440,79 +1467,79 @@ zh-CN:
       heading: GPX 脱机存储
       message: GPX 文件存储和上传系统当前不可用。
     georss:
-      title: OpenStreetMap GPS轨迹
+      title: OpenStreetMap GPS 轨迹
     description:
       description_with_count:
-        one: GPX file with %{count} point from %{user}
-        other: 来自%{user}的带%{count}点的GPX文件
-      description_without_count: 来自%{user}的GPX文件
+        one: 来自 %{user} 的带 %{count} 点的GPX文件
+        other: 来自 %{user} 的带 %{count} 点的GPX文件
+      description_without_count: 来自 %{user} 的 GPX 文件
   application:
     require_cookies:
-      cookies_needed: 你似乎停用了cookie - 请在继续操作前启用你的浏览器cookie。
+      cookies_needed: 您似乎停用了 cookie - 请在继续操作前启用您的浏览器 cookie。
     require_moderator:
       not_a_moderator: 必须为管理员才能执行该操作。
     setup_user_auth:
-      blocked: 对 API 的访问已经被阻挡了。请登录到网站以了解更多信息。
-      need_to_see_terms: 你对 API 的访问已暂时中止。请登录到网站以查看贡献者条款。你不需要同意,但必须查看它们。
+      blocked: 对 API 的访问已经被阻挡了。请登录到网站以了解更多信息。
+      need_to_see_terms: 您对 API 的访问已暂时中止。请登录到网站以查看贡献者条款。您不需要同意,但必须查看它们。
   oauth:
     oauthorize:
-      title: 授权访问的账户
-      request_access: '%{user},应用程序 %{app_name} 要求访问你的帐户。请确定你要让此应用程序使用下列功能。你可以按照自己的意思选择几个。'
+      title: 授权访问的账户
+      request_access: '%{user},应用程序 %{app_name} 要求访问您的帐户。请确定您要让此应用程序使用下列功能。您可以按照自己的意思选择几个。'
       allow_to: 允许客户应用程序:
-      allow_read_prefs: 读取你的用户设置
-      allow_write_prefs: 修改你的用户设置
+      allow_read_prefs: 读取您的用户首选项
+      allow_write_prefs: 修改您的用户首选项
       allow_write_diary: 创建日记文章,评论和交朋友。
       allow_write_api: 修改地图。
-      allow_read_gpx: 读取的私人 GPS 轨迹。
-      allow_write_gpx: 上传GPS轨迹。
-      allow_write_notes: 修改注释
+      allow_read_gpx: 读取的私人 GPS 轨迹。
+      allow_write_gpx: 上传 GPS 轨迹。
+      allow_write_notes: 修改笔记
     oauthorize_success:
       title: 已允许授权申请
-      allowed: 你已授权 %{app_name} 应用访问你的账户。
-      verification: 验证码为%{code}。
+      allowed: 您已授权 %{app_name} 应用访问您的账户。
+      verification: 验证码为 %{code}。
     oauthorize_failure:
       title: 授权请求失败
-      denied: 你已经拒绝应用程序%{app_name}访问你的账户。
+      denied: 您已经拒绝应用程序 %{app_name} 访问您的账户。
       invalid: 授权令牌无效。
     revoke:
-      flash: 已经注销 %{application} 的令牌。
+      flash: 已经注销 %{application} 的令牌。
   oauth_clients:
     new:
       title: 注册新应用程序
       submit: 注册
     edit:
-      title: 编辑的应用程序
+      title: 编辑的应用程序
       submit: 编辑
     show:
-      title: '%{app_name}的OAuth详细信息'
+      title: '%{app_name} 的 OAuth 详细信息'
       key: 用户键:
       secret: 用户密钥:
       url: 请求令牌 URL:
       access_url: 访问令牌 URL:
       authorize_url: 授权 URL:
-      support_notice: 我们支持HMAC-SHA1(推荐)和RSA-SHA1签名。
+      support_notice: 我们支持 HMAC-SHA1 (推荐)和 RSA-SHA1 签名。
       edit: 编辑详细信息
       delete: 删除客户端
-      confirm: 确定吗?
+      confirm: 确定吗?
       requests: 向用户请求以下权限:
-      allow_read_prefs: 读取他们的用户设置
-      allow_write_prefs: 修改他们的用户设置
+      allow_read_prefs: 读取他们的用户首选项
+      allow_write_prefs: 修改他们的用户首选项
       allow_write_diary: 创建日记文章、评论和交朋友。
       allow_write_api: 修改地图。
-      allow_read_gpx: 读取他们的私人GPS轨迹。
-      allow_write_gpx: 上传GPS轨迹。
-      allow_write_notes: 修改注释
+      allow_read_gpx: 读取他们的私人 GPS 轨迹。
+      allow_write_gpx: 上传 GPS 轨迹。
+      allow_write_notes: 修改笔记
     index:
-      title: 我的OAuth详细信息
+      title: 我的 OAuth 详细信息
       my_tokens: 我的已授权应用程序
-      list_tokens: 下列令牌已发给名下的应用程序:
+      list_tokens: 下列令牌已发给名下的应用程序:
       application: 应用程序名称
       issued_at: 发出于
       revoke: 撤销!
       my_apps: 我的客户应用程序
-      no_apps: 你是否有想要注册使用 %{oauth} 标准的应用程序?你必须先注册你的网页应用程序,才能对这个服务进行OAuth 要求。
-      registered_apps: 已注册以下客户应用程序:
-      register_new: 注册的应用程序
+      no_apps: 您是否有想要注册使用 %{oauth} 标准的应用程序?您必须先注册您的网页应用程序,才能对这个服务进行 OAuth 要求。
+      registered_apps: 已注册以下客户应用程序:
+      register_new: 注册的应用程序
     form:
       name: 名称
       required: 必要
@@ -1520,15 +1547,15 @@ zh-CN:
       callback_url: 回调 URL
       support_url: 支持 URL
       requests: 向用户请求以下权限:
-      allow_read_prefs: 读取他们的用户设置
-      allow_write_prefs: 修改他们的用户设置
+      allow_read_prefs: 读取他们的用户首选项
+      allow_write_prefs: 修改他们的用户首选项
       allow_write_diary: 创建日记文章、评论和交朋友。
       allow_write_api: 修改地图。
-      allow_read_gpx: 读取他们的私有GPS轨迹。
-      allow_write_gpx: 上传GPS轨迹。
-      allow_write_notes: 修改注释
+      allow_read_gpx: 读取他们的私有 GPS 轨迹。
+      allow_write_gpx: 上传 GPS 轨迹。
+      allow_write_notes: 修改笔记
     not_found:
-      sorry: 对不起,无法找到那个%{type}。
+      sorry: 对不起,无法找到那个 %{type}。
     create:
       flash: 注册信息成功
     update:
@@ -1546,45 +1573,45 @@ zh-CN:
       lost password link: 忘记密码?
       login_button: 登录
       register now: 现在就注册
-      with username: 已经有OpenStreetMap账户?请使用你的用户名和密码登录:
-      with openid: 或使用OpenID登录:
+      with username: 已经有 OpenStreetMap 账户?请使用您的用户名和密码登录:
+      with openid: 或使用 OpenID 登录:
       new to osm: 第一次来到 OpenStreetMap?
-      to make changes: 要修改 OpenStreetMap 的数据,必须拥有一个帐户。
+      to make changes: 要修改 OpenStreetMap 的数据,必须拥有一个帐户。
       create account minute: 创建账户。只需花费一分钟。
       no account: 没有账户?
-      account not active: 对不起,你的账户尚未激活。<br />请点击在账户确认邮件中的链接来激活你的账户,或<a href="%{reconfirm}">请求新的确认电子邮件</a>。
-      account is suspended: 对不起,你的帐户因可疑活动已被暂停。<br />如果你想讨论这个,请联系<a href="%{webmaster}">网站管理员</a>。
-      auth failure: 对不起,凭这些信息无法登录。
-      openid missing provider: 对不起,无法联系的 OpenID 提供者
-      openid invalid: 对不起,的 OpenID 格式似乎不正确
-      openid_logo_alt: 使用OpenID登录
+      account not active: 对不起,您的账户尚未激活。<br />请点击在账户确认邮件中的链接来激活您的账户,或<a href="%{reconfirm}">请求新的确认电子邮件</a>。
+      account is suspended: 对不起,您的帐户因可疑活动已被暂停。<br />如果您想讨论这个,请联系<a href="%{webmaster}">网站管理员</a>。
+      auth failure: 对不起,凭这些信息无法登录。
+      openid missing provider: 对不起,无法联系的 OpenID 提供者
+      openid invalid: 对不起,的 OpenID 格式似乎不正确
+      openid_logo_alt: 使用 OpenID 登录
       openid_providers:
         openid:
-          title: OpenID登录
-          alt: 使用OpenID URL登录
+          title: OpenID 登录
+          alt: 使用 OpenID URL 登录
         google:
-          title: Google登录
-          alt: 使用Google OpenID登录
+          title: Google 登录
+          alt: 使用Google OpenID 登录
         yahoo:
-          title: Yahoo登录
-          alt: 使用Yahoo OpenID登录
+          title: Yahoo 登录
+          alt: 使用 Yahoo OpenID 登录
         wordpress:
-          title: Wordpress登录
-          alt: 使用Wordpress OpenID登录
+          title: Wordpress 登录
+          alt: 使用 Wordpress OpenID 登录
         aol:
-          title: AOL登录
-          alt: 使用AOL OpenID登录
+          title: AOL 登录
+          alt: 使用 AOL OpenID 登录
     logout:
       title: 退出
-      heading: 退出OpenStreetMap
+      heading: 退出 OpenStreetMap
       logout_button: 退出
     lost_password:
       title: 忘记密码
       heading: 忘记密码?
       email address: 电子邮件地址:
       new password button: 重置密码
-      help_text: 输入你的电子邮件地址来注册,我们会寄出链接给它,这样你就可以用它来重置密码。
-      notice email on way: 很遗憾你遗失了密码:-(不过一封电子邮件已经发往你的邮箱,你很快就可以重置密码了。
+      help_text: 输入您的电子邮件地址来注册,我们会寄出链接给它,这样您就可以用它来重置密码。
+      notice email on way: 很遗憾您遗失了密码:-(不过一封电子邮件已经发往您的邮箱,您很快就可以重置密码了。
       notice email cannot find: 对不起,无法找到邮箱。
     reset_password:
       title: 重置密码
@@ -1592,48 +1619,48 @@ zh-CN:
       password: 密码:
       confirm password: 确认密码:
       reset: 重置密码
-      flash changed: 你的密码已经变更
+      flash changed: 您的密码已经修改
       flash token bad: 未找到标记,建议检查 URL?
     new:
       title: 注册
-      no_auto_account_create: 很遗憾,我们目前无法为自动创建一个帐户。
+      no_auto_account_create: 很遗憾,我们目前无法为自动创建一个帐户。
       contact_webmaster: 请联系<a href="mailto:webmaster@openstreetmap.org">网站管理员</a>来安排创建一个账户
-        - 我们将尽快尝试处理的请求。
+        - 我们将尽快尝试处理的请求。
       about:
         header: 自由且可编辑
         html: |-
-          <p>不同于其他地图,OpenStreetMap是完全由像你一样的人创建的,并且免费提供给任何人用以修正、更新、下载和使用。</p>
-          <p>登录来贡献你的力量吧。我们将发送一份邮件来确认你的账号。</p>
-      license_agreement: 当你确认你的帐户时,你需要同意<a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">贡献者条款</a>。
+          <p>不同于其他地图,OpenStreetMap 是完全由像您一样的人创建的,并且免费提供给任何人用以修正、更新、下载和使用。</p>
+          <p>登录来贡献您的力量吧。我们将发送一份邮件来确认您的账号。</p>
+      license_agreement: 当您确认您的帐户时,您需要同意<a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">贡献者条款</a>。
       email address: 电子邮件地址:
       confirm email address: 确认电子邮件地址:
       not displayed publicly: 不公开显示(参阅<a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
         title="wiki privacy policy including section on email addresses">隐私政策</a>)
       display name: 显示名称:
-      display name description: 你公开显示的用户名。你可以稍后在设置中进行变更
-      openid: '%{logo}OpenID:'
+      display name description: 您公开显示的用户名。您可以稍后在首选项中进行修改
+      openid: '%{logo} OpenID:'
       password: 密码:
       confirm password: 确认密码:
       use openid: 或者,使用 %{logo} OpenID 登录
       openid no password: 使用 OpenID 时密码不是必需的,但一些额外的工具或服务器可能需要一个。
       openid association: |-
-        <p>的 OpenID 尚未与一个 OpenStreetMap 帐户相关联。</p>
+        <p>的 OpenID 尚未与一个 OpenStreetMap 帐户相关联。</p>
         <ul>
-          <li>如果是新来到 OpenStreetMap,请使用下面的表单创建一个新的帐户。</li>
+          <li>如果是新来到 OpenStreetMap,请使用下面的表单创建一个新的帐户。</li>
           <li>
-            如果你已经有一个帐户,你可以使用你
-            用户名和密码登录到你的帐户,然后在你
-            的用户设置中关联你的 OpenID。
+            如果您已经有一个帐户,您可以使用您
+            用户名和密码登录到您的帐户,然后在您
+            的用户首选项中关联您的 OpenID。
           </li>
         </ul>
       continue: 注册
-      terms accepted: 感谢接受新的贡献条款!
-      terms declined: 我们很遗憾你已决定不接受新的贡献者条款。有关详细信息,请参阅<a href="%{url}">此维基页面</a>.
+      terms accepted: 感谢接受新的贡献条款!
+      terms declined: 我们很遗憾您已决定不接受新的贡献者条款。有关详细信息,请参阅<a href="%{url}">此 wiki 页面</a>.
       terms declined url: http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
     terms:
       title: 贡献者条款
       heading: 贡献者条款
-      read and accept: 请阅读下面的协议并按同意按钮,以确认为现有的和将来的贡献接受本协议的条款。
+      read and accept: 请阅读下面的协议并按同意按钮,以确认为现有的和将来的贡献接受本协议的条款。
       consider_pd: 除了上述协议,我同意将我的贡献授权为公共领域
       consider_pd_why: 这是什么?
       consider_pd_why_url: http://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
@@ -1642,21 +1669,21 @@ zh-CN:
       declined: http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
       decline: 拒绝
       you need to accept or decline: 请先阅读,然后接受或拒绝新的贡献者条款,再继续。
-      legale_select: 请选择居住的国家:
+      legale_select: 请选择居住的国家:
       legale_names:
         france: 法国
         italy: 意大利
         rest_of_world: 世界其他地区
     no_such_user:
       title: 没有此用户
-      heading: 用户%{user}不存在
-      body: 对不起,没有名为 %{user} 的用户。请检查的拼写,或者可能是点击了错误的链接。
+      heading: 用户 %{user} 不存在
+      body: 对不起,没有名为 %{user} 的用户。请检查的拼写,或者可能是点击了错误的链接。
     view:
       my diary: 我的日记
       new diary entry: 新日记文章
       my edits: 我的编辑
       my traces: 我的轨迹
-      my notes: 我的注释
+      my notes: 我的笔记
       my messages: 我的信息
       my profile: 我的资料
       my settings: 我的设置
@@ -1668,28 +1695,28 @@ zh-CN:
       diary: 日记
       edits: 编辑
       traces: 轨迹
-      notes: 地图注释
+      notes: 地图笔记
       remove as friend: 删除朋友
       add as friend: 添加朋友
       mapper since: 绘图始于:
-      ago: (%{time_in_words_ago}前)
+      ago: (%{time_in_words_ago} 前)
       ct status: 贡献者条款:
       ct undecided: 未决定
       ct declined: 已拒绝
-      ct accepted: 接受于%{ago}
-      latest edit: '%{ago}的最后编辑:'
+      ct accepted: 接受于 %{ago} 
+      latest edit: '%{ago} 的最后编辑:'
       email address: 电子邮件地址:
       created from: 创建于:
       status: 状态:
       spam score: 垃圾邮件评分:
       description: 说明
       user location: 用户位置
-      if set location: 如果你设定你的位置,一张精美的地图及其他相关信息将出现在下方。你可以通过你的%{settings_link}页面来设置你的位置。
+      if set location: 如果您设定您的位置,一张精美的地图及其他相关信息将出现在下方。您可以通过您的%{settings_link}页面来设置您的位置。
       settings_link_text: 设置
-      your friends: 的朋友
-      no friends: 还没有添加任何好友。
-      km away: '%{count}千米远'
-      m away: '%{count}米远'
+      your friends: 的朋友
+      no friends: 还没有添加任何好友。
+      km away: '%{count} 千米远'
+      m away: '%{count} 米远'
       nearby users: 其他附近的用户
       no nearby users: 附近没有在进行制图的用户。
       role:
@@ -1712,12 +1739,12 @@ zh-CN:
       unhide_user: 取消隐藏此用户
       delete_user: 删除此用户
       confirm: 确认
-      friends_changesets: 朋友的变更集
+      friends_changesets: 朋友的修改集合
       friends_diaries: 朋友的日记文章
-      nearby_changesets: 附近用户的变更集
+      nearby_changesets: 附近用户的修改集合
       nearby_diaries: 附近用户的日记文章
     popup:
-      your location: 的位置
+      your location: 的位置
       nearby mapper: 附近绘图者
       friend: 朋友
     account:
@@ -1725,7 +1752,7 @@ zh-CN:
       my settings: 我的设置
       current email address: 当前电子邮件地址:
       new email address: 新电子邮件地址:
-      email never displayed publicly: (不公开显示)
+      email never displayed publicly: (从不公开显示)
       openid:
         openid: OpenID:
         link: http://wiki.openstreetmap.org/wiki/OpenID
@@ -1739,14 +1766,14 @@ zh-CN:
         disabled link text: 我为什么不能编辑?
       public editing note:
         heading: 公开编辑
-        text: 目前你的编辑是匿名的,人们不能发送邮件给你或看到你的位置。为了显示你的编辑,让别人通过网站与你联系,请点击下面的按钮。<b>由于 0.6
-          API 的转换,只有公开的用户可以编辑地图数据</b>。(<a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">知道为什么</a>)。<ul><li>你的电子邮件地址将不会被因为成为公开用户而被透露。</li><li>此操作无法撤销,所有新用户现在都默认为公开的。</li></ul>
+        text: 目前您的编辑是匿名的,人们不能发送邮件给您或看到您的位置。为了显示您的编辑,让别人通过网站与您联系,请点击下面的按钮。<b>由于 0.6
+          API 的转换,只有公开的用户可以编辑地图数据</b>。(<a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">了解为什么</a>)。<ul><li>您的电子邮件地址将不会被因为成为公开用户而被透露。</li><li>此操作无法撤销,所有新用户现在都默认为公开的。</li></ul>
       contributor terms:
         heading: 贡献者条款:
-        agreed: 已同意新的贡献者条款。
-        not yet agreed: 还没有同意新的贡献者条款。
-        review link text: 请跟随此链接,方便查看并接受新的贡献者条款。
-        agreed_with_pd: 你也将你的编辑释于公共领域。
+        agreed: 已同意新的贡献者条款。
+        not yet agreed: 还没有同意新的贡献者条款。
+        review link text: 请跟随此链接,方便查看并接受新的贡献者条款。
+        agreed_with_pd: 您也将您的编辑释于公共领域。
         link: http://www.osmfoundation.org/wiki/License/Contributor_Terms
         link text: 这是什么?
       profile description: 基本信息说明:
@@ -1754,66 +1781,66 @@ zh-CN:
       preferred editor: 首选编辑器:
       image: 图像:
       gravatar:
-        gravatar: 使用Gravatar
+        gravatar: 使用 Gravatar
         link: http://wiki.openstreetmap.org/wiki/Gravatar
         link text: 这是什么?
       new image: 添加图像
       keep image: 保持当前图像
       delete image: 删除当前图像
       replace image: 替换当前图像
-      image size hint: (正方形图像,尺寸至少为100x100)
+      image size hint: (正方形图像,尺寸至少为100x100)
       home location: 住所位置:
-      no home location: 你还没有输入你的住所位置。
+      no home location: 您还没有输入您的住所位置。
       latitude: 纬度:
       longitude: 经度:
       update home location on click: 点击地图时更新所在位置?
-      save changes button: 保存变更
+      save changes button: 保存修改
       make edits public button: 公开我所有的编辑
       return to profile: 返回基本信息
-      flash update success confirm needed: 成功更新用户信息。 查看你的邮箱以确认你的新邮箱地址。
+      flash update success confirm needed: 成功更新用户信息。 查看您的邮箱以确认您的新邮箱地址。
       flash update success: 成功更新用户信息。
     confirm:
-      heading: 检查的电子邮件!
-      introduction_1: 我们给发送了确认邮件。
-      introduction_2: 点击电子邮件中的链接确认你的账户,然后你就可以开始绘制地图了。
-      press confirm button: 按下面的确认按钮激活的账户。
+      heading: 检查的电子邮件!
+      introduction_1: 我们给发送了确认邮件。
+      introduction_2: 点击电子邮件中的链接确认您的账户,然后您就可以开始绘制地图了。
+      press confirm button: 按下面的确认按钮激活的账户。
       button: 确认
       already active: 该账户已经确认。
       unknown token: 确认码已经过期或不存在。
-      reconfirm_html: 如果需要我们重新发送确认邮件,<a href="%{reconfirm}">请点击这里</a>。
+      reconfirm_html: 如果需要我们重新发送确认邮件,<a href="%{reconfirm}">请点击这里</a>。
     confirm_resend:
-      success: 我们已经发送一封新的确认电子邮件到 %{email},只要你确认你的帐户,你就可以开始制图了。<br /><br />如果你使用的反垃圾邮件系统发送确认请求,那么请确保你的白名单中有
+      success: 我们已经发送一封新的确认电子邮件到 %{email},只要您确认您的帐户,您就可以开始制图了。<br /><br />如果您使用的反垃圾邮件系统发送确认请求,那么请确保您的白名单中有
         webmaster@openstreetmap.org,因为我们无法回复任何确认请求。
       failure: 用户 %{name} 未找到。
     confirm_email:
-      heading: 确认电子邮件地址变更
-      press confirm button: 按下面的确认按钮以确认的新电子邮件地址。
+      heading: 确认电子邮件地址修改
+      press confirm button: 按下面的确认按钮以确认的新电子邮件地址。
       button: 确认
-      success: 已确认你的电子邮件地址,感谢你的注册!
+      success: 已确认您的电子邮件地址,感谢您的注册!
       failure: 具有此令牌的电子邮件地址已经确认过了。
     set_home:
-      flash success: 成功保存所在位置
+      flash success: 成功保存所在位置
     go_public:
-      flash success: 你的所有编辑现在均已公开,现在允许你开始编辑。
+      flash success: 您的所有编辑现在均已公开,现在允许您开始编辑。
     make_friend:
-      heading: 添加%{user}为朋友?
+      heading: 添加 %{user} 为朋友?
       button: 添加为朋友
-      success: '%{name}现在是你的好友!'
+      success: '%{name} 现在是您的好友!'
       failed: 对不起,未能添加 %{name} 为朋友。
-      already_a_friend: 已经和 %{name} 是朋友了。
+      already_a_friend: 已经和 %{name} 是朋友了。
     remove_friend:
-      heading: 删除朋友%{user}?
+      heading: 删除朋友 %{user}?
       button: 删除朋友
-      success: '%{name}已从你的朋友中删除。'
-      not_a_friend: '%{name}不是你的朋友。'
+      success: '%{name} 已从您的朋友中删除。'
+      not_a_friend: '%{name} 不是您的朋友。'
     filter:
-      not_an_administrator: 必须是管理员才能执行该操作。
+      not_an_administrator: 必须是管理员才能执行该操作。
     list:
       title: 用户
       heading: 用户
       showing:
-        one: '%{page}页(%{items}的第%{first_item}页)'
-        other: '%{page}页(%{items}的第%{first_item}至%{last_item}页)'
+        one: '%{page} 页(%{items} 的第 %{first_item} 页)'
+        other: '%{page} 页(%{items} 的第 %{first_item} 至 %{last_item} 页)'
       summary: '%{name} 由 %{ip_address} 于 %{date} 创建'
       summary_no_ip: '%{name} 创建于 %{date}'
       confirm: 确认所选用户
@@ -1825,34 +1852,34 @@ zh-CN:
       webmaster: 网站管理员
       body: |-
         <p>
-        对不起,的帐户已因可疑
+        对不起,的帐户已因可疑
         活动被自动暂停。
         </p>
         <p>
-        这项决定将在短时间内由管理员审核,或者如果想讨论这一点
-        ,可以联系%{webmaster}。
+        这项决定将在短时间内由管理员审核,或者如果想讨论这一点
+        ,可以联系 %{webmaster}。
         </p>
   user_role:
     filter:
-      not_an_administrator: 只有管理员可以执行用户角色管理,而不是管理员。
+      not_an_administrator: 只有管理员可以执行用户角色管理,而不是管理员。
       not_a_role: 字串 '%{role}' 不是有效的角色。
       already_has_role: 这个用户已经有角色 %{role}。
       doesnt_have_role: 这个用户没有角色 %{role}。
     grant:
       title: 确认角色授予
       heading: 确认角色授予
-      are_you_sure: 确定要赋予用户 '%{name}' 角色 '%{role}' 吗?
+      are_you_sure: 确定要赋予用户 '%{name}' 角色 '%{role}' 吗?
       confirm: 确认
       fail: 无法授予用户 '%{name}' 角色 '%{role}'。请检查用户和角色是否都正确。
     revoke:
       title: 确认角色吊销
       heading: 确认角色吊销
-      are_you_sure: 确定要吊销用户 '%{name}' 角色 '%{role}' 吗?
+      are_you_sure: 确定要吊销用户 '%{name}' 角色 '%{role}' 吗?
       confirm: 确认
       fail: 无法吊销用户 '%{name}' 角色 '%{role}'。请检查用户和角色是否都正确。
   user_block:
     model:
-      non_moderator_update: å¿\85须为管ç\90\86å\91\98æ\89\8dè\83½å\88\9b建æ\88\96æ\9b´æ\96°ä¸\80个å\9d\97
+      non_moderator_update: å¿\85须为管ç\90\86å\91\98æ\89\8dè\83½å\88\9b建æ\88\96æ\9b´æ\96°ä¸\80个å°\81ç¦\81
       non_moderator_revoke: 必须为管理员才能撤消块。
     not_found:
       sorry: 对不起,未找到 ID 为 %{id} 的用户封禁。
@@ -1860,7 +1887,7 @@ zh-CN:
     new:
       title: 正在建立对 %{name} 的封禁
       heading: 正在建立对 %{name} 的封禁
-      reason: '%{name} 之所以被封禁的原因。请以冷静、合理的态度,尽量详细的说明有关情况。请记住,该信息将被公开。并非所有用户都了解社区的术语,所以请尝试使用较通俗的说法。'
+      reason: '%{name} 被封禁的原因。请尽可能以冷静、合理的态度,尽量详细的说明有关情况,并请记住,该信息将被公开。并非所有用户都了解社区的术语,所以请尝试使用较通俗的说法。'
       period: 从现在开始,此用户将被 API 阻挡的时间。
       submit: 创建封禁
       tried_contacting: 我已联系此用户并请他们停止。
@@ -1868,9 +1895,9 @@ zh-CN:
       needs_view: 用户需要先登录,然后此封禁将被清除。
       back: 查看所有封禁
     edit:
-      title: 编辑对%{name}的封禁
-      heading: 编辑对%{name}的封禁
-      reason: '%{name} 之所以被封禁的原因。请以冷静、合理的态度,尽量详细的说明有关情况。请记住,并非所有用户都了解社区的术语,所以请尝试使用较通俗的说法。'
+      title: 编辑对 %{name} 的封禁
+      heading: 编辑对 %{name} 的封禁
+      reason: '%{name} 被封禁的原因。请尽可能以冷静、合理的态度,尽量详细的说明有关情况。请记住,并非所有用户都了解社区的术语,所以请尝试使用较通俗的说法。'
       period: 从现在开始,该用户要被封禁不能使用 API 多久。
       submit: 更新封禁
       show: 查看此封禁
@@ -1889,100 +1916,101 @@ zh-CN:
     index:
       title: 用户的封禁
       heading: 用户封禁列表
-      empty: 尚未设任何封禁。
+      empty: 尚未设任何封禁。
     revoke:
       title: 正在撤销对 %{block_on} 的封禁
       heading: 正在撤销 %{block_by} 对 %{block_on} 的封禁
       time_future: 此封禁将于 %{time} 结束。
       past: 此封禁已在 %{time} 之前结束,现在不能被撤销。
-      confirm: 确定要撤销该封禁?
+      confirm: 确定要撤销该封禁?
       revoke: 撤销!
       flash: 该封禁已经被撤销。
     period:
-      one: 1小时
-      other: '%{count}小时'
+      one: 1 小时
+      other: '%{count} 小时'
     partial:
       show: 显示
       edit: 编辑
       revoke: 撤销!
-      confirm: 确定吗?
+      confirm: 确定吗?
       display_name: 封禁的用户
       creator_name: 创建者
       reason: 封禁的原因
       status: 状态
       revoker_name: 撤销者
-      not_revoked: (未撤销)
-      showing_page: 第%{page}
+      not_revoked: (未撤销)
+      showing_page: 第 %{page} 
       next: 下一页 »
       previous: « 上一页
     helper:
-      time_future: 结束于%{time}。
+      time_future: 结束于 %{time}。
       until_login: 用户登录时激活。
-      time_past: 结束于%{time}前。
+      time_past: 结束于 %{time} 前。
     blocks_on:
-      title: 对%{name}的封禁
-      heading: 对%{name}的封禁列表
-      empty: '%{name}还没有被封禁。'
+      title: 对 %{name} 的封禁
+      heading: 对 %{name} 的封禁列表
+      empty: '%{name} 还没有被封禁。'
     blocks_by:
-      title: '%{name}执行的封禁'
-      heading: '%{name}执行的封禁列表'
-      empty: '%{name}还没有执行任何封禁。'
+      title: '%{name} 执行的封禁'
+      heading: '%{name} 执行的封禁列表'
+      empty: '%{name} 还没有执行任何封禁。'
     show:
-      title: '%{block_on}被%{block_by}封禁'
-      heading: '%{block_on}被%{block_by}封禁'
-      time_future: 结束于%{time}
-      time_past: 结束于%{time}
+      title: '%{block_on} 被 %{block_by} 封禁'
+      heading: '%{block_on} 被 %{block_by} 封禁'
+      time_future: 结束于 %{time}
+      time_past: 结束于 %{time} 
       status: 状态
       show: 显示
       edit: 编辑
       revoke: 撤销!
-      confirm: 确定吗?
+      confirm: 确定吗?
       reason: 封禁的原因:
       back: 查看所有封禁
       revoker: 撤销者:
       needs_view: 用户需要在该封禁清除前登录。
   note:
     description:
-      opened_at_html: 于%{when}前创建
-      opened_at_by_html: '%{user}于%{when}前创建'
-      commented_at_html: 于%{when}前更新
-      commented_at_by_html: '%{user}于%{when}前更新'
-      closed_at_html: 于%{when}前解决
-      closed_at_by_html: '%{user}于%{when}前解决'
-      reopened_at_html: 于%{when}前重启
-      reopened_at_by_html: '%{user}于%{when}前重启'
+      opened_at_html: 于 %{when} 前创建
+      opened_at_by_html: '%{user} 于 %{when} 前创建'
+      commented_at_html: 于 %{when} 前更新
+      commented_at_by_html: '%{user} 于 %{when} 前更新'
+      closed_at_html: 于 %{when} 前解决
+      closed_at_by_html: '%{user} 于 %{when} 前解决'
+      reopened_at_html: 于 %{when} 前重新激活
+      reopened_at_by_html: '%{user} 于 %{when} 前重新激活'
     rss:
-      title: OpenStreetMap注释
-      description_area: 在你的区域[(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]报告、评论或关闭的注释的列表
-      description_item: 注释%{id}的RSS feed
-      opened: 新注释(靠近%{place})
-      commented: 新评论(靠近%{place})
-      closed: 关闭的注释(靠近%{place})
-      reopened: 重启的注释(靠近%{place})
+      title: OpenStreetMap 笔记
+      description_area: 在您的区域 [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
+        报告、开放或关闭的笔记列表
+      description_item: 笔记 %{id} 的 RSS feed
+      opened: 新笔记(靠近 %{place})
+      commented: 新评论(靠近 %{place})
+      closed: 关闭的笔记(靠近 %{place})
+      reopened: 重新激活的笔记(靠近 %{place})
     entry:
       comment: 评论
-      full: 完整注释
+      full: 完整笔记
     mine:
-      title: '%{user}提交或评论的注释'
-      heading: '%{user}的注释'
-      subheading: '%{user}提交或评论的注释'
+      title: '%{user} 提交或评论的笔记'
+      heading: '%{user} 的笔记'
+      subheading: '%{user} 提交或评论的笔记'
       id: ID
       creator: 创建者
       description: 说明
       created_at: 创建于
-      last_changed: 最后变更
-      ago_html: '%{when}前'
+      last_changed: 最后修改
+      ago_html: '%{when} 前'
   javascripts:
     close: 关闭
     share:
       title: 分享
       cancel: 取消
       image: 图像
-      link: 链接或HTML
+      link: 链接或 HTML
       long_link: 链接
       short_link: 短链接
       embed: HTML
-      custom_dimensions: 设自定义尺寸
+      custom_dimensions: 设自定义尺寸
       format: 格式:
       scale: 比例:
       image_size: 标准图层图像显示尺寸
@@ -2002,7 +2030,7 @@ zh-CN:
         out: 缩小
       locate:
         title: 显示我的位置
-        popup: 你离该点还有{distance}{unit}
+        popup: 您离该点还有 {distance} {unit}
       base:
         standard: 标准
         cycle_map: 自行车地图
@@ -2011,31 +2039,47 @@ zh-CN:
         hot: Humanitarian
       layers:
         header: 地图图层
-        notes: 地图注释
+        notes: 地图笔记
         data: 地图数据
         overlays: 启用解决地图问题的覆盖层
         title: 图层
-      copyright: © <a href='%{copyright_url}'>OpenStreetMap贡献者</a>
+      copyright: © <a href='%{copyright_url}'>OpenStreetMap 贡献者</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: 放大地图以查看注释
+      createnote_tooltip: 添加笔记至地图
+      createnote_disabled_tooltip: 放大地图以添加笔记
+      map_notes_zoom_in_tooltip: 放大地图以查看笔记
       map_data_zoom_in_tooltip: 放大地图以查看数据
+      queryfeature_tooltip: 查询特征
+      queryfeature_disabled_tooltip: 放大地图以查询特征
+    changesets:
+      show:
+        comment: 评论
+        subscribe: 订阅
+        unsubscribe: 退订
+        hide_comment: 隐藏
+        unhide_comment: 取消隐藏
     notes:
       new:
-        intro: 发现错误或缺少些什么东西吗?请告诉其他地图制作者以便于我们更正错误。将标记移动到正确的位置并输入备注解释当前问题。(请不要在此处输入个人信息或任何版权保护的地图相关信息或目录列表。)
-        add: 添加注释
+        intro: 发现错误或缺少些什么东西吗?请告诉其他地图制作者以便于我们更正错误。将标记移动到正确的位置并输入备注解释当前问题。(请不要在此处输入个人信息或任何版权保护的地图相关信息或目录列表。)
+        add: 添加笔记
       show:
-        anonymous_warning: 该注释包括来自匿名用户的应该独立核实的评论
+        anonymous_warning: 该笔记包含匿名用户的评论,应独立地予以核实
         hide: 隐藏
         resolve: 解决
         reactivate: 重启
         comment_and_resolve: 评论与解决
         comment: 评论
-    edit_help: 移动地图并在你想编辑的位置放大,然后点击这里。
+    edit_help: 移动地图并在您想编辑的位置放大,然后点击这里。
+    query:
+      node: 节点
+      way: 路径
+      relation: 关系
+      nothing_found: 没有找到特征
+      error: 连接 %{server} 时出错:%{error}
+      timeout: 连接 %{server} 超时
   redaction:
     edit:
       description: 说明
@@ -2058,7 +2102,7 @@ zh-CN:
       user: 创建者:
       edit: 编辑该修订
       destroy: 删除该修订
-      confirm: 确定吗?
+      confirm: 确定吗?
     create:
       flash: 修订已创建。
     update:
index 23538ac1e2ce5cb707792a7b06ae5da96a9619e0..59c68021617b124815150155c03f28758b8d19b7 100644 (file)
@@ -138,11 +138,16 @@ zh-TW:
       way_paginated: 路線(%{count}的%{x}-%{y})
       relation: 關係(%{count})
       relation_paginated: 關係(%{count}的%{x}-%{y})
+      comment: 留言(%{count})
+      hidden_commented_by: 隱藏來自%{user},<abbr title='%{exact_time}'>%{when} ago</abbr>的評論
+      commented_by: '%{user}於<abbr title=''%{exact_time}''>%{when}前</abbr>發表的評論'
       changesetxml: 變更組合 XML
       osmchangexml: osmChange格式 XML
       feed:
         title: 變更組合 %{id}
         title_comment: 變更組合 %{id} - %{comment}
+      join_discussion: 登入後參與討論
+      discussion: 討論
     node:
       title: 節點:%{name}
       history_title: 節點歷史:%{name}
@@ -197,7 +202,7 @@ zh-TW:
         key: '%{key}標籤的wiki說明頁面'
         tag: '%{key}=%{value}標籤的wiki說明頁面'
       wikidata_link: 維基數據上的%{page}項目
-      wikipedia_link: 維基百科上的%{page}條目
+      wikipedia_link: 維基百科上的 %{page} 條目
       telephone_link: 打給 %{phone_number}
     note:
       title: 節點:%{id}
@@ -215,6 +220,11 @@ zh-TW:
       reopened_by: 於<abbr title='%{exact_time}'>%{when}前</abbr>由%{user}重開
       reopened_by_anonymous: 於<abbr title='%{exact_time}'>%{when}前</abbr>由匿名用户重開
       hidden_by: 於<abbr title='%{exact_time}'>%{when}前</abbr>由%{user}隱藏
+    query:
+      title: 查詢圖徵
+      introduction: 點擊地圖以尋找附近的圖徵
+      nearby: 附近圖徵
+      enclosing: 區域內圖徵
   changeset:
     changeset_paging_nav:
       showing_page: 第%{page}頁
@@ -228,7 +238,7 @@ zh-TW:
       id: ID
       saved_at: 儲存於
       user: 使用者
-      comment: è¨»è§£
+      comment: è©\95è«\96
       area: 區域
     list:
       title: 變更組合
@@ -244,6 +254,13 @@ zh-TW:
       load_more: 載入更多
     timeout:
       sorry: 對不起,索取您所要求的變更組合清單,花費時間過長。
+    rss:
+      title_all: OpenStreetMap變更組合討論
+      title_particular: OpenStreetMap變更組合%{changeset_id}討論
+      comment: '%{author}對變更組合#%{changeset_id}的新評論'
+      commented_at_html: 於%{when}前更新
+      commented_at_by_html: 於%{when}前由%{user}更新
+      full: 完整討論
   diary_entry:
     new:
       title: 新日記項目
@@ -402,7 +419,7 @@ zh-TW:
           biergarten: 啤酒花園
           brothel: 妓院
           bureau_de_change: 找換店
-          bus_station: å·´å£«ç¸½
+          bus_station: å®¢é\81\8b
           cafe: 咖啡廳
           car_rental: 租車
           car_sharing: 汽車共用
@@ -527,7 +544,7 @@ zh-TW:
           primary_link: 主要道路
           proposed: 擬議道路
           raceway: 賽道
-          residential: 住宅道路
+          residential: 住宅道路
           rest_area: 休息區
           road: 道路
           secondary: 次級道路
@@ -738,6 +755,8 @@ zh-TW:
           tram: 電車軌道
           tram_stop: 電車站
           yard: 鐵路站場
+        route:
+          bus: 公車路線
         shop:
           alcohol: 無許可證
           antiques: 古玩店
@@ -937,10 +956,6 @@ zh-TW:
       text: 進行捐款
     learn_more: 了解更多
     more: 更多
-    sotm_header: State of the Map 2014
-    sotm_line_1: 第8屆年會
-    sotm_line_2: 2014年11月7~9日
-    sotm_line_3: 阿根庭布宜諾艾莉絲
   license_page:
     foreign:
       title: 關於這個翻譯
@@ -1174,6 +1189,16 @@ zh-TW:
         your_note: '%{commenter} 已經再次開啟你其中一筆接近 %{place} 的地圖筆記。'
         commented_note: '%{commenter}重新啟用了一個您曾留言的地圖註記。該註記位於%{place}附近。'
       details: 關於註記的更多詳細訊息可在%{url}找到。
+    changeset_comment_notification:
+      greeting: 您好,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter}% 在您的變更組合留言'
+        subject_other: '[OpenStreetMap] %{commenter} 就您感興趣的變更組合留言'
+        your_changeset: '%{commenter} 在您於 %{time} 創建的變更組合留言'
+        commented_changeset: '%{commenter} 在您監視,由 %{changeset_author} 於 %{time} 創建的變更組合留言'
+        partial_changeset_with_comment: 評論“%{changeset_comment}”
+        partial_changeset_without_comment: 沒有評論
+      details: 關於變更組合的詳情可在%{url}找到。
   message:
     inbox:
       title: 收件匣
@@ -1333,7 +1358,7 @@ zh-TW:
           building: 重要建築
           station: 鐵路站
           summit:
-          - 提交
+          - 頂峰
           - 山頂
           tunnel: 虛線描邊 = 隧道
           bridge: 黑線描邊 = 橋樑
@@ -1527,7 +1552,7 @@ zh-TW:
       application: 應用程式名稱
       issued_at: 簽發於
       revoke: 註銷!
-      my_apps: 我的戶端應用程式
+      my_apps: 我的戶端應用程式
       no_apps: 您是否有想要註冊以使用於 %{oauth} 標準的應用程式?您必須先註冊您的網頁應用程式,才能對這個服務進行 OAuth 要求。
       registered_apps: 您已經註冊下列客戶端應用程式:
       register_new: 註冊您的應用程式
@@ -1550,7 +1575,7 @@ zh-TW:
     create:
       flash: 註冊資訊成功
     update:
-      flash: 更新戶端資訊成功
+      flash: 更新戶端資訊成功
     destroy:
       flash: 已銷毀此客戶端應用程式註冊
   user:
@@ -2024,6 +2049,15 @@ zh-TW:
       createnote_disabled_tooltip: 放大以在地圖加入筆記
       map_notes_zoom_in_tooltip: 放大以查看筆記
       map_data_zoom_in_tooltip: 放大以查看地圖圖資
+      queryfeature_tooltip: 查詢圖徵
+      queryfeature_disabled_tooltip: 放大地圖以查询圖徵
+    changesets:
+      show:
+        comment: 留言
+        subscribe: 訂閱
+        unsubscribe: 取消訂閱
+        hide_comment: 隱藏
+        unhide_comment: 取消隱藏
     notes:
       new:
         intro: 發現錯誤或缺少些什麼東西嗎?請告訴其他地圖製作者以便於我們處理。將標記移動到正確的位置並輸入筆記,以解釋問題。(切勿在此輸入個人資料、抄襲自其他地圖的資訊,或者目錄清單。)
@@ -2036,6 +2070,13 @@ zh-TW:
         comment_and_resolve: 評論並關閉
         comment: 提交評論
     edit_help: 將地圖移至你想編輯的位置並放大,然後按這裡。
+    query:
+      node: 節點
+      way: 路徑
+      relation: 關係
+      nothing_found: 找不到圖徵
+      error: '%{server}連線錯誤:%{error}'
+      timeout: '%{server}連線逾時'
   redaction:
     edit:
       description: 說明
index d952c0a07693b60cf1297ff987d4a60c9c996874..34b0203408016ccc39091c611f725baad7d80be4 100644 (file)
@@ -2,13 +2,13 @@ require 'migrate'
 
 class CreateOsmDb < ActiveRecord::Migration
   def self.up
-    create_table "current_nodes", innodb_table do |t|
-      t.column "id",        :bigint,   :limit => 64,                 :null => false
-      t.column "latitude",  :double
-      t.column "longitude", :double
-      t.column "user_id",   :bigint,   :limit => 20
+    create_table "current_nodes", :id => false do |t|
+      t.column "id",        :bigint, :null => false
+      t.column "latitude",  :float, :limit => 53
+      t.column "longitude", :float, :limit => 53
+      t.column "user_id",   :bigint
       t.column "visible",   :boolean
-      t.column "tags",      :text,                   :default => "", :null => false
+      t.column "tags",      :text, :default => "", :null => false
       t.column "timestamp", :datetime
     end
 
@@ -16,15 +16,13 @@ class CreateOsmDb < ActiveRecord::Migration
     add_index "current_nodes", ["latitude", "longitude"], :name => "current_nodes_lat_lon_idx"
     add_index "current_nodes", ["timestamp"], :name => "current_nodes_timestamp_idx"
 
-    change_column :current_nodes, :id, :bigint_auto_64
-
-    create_table "current_segments", innodb_table do |t|
-      t.column "id",        :bigint,   :limit => 64,                 :null => false
-      t.column "node_a",    :bigint,   :limit => 64
-      t.column "node_b",    :bigint,   :limit => 64
-      t.column "user_id",   :bigint,   :limit => 20
+    create_table "current_segments", :id => false do |t|
+      t.column "id",        :bigint, :null => false
+      t.column "node_a",    :bigint
+      t.column "node_b",    :bigint
+      t.column "user_id",   :bigint
       t.column "visible",   :boolean
-      t.column "tags",      :text,                   :default => "", :null => false
+      t.column "tags",      :text, :default => "", :null => false
       t.column "timestamp", :datetime
     end
 
@@ -32,51 +30,49 @@ class CreateOsmDb < ActiveRecord::Migration
     add_index "current_segments", ["node_a"], :name => "current_segments_a_idx"
     add_index "current_segments", ["node_b"], :name => "current_segments_b_idx"
 
-    change_column :current_segments, :id, :bigint_auto_64
-
-    create_table "current_way_segments", innodb_table do |t|
-      t.column "id",          :bigint, :limit => 64
-      t.column "segment_id",  :bigint, :limit => 11
-      t.column "sequence_id", :bigint, :limit => 11
+    create_table "current_way_segments", :id => false do |t|
+      t.column "id",          :bigint
+      t.column "segment_id",  :bigint
+      t.column "sequence_id", :bigint
     end
 
     add_index "current_way_segments", ["segment_id"], :name => "current_way_segments_seg_idx"
     add_index "current_way_segments", ["id"], :name => "current_way_segments_id_idx"
 
-    create_table "current_way_tags", myisam_table do |t|
-      t.column "id", :bigint, :limit => 64
-      t.column "k",  :string,                :default => "", :null => false
-      t.column "v",  :string,                :default => "", :null => false
+    create_table "current_way_tags", :id => false do |t|
+      t.column "id", :bigint
+      t.column "k",  :string, :default => "", :null => false
+      t.column "v",  :string, :default => "", :null => false
     end
 
     add_index "current_way_tags", ["id"], :name => "current_way_tags_id_idx"
-    add_fulltext_index "current_way_tags", "v"
+    add_index "current_way_tags", "v", :name => "current_way_tags_v_idx"
 
-    create_table "current_ways", myisam_table do |t|
-      t.column "id",        :bigint_pk_64, :null => false
-      t.column "user_id",   :bigint,   :limit => 20
+    create_table "current_ways", :id => false do |t|
+      t.column "id",        :bigserial, :primary_key => true, :null => false
+      t.column "user_id",   :bigint
       t.column "timestamp", :datetime
       t.column "visible",   :boolean
     end
 
-    create_table "diary_entries", myisam_table do |t|
-      t.column "id",         :bigint_pk, :null => false
-      t.column "user_id",    :bigint,   :limit => 20, :null => false
+    create_table "diary_entries", :id => false do |t|
+      t.column "id",         :bigserial, :primary_key => true, :null => false
+      t.column "user_id",    :bigint, :null => false
       t.column "title",      :string
       t.column "body",       :text
       t.column "created_at", :datetime
       t.column "updated_at", :datetime
     end
 
-    create_table "friends", myisam_table do |t|
-      t.column "id",             :bigint_pk, :null => false
-      t.column "user_id",        :bigint,  :limit => 20, :null => false
-      t.column "friend_user_id", :bigint,  :limit => 20, :null => false
+    create_table "friends", :id => false do |t|
+      t.column "id",             :bigserial, :primary_key => true, :null => false
+      t.column "user_id",        :bigint, :null => false
+      t.column "friend_user_id", :bigint, :null => false
     end
 
     add_index "friends", ["friend_user_id"], :name => "user_id_idx"
 
-    create_table "gps_points", myisam_table do |t|
+    create_table "gps_points", :id => false do |t|
       t.column "altitude",  :float
       t.column "user_id",   :integer
       t.column "trackid",   :integer
@@ -90,77 +86,77 @@ class CreateOsmDb < ActiveRecord::Migration
     add_index "gps_points", ["user_id"], :name => "points_uid_idx"
     add_index "gps_points", ["gpx_id"], :name => "points_gpxid_idx"
 
-    create_table "gpx_file_tags", myisam_table do |t|
-      t.column "gpx_id", :bigint,  :limit => 64, :default => 0, :null => false
+    create_table "gpx_file_tags", :id => false do |t|
+      t.column "gpx_id", :bigint, :default => 0, :null => false
       t.column "tag",    :string
-      t.column "id",     :bigint_pk, :null => false
+      t.column "id",     :bigserial, :primary_key => true, :null => false
     end
 
     add_index "gpx_file_tags", ["gpx_id"], :name => "gpx_file_tags_gpxid_idx"
 
-    create_table "gpx_files", myisam_table do |t|
-      t.column "id",          :bigint_pk_64,                   :null => false
-      t.column "user_id",     :bigint,   :limit => 20
-      t.column "visible",     :boolean,                :default => true, :null => false
-      t.column "name",        :string,                 :default => "",   :null => false
-      t.column "size",        :bigint,   :limit => 20
-      t.column "latitude",    :double
-      t.column "longitude",   :double
+    create_table "gpx_files", :id => false do |t|
+      t.column "id",          :bigserial, :primary_key => true, :null => false
+      t.column "user_id",     :bigint
+      t.column "visible",     :boolean, :default => true, :null => false
+      t.column "name",        :string, :default => "", :null => false
+      t.column "size",        :bigint
+      t.column "latitude",    :float, :limit => 53
+      t.column "longitude",   :float, :limit => 53
       t.column "timestamp",   :datetime
-      t.column "public",      :boolean,                :default => true, :null => false
-      t.column "description", :string,                 :default => ""
+      t.column "public",      :boolean, :default => true, :null => false
+      t.column "description", :string, :default => ""
       t.column "inserted",    :boolean
     end
 
     add_index "gpx_files", ["timestamp"], :name => "gpx_files_timestamp_idx"
     add_index "gpx_files", ["visible", "public"], :name => "gpx_files_visible_public_idx"
 
-    create_table "gpx_pending_files", myisam_table do |t|
+    create_table "gpx_pending_files", :id => false do |t|
       t.column "originalname", :string
       t.column "tmpname",      :string
-      t.column "user_id",      :bigint,  :limit => 20
+      t.column "user_id",      :bigint
     end
 
-    create_table "messages", myisam_table do |t|
-      t.column "id",                :bigint_pk,                                 :null => false
-      t.column "user_id",           :bigint,   :limit => 20,                    :null => false
-      t.column "from_user_id",      :bigint,   :limit => 20,                    :null => false
-      t.column "from_display_name", :string,                 :default => ""
+    create_table "messages", :id => false do |t|
+      t.column "id",                :bigserial, :primary_key => true, :null => false
+      t.column "user_id",           :bigint, :null => false
+      t.column "from_user_id",      :bigint, :null => false
+      t.column "from_display_name", :string, :default => ""
       t.column "title",             :string
       t.column "body",              :text
       t.column "sent_on",           :datetime
-      t.column "message_read",      :boolean,                :default => false
-      t.column "to_user_id",        :bigint,   :limit => 20,                    :null => false
+      t.column "message_read",      :boolean, :default => false
+      t.column "to_user_id",        :bigint, :null => false
     end
 
     add_index "messages", ["from_display_name"], :name => "from_name_idx"
 
-    create_table "meta_areas", myisam_table do |t|
-      t.column "id",        :bigint_pk_64, :null => false
-      t.column "user_id",   :bigint,  :limit => 20
+    create_table "meta_areas", :id => false do |t|
+      t.column "id",        :bigserial, :primary_key => true, :null => false
+      t.column "user_id",   :bigint
       t.column "timestamp", :datetime
     end
 
-    create_table "nodes", myisam_table do |t|
-      t.column "id",        :bigint,  :limit => 64
-      t.column "latitude",  :double
-      t.column "longitude", :double
-      t.column "user_id",   :bigint,  :limit => 20
+    create_table "nodes", :id => false do |t|
+      t.column "id",        :bigint
+      t.column "latitude",  :float, :limit => 53
+      t.column "longitude", :float, :limit => 53
+      t.column "user_id",   :bigint
       t.column "visible",   :boolean
-      t.column "tags",      :text,                  :default => "", :null => false
+      t.column "tags",      :text, :default => "", :null => false
       t.column "timestamp", :datetime
     end
 
     add_index "nodes", ["id"], :name => "nodes_uid_idx"
     add_index "nodes", ["latitude", "longitude"], :name => "nodes_latlon_idx"
 
-    create_table "segments", myisam_table do |t|
-      t.column "id",        :bigint,  :limit => 64
-      t.column "node_a",    :bigint,  :limit => 64
-      t.column "node_b",    :bigint,  :limit => 64
-      t.column "user_id",   :bigint,  :limit => 20
+    create_table "segments", :id => false do |t|
+      t.column "id",        :bigint
+      t.column "node_a",    :bigint
+      t.column "node_b",    :bigint
+      t.column "user_id",   :bigint
       t.column "visible",   :boolean
-      t.column "tags",      :text,                  :default => "", :null => false
+      t.column "tags",      :text, :default => "", :null => false
       t.column "timestamp", :datetime
     end
 
@@ -168,60 +164,56 @@ class CreateOsmDb < ActiveRecord::Migration
     add_index "segments", ["node_b"], :name => "street_segments_nodeb_idx"
     add_index "segments", ["id"], :name => "street_segment_uid_idx"
 
-    create_table "users", innodb_table do |t|
+    create_table "users", :id => false do |t|
       t.column "email",         :string
-      t.column "id",            :bigint_pk,                    :null => false
+      t.column "id",            :bigserial, :primary_key => true, :null => false
       t.column "token",         :string
-      t.column "active",        :integer,                :default => 0,     :null => false
+      t.column "active",        :integer, :default => 0, :null => false
       t.column "pass_crypt",    :string
       t.column "creation_time", :datetime
       t.column "timeout",       :datetime
-      t.column "display_name",  :string,                 :default => ""
+      t.column "display_name",  :string, :default => ""
       t.column "preferences",   :text
-      t.column "data_public",   :boolean,                :default => false
-      t.column "description",   :text,                   :default => "",    :null => false
-      t.column "home_lat",      :double,                 :default => 1
-      t.column "home_lon",      :double,                 :default => 1
-      t.column "within_lon",    :double
-      t.column "within_lat",    :double
-      t.column "home_zoom",     :integer,  :limit => 2,  :default => 3
+      t.column "data_public",   :boolean, :default => false
+      t.column "description",   :text, :default => "", :null => false
+      t.column "home_lat",      :float, :limit => 53, :default => 1
+      t.column "home_lon",      :float, :limit => 53, :default => 1
+      t.column "within_lon",    :float, :limit => 53
+      t.column "within_lat",    :float, :limit => 53
+      t.column "home_zoom",     :integer, :limit => 2, :default => 3
     end
 
     add_index "users", ["email"], :name => "users_email_idx"
     add_index "users", ["display_name"], :name => "users_display_name_idx"
 
-    create_table "way_segments", myisam_table do |t|
-      t.column "id",          :bigint,  :limit => 64, :default => 0, :null => false
+    create_table "way_segments", :id => false do |t|
+      t.column "id",          :bigint, :default => 0, :null => false
       t.column "segment_id",  :integer
-      t.column "version",     :bigint,  :limit => 20, :default => 0, :null => false
-      t.column "sequence_id", :bigint,  :limit => 11,                :null => false
+      t.column "version",     :bigint, :default => 0, :null => false
+      t.column "sequence_id", :bigint, :null => false
     end
 
     add_primary_key "way_segments", ["id", "version", "sequence_id"]
 
-    change_column "way_segments", "sequence_id", :bigint_auto_11
-
-    create_table "way_tags", myisam_table do |t|
-      t.column "id",      :bigint,  :limit => 64, :default => 0, :null => false
+    create_table "way_tags", :id => false do |t|
+      t.column "id",      :bigint, :default => 0, :null => false
       t.column "k",       :string
       t.column "v",       :string
-      t.column "version", :bigint,  :limit => 20
+      t.column "version", :bigint
     end
 
     add_index "way_tags", ["id", "version"], :name => "way_tags_id_version_idx"
 
-    create_table "ways", myisam_table do |t|
-      t.column "id",        :bigint,   :limit => 64, :default => 0, :null => false
-      t.column "user_id",   :bigint,   :limit => 20
+    create_table "ways", :id => false do |t|
+      t.column "id",        :bigint, :default => 0, :null => false
+      t.column "user_id",   :bigint
       t.column "timestamp", :datetime
-      t.column "version",   :bigint,   :limit => 20,                   :null => false
-      t.column "visible",   :boolean,                :default => true
+      t.column "version",   :bigint, :null => false
+      t.column "visible",   :boolean, :default => true
     end
 
     add_primary_key "ways", ["id", "version"]
     add_index "ways", ["id"], :name => "ways_id_version_idx"
-
-    change_column "ways", "version", :bigint_auto_20
   end
 
   def self.down
index 630661a0be01c8ea872678d6b830f761b5307178..fb27c91b7bcc8078e1b01245ef5198066642e330 100644 (file)
@@ -2,34 +2,33 @@ require 'migrate'
 
 class CleanupOsmDb < ActiveRecord::Migration
   def self.up
-    change_column "current_nodes", "latitude", :double, :null => false
-    change_column "current_nodes", "longitude", :double, :null => false
-    change_column "current_nodes", "user_id", :bigint, :limit => 20, :null => false
+    change_column "current_nodes", "latitude", :float, :limit => 53, :null => false
+    change_column "current_nodes", "longitude", :float, :limit => 53, :null => false
+    change_column "current_nodes", "user_id", :bigint, :null => false
     change_column "current_nodes", "visible", :boolean, :null => false
     change_column "current_nodes", "timestamp", :datetime, :null => false
     add_primary_key "current_nodes", ["id"]
     remove_index "current_nodes", :name => "current_nodes_id_idx"
 
-    change_column "current_segments", "node_a", :bigint, :limit => 64, :null => false
-    change_column "current_segments", "node_b", :bigint, :limit => 64, :null => false
-    change_column "current_segments", "user_id", :bigint, :limit => 20, :null => false
+    change_column "current_segments", "node_a", :bigint, :null => false
+    change_column "current_segments", "node_b", :bigint, :null => false
+    change_column "current_segments", "user_id", :bigint, :null => false
     change_column "current_segments", "visible", :boolean, :null => false
     change_column "current_segments", "timestamp", :datetime, :null => false
     add_primary_key "current_segments", ["id"]
     remove_index "current_segments", :name => "current_segments_id_visible_idx"
 
-    change_column "current_way_segments", "id", :bigint, :limit => 64, :null => false
-    change_column "current_way_segments", "segment_id", :bigint, :limit => 64, :null => false
-    change_column "current_way_segments", "sequence_id", :bigint, :limit => 11, :null => false
+    change_column "current_way_segments", "id", :bigint, :null => false
+    change_column "current_way_segments", "segment_id", :bigint, :null => false
+    change_column "current_way_segments", "sequence_id", :bigint, :null => false
     add_primary_key "current_way_segments", ["id", "sequence_id"]
     remove_index "current_way_segments", :name => "current_way_segments_id_idx"
 
-    change_column "current_way_tags", "id", :bigint, :limit => 64, :null => false
+    change_column "current_way_tags", "id", :bigint, :null => false
 
-    change_column "current_ways", "user_id", :bigint, :limit => 20, :null => false
+    change_column "current_ways", "user_id", :bigint, :null => false
     change_column "current_ways", "timestamp", :datetime, :null => false
     change_column "current_ways", "visible", :boolean, :null => false
-    change_engine "current_ways", "InnoDB"
 
     change_column "diary_entries", "title", :string, :null => false
     change_column "diary_entries", "body", :text, :null => false
@@ -45,11 +44,11 @@ class CleanupOsmDb < ActiveRecord::Migration
     change_column "gps_points", "trackid", :integer, :null => false
     change_column "gps_points", "latitude", :integer, :null => false
     change_column "gps_points", "longitude", :integer, :null => false
-    change_column "gps_points", "gpx_id", :bigint, :limit => 64, :null => false
+    change_column "gps_points", "gpx_id", :bigint, :null => false
 
     change_column "gpx_file_tags", "tag", :string, :null => false
 
-    change_column "gpx_files", "user_id", :bigint,   :limit => 20, :null => false
+    change_column "gpx_files", "user_id", :bigint, :null => false
     change_column "gpx_files", "timestamp", :datetime, :null => false
     change_column "gpx_files", "description", :string, :default => "", :null => false
     change_column "gpx_files", "inserted", :boolean, :null => false
@@ -67,18 +66,18 @@ class CleanupOsmDb < ActiveRecord::Migration
 
     drop_table "meta_areas"
 
-    change_column "nodes", "id", :bigint, :limit => 64, :null => false
-    change_column "nodes", "latitude", :double, :null => false
-    change_column "nodes", "longitude", :double, :null => false
-    change_column "nodes", "user_id", :bigint, :limit => 20, :null => false
+    change_column "nodes", "id", :bigint, :null => false
+    change_column "nodes", "latitude", :float, :limit => 53, :null => false
+    change_column "nodes", "longitude", :float, :limit => 53, :null => false
+    change_column "nodes", "user_id", :bigint, :null => false
     change_column "nodes", "visible", :boolean, :null => false
     change_column "nodes", "timestamp", :datetime, :null => false
     add_index "nodes", ["timestamp"], :name => "nodes_timestamp_idx"
 
-    change_column "segments", "id", :bigint, :limit => 64, :null => false
-    change_column "segments", "node_a", :bigint, :limit => 64, :null => false
-    change_column "segments", "node_b", :bigint, :limit => 64, :null => false
-    change_column "segments", "user_id", :bigint, :limit => 20, :null => false
+    change_column "segments", "id", :bigint, :null => false
+    change_column "segments", "node_a", :bigint, :null => false
+    change_column "segments", "node_b", :bigint, :null => false
+    change_column "segments", "user_id", :bigint, :null => false
     change_column "segments", "visible", :boolean, :null => false
     change_column "segments", "timestamp", :datetime, :null => false
     add_index "segments", ["timestamp"], :name => "segments_timestamp_idx"
@@ -89,20 +88,20 @@ class CleanupOsmDb < ActiveRecord::Migration
     change_column "users", "creation_time", :datetime, :null => false
     change_column "users", "display_name", :string, :default => "", :null => false
     change_column "users", "data_public", :boolean, :default => false, :null => false
-    change_column "users", "home_lat", :double, :default => nil
-    change_column "users", "home_lon", :double, :default => nil
+    change_column "users", "home_lat", :float, :limit => 53, :default => nil
+    change_column "users", "home_lon", :float, :limit => 53, :default => nil
     remove_index "users", :name => "users_email_idx"
     add_index "users", ["email"], :name => "users_email_idx", :unique => true
     remove_index "users", :name => "users_display_name_idx"
     add_index "users", ["display_name"], :name => "users_display_name_idx", :unique => true
 
-    change_column "way_segments", "segment_id", :bigint, :limit => 64, :null => false
+    change_column "way_segments", "segment_id", :bigint, :null => false
  
     change_column "way_tags", "k", :string, :null => false
     change_column "way_tags", "v", :string, :null => false
-    change_column "way_tags", "version", :bigint, :limit => 20, :null => false
+    change_column "way_tags", "version", :bigint, :null => false
 
-    change_column "ways", "user_id", :bigint, :limit => 20, :null => false
+    change_column "ways", "user_id", :bigint, :null => false
     change_column "ways", "timestamp", :datetime, :null => false
     change_column "ways", "visible", :boolean, :default => true, :null => false
     remove_index "ways", :name => "ways_id_version_idx"
@@ -114,9 +113,9 @@ class CleanupOsmDb < ActiveRecord::Migration
     add_index "ways", ["id"], :name => "ways_id_version_idx"
     change_column "ways", "visible", :boolean, :default => true
     change_column "ways", "timestamp", :datetime
-    change_column "ways", "user_id", :bigint, :limit => 20
+    change_column "ways", "user_id", :bigint
 
-    change_column "way_tags", "version", :bigint, :limit => 20
+    change_column "way_tags", "version", :bigint
     change_column "way_tags", "v", :string, :default => nil
     change_column "way_tags", "k", :string, :default => nil
 
@@ -126,8 +125,8 @@ class CleanupOsmDb < ActiveRecord::Migration
     add_index "users", ["display_name"], :name => "users_display_name_idx"
     remove_index "users", :name => "users_email_idx"
     add_index "users", ["email"], :name => "users_email_idx"
-    change_column "users", "home_lon", :double, :default => 1
-    change_column "users", "home_lat", :double, :default => 1
+    change_column "users", "home_lon", :float, :limit => 53, :default => 1
+    change_column "users", "home_lat", :float, :limit => 53, :default => 1
     change_column "users", "data_public", :boolean, :default => false
     change_column "users", "display_name", :string, :default => ""
     change_column "users", "creation_time", :datetime
@@ -138,22 +137,22 @@ class CleanupOsmDb < ActiveRecord::Migration
     remove_index "segments", :name => "segments_timestamp_idx"
     change_column "segments", "timestamp", :datetime
     change_column "segments", "visible", :boolean
-    change_column "segments", "user_id", :bigint, :limit => 20
-    change_column "segments", "node_b", :bigint, :limit => 64
-    change_column "segments", "node_a", :bigint, :limit => 64
-    change_column "segments", "id", :bigint, :limit => 64
+    change_column "segments", "user_id", :bigint
+    change_column "segments", "node_b", :bigint
+    change_column "segments", "node_a", :bigint
+    change_column "segments", "id", :bigint
 
     remove_index "nodes", :name => "nodes_timestamp_idx"
     change_column "nodes", "timestamp", :datetime
     change_column "nodes", "visible", :boolean
-    change_column "nodes", "user_id", :bigint, :limit => 20
-    change_column "nodes", "longitude", :double
-    change_column "nodes", "latitude", :double
-    change_column "nodes", "id", :bigint, :limit => 64
-
-    create_table "meta_areas", myisam_table do |t|
-      t.column "id",        :bigint_pk_64, :null => false
-      t.column "user_id",   :bigint,  :limit => 20
+    change_column "nodes", "user_id", :bigint
+    change_column "nodes", "longitude", :float, :limit => 53
+    change_column "nodes", "latitude", :float, :limit => 53
+    change_column "nodes", "id", :bigint
+
+    create_table "meta_areas", :id => false do |t|
+      t.column "id", :bigserial, :primary_key => true, :null => false
+      t.column "user_id", :bigint
       t.column "timestamp", :datetime
     end
 
@@ -163,27 +162,27 @@ class CleanupOsmDb < ActiveRecord::Migration
     change_column "messages", "body", :text
     change_column "messages", "title", :string, :default => nil
     add_column "messages", "from_display_name", :string, :default => ""
-    add_column "messages", "user_id", :bigint, :limit => 20, :null => false
+    add_column "messages", "user_id", :bigint, :null => false
     add_index "messages", ["from_display_name"], :name => "from_name_idx"
 
-    create_table "gpx_pending_files", myisam_table do |t|
+    create_table "gpx_pending_files", :id => false do |t|
       t.column "originalname", :string
-      t.column "tmpname",      :string
-      t.column "user_id",      :bigint,  :limit => 20
+      t.column "tmpname", :string
+      t.column "user_id", :bigint
     end
 
     change_column "gpx_files", "inserted", :boolean
     change_column "gpx_files", "description", :string, :default => ""
     change_column "gpx_files", "timestamp", :datetime
-    change_column "gpx_files", "user_id", :bigint,   :limit => 20
+    change_column "gpx_files", "user_id", :bigint
 
     change_column "gpx_file_tags", "tag", :string, :default => nil
 
-    change_column "gps_points", "gpx_id", :integer, :limit => 20
+    change_column "gps_points", "gpx_id", :integer
     change_column "gps_points", "longitude", :integer
     change_column "gps_points", "latitude", :integer
     change_column "gps_points", "trackid", :integer
-    add_column "gps_points", "user_id", :integer, :limit => 20
+    add_column "gps_points", "user_id", :integer
     add_index "gps_points", ["user_id"], :name => "points_uid_idx"
 
     remove_index "friends", :name => "friends_user_id_idx"
@@ -193,34 +192,32 @@ class CleanupOsmDb < ActiveRecord::Migration
     change_column "diary_entries", "body", :text
     change_column "diary_entries", "title", :string, :default => nil
 
-    change_engine "current_ways", "MyISAM"
     change_column "current_ways", "visible", :boolean
     change_column "current_ways", "timestamp", :datetime
-    change_column "current_ways", "user_id", :bigint, :limit => 20
+    change_column "current_ways", "user_id", :bigint
 
-    change_column "current_way_tags", "id", :bigint, :limit => 64
+    change_column "current_way_tags", "id", :bigint
 
     add_index "current_way_segments", ["id"], :name => "current_way_segments_id_idx"
     remove_primary_key "current_way_segments"
-    change_column "current_way_segments", "sequence_id", :bigint, :limit => 11
-    change_column "current_way_segments", "segment_id", :bigint, :limit => 11
-    change_column "current_way_segments", "id", :bigint, :limit => 64
+    change_column "current_way_segments", "sequence_id", :bigint
+    change_column "current_way_segments", "segment_id", :bigint
+    change_column "current_way_segments", "id", :bigint
 
     add_index "current_segments", ["id", "visible"], :name => "current_segments_id_visible_idx"
     remove_primary_key "current_segments"
     change_column "current_segments", "timestamp", :datetime
     change_column "current_segments", "visible", :boolean
-    change_column "current_segments", "user_id", :bigint, :limit => 20
-    change_column "current_segments", "node_b", :bigint, :limit => 64
-    change_column "current_segments", "node_a", :bigint, :limit => 64
+    change_column "current_segments", "user_id", :bigint
+    change_column "current_segments", "node_b", :bigint
+    change_column "current_segments", "node_a", :bigint
     
     add_index "current_nodes", ["id"], :name => "current_nodes_id_idx"
     remove_primary_key "current_nodes"
     change_column "current_nodes", "timestamp", :datetime
     change_column "current_nodes", "visible", :boolean
-    change_column "current_nodes", "user_id", :bigint, :limit => 20
-    change_column "current_nodes", "longitude", :double
-    change_column "current_nodes", "latitude", :double
-    change_column "current_nodes", "id", :bigint_auto_64
+    change_column "current_nodes", "user_id", :bigint
+    change_column "current_nodes", "longitude", :float, :limit => 53
+    change_column "current_nodes", "latitude", :float, :limit => 53
   end
 end
index 5853d4d000a65e3f8cc9e7f6c101f4013559d9a9..69ad969b7432a435dd721b276f5a23509b1f8cda 100644 (file)
@@ -2,7 +2,7 @@ require 'migrate'
 
 class SqlSessionStoreSetup < ActiveRecord::Migration
   def self.up
-    create_table "sessions", :options => innodb_option do |t|
+    create_table "sessions" do |t|
       t.column "session_id", :string
       t.column "data",       :text
       t.column "created_at", :timestamp
index af4b651238fde2c791f2e0471afcea4fb13b1cb6..8b352be3eed7eadd75feecd87b10ee7d76643760 100644 (file)
@@ -2,23 +2,23 @@ require 'migrate'
 
 class UserEnhancements < ActiveRecord::Migration
   def self.up
-    add_column "diary_entries", "latitude", :double
-    add_column "diary_entries", "longitude", :double
+    add_column "diary_entries", "latitude", :float, :limit => 53
+    add_column "diary_entries", "longitude", :float, :limit => 53
     add_column "diary_entries", "language", :string, :limit => 3
 
-    create_table "user_preferences", innodb_table do |t|
-      t.column "user_id", :bigint, :limit => 20, :null => false
-      t.column "k",       :string, :null => false
-      t.column "v",       :string, :null => false
+    create_table "user_preferences", :id => false do |t|
+      t.column "user_id", :bigint, :null => false
+      t.column "k", :string, :null => false
+      t.column "v", :string, :null => false
     end
 
     add_primary_key "user_preferences", ["user_id", "k"]
 
-    create_table "user_tokens", innodb_table do |t|
-      t.column "id",      :bigint_pk, :null => false
-      t.column "user_id", :bigint,   :limit => 20, :null => false
-      t.column "token",   :string,   :null => false
-      t.column "expiry",  :datetime, :null => false
+    create_table "user_tokens", :id => false do |t|
+      t.column "id", :bigserial, :primary_key => true, :null => false
+      t.column "user_id", :bigint, :null => false
+      t.column "token", :string, :null => false
+      t.column "expiry", :datetime, :null => false
     end
 
     add_index "user_tokens", ["token"], :name => "user_tokens_token_idx", :unique => true
@@ -41,8 +41,8 @@ class UserEnhancements < ActiveRecord::Migration
   def self.down
     remove_column "users", "pass_salt"
     remove_column "users", "nearby"
-    add_column "users", "within_lat", :double
-    add_column "users", "within_lon", :double
+    add_column "users", "within_lat", :float, :limit => 53
+    add_column "users", "within_lon", :float, :limit => 53
     add_column "users", "timeout", :datetime
     add_column "users", "token", :string
 
index d429b6fdc8fe36408cdb61d87adb4a159048ade1..fea6d41379ee909ae873923b7571da5346f39efb 100644 (file)
@@ -2,7 +2,7 @@ require 'migrate'
 
 class TileTracepoints < ActiveRecord::Migration
   def self.up
-    add_column "gps_points", "tile", :four_byte_unsigned
+    add_column "gps_points", "tile", :bigint
     add_index "gps_points", ["tile"], :name => "points_tile_idx"
     remove_index "gps_points", :name => "points_idx"
 
index 91f8acb6b1122cde583febf42ca03f1f70abc4df..8bfb6bc3fbca82765ddf2cfb7a63d44898505817 100644 (file)
@@ -39,21 +39,21 @@ class TileNodes < ActiveRecord::Migration
 
     rename_table "current_nodes", "current_nodes_v5"
 
-    create_table "current_nodes", innodb_table do |t|
-      t.column "id",        :bigint_pk_64,                           :null => false
-      t.column "latitude",  :integer,                                :null => false
-      t.column "longitude", :integer,                                :null => false
-      t.column "user_id",   :bigint,   :limit => 20,                 :null => false
-      t.column "visible",   :boolean,                                :null => false
-      t.column "tags",      :text,                   :default => "", :null => false
-      t.column "timestamp", :datetime,                               :null => false
-      t.column "tile",      :integer,                                :null => false
+    create_table "current_nodes", :id => false do |t|
+      t.column "id",        :bigserial, :primary_key => true, :null => false
+      t.column "latitude",  :integer, :null => false
+      t.column "longitude", :integer, :null => false
+      t.column "user_id",   :bigint, :null => false
+      t.column "visible",   :boolean, :null => false
+      t.column "tags",      :text, :default => "", :null => false
+      t.column "timestamp", :datetime, :null => false
+      t.column "tile",      :integer, :null => false
     end
 
     add_index "current_nodes", ["timestamp"], :name => "current_nodes_timestamp_idx"
     add_index "current_nodes", ["tile"], :name => "current_nodes_tile_idx"
 
-    change_column "current_nodes", "tile", :four_byte_unsigned
+    change_column "current_nodes", "tile", :bigint
 
     upgrade_table "current_nodes_v5", "current_nodes", Node
     
@@ -63,22 +63,22 @@ class TileNodes < ActiveRecord::Migration
     remove_index "nodes", :name=> "nodes_timestamp_idx"
     rename_table "nodes", "nodes_v5"
 
-    create_table "nodes", myisam_table do |t|
-      t.column "id",        :bigint,   :limit => 64,                 :null => false
-      t.column "latitude",  :integer,                                :null => false
-      t.column "longitude", :integer,                                :null => false
-      t.column "user_id",   :bigint,   :limit => 20,                 :null => false
-      t.column "visible",   :boolean,                                :null => false
-      t.column "tags",      :text,                   :default => "", :null => false
-      t.column "timestamp", :datetime,                               :null => false
-      t.column "tile",      :integer,                                :null => false
+    create_table "nodes", :id => false do |t|
+      t.column "id",        :bigint, :null => false
+      t.column "latitude",  :integer, :null => false
+      t.column "longitude", :integer, :null => false
+      t.column "user_id",   :bigint, :null => false
+      t.column "visible",   :boolean, :null => false
+      t.column "tags",      :text, :default => "", :null => false
+      t.column "timestamp", :datetime, :null => false
+      t.column "tile",      :integer, :null => false
     end
 
     add_index "nodes", ["id"], :name => "nodes_uid_idx"
     add_index "nodes", ["timestamp"], :name => "nodes_timestamp_idx"
     add_index "nodes", ["tile"], :name => "nodes_tile_idx"
 
-    change_column "nodes", "tile", :four_byte_unsigned
+    change_column "nodes", "tile", :bigint
 
     upgrade_table "nodes_v5", "nodes", OldNode
 
@@ -88,14 +88,14 @@ class TileNodes < ActiveRecord::Migration
   def self.down
     rename_table "current_nodes", "current_nodes_v6"
 
-    create_table "current_nodes", innodb_table do |t|
-      t.column "id",        :bigint_pk_64,                           :null => false
-      t.column "latitude",  :double,                                 :null => false
-      t.column "longitude", :double,                                 :null => false
-      t.column "user_id",   :bigint,   :limit => 20,                 :null => false
-      t.column "visible",   :boolean,                                :null => false
-      t.column "tags",      :text,                   :default => "", :null => false
-      t.column "timestamp", :datetime,                               :null => false
+    create_table "current_nodes", :id => false do |t|
+      t.column "id",        :bigserial, :primary_key => true, :null => false
+      t.column "latitude",  :float, :limit => 53, :null => false
+      t.column "longitude", :float, :limit => 53, :null => false
+      t.column "user_id",   :bigint, :null => false
+      t.column "visible",   :boolean, :null => false
+      t.column "tags",      :text, :default => "", :null => false
+      t.column "timestamp", :datetime, :null => false
     end
 
     add_index "current_nodes", ["latitude", "longitude"], :name => "current_nodes_lat_lon_idx"
@@ -107,14 +107,14 @@ class TileNodes < ActiveRecord::Migration
 
     rename_table "nodes", "nodes_v6"
 
-    create_table "nodes", myisam_table do |t|
-      t.column "id",        :bigint,   :limit => 64,                 :null => false
-      t.column "latitude",  :double,                                 :null => false
-      t.column "longitude", :double,                                 :null => false
-      t.column "user_id",   :bigint,   :limit => 20,                 :null => false
-      t.column "visible",   :boolean,                                :null => false
-      t.column "tags",      :text,                   :default => "", :null => false
-      t.column "timestamp", :datetime,                               :null => false
+    create_table "nodes", :id => false do |t|
+      t.column "id",        :bigint, :null => false
+      t.column "latitude",  :float, :limit => 53, :null => false
+      t.column "longitude", :float, :limit => 53, :null => false
+      t.column "user_id",   :bigint, :null => false
+      t.column "visible",   :boolean, :null => false
+      t.column "tags",      :text, :default => "", :null => false
+      t.column "timestamp", :datetime, :null => false
     end
 
     add_index "nodes", ["id"], :name => "nodes_uid_idx"
index 41d62928f1f6bd6a7e067cf06d558061f457d5f3..4a0f74c526b8aa181ccbd224cfed7edb4ab61a79 100644 (file)
@@ -9,10 +9,10 @@ class AddRelations < ActiveRecord::Migration
     # differences:
     # way: only nodes / relation: any kind of member
     # way: ordered sequence of nodes / relation: free-form "role" string
-    create_table "current_relation_members", innodb_table do |t|
-      t.column "id",          :bigint,   :limit => 64, :null => false
+    create_table "current_relation_members", :id => false do |t|
+      t.column "id",          :bigint, :null => false
       t.column "member_type", :nwr_enum, :null => false
-      t.column "member_id",   :bigint,   :limit => 11, :null => false
+      t.column "member_id",   :bigint, :null => false
       t.column "member_role", :string
     end
 
@@ -20,57 +20,54 @@ class AddRelations < ActiveRecord::Migration
     add_index "current_relation_members", ["member_type", "member_id"], :name => "current_relation_members_member_idx"
     # the following is obsolete given the primary key, is it not?
     # add_index "current_relation_members", ["id"], :name => "current_relation_members_id_idx"
-    create_table "current_relation_tags", myisam_table do |t|
-      t.column "id", :bigint, :limit => 64, :null => false
+    create_table "current_relation_tags", :id => false do |t|
+      t.column "id", :bigint, :null => false
       t.column "k",  :string, :default => "", :null => false
       t.column "v",  :string, :default => "", :null => false
     end
 
     add_index "current_relation_tags", ["id"], :name => "current_relation_tags_id_idx"
-    add_fulltext_index "current_relation_tags", "v"
+    add_index "current_relation_tags", "v", :name => "current_relation_tags_v_idx"
 
-    create_table "current_relations", innodb_table do |t|
-      t.column "id",        :bigint_pk_64,           :null => false
-      t.column "user_id",   :bigint,   :limit => 20, :null => false
+    create_table "current_relations", :id => false do |t|
+      t.column "id",        :bigserial, :primary_key => true, :null => false
+      t.column "user_id",   :bigint, :null => false
       t.column "timestamp", :datetime, :null => false
-      t.column "visible",   :boolean,  :null => false
+      t.column "visible",   :boolean, :null => false
     end
 
-    create_table "relation_members", myisam_table do |t|
-      t.column "id",          :bigint,   :limit => 64, :default => 0, :null => false
+    create_table "relation_members", :id => false do |t|
+      t.column "id",          :bigint, :default => 0, :null => false
       t.column "member_type", :nwr_enum, :null => false
-      t.column "member_id",   :bigint,   :limit => 11, :null => false
+      t.column "member_id",   :bigint, :null => false
       t.column "member_role", :string
-      t.column "version",     :bigint,   :limit => 20, :default => 0, :null => false
+      t.column "version",     :bigint, :default => 0, :null => false
     end
 
     add_primary_key "relation_members", ["id", "version", "member_type", "member_id", "member_role"]
     add_index "relation_members", ["member_type", "member_id"], :name => "relation_members_member_idx"
 
-    create_table "relation_tags", myisam_table do |t|
-      t.column "id",      :bigint,  :limit => 64, :default => 0, :null => false
+    create_table "relation_tags", :id => false do |t|
+      t.column "id",      :bigint, :default => 0, :null => false
       t.column "k",       :string, :null => false, :default => ""
       t.column "v",       :string, :null => false, :default => ""
-      t.column "version", :bigint,  :limit => 20, :null => false
+      t.column "version", :bigint, :null => false
     end
 
     add_index "relation_tags", ["id", "version"], :name => "relation_tags_id_version_idx"
 
-    create_table "relations", myisam_table do |t|
-      t.column "id",        :bigint,   :limit => 64, :null => false, :default => 0
-      t.column "user_id",   :bigint,   :limit => 20, :null => false
-      t.column "timestamp", :datetime,               :null => false
-      t.column "version",   :bigint,   :limit => 20, :null => false
-      t.column "visible",   :boolean,                :null => false, :default => true
+    create_table "relations", :id => false do |t|
+      t.column "id",        :bigint, :null => false, :default => 0
+      t.column "user_id",   :bigint, :null => false
+      t.column "timestamp", :datetime, :null => false
+      t.column "version",   :bigint, :null => false
+      t.column "visible",   :boolean, :null => false, :default => true
     end
 
     add_primary_key "relations", ["id", "version"]
     add_index "relations", ["timestamp"], :name => "relations_timestamp_idx"
-    
-    change_column "relations", "version", :bigint_auto_20
   end
 
-
   def self.down
     drop_table :relations
     drop_table :current_relations
index ce49e9ccaf4e76608065d8968a52a7a15c84e72f..0c68ce0509e11be3e7220ed4fe417ed8c176dbf0 100644 (file)
@@ -28,20 +28,20 @@ class RemoveSegments < ActiveRecord::Migration
 
     drop_table :segments
     drop_table :way_segments
-    create_table :way_nodes, myisam_table do |t|
-      t.column :id,          :bigint, :limit => 64, :null => false
-      t.column :node_id,     :bigint, :limit => 64, :null => false
-      t.column :version,     :bigint, :limit => 20, :null => false
-      t.column :sequence_id, :bigint, :limit => 11, :null => false
+    create_table :way_nodes, :id => false do |t|
+      t.column :id,          :bigint, :null => false
+      t.column :node_id,     :bigint, :null => false
+      t.column :version,     :bigint, :null => false
+      t.column :sequence_id, :bigint, :null => false
     end
     add_primary_key :way_nodes, [:id, :version, :sequence_id]
 
     drop_table :current_segments
     drop_table :current_way_segments
-    create_table :current_way_nodes, innodb_table do |t|
-      t.column :id,          :bigint, :limit => 64, :null => false
-      t.column :node_id,     :bigint, :limit => 64, :null => false
-      t.column :sequence_id, :bigint, :limit => 11, :null => false
+    create_table :current_way_nodes, :id => false do |t|
+      t.column :id,          :bigint, :null => false
+      t.column :node_id,     :bigint, :null => false
+      t.column :sequence_id, :bigint, :null => false
     end
     add_primary_key :current_way_nodes, [:id, :sequence_id]
     add_index :current_way_nodes, [:node_id], :name => "current_way_nodes_node_idx"
index ecad2f5dcd50478217ba569baa9d268c6fcce7e2..ad2edffa43ebb57c4fadc038663777baec9ce058 100644 (file)
@@ -2,13 +2,13 @@ require 'migrate'
 
 class DiaryComments < ActiveRecord::Migration
   def self.up
-    create_table "diary_comments", myisam_table do |t|
-      t.column "id",             :bigint_pk,              :null => false
-      t.column "diary_entry_id", :bigint,   :limit => 20, :null => false
-      t.column "user_id",        :bigint,   :limit => 20, :null => false
-      t.column "body",           :text,                   :null => false
-      t.column "created_at",     :datetime,               :null => false
-      t.column "updated_at",     :datetime,               :null => false
+    create_table "diary_comments", :id => false do |t|
+      t.column "id",             :bigserial, :primary_key => true, :null => false
+      t.column "diary_entry_id", :bigint, :null => false
+      t.column "user_id",        :bigint, :null => false
+      t.column "body",           :text, :null => false
+      t.column "created_at",     :datetime, :null => false
+      t.column "updated_at",     :datetime, :null => false
     end
 
     add_index "diary_comments", ["diary_entry_id", "id"], :name => "diary_comments_entry_id_idx", :unique => true
index 08ed4f7316b8b9fad91873b7d0c067c91e0d5373..0db06f30cba4978b8ee73ba23bacae8d8d7cc990 100644 (file)
@@ -2,11 +2,11 @@ require 'migrate'
 
 class CreateAcls < ActiveRecord::Migration
   def self.up
-    create_table "acls", myisam_table do |t|
-      t.column "id",      :integer_pk, :null => false
-      t.column "address", :inet,       :null => false
-      t.column "netmask", :inet,       :null => false
-      t.column "k",       :string,     :null => false
+    create_table "acls", :id => false do |t|
+      t.column "id",      :primary_key, :null => false
+      t.column "address", :inet, :null => false
+      t.column "netmask", :inet, :null => false
+      t.column "k",       :string, :null => false
       t.column "v",       :string
     end
 
index 4c9628f2700cf8cda16f6369229161b4b2b1b776..8fa7b7e5d32d1f1504b6886bc4bdba69f075d0a0 100644 (file)
@@ -27,17 +27,17 @@ class PopulateNodeTagsAndRemove < ActiveRecord::Migration
     remove_column :nodes, :tags
     remove_column :current_nodes, :tags
 
-    add_column :nodes, :version, :bigint, :limit => 20, :null => false
+    add_column :nodes, :version, :bigint, :null => false
 
-    create_table :current_node_tags, innodb_table do |t|
-      t.column :id,          :bigint, :limit => 64, :null => false
+    create_table :current_node_tags, :id => false do |t|
+      t.column :id,          :bigint, :null => false
       t.column :k,          :string, :default => "", :null => false
       t.column :v,          :string, :default => "", :null => false
     end
 
-    create_table :node_tags, innodb_table do |t|
-      t.column :id,          :bigint, :limit => 64, :null => false
-      t.column :version,     :bigint, :limit => 20, :null => false
+    create_table :node_tags, :id => false do |t|
+      t.column :id,          :bigint, :null => false
+      t.column :version,     :bigint, :null => false
       t.column :k,          :string, :default => "", :null => false
       t.column :v,          :string, :default => "", :null => false
     end
index f9110cca67e676c0613f96f1915577604115459a..030515a98ec34ee03ae45f642083378ea48cd606 100644 (file)
@@ -12,15 +12,11 @@ class MoveToInnodb < ActiveRecord::Migration
     remove_index :current_relation_tags, :name=> :current_relation_tags_v_idx
 
     @@ver_tbl.each { |tbl|
-      change_column tbl, "version", :bigint, :limit => 20, :null => false
-    }
-
-    @@conv_tables.each { |tbl|
-      change_engine tbl, "InnoDB"
+      change_column tbl, "version", :bigint, :null => false
     }
 
     @@ver_tbl.each { |tbl|
-      add_column "current_#{tbl}", "version", :bigint, :limit => 20, :null => false
+      add_column "current_#{tbl}", "version", :bigint, :null => false
       # As the initial version of all nodes, ways and relations is 0, we set the 
       # current version to something less so that we can update the version in 
       # batches of 10000
index f94c965bb087dc8501378cc2efb92acb47649865..e854ba78e0dd6075f9404c0075ad5fa746abe240 100644 (file)
@@ -23,21 +23,21 @@ class KeyConstraints < ActiveRecord::Migration
     remove_index :nodes, :name => :nodes_uid_idx
 
     # Foreign keys (between ways, way_tags, way_nodes, etc.)
-    add_foreign_key :current_node_tags, [:id], :current_nodes
-    add_foreign_key :node_tags, [:id, :version], :nodes
+    add_foreign_key :current_node_tags, :current_nodes, :column => :id, :name => "current_node_tags_id_fkey"
+    add_foreign_key :node_tags, :nodes, :column => [:id, :version], :primary_key => [:id, :version], :name => "node_tags_id_fkey"
 
-    add_foreign_key :current_way_tags, [:id], :current_ways
-    add_foreign_key :current_way_nodes, [:id], :current_ways
-    add_foreign_key :way_tags, [:id, :version], :ways
-    add_foreign_key :way_nodes, [:id, :version], :ways
+    add_foreign_key :current_way_tags, :current_ways, :column => :id, :name => "current_way_tags_id_fkey"
+    add_foreign_key :current_way_nodes, :current_ways, :column => :id, :name => "current_way_nodes_id_fkey"
+    add_foreign_key :way_tags, :ways, :column => [:id, :version], :primary_key => [:id, :version], :name => "way_tags_id_fkey"
+    add_foreign_key :way_nodes, :ways, :column => [:id, :version], :primary_key => [:id, :version], :name => "way_nodes_id_fkey"
 
-    add_foreign_key :current_relation_tags, [:id], :current_relations
-    add_foreign_key :current_relation_members, [:id], :current_relations
-    add_foreign_key :relation_tags, [:id, :version], :relations
-    add_foreign_key :relation_members, [:id, :version], :relations
+    add_foreign_key :current_relation_tags, :current_relations, :column => :id, :name => "current_relation_tags_id_fkey"
+    add_foreign_key :current_relation_members, :current_relations, :column => :id, :name => "current_relation_members_id_fkey"
+    add_foreign_key :relation_tags, :relations, :column => [:id, :version], :primary_key => [:id, :version], :name => "relation_tags_id_fkey"
+    add_foreign_key :relation_members, :relations, :column => [:id, :version], :primary_key => [:id, :version], :name => "relation_members_id_fkey"
 
     # Foreign keys (between different types of primitives)
-    add_foreign_key :current_way_nodes, [:node_id], :current_nodes, [:id]
+    add_foreign_key :current_way_nodes, :current_nodes, :column => :node_id, :name => "current_way_nodes_node_id_fkey"
 
     # FIXME: We don't have foreign keys for relation members since the id
     # might point to a different table depending on the `type' column.
index 5bee215122e23f21c415a77ad8471821d0a915c1..3a6c32e19a4151539431c8482e4a85806ee54ffc 100644 (file)
@@ -5,19 +5,19 @@ class AddChangesets < ActiveRecord::Migration
   'current_relations', 'current_ways', 'nodes', 'relations', 'ways' ]
   
   def self.up
-    create_table "changesets", innodb_table do |t|
-      t.column "id",             :bigint_pk,              :null => false
-      t.column "user_id",        :bigint,   :limit => 20, :null => false
-      t.column "created_at",     :datetime,               :null => false
-      t.column "open",           :boolean,                :null => false, :default => true
-      t.column "min_lat",        :integer,                :null => true
-      t.column "max_lat",        :integer,                :null => true
-      t.column "min_lon",        :integer,                :null => true
-      t.column "max_lon",        :integer,                :null => true
+    create_table "changesets", :id => false do |t|
+      t.column "id",             :bigserial, :primary_key => true, :null => false
+      t.column "user_id",        :bigint, :null => false
+      t.column "created_at",     :datetime, :null => false
+      t.column "open",           :boolean, :null => false, :default => true
+      t.column "min_lat",        :integer, :null => true
+      t.column "max_lat",        :integer, :null => true
+      t.column "min_lon",        :integer, :null => true
+      t.column "max_lon",        :integer, :null => true
     end
 
-    create_table "changeset_tags", innodb_table do |t|
-      t.column "id", :bigint, :limit => 64, :null => false
+    create_table "changeset_tags", :id => false do |t|
+      t.column "id", :bigint, :null => false
       t.column "k",  :string, :default => "", :null => false
       t.column "v",  :string, :default => "", :null => false
     end
@@ -35,7 +35,7 @@ class AddChangesets < ActiveRecord::Migration
     @@conv_user_tables.each { |tbl|
       rename_column tbl, :user_id, :changeset_id
       #foreign keys too
-      add_foreign_key tbl, [:changeset_id], :changesets, [:id]
+      add_foreign_key tbl, :changesets, :name => "#{tbl}_changeset_id_fkey"
     }
   end
 
index eaccc008f7666d38713a6e110658a1d6095715da..32d27959a44cc212813d8383b116fdfa84251af6 100644 (file)
@@ -9,8 +9,8 @@ class AddEndTimeToChangesets < ActiveRecord::Migration
     # it appears that execute will only accept string arguments, so
     # this is an ugly, ugly hack to get some sort of mysql/postgres
     # independence. now i have to go wash my brain with bleach.
-    execute("update changesets set closed_at=(now()-#{interval_constant('1 hour')}) where open=(1=0)")
-    execute("update changesets set closed_at=(now()+#{interval_constant('1 hour')}) where open=(1=1)")
+    execute("update changesets set closed_at=(now()-'1 hour'::interval) where open=(1=0)")
+    execute("update changesets set closed_at=(now()+'1 hour'::interval) where open=(1=1)")
 
     # remove the open column as it is unnecessary now and denormalises 
     # the table.
index 45d014e9e51a81115ea4eb8a9cdc260382709bb8..ea2dc0290f3d891e4479b5125ca6500616c92428 100644 (file)
@@ -4,7 +4,7 @@ class AddMoreChangesetIndexes < ActiveRecord::Migration
   def self.up
     add_index "changesets", ["created_at"], :name => "changesets_created_at_idx"
     add_index "changesets", ["closed_at"], :name => "changesets_closed_at_idx"
-    add_index "changesets", ["min_lat","max_lat","min_lon","max_lon"], :name => "changesets_bbox_idx", :method => "GIST"
+    add_index "changesets", ["min_lat","max_lat","min_lon","max_lon"], :name => "changesets_bbox_idx", :using => "GIST"
   end
 
   def self.down
index cb0d9e1dddc5fd0b4cb870f370e8b2942f61b6f0..5d3532c72dfd7a976a0495d2e0f5cb1394988fce 100644 (file)
@@ -1,20 +1,16 @@
 require 'migrate'
 
 class AddUserForeignKeys < ActiveRecord::Migration
-  def self.up
-    add_foreign_key :changesets, [:user_id], :users, [:id]
-    add_foreign_key :diary_comments, [:user_id], :users, [:id]
-    add_foreign_key :diary_entries, [:user_id], :users, [:id]
-    add_foreign_key :friends, [:user_id], :users, [:id]
-    add_foreign_key :friends, [:friend_user_id], :users, [:id]
-    add_foreign_key :gpx_files, [:user_id], :users, [:id]
-    add_foreign_key :messages, [:from_user_id], :users, [:id]
-    add_foreign_key :messages, [:to_user_id], :users, [:id]
-    add_foreign_key :user_preferences, [:user_id], :users, [:id]
-    add_foreign_key :user_tokens, [:user_id], :users, [:id]
-  end
-
-  def self.down
-    raise ActiveRecord::IrreversibleMigration
+  def change
+    add_foreign_key :changesets, :users, :name => "changesets_user_id_fkey"
+    add_foreign_key :diary_comments, :users, :name => "diary_comments_user_id_fkey"
+    add_foreign_key :diary_entries, :users, :name => "diary_entries_user_id_fkey"
+    add_foreign_key :friends, :users, :name => "friends_user_id_fkey"
+    add_foreign_key :friends, :users, :column => :friend_user_id, :name => "friends_friend_user_id_fkey"
+    add_foreign_key :gpx_files, :users, :name => "gpx_files_user_id_fkey"
+    add_foreign_key :messages, :users, :column => :from_user_id, :name => "messages_from_user_id_fkey"
+    add_foreign_key :messages, :users, :column => :to_user_id, :name => "messages_to_user_id_fkey"
+    add_foreign_key :user_preferences, :users, :name => "user_preferences_user_id_fkey"
+    add_foreign_key :user_tokens, :users, :name => "user_tokens_user_id_fkey"
   end
 end
index e3dc7e82ddd566b974b01e7e6915b4562cb5a302..1b99f664de9bae15ba00cdfe66a500840a7dc75a 100644 (file)
@@ -2,10 +2,10 @@ require 'migrate'
 
 class AddForeignKeys < ActiveRecord::Migration
   def self.up
-    add_foreign_key :changeset_tags, [:id], :changesets
-    add_foreign_key :diary_comments, [:diary_entry_id], :diary_entries, [:id]
-    add_foreign_key :gps_points, [:gpx_id], :gpx_files, [:id]
-    add_foreign_key :gpx_file_tags, [:gpx_id], :gpx_files, [:id]
+    add_foreign_key :changeset_tags, :changesets, :column => :id, :name => "changeset_tags_id_fkey"
+    add_foreign_key :diary_comments, :diary_entries, :name => "diary_comments_diary_entry_id_fkey"
+    add_foreign_key :gps_points, :gpx_files, :column => :gpx_id, :name => "gps_points_gpx_id_fkey"
+    add_foreign_key :gpx_file_tags, :gpx_files, :column => :gpx_id, :name => "gpx_file_tags_gpx_id_fkey"
   end
 
   def self.down
index 923d943f7915671a921404738c1e56e955ad7fef..c0b4fb634abeafe5224851b585087b12ba8a309f 100644 (file)
@@ -3,13 +3,13 @@ require 'rexml/document'
 
 class CreateCountries < ActiveRecord::Migration
   def self.up
-    create_table :countries, innodb_table do |t|
-      t.column :id,      :integer_pk,              :null => false
-      t.column :code,    :string,     :limit => 2, :null => false
-      t.column :min_lat, :double,                  :null => false
-      t.column :max_lat, :double,                  :null => false
-      t.column :min_lon, :double,                  :null => false
-      t.column :max_lon, :double,                  :null => false
+    create_table :countries, :id => false do |t|
+      t.column :id,      :primary_key, :null => false
+      t.column :code,    :string, :limit => 2, :null => false
+      t.column :min_lat, :float, :limit => 53, :null => false
+      t.column :max_lat, :float, :limit => 53, :null => false
+      t.column :min_lon, :float, :limit => 53, :null => false
+      t.column :max_lon, :float, :limit => 53, :null => false
     end
 
     add_index :countries, [:code], :name => "countries_code_idx", :unique => true
index e62a3dff9cbe82c415033248f4753ff0086e24a0..a9d6831515e3eaeff32e132963d288067ae1e073 100644 (file)
@@ -1,8 +1,8 @@
 require 'migrate'
 
 class CreateLanguages < ActiveRecord::Migration
-  def self.up
-    create_table :languages, innodb_table do |t|
+  def change
+    create_table :languages, :id => false do |t|
       t.string :code, :null => false
       t.string :english_name, :null => false
       t.string :native_name
@@ -12,11 +12,7 @@ class CreateLanguages < ActiveRecord::Migration
 
     Language.load("#{Rails.root}/config/languages.yml")
 
-    add_foreign_key :users, [:locale], :languages, [:code]
-    add_foreign_key :diary_entries, [:language_code], :languages, [:code]    
-  end
-
-  def self.down
-    raise ActiveRecord::IrreversibleMigration
+    add_foreign_key :users, :languages, :column => :locale, :primary_key => :code, :name => "users_locale_fkey"
+    add_foreign_key :diary_entries, :languages, :column => :language_code , :primary_key => :code, :name => "diary_entries_language_code_fkey"
   end
 end
index bfb43056a5bc741285aaa36c0ff05f2fc8ef163f..117e1cd0cec7b813e10a49c9c40c95ae1fc64135 100644 (file)
@@ -2,7 +2,7 @@ require 'migrate'
 
 class ChangeUserLocale < ActiveRecord::Migration
   def self.up
-    remove_foreign_key :users, [:locale], :languages, [:code]
+    remove_foreign_key :users, :column => :locale, :name => "users_locale_fkey"
 
     rename_column :users, :locale, :languages
   end
@@ -10,6 +10,6 @@ class ChangeUserLocale < ActiveRecord::Migration
   def self.down
     rename_column :users, :languages, :locale
 
-    add_foreign_key :users, [:locale], :languages, [:code]
+    add_foreign_key :users, :languages, :column => :locale, :primary_key => :code, :name => "users_locale_fkey"
   end
 end
index ee8048a36328f975371db0281e36af20a7ac1eb2..abc4e9c517b80de30aac93412d7a00de58df00f9 100644 (file)
@@ -1,15 +1,9 @@
 require 'migrate'
 
 class AddForeignKeysToOauthTables < ActiveRecord::Migration
-  def self.up
-    add_foreign_key :oauth_tokens, [:user_id], :users, [:id]
-    add_foreign_key :oauth_tokens, [:client_application_id], :client_applications, [:id]
-    add_foreign_key :client_applications, [:user_id], :users, [:id]
-  end
-
-  def self.down
-    remove_foreign_key :oauth_tokens, [:user_id], :users
-    remove_foreign_key :oauth_tokens, [:client_application_id], :client_applications
-    remove_foreign_key :client_applications, [:user_id], :users
+  def change
+    add_foreign_key :oauth_tokens, :users, :name => "oauth_tokens_user_id_fkey"
+    add_foreign_key :oauth_tokens, :client_applications, :name => "oauth_tokens_client_application_id_fkey"
+    add_foreign_key :client_applications, :users, :name => "client_applications_user_id_fkey"
   end
 end
index 0db3ea77e5fc01976419aa297ddad97b3b5b6152..26b2adf6fdbf4b67eb71dcf8f50d85ac2ddfecf9 100644 (file)
@@ -6,26 +6,29 @@ class CreateUserRoles < ActiveRecord::Migration
 
     create_table :user_roles do |t|
       t.column :user_id, :bigint, :null => false
+      t.column :role, :user_role_enum, :null => false
 
       t.timestamps
     end
-    add_column :user_roles, :role, :user_role_enum, :null => false
 
     User.where(:administrator => true).each do |user|
       UserRole.create(:user_id => user.id, :role => "administrator")
     end
+
     remove_column :users, :administrator
 
-    add_foreign_key :user_roles, [:user_id], :users, [:id]
+    add_foreign_key :user_roles, :users, :name => "user_roles_user_id_fkey"
   end
 
   def self.down
     add_column :users, :administrator, :boolean, :default => false, :null => false
+
     UserRole.where(:role => "administrator").each do |role|
       user = User.find(role.user_id)
       user.administrator = true
       user.save!
     end
+
     drop_table :user_roles
     drop_enumeration :user_role_enum
   end
index b3313ce921ccf3ef976b97a87bb041897d082f37..e97822a0dbf3c2d3f152e55056bacc83ed81f5c0 100644 (file)
@@ -1,7 +1,7 @@
 require 'migrate'
 
 class CreateUserBlocks < ActiveRecord::Migration
-  def self.up
+  def change
     create_table :user_blocks do |t|
       t.column :user_id,      :bigint,   :null => false
       t.column :moderator_id, :bigint,   :null => false
@@ -13,14 +13,10 @@ class CreateUserBlocks < ActiveRecord::Migration
       t.timestamps
     end
 
-    add_foreign_key :user_blocks, [:user_id], :users, [:id]
-    add_foreign_key :user_blocks, [:moderator_id], :users, [:id]
-    add_foreign_key :user_blocks, [:revoker_id], :users, [:id]
+    add_foreign_key :user_blocks, :users, :name => "user_blocks_user_id_fkey"
+    add_foreign_key :user_blocks, :users, :column => :moderator_id, :name => "user_blocks_moderator_id_fkey"
+    add_foreign_key :user_blocks, :users, :column => :revoker_id, :name => "user_blocks_revoker_id_fkey"
 
     add_index :user_blocks, [:user_id]
   end
-
-  def self.down
-    drop_table :user_blocks
-  end
 end
index 9799e4e5ec5f0ea7f7dc3c7e8c4f5d4514547f19..864f0db5de95dc168611b3a451f1d4d9e37d0e42 100644 (file)
@@ -8,7 +8,7 @@ class AlterUserRolesAndBlocks < ActiveRecord::Migration
     add_column :user_roles, :granter_id, :bigint
     UserRole.update_all("granter_id = user_id")
     change_column :user_roles, :granter_id, :bigint, :null => false
-    add_foreign_key :user_roles, [:granter_id], :users, [:id]
+    add_foreign_key :user_roles, :users, :column => :granter_id, :name => "user_roles_granter_id_fkey"
 
     # make sure that [user_id, role] is unique
     add_index :user_roles, [:user_id, :role], :name => "user_roles_id_role_unique", :unique => true
@@ -21,9 +21,9 @@ class AlterUserRolesAndBlocks < ActiveRecord::Migration
   end
 
   def self.down
-    remove_column :user_roles, :granter_id
-    remove_index :user_roles, :name => "user_roles_id_role_unique"
-    rename_column :user_blocks, :creator_id, :moderator_id
     rename_column :user_blocks, :ends_at, :end_at
+    rename_column :user_blocks, :creator_id, :moderator_id
+    remove_index :user_roles, :name => "user_roles_id_role_unique"
+    remove_column :user_roles, :granter_id
   end
 end
index d94105035551c3739af29832d28d5deee1e8af32..d3839aaa87a72a4e802604a176694915bb24870c 100644 (file)
@@ -18,13 +18,13 @@ class RefactorMapBugTables < ActiveRecord::Migration
 
     add_index :map_bug_comment, [:bug_id], :name => "map_bug_comment_id_idx"
 
-    add_foreign_key :map_bug_comment, [:bug_id], :map_bugs, [:id]
-    add_foreign_key :map_bug_comment, [:commenter_id], :users, [:id]
+    add_foreign_key :map_bug_comment, :map_bugs, :column => :bug_id, :name => "note_comments_note_id_fkey"
+    add_foreign_key :map_bug_comment, :users, :column => :commenter_id, :name => "note_comments_author_id_fkey"
   end
 
   def self.down
-    remove_foreign_key :map_bug_comment, [:commenter_id]
-    remove_foreign_key :map_bug_comment, [:bug_id]
+    remove_foreign_key :map_bug_comment, :users, :column => :commenter_id, :name => "note_comments_author_id_fkey"
+    remove_foreign_key :map_bug_comment, :map_bugs, :column => :bug_id, :name => "note_comments_note_id_fkey"
 
     remove_index :map_bugs, :name => "map_bug_comment_id_idx"
 
index 2934b73fd7a978b74885dee9413d282a19bea9aa..5b9933e04cb5edef97b52ba573aa0ac43fa67451 100644 (file)
@@ -6,43 +6,23 @@ class RenameBugsToNotes < ActiveRecord::Migration
     rename_enumeration "map_bug_event_enum", "note_event_enum"
 
     rename_table :map_bugs, :notes
-    rename_index :notes, "map_bugs_pkey", "notes_pkey"
     rename_index :notes, "map_bugs_changed_idx", "notes_updated_at_idx"
     rename_index :notes, "map_bugs_created_idx", "notes_created_at_idx"
     rename_index :notes, "map_bugs_tile_idx", "notes_tile_status_idx"
 
-    remove_foreign_key :map_bug_comment, [:bug_id], :map_bugs, [:id]
-    rename_column :map_bug_comment, :author_id, :commenter_id
-    remove_foreign_key :map_bug_comment, [:commenter_id], :users, [:id]
-    rename_column :map_bug_comment, :commenter_id, :author_id
-
     rename_table :map_bug_comment, :note_comments
     rename_column :note_comments, :bug_id, :note_id
-    rename_index :note_comments, "map_bug_comment_pkey", "note_comments_pkey"
     rename_index :note_comments, "map_bug_comment_id_idx", "note_comments_note_id_idx"
-
-    add_foreign_key :note_comments, [:note_id], :notes, [:id]
-    add_foreign_key :note_comments, [:author_id], :users, [:id]
   end
 
   def self.down
-    remove_foreign_key :note_comments, [:author_id], :users, [:id]
-    remove_foreign_key :note_comments, [:note_id], :notes, [:id]
-
     rename_index :note_comments, "note_comments_note_id_idx", "map_bug_comment_id_idx"
-    rename_index :notes, "note_comments_pkey", "map_bug_comment_pkey"
     rename_column :note_comments, :note_id, :bug_id
     rename_table :note_comments, :map_bug_comment
 
-    rename_column :map_bug_comment, :author_id, :commenter_id
-    add_foreign_key :map_bug_comment, [:commenter_id], :users, [:id]
-    rename_column :map_bug_comment, :commenter_id, :author_id
-    add_foreign_key :map_bug_comment, [:bug_id], :notes, [:id]
-
     rename_index :notes, "notes_tile_status_idx", "map_bugs_tile_idx"
     rename_index :notes, "notes_created_at_idx", "map_bugs_created_idx"
     rename_index :notes, "notes_updated_at_idx", "map_bugs_changed_idx"
-    rename_index :notes, "notes_pkey", "map_bugs_pkey"
     rename_table :notes, :map_bugs
 
     rename_enumeration "note_event_enum", "map_bug_event_enum"
index 4142a642d65ca93ca55c232094e5624481fa3f8a..69e7ed2995253b3279d3f39415897cf00916d1d7 100644 (file)
@@ -2,8 +2,8 @@ require 'migrate'
 
 class AddLowercaseUserIndexes < ActiveRecord::Migration
   def up
-    add_index :users, :display_name, :lowercase => true, :name => "users_display_name_lower_idx"
-    add_index :users, :email, :lowercase => true, :name => "users_email_lower_idx"
+    add_index :users, [], :columns => "LOWER(display_name)", :name => "users_display_name_lower_idx"
+    add_index :users, [], :columns => "LOWER(email)", :name => "users_email_lower_idx"
   end
 
   def down
index b6ee96037948205745635aca949a9e4d73da76db..15cc1e13b8c6576d09128b76f36e35eec1ddb9d6 100644 (file)
@@ -1,7 +1,7 @@
 require 'migrate'
 
 class CreateRedactions < ActiveRecord::Migration
-  def up
+  def change
     create_table :redactions do |t|
       t.string :title
       t.text :description
@@ -11,16 +11,7 @@ class CreateRedactions < ActiveRecord::Migration
 
     [:nodes, :ways, :relations].each do |tbl|
       add_column tbl, :redaction_id, :integer, :null => true
-      add_foreign_key tbl, [:redaction_id], :redactions, [:id]
+      add_foreign_key tbl, :redactions, :name => "#{tbl}_redaction_id_fkey"
     end
   end
-
-  def down
-    [:nodes, :ways, :relations].each do |tbl|
-      remove_foreign_key tbl, [:redaction_id], :redactions, [:id]
-      remove_column tbl, :redaction_id
-    end
-
-    drop_table :redactions
-  end
 end
index e5f9739a54e9582aa711b59e57c35e86d2d3b9d0..627db6d7c09c3284c23d38b5b51d42b8bb9e842c 100644 (file)
@@ -6,7 +6,7 @@ class DropSessionTable < ActiveRecord::Migration
   end
 
   def down
-    create_table "sessions", :options => innodb_option do |t|
+    create_table "sessions" do |t|
       t.column "session_id", :string
       t.column "data",       :text
       t.column "created_at", :timestamp
index 05c75d37e43b7e7c12c92c64920f4437cca166e1..0ca0be4a0ee9398ae546d76306ed8908208b1985 100644 (file)
@@ -1,17 +1,10 @@
 require 'migrate'
 
 class AddUserAndDescriptionToRedaction < ActiveRecord::Migration
-  def up
+  def change
     add_column :redactions, :user_id, :bigint, :null => false
     add_column :redactions, :description_format, :format_enum, :null => false, :default => "markdown"
 
-    add_foreign_key :redactions, [:user_id], :users, [:id]
-  end
-
-  def down
-    remove_foreign_key :redactions, [:user_id], :users, [:id]
-
-    remove_column :redactions, :description_format
-    remove_column :redactions, :user_id
+    add_foreign_key :redactions, :users, :name => "redactions_user_id_fkey"
   end
 end
index e4337459523db360c366bb94f7929f04d6417261..e0d22306085ef318639df59e1499e85342ca20e6 100644 (file)
@@ -2,7 +2,7 @@ require 'migrate'
 
 class AddTextIndexToNoteComments < ActiveRecord::Migration
   def up
-    add_index :note_comments, [], :columns => "to_tsvector('english', body)", :method => "GIN", :name => "index_note_comments_on_body"
+    add_index :note_comments, [], :columns => "to_tsvector('english', body)", :using => "GIN", :name => "index_note_comments_on_body"
   end
 
   def down
index 8d2a4599dfd938dfed479f6a77395ddd505f1683..cfc499535c2ed44f5648d8dd86d52d1f8af123d1 100644 (file)
@@ -10,8 +10,8 @@ class CreateChangesetComments < ActiveRecord::Migration
       t.boolean :visible, :null => false
     end
 
-    add_foreign_key :changeset_comments, [:changeset_id], :changesets, [:id]
-    add_foreign_key :changeset_comments, [:author_id], :users, [:id]
+    add_foreign_key :changeset_comments, :changesets, :name => "changeset_comments_changeset_id_fkey"
+    add_foreign_key :changeset_comments, :users, :column => :author_id, :name => "changeset_comments_author_id_fkey"
 
     add_index :changeset_comments, :created_at
   end
index d07c6aae97920fde0fabe512a66bd05d66bc3f07..c23ed1f9f7ca22e1915030ef9129cd3c505259a5 100644 (file)
@@ -7,8 +7,8 @@ class AddJoinTableBetweenUsersAndChangesets < ActiveRecord::Migration
       t.column :changeset_id, :bigint, null: false
     end
 
-    add_foreign_key :changesets_subscribers, [:subscriber_id], :users, [:id]
-    add_foreign_key :changesets_subscribers, [:changeset_id], :changesets, [:id]
+    add_foreign_key :changesets_subscribers, :users, :column => :subscriber_id, :name => "changesets_subscribers_subscriber_id_fkey"
+    add_foreign_key :changesets_subscribers, :changesets, :name => "changesets_subscribers_changeset_id_fkey"
 
     add_index :changesets_subscribers, [:subscriber_id, :changeset_id], :unique => true
     add_index :changesets_subscribers, [:changeset_id]
diff --git a/db/migrate/20150110152606_change_default_formats.rb b/db/migrate/20150110152606_change_default_formats.rb
new file mode 100644 (file)
index 0000000..84bc2be
--- /dev/null
@@ -0,0 +1,17 @@
+class ChangeDefaultFormats < ActiveRecord::Migration
+  def up
+    change_column_default :diary_entries, :body_format, "markdown"
+    change_column_default :diary_comments, :body_format, "markdown"
+    change_column_default :messages, :body_format, "markdown"
+    change_column_default :users, :description_format, "markdown"
+    change_column_default :user_blocks, :reason_format, "markdown"
+  end
+
+  def down
+    change_column_default :diary_entries, :body_format, "html"
+    change_column_default :diary_comments, :body_format, "html"
+    change_column_default :messages, :body_format, "html"
+    change_column_default :users, :description_format, "html"
+    change_column_default :user_blocks, :reason_format, "html"
+  end
+end
diff --git a/db/migrate/20150111192335_subscribe_old_changesets.rb b/db/migrate/20150111192335_subscribe_old_changesets.rb
new file mode 100644 (file)
index 0000000..2bc0214
--- /dev/null
@@ -0,0 +1,10 @@
+class SubscribeOldChangesets < ActiveRecord::Migration
+  def up
+    Changeset.find_each do |changeset|
+      changeset.subscribers << changeset.user unless changeset.subscribers.exists?(changeset.user)
+    end
+  end
+
+  def down
+  end
+end
index 343aec084abbc9b1ac43026e1839ca5c41c5647b..5d52a87be3ab72c9693b7687f96ed196aa6b0c20 100644 (file)
@@ -45,8 +45,7 @@ SET search_path = public, pg_catalog;
 
 CREATE TYPE format_enum AS ENUM (
     'html',
-    'markdown',
-    'text'
+    'markdown'
 );
 
 
@@ -126,7 +125,7 @@ CREATE TYPE user_status_enum AS ENUM (
 
 CREATE FUNCTION maptile_for_point(bigint, bigint, integer) RETURNS integer
     LANGUAGE c STRICT
-    AS '/srv/www/overpass.osm.compton.nu/db/functions/libpgosm.so', 'maptile_for_point';
+    AS '/srv/www/next.osm.compton.nu/db/functions/libpgosm.so', 'maptile_for_point';
 
 
 --
@@ -135,7 +134,7 @@ CREATE FUNCTION maptile_for_point(bigint, bigint, integer) RETURNS integer
 
 CREATE FUNCTION tile_for_point(integer, integer) RETURNS bigint
     LANGUAGE c STRICT
-    AS '/srv/www/overpass.osm.compton.nu/db/functions/libpgosm.so', 'tile_for_point';
+    AS '/srv/www/next.osm.compton.nu/db/functions/libpgosm.so', 'tile_for_point';
 
 
 --
@@ -144,7 +143,7 @@ CREATE FUNCTION tile_for_point(integer, integer) RETURNS bigint
 
 CREATE FUNCTION xid_to_int4(xid) RETURNS integer
     LANGUAGE c IMMUTABLE STRICT
-    AS '/srv/www/overpass.osm.compton.nu/db/functions/libpgosm.so', 'xid_to_int4';
+    AS '/srv/www/next.osm.compton.nu/db/functions/libpgosm.so', 'xid_to_int4';
 
 
 SET default_tablespace = '';
@@ -485,7 +484,7 @@ CREATE TABLE diary_comments (
     created_at timestamp without time zone NOT NULL,
     updated_at timestamp without time zone NOT NULL,
     visible boolean DEFAULT true NOT NULL,
-    body_format format_enum DEFAULT 'html'::format_enum NOT NULL
+    body_format format_enum DEFAULT 'markdown'::format_enum NOT NULL
 );
 
 
@@ -523,7 +522,7 @@ CREATE TABLE diary_entries (
     longitude double precision,
     language_code character varying(255) DEFAULT 'en'::character varying NOT NULL,
     visible boolean DEFAULT true NOT NULL,
-    body_format format_enum DEFAULT 'html'::format_enum NOT NULL
+    body_format format_enum DEFAULT 'markdown'::format_enum NOT NULL
 );
 
 
@@ -684,7 +683,7 @@ CREATE TABLE messages (
     to_user_id bigint NOT NULL,
     to_user_visible boolean DEFAULT true NOT NULL,
     from_user_visible boolean DEFAULT true NOT NULL,
-    body_format format_enum DEFAULT 'html'::format_enum NOT NULL
+    body_format format_enum DEFAULT 'markdown'::format_enum NOT NULL
 );
 
 
@@ -741,7 +740,7 @@ CREATE TABLE nodes (
 --
 
 CREATE TABLE note_comments (
-    id bigint NOT NULL,
+    id integer NOT NULL,
     note_id bigint NOT NULL,
     visible boolean NOT NULL,
     created_at timestamp without time zone NOT NULL,
@@ -776,7 +775,7 @@ ALTER SEQUENCE note_comments_id_seq OWNED BY note_comments.id;
 --
 
 CREATE TABLE notes (
-    id bigint NOT NULL,
+    id integer NOT NULL,
     latitude integer NOT NULL,
     longitude integer NOT NULL,
     tile bigint NOT NULL,
@@ -894,8 +893,8 @@ CREATE TABLE redactions (
     id integer NOT NULL,
     title character varying(255),
     description text,
-    created_at timestamp without time zone,
-    updated_at timestamp without time zone,
+    created_at timestamp without time zone NOT NULL,
+    updated_at timestamp without time zone NOT NULL,
     user_id bigint NOT NULL,
     description_format format_enum DEFAULT 'markdown'::format_enum NOT NULL
 );
@@ -983,7 +982,7 @@ CREATE TABLE user_blocks (
     revoker_id bigint,
     created_at timestamp without time zone,
     updated_at timestamp without time zone,
-    reason_format format_enum DEFAULT 'html'::format_enum NOT NULL
+    reason_format format_enum DEFAULT 'markdown'::format_enum NOT NULL
 );
 
 
@@ -1110,8 +1109,8 @@ CREATE TABLE users (
     openid_url character varying(255),
     preferred_editor character varying(255),
     terms_seen boolean DEFAULT false NOT NULL,
-    description_format format_enum DEFAULT 'html'::format_enum NOT NULL,
     image_fingerprint character varying(255),
+    description_format format_enum DEFAULT 'markdown'::format_enum NOT NULL,
     changesets_count integer DEFAULT 0 NOT NULL,
     traces_count integer DEFAULT 0 NOT NULL,
     diary_entries_count integer DEFAULT 0 NOT NULL,
@@ -2541,6 +2540,10 @@ INSERT INTO schema_migrations (version) VALUES ('20140507110937');
 
 INSERT INTO schema_migrations (version) VALUES ('20140519141742');
 
+INSERT INTO schema_migrations (version) VALUES ('20150110152606');
+
+INSERT INTO schema_migrations (version) VALUES ('20150111192335');
+
 INSERT INTO schema_migrations (version) VALUES ('21');
 
 INSERT INTO schema_migrations (version) VALUES ('22');
index de2da3c6bfd3c55c705918c8e79e2e3b27a3226b..ca38d350148552ba5e8c85e1b2085ed9e20ec88a 100644 (file)
@@ -241,7 +241,7 @@ class DiffReader
           if action_attributes["if-unused"]
             begin
               old.delete_with_history!(new, @changeset.user)
-            rescue OSM::APIPreconditionFailedError => ex
+            rescue OSM::APIAlreadyDeletedError, OSM::APIPreconditionFailedError => ex
               xml_result["new_id"] = old.id.to_s
               xml_result["new_version"] = old.version.to_s
             end
index 7f8d33693d921eb746660fbe0642bd3026268089..681eba5b603ab7a61012e66759fde1f7a49361a1 100644 (file)
 module ActiveRecord
   module ConnectionAdapters
-    class PostgreSQLAdapter
-      class SchemaCreation
-        alias_method :old_add_column_options!, :add_column_options!
+    module SchemaStatements
+      def add_index_options_with_columns(table_name, column_name, options = {})
+        columns = options.delete(:columns)
+        index_name, index_type, index_columns, index_options, algorithm, using = add_index_options_without_columns(table_name, column_name, options)
+        [index_name, index_type, columns || index_columns, index_options, algorithm, using]
+      end
+
+      alias_method_chain :add_index_options, :columns
+    end
 
-        def add_column_options!(sql, options)
-          sql << " UNSIGNED" if options[:unsigned]
-          old_add_column_options!(sql, options)
-          sql << " #{options[:options]}"
+    module PostgreSQL
+      module Quoting
+        def quote_column_name_with_arrays(name)
+          Array(name).map { |n| quote_column_name_without_arrays(n) }.join(", ")
         end
+
+        alias_method_chain :quote_column_name, :arrays
       end
 
       module SchemaStatements
-        def quote_column_names(column_name)
-          Array(column_name).map { |e| quote_column_name(e) }.join(", ")
-        end
-
         def add_primary_key(table_name, column_name, options = {})
-          column_names = Array(column_name)
-          quoted_column_names = column_names.map { |e| quote_column_name(e) }.join(", ")
-          execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{quoted_column_names})"
+          execute "ALTER TABLE #{quote_table_name(table_name)} ADD PRIMARY KEY (#{quote_column_name(column_name)})"
         end
 
         def remove_primary_key(table_name)
-          execute "ALTER TABLE #{table_name} DROP PRIMARY KEY"
+          execute "ALTER TABLE #{quote_table_name(table_name)} DROP PRIMARY KEY"
         end
 
-        def add_foreign_key(table_name, column_name, reftbl, refcol = nil)
-          execute "ALTER TABLE #{table_name} ADD " +
-            "FOREIGN KEY (#{quote_column_names(column_name)}) " +
-            "REFERENCES #{reftbl} (#{quote_column_names(refcol || column_name)})"
+        def alter_primary_key(table_name, new_columns)
+          execute "ALTER TABLE #{quote_table_name(table_name)} DROP CONSTRAINT #{quote_table_name(table_name + "_pkey")}"
+          execute "ALTER TABLE #{quote_table_name(table_name)} ADD PRIMARY KEY (#{quote_column_name(new_columns)})"
         end
 
-        def remove_foreign_key(table_name, column_name, reftbl, refcol = nil)
-          execute "ALTER TABLE #{table_name} DROP " +
-            "CONSTRAINT #{table_name}_#{column_name[0]}_fkey"
+        def create_enumeration(enumeration_name, values)
+          execute "CREATE TYPE #{enumeration_name} AS ENUM ('#{values.join '\',\''}')"
         end
 
-#        alias_method :old_options_include_default?, :options_include_default?
-#
-#        def options_include_default?(options)
-#          return false if options[:options] =~ /AUTO_INCREMENT/i
-#          return old_options_include_default?(options)
-#        end
-      end
-
-      alias_method :old_native_database_types, :native_database_types
-
-      def native_database_types
-        types = old_native_database_types
-        types[:double] = { :name => "double precision" }
-        types[:integer_pk] = { :name => "serial PRIMARY KEY" }
-        types[:bigint_pk] = { :name => "bigserial PRIMARY KEY" }
-        types[:bigint_pk_64] = { :name => "bigserial PRIMARY KEY" }
-        types[:bigint_auto_64] = { :name => "bigint" } #fixme: need autoincrement?
-        types[:bigint_auto_11] = { :name => "bigint" } #fixme: need autoincrement?
-        types[:bigint_auto_20] = { :name => "bigint" } #fixme: need autoincrement?
-        types[:four_byte_unsigned] = { :name => "bigint" } # meh
-        types[:inet] = { :name=> "inet" }
-
-        enumerations.each_key do |e|
-          types[e.to_sym]= { :name => e }
+        def drop_enumeration(enumeration_name)
+          execute "DROP TYPE #{enumeration_name}"
         end
 
-        types
-      end
-
-      def myisam_table
-        return { :id => false, :force => true, :options => ""}
-      end
-
-      def innodb_table
-        return { :id => false, :force => true, :options => ""}
-      end
-
-      def innodb_option
-        return ""
-      end
-
-      def change_engine (table_name, engine)
-      end
-
-      def add_fulltext_index (table_name, column)
-        execute "CREATE INDEX #{table_name}_#{column}_idx on #{table_name} (#{column})"
-      end
-
-      def enumerations
-        @enumerations ||= Hash.new
-      end
-
-      def create_enumeration(enumeration_name, values)
-        enumerations[enumeration_name] = values
-        execute "CREATE TYPE #{enumeration_name} AS ENUM ('#{values.join '\',\''}')"
-      end
-
-      def drop_enumeration(enumeration_name)
-        execute "DROP TYPE #{enumeration_name}"
-        enumerations.delete(enumeration_name)
-      end
-
-      def rename_enumeration(old_name, new_name)
-        execute "ALTER TYPE #{quote_table_name(old_name)} RENAME TO #{quote_table_name(new_name)}"
-      end
-
-      def alter_primary_key(table_name, new_columns)
-        execute "ALTER TABLE #{table_name} DROP CONSTRAINT #{table_name}_pkey"
-        execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{new_columns.join(',')})"
-      end
-
-      def interval_constant(interval)
-        "'#{interval}'::interval"
-      end
-
-      def add_index(table_name, column_name, options = {})
-        column_names = Array(column_name)
-        index_name   = index_name(table_name, :column => column_names)
-
-        if Hash === options # legacy support, since this param was a string
-          index_type = options[:unique] ? "UNIQUE" : ""
-          index_name = options[:name] || index_name
-          index_method = options[:method] || "BTREE"
-        else
-          index_type = options
-        end
-
-        quoted_column_names = column_names.map { |e| quote_column_name(e) }
-        if Hash === options and options[:lowercase]
-          quoted_column_names = quoted_column_names.map { |e| "LOWER(#{e})" }
-        end
-        if Hash === options and options[:columns]
-          quoted_column_names = quoted_column_names + Array[options[:columns]]
+        def rename_enumeration(old_name, new_name)
+          execute "ALTER TYPE #{quote_table_name(old_name)} RENAME TO #{quote_table_name(new_name)}"
         end
-        quoted_column_names = quoted_column_names.join(", ")
-
-        execute "CREATE #{index_type} INDEX #{quote_column_name(index_name)} ON #{quote_table_name(table_name)} USING #{index_method} (#{quoted_column_names})"
-      end
-
-      def rename_index(table_name, old_name, new_name)
-        execute "ALTER INDEX #{quote_table_name(old_name)} RENAME TO #{quote_table_name(new_name)}"
       end
     end
   end
index f9ba3c98bf98eded0375b0c5c03f44edf428f8ac..47534b84d66a4fb7e03a617ba6e77a58284381cd 100644 (file)
@@ -42,6 +42,7 @@ if [ "$db_user_exists" != "1" ]; then
                sudo -u vagrant -H createdb -E UTF-8 -O vagrant osm_test
                # add btree_gist extension
                sudo -u vagrant -H psql -c "create extension btree_gist" openstreetmap
+               sudo -u vagrant -H psql -c "create extension btree_gist" osm_test
 fi
 # build and set up postgres extensions
 pushd db/functions
index 6426184fcdb42e8269dbab8ab6cab8d449786793..ba8bdbae68d8b307d12ff9b6b3a99f750bd2c4a2 100644 (file)
@@ -67,8 +67,8 @@ class ApiControllerTest < ActionController::TestCase
     end
     assert_response :success, "Expected scucess with the map call"
     assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']", :count => 1 do
-      assert_select "bounds[minlon=#{minlon}][minlat=#{minlat}][maxlon=#{maxlon}][maxlat=#{maxlat}]", :count => 1
-      assert_select "node[id=#{node.id}][lat=#{node.lat}][lon=#{node.lon}][version=#{node.version}][changeset=#{node.changeset_id}][visible=#{node.visible}][timestamp=#{node.timestamp.xmlschema}]", :count => 1 do
+      assert_select "bounds[minlon='#{minlon}'][minlat='#{minlat}'][maxlon='#{maxlon}'][maxlat='#{maxlat}']", :count => 1
+      assert_select "node[id='#{node.id}'][lat='#{node.lat}'][lon='#{node.lon}'][version='#{node.version}'][changeset='#{node.changeset_id}'][visible='#{node.visible}'][timestamp='#{node.timestamp.xmlschema}']", :count => 1 do
         # This should really be more generic
         assert_select "tag[k='test'][v='yes']"
       end
@@ -84,8 +84,8 @@ class ApiControllerTest < ActionController::TestCase
     get :map, :bbox => bbox
     assert_response :success, "The map call should have succeeded"
     assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']", :count => 1 do
-      assert_select "bounds[minlon=#{node.lon}][minlat=#{node.lat}][maxlon=#{node.lon}][maxlat=#{node.lat}]", :count => 1
-      assert_select "node[id=#{node.id}][lat=#{node.lat}][lon=#{node.lon}][version=#{node.version}][changeset=#{node.changeset_id}][visible=#{node.visible}][timestamp=#{node.timestamp.xmlschema}]", :count => 1 do
+      assert_select "bounds[minlon='#{node.lon}'][minlat='#{node.lat}'][maxlon='#{node.lon}'][maxlat='#{node.lat}']", :count => 1
+      assert_select "node[id='#{node.id}'][lat='#{node.lat}'][lon='#{node.lon}'][version='#{node.version}'][changeset='#{node.changeset_id}'][visible='#{node.visible}'][timestamp='#{node.timestamp.xmlschema}']", :count => 1 do
         # This should really be more generic
         assert_select "tag[k='test'][v='yes']"
       end
@@ -102,7 +102,7 @@ class ApiControllerTest < ActionController::TestCase
     bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}"
     get :trackpoints, :bbox => bbox
     assert_response :success
-    assert_select "gpx[version=1.0][creator=OpenStreetMap.org][xmlns=http://www.topografix.com/GPX/1/0]", :count => 1 do
+    assert_select "gpx[version='1.0'][creator='OpenStreetMap.org']", :count => 1 do
       assert_select "trk" do
         assert_select "trkseg"
       end
@@ -118,7 +118,7 @@ class ApiControllerTest < ActionController::TestCase
     bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}"
     get :trackpoints, :bbox => bbox
     assert_response :success
-    assert_select "gpx[version=1.0][creator=OpenStreetMap.org][xmlns=http://www.topografix.com/GPX/1/0]", :count => 1 do
+    assert_select "gpx[version='1.0'][creator='OpenStreetMap.org']", :count => 1 do
       assert_select "trk", :count => 1 do
         assert_select "trk > trkseg", :count => 2 do |trksegs|
           trksegs.each do |trkseg|
@@ -140,7 +140,7 @@ class ApiControllerTest < ActionController::TestCase
     bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}"
     get :trackpoints, :bbox => bbox
     assert_response :success
-    assert_select "gpx[version=1.0][creator=OpenStreetMap.org][xmlns=http://www.topografix.com/GPX/1/0]", :count => 1 do
+    assert_select "gpx[version='1.0'][creator='OpenStreetMap.org']", :count => 1 do
       assert_select "trk", :count => 1 do
         assert_select "trk>name", :count => 1
         assert_select "trk>desc", :count => 1
@@ -287,13 +287,13 @@ class ApiControllerTest < ActionController::TestCase
     assert_response :success
     assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']", :count => 1 do
       assert_select "api", :count => 1 do
-        assert_select "version[minimum=#{API_VERSION}][maximum=#{API_VERSION}]", :count => 1
-        assert_select "area[maximum=#{MAX_REQUEST_AREA}]", :count => 1
-        assert_select "tracepoints[per_page=#{TRACEPOINTS_PER_PAGE}]", :count => 1
-        assert_select "changesets[maximum_elements=#{Changeset::MAX_ELEMENTS}]", :count => 1
-        assert_select "status[database=online]", :count => 1
-        assert_select "status[api=online]", :count => 1
-        assert_select "status[gpx=online]", :count => 1
+        assert_select "version[minimum='#{API_VERSION}'][maximum='#{API_VERSION}']", :count => 1
+        assert_select "area[maximum='#{MAX_REQUEST_AREA}']", :count => 1
+        assert_select "tracepoints[per_page='#{TRACEPOINTS_PER_PAGE}']", :count => 1
+        assert_select "changesets[maximum_elements='#{Changeset::MAX_ELEMENTS}']", :count => 1
+        assert_select "status[database='online']", :count => 1
+        assert_select "status[api='online']", :count => 1
+        assert_select "status[gpx='online']", :count => 1
       end
     end
   end
@@ -313,7 +313,7 @@ class ApiControllerTest < ActionController::TestCase
     assert_select "osm > permissions", :count => 1 do
       assert_select "permission", :count => ClientApplication.all_permissions.size
       ClientApplication.all_permissions.each do |p|
-        assert_select "permission[name=#{p}]", :count => 1
+        assert_select "permission[name='#{p}']", :count => 1
       end
     end
   end
@@ -329,9 +329,9 @@ class ApiControllerTest < ActionController::TestCase
     assert_response :success
     assert_select "osm > permissions", :count => 1 do
       assert_select "permission", :count => 2
-      assert_select "permission[name=allow_read_prefs]", :count => 1
-      assert_select "permission[name=allow_write_api]", :count => 1
-      assert_select "permission[name=allow_read_gpx]", :count => 0
+      assert_select "permission[name='allow_read_prefs']", :count => 1
+      assert_select "permission[name='allow_write_api']", :count => 1
+      assert_select "permission[name='allow_read_gpx']", :count => 0
     end
   end
 end
index 4617383303aeb34203414db00a2b09e39f0ad4d5..ff987b6e9c9c6610082f92750e5a1c831def9f63 100644 (file)
@@ -184,15 +184,15 @@ class ChangesetControllerTest < ActionController::TestCase
     get :read, :id => changeset_id
     assert_response :success, "cannot get first changeset"
 
-    assert_select "osm[version=#{API_VERSION}][generator=\"OpenStreetMap server\"]", 1
-    assert_select "osm>changeset[id=#{changeset_id}]", 1
+    assert_select "osm[version='#{API_VERSION}'][generator='OpenStreetMap server']", 1
+    assert_select "osm>changeset[id='#{changeset_id}']", 1
     assert_select "osm>changeset>discussion", 0
 
     get :read, :id => changeset_id, :include_discussion => true
     assert_response :success, "cannot get first changeset with comments"
 
-    assert_select "osm[version=#{API_VERSION}][generator=\"OpenStreetMap server\"]", 1
-    assert_select "osm>changeset[id=#{changeset_id}]", 1
+    assert_select "osm[version='#{API_VERSION}'][generator='OpenStreetMap server']", 1
+    assert_select "osm>changeset[id='#{changeset_id}']", 1
     assert_select "osm>changeset>discussion", 1
   end
 
@@ -425,9 +425,9 @@ EOF
       "can't upload a simple valid creation to changeset: #{@response.body}"
 
     # check the returned payload
-    assert_select "diffResult[version=#{API_VERSION}][generator=\"OpenStreetMap server\"]", 1
+    assert_select "diffResult[version='#{API_VERSION}'][generator='OpenStreetMap server']", 1
     assert_select "diffResult>node", 1
-    assert_select "diffresult>way", 1
+    assert_select "diffResult>way", 1
     assert_select "diffResult>relation", 1
 
     # inspect the response to find out what the new element IDs are
@@ -631,9 +631,9 @@ EOF
       "can't do a conditional delete of in use objects: #{@response.body}"
 
     # check the returned payload
-    assert_select "diffResult[version=#{API_VERSION}][generator=\"OpenStreetMap server\"]", 1
+    assert_select "diffResult[version='#{API_VERSION}'][generator='OpenStreetMap server']", 1
     assert_select "diffResult>node", 1
-    assert_select "diffresult>way", 1
+    assert_select "diffResult>way", 1
     assert_select "diffResult>relation", 1
 
     # parse the response
@@ -722,7 +722,7 @@ EOF
       "can't upload a complex diff to changeset: #{@response.body}"
 
     # check the returned payload
-    assert_select "diffResult[version=#{API_VERSION}][generator=\"#{GENERATOR}\"]", 1
+    assert_select "diffResult[version='#{API_VERSION}'][generator='#{GENERATOR}']", 1
     assert_select "diffResult>node", 1
     assert_select "diffResult>way", 1
     assert_select "diffResult>relation", 1
@@ -954,7 +954,7 @@ EOF
 
     # check the response is well-formed
     assert_select "diffResult>node", 3
-    assert_select "diffResult>node[old_id=-1]", 3
+    assert_select "diffResult>node[old_id='-1']", 3
   end
 
   ##
@@ -1207,7 +1207,7 @@ EOF
       "failed to return error in XML format"
 
     # check the returned payload
-    assert_select "osmError[version=#{API_VERSION}][generator=\"OpenStreetMap server\"]", 1
+    assert_select "osmError[version='#{API_VERSION}'][generator='OpenStreetMap server']", 1
     assert_select "osmError>status", 1
     assert_select "osmError>message", 1
 
@@ -1395,10 +1395,10 @@ EOF
     # FIXME needs more assert_select tests
     assert_select "osmChange[version='#{API_VERSION}'][generator='#{GENERATOR}']" do
       assert_select "create", :count => 5
-      assert_select "create>node[id=#{nodes(:used_node_2).node_id}][visible=#{nodes(:used_node_2).visible?}][version=#{nodes(:used_node_2).version}]" do
-        assert_select "tag[k=#{node_tags(:t3).k}][v=#{node_tags(:t3).v}]"
+      assert_select "create>node[id='#{nodes(:used_node_2).node_id}'][visible='#{nodes(:used_node_2).visible?}'][version='#{nodes(:used_node_2).version}']" do
+        assert_select "tag[k='#{node_tags(:t3).k}'][v='#{node_tags(:t3).v}']"
       end
-      assert_select "create>node[id=#{nodes(:visible_node).node_id}]"
+      assert_select "create>node[id='#{nodes(:visible_node).node_id}']"
     end
   end
 
@@ -1424,10 +1424,10 @@ EOF
     # get the bounding box back from the changeset
     get :read, :id => changeset_id
     assert_response :success, "Couldn't read back changeset."
-    assert_select "osm>changeset[min_lon=1.0]", 1
-    assert_select "osm>changeset[max_lon=1.0]", 1
-    assert_select "osm>changeset[min_lat=2.0]", 1
-    assert_select "osm>changeset[max_lat=2.0]", 1
+    assert_select "osm>changeset[min_lon='1.0']", 1
+    assert_select "osm>changeset[max_lon='1.0']", 1
+    assert_select "osm>changeset[min_lat='2.0']", 1
+    assert_select "osm>changeset[max_lat='2.0']", 1
 
     # add another node to it
     with_controller(NodeController.new) do
@@ -1439,10 +1439,10 @@ EOF
     # get the bounding box back from the changeset
     get :read, :id => changeset_id
     assert_response :success, "Couldn't read back changeset for the second time."
-    assert_select "osm>changeset[min_lon=1.0]", 1
-    assert_select "osm>changeset[max_lon=2.0]", 1
-    assert_select "osm>changeset[min_lat=1.0]", 1
-    assert_select "osm>changeset[max_lat=2.0]", 1
+    assert_select "osm>changeset[min_lon='1.0']", 1
+    assert_select "osm>changeset[max_lon='2.0']", 1
+    assert_select "osm>changeset[min_lat='1.0']", 1
+    assert_select "osm>changeset[max_lat='2.0']", 1
 
     # add (delete) a way to it, which contains a point at (3,3)
     with_controller(WayController.new) do
@@ -1456,10 +1456,10 @@ EOF
     get :read, :id => changeset_id
     assert_response :success, "Couldn't read back changeset for the third time."
     # note that the 3.1 here is because of the bbox overexpansion
-    assert_select "osm>changeset[min_lon=1.0]", 1
-    assert_select "osm>changeset[max_lon=3.1]", 1
-    assert_select "osm>changeset[min_lat=1.0]", 1
-    assert_select "osm>changeset[max_lat=3.1]", 1
+    assert_select "osm>changeset[min_lon='1.0']", 1
+    assert_select "osm>changeset[max_lon='3.1']", 1
+    assert_select "osm>changeset[min_lat='1.0']", 1
+    assert_select "osm>changeset[max_lat='3.1']", 1
   end
 
   ##
@@ -1675,9 +1675,9 @@ EOF
     put :update, :id => changeset.id
     assert_response :success
 
-    assert_select "osm>changeset[id=#{changeset.id}]", 1
+    assert_select "osm>changeset[id='#{changeset.id}']", 1
     assert_select "osm>changeset>tag", 2
-    assert_select "osm>changeset>tag[k=tagtesting][v=valuetesting]", 1
+    assert_select "osm>changeset>tag[k='tagtesting'][v='valuetesting']", 1
   end
 
   ##
@@ -1876,8 +1876,8 @@ EOF
     assert_select "osmChange", 1
     # this changeset contains node 17 in versions 1 & 2, but 1 should
     # be hidden.
-    assert_select "osmChange node[id=17]", 1
-    assert_select "osmChange node[id=17][version=1]", 0
+    assert_select "osmChange node[id='17']", 1
+    assert_select "osmChange node[id='17'][version='1']", 0
   end
 
   ##
@@ -2123,7 +2123,7 @@ EOF
   def assert_changesets(ids)
     assert_select "osm>changeset", ids.size
     ids.each do |id|
-      assert_select "osm>changeset[id=#{id}]", 1
+      assert_select "osm>changeset[id='#{id}']", 1
     end
   end
 
@@ -2136,7 +2136,7 @@ EOF
 
     # check exactly one changeset
     assert_select "osm>changeset", 1
-    assert_select "osm>changeset[id=#{changeset_id}]", 1
+    assert_select "osm>changeset[id='#{changeset_id}']", 1
 
     # check the bbox
     doc = XML::Parser.string(@response.body).parse
index ad3d6787b1aea7581ffbbf1cf5f48fe0979f58c8..32cab96cbda07d1d0abb8da2f786668662b6cd77 100644 (file)
@@ -170,14 +170,14 @@ class DiaryEntryControllerTest < ActionController::TestCase
     assert_template 'diary_entry/view'
     assert_select "title", :text => /Users' diaries | /, :count => 1
     assert_select "div.content-heading", :count => 1 do
-      assert_select "h2", :text => /#{entry.user.display_name}&#39;s diary/, :count => 1
+      assert_select "h2", :text => /#{entry.user.display_name}'s diary/, :count => 1
     end
     assert_select "div#content", :count => 1 do
       assert_select "div.post_heading", :text => /#{new_title}/, :count => 1
       # This next line won't work if the text has been run through the htmlize function
       # due to formatting that could be introduced
       assert_select "p", :text => /#{new_body}/, :count => 1
-      assert_select "abbr[class=geo][title=#{number_with_precision(new_latitude, :precision => 4)}; #{number_with_precision(new_longitude, :precision => 4)}]", :count => 1
+      assert_select "abbr[class='geo'][title='#{number_with_precision(new_latitude, :precision => 4)}; #{number_with_precision(new_longitude, :precision => 4)}']", :count => 1
       # As we're not logged in, check that you cannot edit
       #print @response.body
       assert_select "a[href='/user/#{entry.user.display_name}/diary/#{entry.id}/edit']", :text => "Edit this entry", :count => 1
@@ -189,16 +189,16 @@ class DiaryEntryControllerTest < ActionController::TestCase
     assert_template 'diary_entry/view'
     assert_select "title", :text => /Users' diaries | /, :count => 1
     assert_select "div.content-heading", :count => 1 do
-      assert_select "h2", :text => /#{users(:normal_user).display_name}&#39;s diary/, :count => 1
+      assert_select "h2", :text => /#{users(:normal_user).display_name}'s diary/, :count => 1
     end
     assert_select "div#content", :count => 1 do
       assert_select "div.post_heading", :text => /#{new_title}/, :count => 1
       # This next line won't work if the text has been run through the htmlize function
       # due to formatting that could be introduced
       assert_select "p", :text => /#{new_body}/, :count => 1
-      assert_select "abbr[class=geo][title=#{number_with_precision(new_latitude, :precision => 4)}; #{number_with_precision(new_longitude, :precision => 4)}]", :count => 1
+      assert_select "abbr[class=geo][title='#{number_with_precision(new_latitude, :precision => 4)}; #{number_with_precision(new_longitude, :precision => 4)}']", :count => 1
       # As we're not logged in, check that you cannot edit
-      assert_select "li[class=hidden show_if_user_#{entry.user.id}]", :count => 1 do
+      assert_select "li[class='hidden show_if_user_#{entry.user.id}']", :count => 1 do
         assert_select "a[href='/user/#{entry.user.display_name}/diary/#{entry.id}/edit']", :text => "Edit this entry", :count => 1
       end
     end
index 44271f5ddb4b5c88881c4d0497d8643763944291..1476831cf4dd29923262fe16daf1a42895ee4087 100644 (file)
@@ -78,7 +78,7 @@ class MessageControllerTest < ActionController::TestCase
     assert_select "title", "OpenStreetMap | Send message"
     assert_select "form[action='#{new_message_path(:display_name => users(:public_user).display_name)}']", :count => 1 do
       assert_select "input#message_title", :count => 1 do
-        assert_select "[value=Test Message]"
+        assert_select "[value='Test Message']"
       end
       assert_select "textarea#message_body", :text => "", :count => 1
       assert_select "input[type='submit'][value='Send']", :count => 1
@@ -97,7 +97,7 @@ class MessageControllerTest < ActionController::TestCase
     assert_select "title", "OpenStreetMap | Send message"
     assert_select "form[action='#{new_message_path(:display_name => users(:public_user).display_name)}']", :count => 1 do
       assert_select "input#message_title", :count => 1 do
-        assert_select "[value=]"
+        assert_select "[value='']"
       end
       assert_select "textarea#message_body", :text => "Test message body", :count => 1
       assert_select "input[type='submit'][value='Send']", :count => 1
@@ -134,6 +134,27 @@ class MessageControllerTest < ActionController::TestCase
     assert_select "h1", "The user non_existent_user does not exist"
   end
 
+  ##
+  # test the new action message limit
+  def test_new_limit
+    # Login as a normal user
+    session[:user] = users(:normal_user).id
+
+    # Check that sending a message fails when the message limit is hit
+    assert_no_difference "ActionMailer::Base.deliveries.size" do
+      assert_no_difference "Message.count" do
+        with_message_limit(0) do
+          post :new,
+            :display_name => users(:public_user).display_name,
+            :message => { :title => "Test Message", :body => "Test message body" }
+          assert_response :success
+          assert_template "new"
+          assert_select "p.error", /wait a while/
+        end
+      end
+    end
+  end
+
   ##
   # test the reply action
   def test_reply
@@ -362,4 +383,16 @@ class MessageControllerTest < ActionController::TestCase
     assert_response :not_found
     assert_template "no_such_message"
   end
+
+private
+
+  def with_message_limit(value)
+    max_messages_per_hour = Object.send("remove_const", "MAX_MESSAGES_PER_HOUR")
+    Object.const_set("MAX_MESSAGES_PER_HOUR", value)
+
+    yield
+
+    Object.send("remove_const", "MAX_MESSAGES_PER_HOUR")
+    Object.const_set("MAX_MESSAGES_PER_HOUR", max_messages_per_hour)
+  end
 end
index 3d689bb3f4f5f236f90b2a70ed2cd449b27bc664..9663ed4fb76a63db1c4e6a979aaddca6bf477808 100644 (file)
@@ -434,11 +434,11 @@ class NodeControllerTest < ActionController::TestCase
     assert_response :success
     assert_select "osm" do
       assert_select "node", :count => 5
-      assert_select "node[id=1][visible=true]", :count => 1
-      assert_select "node[id=2][visible=false]", :count => 1
-      assert_select "node[id=4][visible=true]", :count => 1
-      assert_select "node[id=15][visible=true]", :count => 1
-      assert_select "node[id=17][visible=false]", :count => 1
+      assert_select "node[id='1'][visible='true']", :count => 1
+      assert_select "node[id='2'][visible='false']", :count => 1
+      assert_select "node[id='4'][visible='true']", :count => 1
+      assert_select "node[id='15'][visible='true']", :count => 1
+      assert_select "node[id='17'][visible='false']", :count => 1
     end
 
     # check error when a non-existent node is included
index 6f212519326f77475bd4ea8b8a9605977733e14b..430d018e23292e3be54541cd210486c18ca64cf2 100644 (file)
@@ -375,7 +375,7 @@ class NotesControllerTest < ActionController::TestCase
     assert_response :success
     assert_equal "application/xml", @response.content_type
     assert_select "osm", :count => 1 do
-      assert_select "note[lat=#{notes(:open_note).lat}][lon=#{notes(:open_note).lon}]", :count => 1 do
+      assert_select "note[lat='#{notes(:open_note).lat}'][lon='#{notes(:open_note).lon}']", :count => 1 do
         assert_select "id", notes(:open_note).id
         assert_select "url", note_url(notes(:open_note), :format => "xml")
         assert_select "comment_url", comment_note_url(notes(:open_note), :format => "xml")
@@ -424,7 +424,7 @@ class NotesControllerTest < ActionController::TestCase
     assert_response :success
     assert_equal "application/gpx+xml", @response.content_type
     assert_select "gpx", :count => 1 do
-      assert_select "wpt[lat=#{notes(:open_note).lat}][lon=#{notes(:open_note).lon}]", :count => 1 do
+      assert_select "wpt[lat='#{notes(:open_note).lat}'][lon='#{notes(:open_note).lon}']", :count => 1 do
         assert_select "extension", :count => 1 do
           assert_select "id", notes(:open_note).id
           assert_select "url", note_url(notes(:open_note), :format => "gpx")
index 5b0436348031c41dd99e493541fe548f78ddbefe..f4e88ddd0ec3ea0fe7dda9445676d81db6f4cd50 100644 (file)
@@ -224,13 +224,13 @@ class OldNodeControllerTest < ActionController::TestCase
 
     get :history, :id => node.node_id
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm node[id=#{node.node_id}][version=#{node.version}]", 0, "redacted node #{node.node_id} version #{node.version} shouldn't be present in the history."
+    assert_select "osm node[id='#{node.node_id}'][version='#{node.version}']", 0, "redacted node #{node.node_id} version #{node.version} shouldn't be present in the history."
 
     # not even to a logged-in user
     basic_authorization(users(:public_user).email, "test")
     get :history, :id => node.node_id
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm node[id=#{node.node_id}][version=#{node.version}]", 0, "redacted node #{node.node_id} version #{node.version} shouldn't be present in the history, even when logged in."
+    assert_select "osm node[id='#{node.node_id}'][version='#{node.version}']", 0, "redacted node #{node.node_id} version #{node.version} shouldn't be present in the history, even when logged in."
   end
 
   ##
@@ -253,10 +253,10 @@ class OldNodeControllerTest < ActionController::TestCase
     # and when accessed via history
     get :history, :id => node.node_id
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm node[id=#{node.node_id}][version=#{node.version}]", 0, "node #{node.node_id} version #{node.version} should not be present in the history for moderators when not passing flag."
+    assert_select "osm node[id='#{node.node_id}'][version='#{node.version}']", 0, "node #{node.node_id} version #{node.version} should not be present in the history for moderators when not passing flag."
     get :history, :id => node.node_id, :show_redactions => 'true'
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm node[id=#{node.node_id}][version=#{node.version}]", 1, "node #{node.node_id} version #{node.version} should still be present in the history for moderators when passing flag."
+    assert_select "osm node[id='#{node.node_id}'][version='#{node.version}']", 1, "node #{node.node_id} version #{node.version} should still be present in the history for moderators when passing flag."
   end
 
   # testing that if the moderator drops auth, he can't see the
@@ -278,7 +278,7 @@ class OldNodeControllerTest < ActionController::TestCase
     # and when accessed via history
     get :history, :id => node.node_id
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm node[id=#{node.node_id}][version=#{node.version}]", 0, "redacted node #{node.node_id} version #{node.version} shouldn't be present in the history."
+    assert_select "osm node[id='#{node.node_id}'][version='#{node.version}']", 0, "redacted node #{node.node_id} version #{node.version} shouldn't be present in the history."
   end
 
   def do_redact_node(node, redaction)
index 1db613cd4733f384344c976f14953529ac53ebe5..ea1550ab445e7a6e392857d80f75d621881b9cc9 100644 (file)
@@ -87,14 +87,14 @@ class OldRelationControllerTest < ActionController::TestCase
 
     get :history, :id => relation.relation_id
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm relation[id=#{relation.relation_id}][version=#{relation.version}]", 0, "redacted relation #{relation.relation_id} version #{relation.version} shouldn't be present in the history."
+    assert_select "osm relation[id='#{relation.relation_id}'][version='#{relation.version}']", 0, "redacted relation #{relation.relation_id} version #{relation.version} shouldn't be present in the history."
 
     # not even to a logged-in user
     basic_authorization(users(:public_user).email, "test")
     get :version, :id => relation.relation_id, :version => relation.version
     get :history, :id => relation.relation_id
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm relation[id=#{relation.relation_id}][version=#{relation.version}]", 0, "redacted node #{relation.relation_id} version #{relation.version} shouldn't be present in the history, even when logged in."
+    assert_select "osm relation[id='#{relation.relation_id}'][version='#{relation.version}']", 0, "redacted node #{relation.relation_id} version #{relation.version} shouldn't be present in the history, even when logged in."
   end
 
   ##
@@ -117,10 +117,10 @@ class OldRelationControllerTest < ActionController::TestCase
     # and when accessed via history
     get :history, :id => relation.relation_id
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm relation[id=#{relation.relation_id}][version=#{relation.version}]", 0, "relation #{relation.relation_id} version #{relation.version} should not be present in the history for moderators when not passing flag."
+    assert_select "osm relation[id='#{relation.relation_id}'][version='#{relation.version}']", 0, "relation #{relation.relation_id} version #{relation.version} should not be present in the history for moderators when not passing flag."
     get :history, :id => relation.relation_id, :show_redactions => 'true'
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm relation[id=#{relation.relation_id}][version=#{relation.version}]", 1, "relation #{relation.relation_id} version #{relation.version} should still be present in the history for moderators when passing flag."
+    assert_select "osm relation[id='#{relation.relation_id}'][version='#{relation.version}']", 1, "relation #{relation.relation_id} version #{relation.version} should still be present in the history for moderators when passing flag."
   end
 
   # testing that if the moderator drops auth, he can't see the
@@ -142,7 +142,7 @@ class OldRelationControllerTest < ActionController::TestCase
     # and when accessed via history
     get :history, :id => relation.relation_id
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm relation[id=#{relation.relation_id}][version=#{relation.version}]", 0, "redacted relation #{relation.relation_id} version #{relation.version} shouldn't be present in the history."
+    assert_select "osm relation[id='#{relation.relation_id}'][version='#{relation.version}']", 0, "redacted relation #{relation.relation_id} version #{relation.version} shouldn't be present in the history."
   end
 
   ##
index 40315caa5be37eb7fb15f9329a55eb2add41ea73..306a4861560ce3d8bd61d42137ef22e897af2a71 100644 (file)
@@ -113,14 +113,14 @@ class OldWayControllerTest < ActionController::TestCase
 
     get :history, :id => way.way_id
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm way[id=#{way.way_id}][version=#{way.version}]", 0, "redacted way #{way.way_id} version #{way.version} shouldn't be present in the history."
+    assert_select "osm way[id='#{way.way_id}'][version='#{way.version}']", 0, "redacted way #{way.way_id} version #{way.version} shouldn't be present in the history."
 
     # not even to a logged-in user
     basic_authorization(users(:public_user).email, "test")
     get :version, :id => way.way_id, :version => way.version
     get :history, :id => way.way_id
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm way[id=#{way.way_id}][version=#{way.version}]", 0, "redacted node #{way.way_id} version #{way.version} shouldn't be present in the history, even when logged in."
+    assert_select "osm way[id='#{way.way_id}'][version='#{way.version}']", 0, "redacted node #{way.way_id} version #{way.version} shouldn't be present in the history, even when logged in."
   end
 
   ##
@@ -143,10 +143,10 @@ class OldWayControllerTest < ActionController::TestCase
     # and when accessed via history
     get :history, :id => way.way_id
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm way[id=#{way.way_id}][version=#{way.version}]", 0, "way #{way.way_id} version #{way.version} should not be present in the history for moderators when not passing flag."
+    assert_select "osm way[id='#{way.way_id}'][version='#{way.version}']", 0, "way #{way.way_id} version #{way.version} should not be present in the history for moderators when not passing flag."
     get :history, :id => way.way_id, :show_redactions => 'true'
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm way[id=#{way.way_id}][version=#{way.version}]", 1, "way #{way.way_id} version #{way.version} should still be present in the history for moderators when passing flag."
+    assert_select "osm way[id='#{way.way_id}'][version='#{way.version}']", 1, "way #{way.way_id} version #{way.version} should still be present in the history for moderators when passing flag."
   end
 
   # testing that if the moderator drops auth, he can't see the
@@ -168,7 +168,7 @@ class OldWayControllerTest < ActionController::TestCase
     # and when accessed via history
     get :history, :id => way.way_id
     assert_response :success, "Redaction shouldn't have stopped history working."
-    assert_select "osm way[id=#{way.way_id}][version=#{way.version}]", 0, "redacted way #{way.way_id} version #{way.version} shouldn't be present in the history."
+    assert_select "osm way[id='#{way.way_id}'][version='#{way.version}']", 0, "redacted way #{way.way_id} version #{way.version} shouldn't be present in the history."
   end
 
   ##
index 66d6012840a64bb7b4a648938e287e26c7b10611..d7a9bf5360eabdde0328923c30b7284f445ee985 100644 (file)
@@ -91,7 +91,7 @@ class RelationControllerTest < ActionController::TestCase
     assert_response :success
 
     # count one osm element
-    assert_select "osm[version=#{API_VERSION}][generator=\"OpenStreetMap server\"]", 1
+    assert_select "osm[version='#{API_VERSION}'][generator='OpenStreetMap server']", 1
 
     # we should have only the expected number of relations
     assert_select "osm>relation", expected_relations.size
@@ -99,8 +99,7 @@ class RelationControllerTest < ActionController::TestCase
     # and each of them should contain the node we originally searched for
     expected_relations.each do |r|
       relation_id = current_relations(r).id
-      assert_select "osm>relation#?", relation_id
-      assert_select "osm>relation#?>member[type=\"#{type}\"][ref=#{id}]", relation_id
+      assert_select "osm>relation[id='#{relation_id}']>member[type='#{type}'][ref='#{id}']", 1
     end
   end
 
@@ -130,10 +129,10 @@ class RelationControllerTest < ActionController::TestCase
     assert_response :success
     assert_select "osm" do
       assert_select "relation", :count => 4
-      assert_select "relation[id=1][visible=true]", :count => 1
-      assert_select "relation[id=2][visible=false]", :count => 1
-      assert_select "relation[id=4][visible=true]", :count => 1
-      assert_select "relation[id=7][visible=true]", :count => 1
+      assert_select "relation[id='1'][visible='true']", :count => 1
+      assert_select "relation[id='2'][visible='false']", :count => 1
+      assert_select "relation[id='4'][visible='true']", :count => 1
+      assert_select "relation[id='7'][visible='true']", :count => 1
     end
 
     # check error when a non-existent relation is included
@@ -862,11 +861,11 @@ OSM
       get :read, :id => changeset_id
       assert_response :success, "can't re-read changeset for modify test"
       assert_select "osm>changeset", 1, "Changeset element doesn't exist in #{@response.body}"
-      assert_select "osm>changeset[id=#{changeset_id}]", 1, "Changeset id=#{changeset_id} doesn't exist in #{@response.body}"
-      assert_select "osm>changeset[min_lon=#{bbox.min_lon}]", 1, "Changeset min_lon wrong in #{@response.body}"
-      assert_select "osm>changeset[min_lat=#{bbox.min_lat}]", 1, "Changeset min_lat wrong in #{@response.body}"
-      assert_select "osm>changeset[max_lon=#{bbox.max_lon}]", 1, "Changeset max_lon wrong in #{@response.body}"
-      assert_select "osm>changeset[max_lat=#{bbox.max_lat}]", 1, "Changeset max_lat wrong in #{@response.body}"
+      assert_select "osm>changeset[id='#{changeset_id}']", 1, "Changeset id=#{changeset_id} doesn't exist in #{@response.body}"
+      assert_select "osm>changeset[min_lon='#{bbox.min_lon}']", 1, "Changeset min_lon wrong in #{@response.body}"
+      assert_select "osm>changeset[min_lat='#{bbox.min_lat}']", 1, "Changeset min_lat wrong in #{@response.body}"
+      assert_select "osm>changeset[max_lon='#{bbox.max_lon}']", 1, "Changeset max_lon wrong in #{@response.body}"
+      assert_select "osm>changeset[max_lat='#{bbox.max_lat}']", 1, "Changeset max_lat wrong in #{@response.body}"
     end
   end
 
index a39e07efcc0c68b2e42bb8a03b4e877678a85735..75d057b9f746cb0ced22be60956941cf335c43f6 100644 (file)
@@ -195,13 +195,13 @@ class UserControllerTest < ActionController::TestCase
       end
       assert_select "body", :count => 1 do
         assert_select "div#content", :count => 1 do
-          assert_select "form[action='/user/new'][method=post]", :count => 1 do
-            assert_select "input[id=user_email]", :count => 1
-            assert_select "input[id=user_email_confirmation]", :count => 1
-            assert_select "input[id=user_display_name]", :count => 1
-            assert_select "input[id=user_pass_crypt][type=password]", :count => 1
-            assert_select "input[id=user_pass_crypt_confirmation][type=password]", :count => 1
-            assert_select "input[type=submit][value=Sign Up]", :count => 1
+          assert_select "form[action='/user/new'][method='post']", :count => 1 do
+            assert_select "input[id='user_email']", :count => 1
+            assert_select "input[id='user_email_confirmation']", :count => 1
+            assert_select "input[id='user_display_name']", :count => 1
+            assert_select "input[id='user_pass_crypt'][type='password']", :count => 1
+            assert_select "input[id='user_pass_crypt_confirmation'][type='password']", :count => 1
+            assert_select "input[type='submit'][value='Sign Up']", :count => 1
           end
         end
       end
@@ -568,42 +568,42 @@ class UserControllerTest < ActionController::TestCase
     get :view, {:display_name => "test"}
     assert_response :success
     assert_select "div#userinformation" do
-      assert_select "a[href^=/user/test/history]", 1
-      assert_select "a[href=/user/test/traces]", 1
-      assert_select "a[href=/user/test/diary]", 1
-      assert_select "a[href=/user/test/diary/comments]", 1
-      assert_select "a[href=/user/test/account]", 0
-      assert_select "a[href=/user/test/blocks]", 0
-      assert_select "a[href=/user/test/blocks_by]", 0
-      assert_select "a[href=/blocks/new/test]", 0
+      assert_select "a[href^='/user/test/history']", 1
+      assert_select "a[href='/user/test/traces']", 1
+      assert_select "a[href='/user/test/diary']", 1
+      assert_select "a[href='/user/test/diary/comments']", 1
+      assert_select "a[href='/user/test/account']", 0
+      assert_select "a[href='/user/test/blocks']", 0
+      assert_select "a[href='/user/test/blocks_by']", 0
+      assert_select "a[href='/blocks/new/test']", 0
     end
     
     # Test a user who has been blocked
     get :view, {:display_name => "blocked"}
     assert_response :success
     assert_select "div#userinformation" do
-      assert_select "a[href^=/user/blocked/history]", 1
-      assert_select "a[href=/user/blocked/traces]", 1
-      assert_select "a[href=/user/blocked/diary]", 1
-      assert_select "a[href=/user/blocked/diary/comments]", 1
-      assert_select "a[href=/user/blocked/account]", 0
-      assert_select "a[href=/user/blocked/blocks]", 1
-      assert_select "a[href=/user/blocked/blocks_by]", 0
-      assert_select "a[href=/blocks/new/blocked]", 0
+      assert_select "a[href^='/user/blocked/history']", 1
+      assert_select "a[href='/user/blocked/traces']", 1
+      assert_select "a[href='/user/blocked/diary']", 1
+      assert_select "a[href='/user/blocked/diary/comments']", 1
+      assert_select "a[href='/user/blocked/account']", 0
+      assert_select "a[href='/user/blocked/blocks']", 1
+      assert_select "a[href='/user/blocked/blocks_by']", 0
+      assert_select "a[href='/blocks/new/blocked']", 0
     end
     
     # Test a moderator who has applied blocks
     get :view, {:display_name => "moderator"}
     assert_response :success
     assert_select "div#userinformation" do
-      assert_select "a[href^=/user/moderator/history]", 1
-      assert_select "a[href=/user/moderator/traces]", 1
-      assert_select "a[href=/user/moderator/diary]", 1
-      assert_select "a[href=/user/moderator/diary/comments]", 1
-      assert_select "a[href=/user/moderator/account]", 0
-      assert_select "a[href=/user/moderator/blocks]", 0
-      assert_select "a[href=/user/moderator/blocks_by]", 1
-      assert_select "a[href=/blocks/new/moderator]", 0
+      assert_select "a[href^='/user/moderator/history']", 1
+      assert_select "a[href='/user/moderator/traces']", 1
+      assert_select "a[href='/user/moderator/diary']", 1
+      assert_select "a[href='/user/moderator/diary/comments']", 1
+      assert_select "a[href='/user/moderator/account']", 0
+      assert_select "a[href='/user/moderator/blocks']", 0
+      assert_select "a[href='/user/moderator/blocks_by']", 1
+      assert_select "a[href='/blocks/new/moderator']", 0
     end
 
     # Login as a normal user
@@ -613,14 +613,14 @@ class UserControllerTest < ActionController::TestCase
     get :view, {:display_name => "test"}
     assert_response :success
     assert_select "div#userinformation" do
-      assert_select "a[href^=/user/test/history]", 1
-      assert_select "a[href=/traces/mine]", 1
-      assert_select "a[href=/user/test/diary]", 1
-      assert_select "a[href=/user/test/diary/comments]", 1
-      assert_select "a[href=/user/test/account]", 1
-      assert_select "a[href=/user/test/blocks]", 0
-      assert_select "a[href=/user/test/blocks_by]", 0
-      assert_select "a[href=/blocks/new/test]", 0
+      assert_select "a[href^='/user/test/history']", 1
+      assert_select "a[href='/traces/mine']", 1
+      assert_select "a[href='/user/test/diary']", 1
+      assert_select "a[href='/user/test/diary/comments']", 1
+      assert_select "a[href='/user/test/account']", 1
+      assert_select "a[href='/user/test/blocks']", 0
+      assert_select "a[href='/user/test/blocks_by']", 0
+      assert_select "a[href='/blocks/new/test']", 0
     end
 
     # Login as a moderator
@@ -630,14 +630,14 @@ class UserControllerTest < ActionController::TestCase
     get :view, {:display_name => "test"}
     assert_response :success
     assert_select "div#userinformation" do
-      assert_select "a[href^=/user/test/history]", 1
-      assert_select "a[href=/user/test/traces]", 1
-      assert_select "a[href=/user/test/diary]", 1
-      assert_select "a[href=/user/test/diary/comments]", 1
-      assert_select "a[href=/user/test/account]", 0
-      assert_select "a[href=/user/test/blocks]", 0
-      assert_select "a[href=/user/test/blocks_by]", 0
-      assert_select "a[href=/blocks/new/test]", 1
+      assert_select "a[href^='/user/test/history']", 1
+      assert_select "a[href='/user/test/traces']", 1
+      assert_select "a[href='/user/test/diary']", 1
+      assert_select "a[href='/user/test/diary/comments']", 1
+      assert_select "a[href='/user/test/account']", 0
+      assert_select "a[href='/user/test/blocks']", 0
+      assert_select "a[href='/user/test/blocks_by']", 0
+      assert_select "a[href='/blocks/new/test']", 1
     end
   end
 
@@ -649,21 +649,21 @@ class UserControllerTest < ActionController::TestCase
     # check the data that is returned
     assert_select "description", :count => 1, :text => "test"
     assert_select "contributor-terms", :count => 1 do
-      assert_select "[agreed=true]"
+      assert_select "[agreed='true']"
     end
     assert_select "img", :count => 1
     assert_select "roles", :count => 1 do
       assert_select "role", :count => 0
     end
     assert_select "changesets", :count => 1 do
-      assert_select "[count=0]"
+      assert_select "[count='0']"
     end
     assert_select "traces", :count => 1 do
-      assert_select "[count=0]"
+      assert_select "[count='0']"
     end
     assert_select "blocks", :count => 1 do
       assert_select "received", :count => 1 do
-        assert_select "[count=0][active=0]"
+        assert_select "[count='0'][active='0']"
       end
       assert_select "issued", :count => 0
     end
@@ -700,36 +700,36 @@ class UserControllerTest < ActionController::TestCase
     # check the data that is returned
     assert_select "description", :count => 1, :text => "test"
     assert_select "contributor-terms", :count => 1 do
-      assert_select "[agreed=true][pd=false]"
+      assert_select "[agreed='true'][pd='false']"
     end
     assert_select "img", :count => 1
     assert_select "roles", :count => 1 do
       assert_select "role", :count => 0
     end
     assert_select "changesets", :count => 1 do
-      assert_select "[count=0]", :count => 1
+      assert_select "[count='0']", :count => 1
     end
     assert_select "traces", :count => 1 do
-      assert_select "[count=0]", :count => 1
+      assert_select "[count='0']", :count => 1
     end
     assert_select "blocks", :count => 1 do
       assert_select "received", :count => 1 do
-        assert_select "[count=0][active=0]"
+        assert_select "[count='0'][active='0']"
       end
       assert_select "issued", :count => 0
     end
     assert_select "home", :count => 1 do
-      assert_select "[lat=12.1][lon=12.1][zoom=3]"
+      assert_select "[lat='12.1'][lon='12.1'][zoom='3']"
     end
     assert_select "languages", :count => 1 do
       assert_select "lang", :count => 1, :text => "en"
     end
     assert_select "messages", :count => 1 do
       assert_select "received", :count => 1 do
-        assert_select "[count=1][unread=0]"
+        assert_select "[count='1'][unread='0']"
       end
       assert_select "sent", :count => 1 do
-        assert_select "[count=1]"
+        assert_select "[count='1']"
       end
     end
   end
@@ -756,8 +756,8 @@ class UserControllerTest < ActionController::TestCase
     assert_response :success
     assert_template :make_friend
     assert_select "form" do
-      assert_select "input[type=hidden][name=referer]", 0
-      assert_select "input[type=submit]", 1
+      assert_select "input[type='hidden'][name='referer']", 0
+      assert_select "input[type='submit']", 1
     end
     assert_nil Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
 
@@ -766,8 +766,8 @@ class UserControllerTest < ActionController::TestCase
     assert_response :success
     assert_template :make_friend
     assert_select "form" do
-      assert_select "input[type=hidden][name=referer][value=/test]", 1
-      assert_select "input[type=submit]", 1
+      assert_select "input[type='hidden'][name='referer'][value='/test']", 1
+      assert_select "input[type='submit']", 1
     end
     assert_nil Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
 
@@ -814,8 +814,8 @@ class UserControllerTest < ActionController::TestCase
     assert_response :success
     assert_template :remove_friend
     assert_select "form" do
-      assert_select "input[type=hidden][name=referer]", 0
-      assert_select "input[type=submit]", 1
+      assert_select "input[type='hidden'][name='referer']", 0
+      assert_select "input[type='submit']", 1
     end
     assert Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
 
@@ -824,8 +824,8 @@ class UserControllerTest < ActionController::TestCase
     assert_response :success
     assert_template :remove_friend
     assert_select "form" do
-      assert_select "input[type=hidden][name=referer][value=/test]", 1
-      assert_select "input[type=submit]", 1
+      assert_select "input[type='hidden'][name='referer'][value='/test']", 1
+      assert_select "input[type='submit']", 1
     end
     assert Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
 
index 6e2ee3b0f2acf4d46e128aeba4c7c29105797220..ca87e6543e6d96292d9e075307a34889e15ac7d8 100644 (file)
@@ -67,14 +67,14 @@ class WayControllerTest < ActionController::TestCase
       assert_response :success
       
       # Check the way is correctly returned
-      assert_select "osm way[id=#{way.id}][version=#{way.version}][visible=#{way.visible}]", 1
+      assert_select "osm way[id='#{way.id}'][version='#{way.version}'][visible='#{way.visible}']", 1
       
       # check that each node in the way appears once in the output as a 
       # reference and as the node element.
       way.nodes.each do |n|
         count = (way.nodes - (way.nodes - [n])).length
-        assert_select "osm way nd[ref=#{n.id}]", count
-        assert_select "osm node[id=#{n.id}][version=#{n.version}][lat=#{n.lat}][lon=#{n.lon}]", 1
+        assert_select "osm way nd[ref='#{n.id}']", count
+        assert_select "osm node[id='#{n.id}'][version='#{n.version}'][lat='#{n.lat}'][lon='#{n.lon}']", 1
       end
     end
   end
@@ -95,10 +95,10 @@ class WayControllerTest < ActionController::TestCase
     assert_response :success
     assert_select "osm" do
       assert_select "way", :count => 4
-      assert_select "way[id=1][visible=true]", :count => 1
-      assert_select "way[id=2][visible=false]", :count => 1
-      assert_select "way[id=4][visible=true]", :count => 1
-      assert_select "way[id=6][visible=true]", :count => 1
+      assert_select "way[id='1'][visible='true']", :count => 1
+      assert_select "way[id='2'][visible='false']", :count => 1
+      assert_select "way[id='4'][visible='true']", :count => 1
+      assert_select "way[id='6'][visible='true']", :count => 1
     end
 
     # check error when a non-existent way is included
@@ -515,7 +515,7 @@ class WayControllerTest < ActionController::TestCase
     
     # check the full ways to ensure we're not missing anything
     expected_way_ids.each do |id|
-      way_xml = ways_xml.find("//osm/way[@id=#{id}]").first
+      way_xml = ways_xml.find("//osm/way[@id='#{id}']").first
       assert_ways_are_equal(Way.find(id),
                             Way.from_xml_node(way_xml))
     end
index 9c41a375e4423d3673f0142bcf18e797ce2a9237..38b941e3c85dfece8bea5fd1a38dd3a3b4795c7a 100644 (file)
@@ -38,10 +38,10 @@ nwn_name:
   k: 'name'
   v: 'Test Node'
 
-nwn_name_ru:
+nwn_name_pt:
   node_id: 18
-  k: 'name:ru'
-  v: 'проверки узла'
+  k: 'name:pt'
+  v: 'Nó teste'
 
 nwn_building:
   node_id: 18
index 21a63f5b12d061efa8613f20eef976ab3533ce82..d9001b720ff75e522dc8d48d34bd06c9bedfee97 100644 (file)
@@ -58,10 +58,10 @@ nwnv1_name:
   v: 'Test Node'
   version: 1
 
-nwnv1_name_ru:
+nwnv1_name_pt:
   node_id: 18
-  k: 'name:ru'
-  v: 'проверки узла'
+  k: 'name:pt'
+  v: 'Nó teste'
   version: 1
 
 nwnv1_building:
@@ -88,10 +88,10 @@ nwnv2_name:
   v: 'Test Node'
   version: 2
 
-nwnv2_name_ru:
+nwnv2_name_pt:
   node_id: 18
-  k: 'name:ru'
-  v: 'проверки узла'
+  k: 'name:pt'
+  v: 'Nó teste'
   version: 2
 
 nwnv2_building:
index f9aeb73cc21fe8352d8b04249b9c9e621ce986b6..5604b09bfef2585225900b554af70354a355d8e7 100644 (file)
@@ -17,11 +17,11 @@ class ApplicationHelperTest < ActionView::TestCase
 
       html = linkify(text)
       assert_equal false, html.html_safe?
-      assert_equal "Test <a href=\"#{link}\" rel=\"nofollow\">#{link}</a> is made into a link", html
+      assert_dom_equal "Test <a href=\"#{link}\" rel=\"nofollow\">#{link}</a> is made into a link", html
 
       html = linkify(text.html_safe)
       assert_equal true, html.html_safe?    
-      assert_equal "Test <a href=\"#{link}\" rel=\"nofollow\">#{link}</a> is made into a link", html
+      assert_dom_equal "Test <a href=\"#{link}\" rel=\"nofollow\">#{link}</a> is made into a link", html
     end
 
     %w(test@example.com mailto:test@example.com).each do |link|
@@ -29,22 +29,22 @@ class ApplicationHelperTest < ActionView::TestCase
 
       html = linkify(text)
       assert_equal false, html.html_safe?
-      assert_equal text, html
+      assert_dom_equal text, html
 
       html = linkify(text.html_safe)
       assert_equal true, html.html_safe?    
-      assert_equal text, html
+      assert_dom_equal text, html
     end
   end
 
   def test_rss_link_to
     link = rss_link_to(:controller => :diary_entry, :action => :rss)
-    assert_equal "<a class=\"rsssmall\" href=\"/diary/rss\"><img alt=\"Rss\" border=\"0\" height=\"16\" src=\"/images/RSS.png\" width=\"16\" /></a>", link
+    assert_dom_equal "<a class=\"rsssmall\" href=\"/diary/rss\"><img alt=\"Rss\" border=\"0\" height=\"16\" src=\"/images/RSS.png\" width=\"16\" /></a>", link
   end
 
   def test_atom_link_to
     link = atom_link_to(:controller => :changeset, :action => :feed)
-    assert_equal "<a class=\"rsssmall\" href=\"/history/feed\"><img alt=\"Rss\" border=\"0\" height=\"16\" src=\"/images/RSS.png\" width=\"16\" /></a>", link
+    assert_dom_equal "<a class=\"rsssmall\" href=\"/history/feed\"><img alt=\"Rss\" border=\"0\" height=\"16\" src=\"/images/RSS.png\" width=\"16\" /></a>", link
   end
 
   def test_style_rules
@@ -95,26 +95,26 @@ class ApplicationHelperTest < ActionView::TestCase
 
   def test_if_logged_in
     html = if_logged_in { "Test 1" }
-    assert_equal "<div class=\"hide_unless_logged_in\">Test 1</div>", html
+    assert_dom_equal "<div class=\"hide_unless_logged_in\">Test 1</div>", html
 
     html = if_logged_in(:span) { "Test 2" }
-    assert_equal "<span class=\"hide_unless_logged_in\">Test 2</span>", html
+    assert_dom_equal "<span class=\"hide_unless_logged_in\">Test 2</span>", html
   end
 
   def test_if_not_logged_in
     html = if_not_logged_in { "Test 1" }
-    assert_equal "<div class=\"hide_if_logged_in\">Test 1</div>", html
+    assert_dom_equal "<div class=\"hide_if_logged_in\">Test 1</div>", html
 
     html = if_not_logged_in(:span) { "Test 2" }
-    assert_equal "<span class=\"hide_if_logged_in\">Test 2</span>", html
+    assert_dom_equal "<span class=\"hide_if_logged_in\">Test 2</span>", html
   end
 
   def test_if_user
     html = if_user(users(:normal_user)) { "Test 1" }
-    assert_equal "<div class=\"hidden show_if_user_1\">Test 1</div>", html
+    assert_dom_equal "<div class=\"hidden show_if_user_1\">Test 1</div>", html
 
     html = if_user(users(:normal_user), :span) { "Test 2" }
-    assert_equal "<span class=\"hidden show_if_user_1\">Test 2</span>", html
+    assert_dom_equal "<span class=\"hidden show_if_user_1\">Test 2</span>", html
 
     html = if_user(nil) { "Test 3" }
     assert_nil html
@@ -125,24 +125,24 @@ class ApplicationHelperTest < ActionView::TestCase
 
   def test_unless_user
     html = unless_user(users(:normal_user)) { "Test 1" }
-    assert_equal "<div class=\"hide_if_user_1\">Test 1</div>", html
+    assert_dom_equal "<div class=\"hide_if_user_1\">Test 1</div>", html
 
     html = unless_user(users(:normal_user), :span) { "Test 2" }
-    assert_equal "<span class=\"hide_if_user_1\">Test 2</span>", html
+    assert_dom_equal "<span class=\"hide_if_user_1\">Test 2</span>", html
 
     html = unless_user(nil) { "Test 3" }
-    assert_equal "<div>Test 3</div>", html
+    assert_dom_equal "<div>Test 3</div>", html
 
     html = unless_user(nil, :span) { "Test 4" }
-    assert_equal "<span>Test 4</span>", html
+    assert_dom_equal "<span>Test 4</span>", html
   end
 
   def test_if_administrator
     html = if_administrator { "Test 1" }
-    assert_equal "<div class=\"hide_unless_administrator\">Test 1</div>", html
+    assert_dom_equal "<div class=\"hide_unless_administrator\">Test 1</div>", html
 
     html = if_administrator(:span) { "Test 2" }
-    assert_equal "<span class=\"hide_unless_administrator\">Test 2</span>", html
+    assert_dom_equal "<span class=\"hide_unless_administrator\">Test 2</span>", html
   end
 
   def test_richtext_area
index d3ed3a8267c702eb6c9c31ed0d6838fc5a2ff8ee..5d5c038c2c240912c8cbc1da5d5e3171817580bb 100644 (file)
@@ -17,39 +17,39 @@ class BrowseHelperTest < ActionView::TestCase
   end
 
   def test_printable_name
-    assert_equal "17", printable_name(current_nodes(:redacted_node))
-    assert_equal "<bdi>Test Node</bdi> (<bdi>18</bdi>)", printable_name(current_nodes(:node_with_name))
-    assert_equal "<bdi>Test Node</bdi> (<bdi>18</bdi>)", printable_name(nodes(:node_with_name_current_version))
-    assert_equal "18", printable_name(nodes(:node_with_name_redacted_version))
-    assert_equal "<bdi>Test Node</bdi> (<bdi>18, v2</bdi>)", printable_name(nodes(:node_with_name_current_version), true)
-    assert_equal "18, v1", printable_name(nodes(:node_with_name_redacted_version), true)
-
-    I18n.locale = "ru"
-
-    assert_equal "17", printable_name(current_nodes(:redacted_node))
-    assert_equal "<bdi>проверки узла</bdi> (<bdi>18</bdi>)", printable_name(current_nodes(:node_with_name))
-    assert_equal "<bdi>проверки узла</bdi> (<bdi>18</bdi>)", printable_name(nodes(:node_with_name_current_version))
-    assert_equal "18", printable_name(nodes(:node_with_name_redacted_version))
-    assert_equal "<bdi>проверки узла</bdi> (<bdi>18, v2</bdi>)", printable_name(nodes(:node_with_name_current_version), true)
-    assert_equal "18, v1", printable_name(nodes(:node_with_name_redacted_version), true)
-
-    I18n.locale = "ru-RU"
-
-    assert_equal "17", printable_name(current_nodes(:redacted_node))
-    assert_equal "<bdi>проверки узла</bdi> (<bdi>18</bdi>)", printable_name(current_nodes(:node_with_name))
-    assert_equal "<bdi>проверки узла</bdi> (<bdi>18</bdi>)", printable_name(nodes(:node_with_name_current_version))
-    assert_equal "18", printable_name(nodes(:node_with_name_redacted_version))
-    assert_equal "<bdi>проверки узла</bdi> (<bdi>18, v2</bdi>)", printable_name(nodes(:node_with_name_current_version), true)
-    assert_equal "18, v1", printable_name(nodes(:node_with_name_redacted_version), true)
+    assert_dom_equal "17", printable_name(current_nodes(:redacted_node))
+    assert_dom_equal "<bdi>Test Node</bdi> (<bdi>18</bdi>)", printable_name(current_nodes(:node_with_name))
+    assert_dom_equal "<bdi>Test Node</bdi> (<bdi>18</bdi>)", printable_name(nodes(:node_with_name_current_version))
+    assert_dom_equal "18", printable_name(nodes(:node_with_name_redacted_version))
+    assert_dom_equal "<bdi>Test Node</bdi> (<bdi>18, v2</bdi>)", printable_name(nodes(:node_with_name_current_version), true)
+    assert_dom_equal "18, v1", printable_name(nodes(:node_with_name_redacted_version), true)
+
+    I18n.locale = "pt"
+
+    assert_dom_equal "17", printable_name(current_nodes(:redacted_node))
+    assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>18</bdi>)", printable_name(current_nodes(:node_with_name))
+    assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>18</bdi>)", printable_name(nodes(:node_with_name_current_version))
+    assert_dom_equal "18", printable_name(nodes(:node_with_name_redacted_version))
+    assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>18, v2</bdi>)", printable_name(nodes(:node_with_name_current_version), true)
+    assert_dom_equal "18, v1", printable_name(nodes(:node_with_name_redacted_version), true)
+
+    I18n.locale = "pt-BR"
+
+    assert_dom_equal "17", printable_name(current_nodes(:redacted_node))
+    assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>18</bdi>)", printable_name(current_nodes(:node_with_name))
+    assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>18</bdi>)", printable_name(nodes(:node_with_name_current_version))
+    assert_dom_equal "18", printable_name(nodes(:node_with_name_redacted_version))
+    assert_dom_equal "<bdi>Nó teste</bdi> (<bdi>18, v2</bdi>)", printable_name(nodes(:node_with_name_current_version), true)
+    assert_dom_equal "18, v1", printable_name(nodes(:node_with_name_redacted_version), true)
 
     I18n.locale = "de"
 
-    assert_equal "17", printable_name(current_nodes(:redacted_node))
-    assert_equal "<bdi>Test Node</bdi> (<bdi>18</bdi>)", printable_name(current_nodes(:node_with_name))
-    assert_equal "<bdi>Test Node</bdi> (<bdi>18</bdi>)", printable_name(nodes(:node_with_name_current_version))
-    assert_equal "18", printable_name(nodes(:node_with_name_redacted_version))
-    assert_equal "<bdi>Test Node</bdi> (<bdi>18, v2</bdi>)", printable_name(nodes(:node_with_name_current_version), true)
-    assert_equal "18, v1", printable_name(nodes(:node_with_name_redacted_version), true)
+    assert_dom_equal "17", printable_name(current_nodes(:redacted_node))
+    assert_dom_equal "<bdi>Test Node</bdi> (<bdi>18</bdi>)", printable_name(current_nodes(:node_with_name))
+    assert_dom_equal "<bdi>Test Node</bdi> (<bdi>18</bdi>)", printable_name(nodes(:node_with_name_current_version))
+    assert_dom_equal "18", printable_name(nodes(:node_with_name_redacted_version))
+    assert_dom_equal "<bdi>Test Node</bdi> (<bdi>18, v2</bdi>)", printable_name(nodes(:node_with_name_current_version), true)
+    assert_dom_equal "18, v1", printable_name(nodes(:node_with_name_redacted_version), true)
   end
 
   def test_link_class
@@ -72,24 +72,24 @@ class BrowseHelperTest < ActionView::TestCase
 
   def test_format_key
     html = format_key("highway")
-    assert_equal "<a href=\"http://wiki.openstreetmap.org/wiki/Key:highway?uselang=en\" title=\"The wiki description page for the highway tag\">highway</a>", html
+    assert_dom_equal "<a href=\"http://wiki.openstreetmap.org/wiki/Key:highway?uselang=en\" title=\"The wiki description page for the highway tag\">highway</a>", html
 
     html = format_key("unknown")
-    assert_equal "unknown", html
+    assert_dom_equal "unknown", html
   end
 
   def test_format_value
     html = format_value("highway", "primary")
-    assert_equal "<a href=\"http://wiki.openstreetmap.org/wiki/Tag:highway=primary?uselang=en\" title=\"The wiki description page for the highway=primary tag\">primary</a>", html
+    assert_dom_equal "<a href=\"http://wiki.openstreetmap.org/wiki/Tag:highway=primary?uselang=en\" title=\"The wiki description page for the highway=primary tag\">primary</a>", html
 
     html = format_value("highway", "unknown")
-    assert_equal "unknown", html
+    assert_dom_equal "unknown", html
 
     html = format_value("unknown", "unknown")
-    assert_equal "unknown", html
+    assert_dom_equal "unknown", html
 
     html = format_value("phone", "+1234567890")
-    assert_equal "<a href=\"tel:+1234567890\" title=\"Call +1234567890\">+1234567890</a>", html
+    assert_dom_equal "<a href=\"tel:+1234567890\" title=\"Call +1234567890\">+1234567890</a>", html
   end
 
   def test_icon_tags
index d2dd0564e7990a5a05cce1861ef7dd3358cce7a3..0efe2e1a76bfcd10cee5ec05035b0096434f1f18 100644 (file)
@@ -135,7 +135,7 @@ class UserCreationTest < ActionDispatch::IntegrationTest
     assert_response :success
     assert_template 'user/confirm'
 
-    post "user/#{display_name}/confirm", { :confirm_string => confirm_string }
+    post "/user/#{display_name}/confirm", { :confirm_string => confirm_string }
     assert_response :redirect
     follow_redirect!
     assert_response :success
index 66f8f4b095442e38763bda954a3dc67572bbe543..ec91c1adccf6af88dd22a6eea997ef4e43dc5d62 100644 (file)
@@ -27,6 +27,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'changeset/history'
+    assert_select "span.username", "test"
   end
 
   def test_login_email_password_normal_upcase
@@ -48,7 +49,8 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     assert_response :redirect
     follow_redirect!
     assert_response :success
-    assert_template 'login'
+    assert_template 'changeset/history'
+    assert_select "span.username", "TEST"
   end
 
   def test_login_email_password_normal_titlecase
@@ -71,6 +73,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'login'
+    assert_select "span.username", false
   end
 
   def test_login_email_password_public
@@ -93,6 +96,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'changeset/history'
+    assert_select "span.username", "test2"
   end
 
   def test_login_email_password_public_upcase
@@ -115,6 +119,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'changeset/history'
+    assert_select "span.username", "test2"
   end
 
   def test_login_email_password_public_titlecase
@@ -137,6 +142,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'changeset/history'
+    assert_select "span.username", "test2"
   end
 
   def test_login_username_password_normal
@@ -159,6 +165,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'changeset/history'
+    assert_select "span.username", "test"
   end
 
   def test_login_username_password_normal_upcase
@@ -180,7 +187,8 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     assert_response :redirect
     follow_redirect!
     assert_response :success
-    assert_template 'login'
+    assert_template 'changeset/history'
+    assert_select "span.username", "TEST"
   end
 
   def test_login_username_password_normal_titlecase
@@ -203,6 +211,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'login'
+    assert_select "span.username", false
   end
 
   def test_login_username_password_public
@@ -225,6 +234,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'changeset/history'
+    assert_select "span.username", "test2"
   end
 
   def test_login_username_password_public_upcase
@@ -247,6 +257,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'changeset/history'
+    assert_select "span.username", "test2"
   end
 
   def test_login_username_password_public_titlecase
@@ -269,6 +280,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'changeset/history'
+    assert_select "span.username", "test2"
   end
 
   def test_login_openid_success
@@ -287,6 +299,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'changeset/history'
+    assert_select "span.username", "openIDuser"
   end
 
   def test_login_openid_cancel
@@ -305,6 +318,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'login'
+    assert_select "span.username", false
   end
 
   def test_login_openid_invalid_provider
@@ -319,6 +333,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'login'
+    assert_select "span.username", false
   end
 
   def test_login_openid_invalid_url
@@ -333,6 +348,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'login'
+    assert_select "span.username", false
   end
 
   def test_login_openid_unknown
@@ -351,5 +367,6 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     follow_redirect!
     assert_response :success
     assert_template 'user/new'
+    assert_select "span.username", false
   end
 end
index e99d594a4e184a14f55e1b104bd73d8dd1da8464..14e6f2196fc7321406fd3cd44d995fae61f16a51 100644 (file)
@@ -1,7 +1,7 @@
 require 'test_helper'
 
 class RichTextTest < ActiveSupport::TestCase
-  include ActionDispatch::Assertions::SelectorAssertions
+  include Rails::Dom::Testing::Assertions::SelectorAssertions
 
   def test_html_to_html
     r = RichText.new("html", "foo http://example.com/ bar")
@@ -152,7 +152,7 @@ class RichTextTest < ActiveSupport::TestCase
 
     r = RichText.new("text", "foo < bar & baz > qux")
     assert_html r do
-      assert_select "p", "foo &lt; bar &amp; baz &gt; qux"
+      assert_select "p", "foo < bar & baz > qux"
     end
   end
 
@@ -161,7 +161,7 @@ private
   def assert_html(richtext, &block)
     html = richtext.to_html
     assert html.html_safe?
-    root = HTML::Document.new(richtext.to_html, false, true).root
+    root = Nokogiri::HTML::DocumentFragment.parse(html)
     assert_select root, "*" do
       yield block
     end
index 5f8efdbbdef8bf65262aafb8c8003d7f61e4d14f..c13fde8e28e31734c7ae755deba6388e46b88d4c 100644 (file)
@@ -36,6 +36,6 @@ class ChangesetCommentTest < ActiveSupport::TestCase
   end
 
   def test_comments_of_changeset_count
-    assert_equal 3, Changeset.find(changesets(:normal_user_closed_change)).comments.count
+    assert_equal 3, Changeset.find(changesets(:normal_user_closed_change).id).comments.count
   end
 end
index 7acc6168f73a518f499a147793a5d256aab3cfee..612bff7034d51eb01f678dc10ae2e5f1af8939c1 100644 (file)
@@ -137,7 +137,7 @@ class NodeTest < ActiveSupport::TestCase
   end
 
   def test_delete
-    node_template = Node.find(current_nodes(:visible_node))
+    node_template = Node.find(current_nodes(:visible_node).id)
     assert_not_nil node_template
 
     assert_equal OldNode.where(:node_id => node_template.id).count, 1
diff --git a/test/performance/browsing_test.rb b/test/performance/browsing_test.rb
deleted file mode 100644 (file)
index 867fc8c..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-require 'test_helper'
-require 'rails/performance_test_help'
-
-# Profiling results for each test method are written to tmp/performance.
-class BrowsingTest < ActionDispatch::PerformanceTest
-  def test_homepage
-    get '/'
-  end
-end
index 94324d7c858db08ca088515bc3e5404772028013..77dace490002a1cdcb2dd91e9a5583673bd38e16 100644 (file)
@@ -1,10 +1,10 @@
 /**
-* @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+* @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
 */
 ;(function(window, document) {
 /*jshint evil:true */
   /** version */
-  var version = '3.7.0';
+  var version = '3.7.2';
 
   /** Preset options */
   var options = window.html5 || {};
     return typeof elements == 'string' ? elements.split(' ') : elements;
   }
 
-    /**
+  /**
+   * Extends the built-in list of html5 elements
+   * @memberOf html5
+   * @param {String|Array} newElements whitespace separated list or array of new element names to shiv
+   * @param {Document} ownerDocument The context document.
+   */
+  function addElements(newElements, ownerDocument) {
+    var elements = html5.elements;
+    if(typeof elements != 'string'){
+      elements = elements.join(' ');
+    }
+    if(typeof newElements != 'string'){
+      newElements = newElements.join(' ');
+    }
+    html5.elements = elements +' '+ newElements;
+    shivDocument(ownerDocument);
+  }
+
+   /**
    * Returns the data associated to the given document
    * @private
    * @param {Document} ownerDocument The document.
       'var n=f.cloneNode(),c=n.createElement;' +
       'h.shivMethods&&(' +
         // unroll the `createElement` calls
-        getElements().join().replace(/[\w\-]+/g, function(nodeName) {
+        getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
           data.createElem(nodeName);
           data.frag.createElement(nodeName);
           return 'c("' + nodeName + '")';
      * @memberOf html5
      * @type Array|String
      */
-    'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video',
+    'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
 
     /**
      * current version of html5shiv
     createElement: createElement,
 
     //creates a shived documentFragment
-    createDocumentFragment: createDocumentFragment
+    createDocumentFragment: createDocumentFragment,
+
+    //extends list of elements
+    addElements: addElements
   };
 
   /*--------------------------------------------------------------------------*/
index 64128472e325825c9c4cd03908be9aaff067ec27..feb62e92561a63eae96ff42e50ed873944382a5d 100644 (file)
@@ -1,16 +1,19 @@
 /*!
- * jQuery Cookie Plugin v1.4.0
+ * jQuery Cookie Plugin v1.4.1
  * https://github.com/carhartl/jquery-cookie
  *
- * Copyright 2013 Klaus Hartl
+ * Copyright 2006, 2014 Klaus Hartl
  * Released under the MIT license
  */
 (function (factory) {
        if (typeof define === 'function' && define.amd) {
-               // AMD. Register as anonymous module.
+               // AMD
                define(['jquery'], factory);
+       } else if (typeof exports === 'object') {
+               // CommonJS
+               factory(require('jquery'));
        } else {
-               // Browser globals.
+               // Browser globals
                factory(jQuery);
        }
 }(function ($) {
@@ -53,7 +56,7 @@
 
                // Write
 
-               if (value !== undefined && !$.isFunction(value)) {
+               if (arguments.length > 1 && !$.isFunction(value)) {
                        options = $.extend({}, config.defaults, options);
 
                        if (typeof options.expires === 'number') {
index 1dd96ac3a7dc6d0a8d920dc5a1907f4c8e6e005e..4a96cc310615b44ff70414974bbd3b99ea5dbadb 100644 (file)
@@ -1,12 +1,12 @@
  /*!
- * jQuery Simulate v0.0.1 - simulate browser mouse and keyboard events
+ * jQuery Simulate v1.0.0 - simulate browser mouse and keyboard events
  * https://github.com/jquery/jquery-simulate
  *
  * Copyright 2012 jQuery Foundation and other contributors
  * Released under the MIT license.
  * http://jquery.org/license
  *
- * Date: Sun Dec 9 12:15:33 2012 -0500
+ * Date: 2014-08-22
  */
 
 ;(function( $, undefined ) {
@@ -144,7 +144,7 @@ $.extend( $.simulate.prototype, {
                                0: 1,
                                1: 4,
                                2: 2
-                       }[ event.button ] || event.button;
+                       }[ event.button ] || ( event.button === -1 ? 0 : event.button );
                }
 
                return event;
@@ -201,7 +201,9 @@ $.extend( $.simulate.prototype, {
        },
 
        dispatchEvent: function( elem, type, event ) {
-               if ( elem.dispatchEvent ) {
+               if ( elem[ type ] ) {
+                       elem[ type ]();
+               } else if ( elem.dispatchEvent ) {
                        elem.dispatchEvent( event );
                } else if ( elem.fireEvent ) {
                        elem.fireEvent( "on" + type, event );
index f7bf207d0deca3fdb1c9e097761ff7a1ea0182b6..cbedd045a412f608fb523ac09bb2d634b7e7183d 100644 (file)
@@ -5,7 +5,7 @@ L.OSM.TileLayer = L.TileLayer.extend({
     url: document.location.protocol === 'https:' ?
       'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png' :
       'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
-    attribution: '© <a target="_parent" href="http://www.openstreetmap.org">OpenStreetMap</a> and contributors, under an <a target="_parent" href="http://www.openstreetmap.org/copyright">open license</a>'
+    attribution: '© <a href="http://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors'
   },
 
   initialize: function (options) {
@@ -26,14 +26,14 @@ L.OSM.Mapnik = L.OSM.TileLayer.extend({
 L.OSM.CycleMap = L.OSM.TileLayer.extend({
   options: {
     url: 'http://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png',
-    attribution: "Tiles courtesy of <a href='http://www.thunderforest.com/' target='_blank'>Andy Allan</a>"
+    attribution: '© <a href="http://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors. Tiles courtesy of <a href="http://www.thunderforest.com/" target="_blank">Andy Allan</a>'
   }
 });
 
 L.OSM.TransportMap = L.OSM.TileLayer.extend({
   options: {
     url: 'http://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png',
-    attribution: "Tiles courtesy of <a href='http://www.thunderforest.com/' target='_blank'>Andy Allan</a>"
+    attribution: '© <a href="http://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors. Tiles courtesy of <a href="http://www.thunderforest.com/" target="_blank">Andy Allan</a>'
   }
 });
 
@@ -43,9 +43,9 @@ L.OSM.MapQuestOpen = L.OSM.TileLayer.extend({
       'https://otile{s}-s.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png' :
       'http://otile{s}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png',
     subdomains: '1234',
-    attribution: document.location.protocol === 'https:' ?
-      "Tiles courtesy of <a href='http://www.mapquest.com/' target='_blank'>MapQuest</a> <img src='https://developer.mapquest.com/content/osm/mq_logo.png'>" :
-      "Tiles courtesy of <a href='http://www.mapquest.com/' target='_blank'>MapQuest</a> <img src='http://developer.mapquest.com/content/osm/mq_logo.png'>"
+    attribution: '© <a href="http://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors. ' + document.location.protocol === 'https:' ?
+      'Tiles courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img src="https://developer.mapquest.com/content/osm/mq_logo.png">' :
+      'Tiles courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img src="http://developer.mapquest.com/content/osm/mq_logo.png">'
   }
 });
 
@@ -54,7 +54,7 @@ L.OSM.HOT = L.OSM.TileLayer.extend({
     url: 'http://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png',
     maxZoom: 20,
     subdomains: 'abc',
-    attribution: "Tiles courtesy of <a href='http://hot.openstreetmap.org/' target='_blank'>Humanitarian OpenStreetMap Team</a>"
+    attribution: '© <a href="http://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors. Tiles courtesy of <a href="http://hot.openstreetmap.org/" target="_blank">Humanitarian OpenStreetMap Team</a>'
   }
 });
 
index 73eb8b9eeec5756c63ce6701c7a893fbaab95d04..e30e575e3eea524de1715e7c4f90a1387d410287 100644 (file)
@@ -87,8 +87,9 @@ ohauth.signature = function(oauth_secret, token_secret, baseString) {
 
 /**
  * Takes an options object for configuration (consumer_key,
- * consumer_secret, version, signature_method, token) and returns a
- * function that generates the Authorization header for given data.
+ * consumer_secret, version, signature_method, token, token_secret)
+ * and returns a function that generates the Authorization header
+ * for given data.
  *
  * The returned function takes these parameters:
  * - method: GET/POST/...
@@ -141,45 +142,7 @@ ohauth.headerGenerator = function(options) {
 
 module.exports = ohauth;
 
-},{"xtend":2,"jshashes":3}],2:[function(require,module,exports){
-var Keys = Object.keys || objectKeys
-
-module.exports = extend
-
-function extend() {
-    var target = {}
-
-    for (var i = 0; i < arguments.length; i++) {
-        var source = arguments[i]
-
-        if (!isObject(source)) {
-            continue
-        }
-
-        var keys = Keys(source)
-
-        for (var j = 0; j < keys.length; j++) {
-            var name = keys[j]
-            target[name] = source[name]
-        }
-    }
-
-    return target
-}
-
-function objectKeys(obj) {
-    var keys = []
-    for (var k in obj) {
-        keys.push(k)
-    }
-    return keys
-}
-
-function isObject(obj) {
-    return obj !== null && typeof obj === "object"
-}
-
-},{}],3:[function(require,module,exports){
+},{"jshashes":2,"xtend":3}],2:[function(require,module,exports){
 (function(global){/**
  * jsHashes - A fast and independent hashing library pure JavaScript implemented (ES5 compliant) for both server and client side
  * 
@@ -1801,6 +1764,819 @@ function isObject(obj) {
   }( this ));
 }()); // IIFE
 })(window)
+},{}],4:[function(require,module,exports){
+module.exports = hasKeys
+
+function hasKeys(source) {
+    return source !== null &&
+        (typeof source === "object" ||
+        typeof source === "function")
+}
+
+},{}],3:[function(require,module,exports){
+var Keys = require("object-keys")
+var hasKeys = require("./has-keys")
+
+module.exports = extend
+
+function extend() {
+    var target = {}
+
+    for (var i = 0; i < arguments.length; i++) {
+        var source = arguments[i]
+
+        if (!hasKeys(source)) {
+            continue
+        }
+
+        var keys = Keys(source)
+
+        for (var j = 0; j < keys.length; j++) {
+            var name = keys[j]
+            target[name] = source[name]
+        }
+    }
+
+    return target
+}
+
+},{"./has-keys":4,"object-keys":5}],5:[function(require,module,exports){
+module.exports = Object.keys || require('./shim');
+
+
+},{"./shim":6}],6:[function(require,module,exports){
+(function () {
+       "use strict";
+
+       // modified from https://github.com/kriskowal/es5-shim
+       var has = Object.prototype.hasOwnProperty,
+               is = require('is'),
+               forEach = require('foreach'),
+               hasDontEnumBug = !({'toString': null}).propertyIsEnumerable('toString'),
+               dontEnums = [
+                       "toString",
+                       "toLocaleString",
+                       "valueOf",
+                       "hasOwnProperty",
+                       "isPrototypeOf",
+                       "propertyIsEnumerable",
+                       "constructor"
+               ],
+               keysShim;
+
+       keysShim = function keys(object) {
+               if (!is.object(object) && !is.array(object)) {
+                       throw new TypeError("Object.keys called on a non-object");
+               }
+
+               var name, theKeys = [];
+               for (name in object) {
+                       if (has.call(object, name)) {
+                               theKeys.push(name);
+                       }
+               }
+
+               if (hasDontEnumBug) {
+                       forEach(dontEnums, function (dontEnum) {
+                               if (has.call(object, dontEnum)) {
+                                       theKeys.push(dontEnum);
+                               }
+                       });
+               }
+               return theKeys;
+       };
+
+       module.exports = keysShim;
+}());
+
+
+},{"is":7,"foreach":8}],7:[function(require,module,exports){
+
+/**!
+ * is
+ * the definitive JavaScript type testing library
+ * 
+ * @copyright 2013 Enrico Marino
+ * @license MIT
+ */
+
+var objProto = Object.prototype;
+var owns = objProto.hasOwnProperty;
+var toString = objProto.toString;
+var isActualNaN = function (value) {
+  return value !== value;
+};
+var NON_HOST_TYPES = {
+  "boolean": 1,
+  "number": 1,
+  "string": 1,
+  "undefined": 1
+};
+
+/**
+ * Expose `is`
+ */
+
+var is = module.exports = {};
+
+/**
+ * Test general.
+ */
+
+/**
+ * is.type
+ * Test if `value` is a type of `type`.
+ *
+ * @param {Mixed} value value to test
+ * @param {String} type type
+ * @return {Boolean} true if `value` is a type of `type`, false otherwise
+ * @api public
+ */
+
+is.a =
+is.type = function (value, type) {
+  return typeof value === type;
+};
+
+/**
+ * is.defined
+ * Test if `value` is defined.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if 'value' is defined, false otherwise
+ * @api public
+ */
+
+is.defined = function (value) {
+  return value !== undefined;
+};
+
+/**
+ * is.empty
+ * Test if `value` is empty.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is empty, false otherwise
+ * @api public
+ */
+
+is.empty = function (value) {
+  var type = toString.call(value);
+  var key;
+
+  if ('[object Array]' === type || '[object Arguments]' === type) {
+    return value.length === 0;
+  }
+
+  if ('[object Object]' === type) {
+    for (key in value) if (owns.call(value, key)) return false;
+    return true;
+  }
+
+  if ('[object String]' === type) {
+    return '' === value;
+  }
+
+  return false;
+};
+
+/**
+ * is.equal
+ * Test if `value` is equal to `other`.
+ *
+ * @param {Mixed} value value to test
+ * @param {Mixed} other value to compare with
+ * @return {Boolean} true if `value` is equal to `other`, false otherwise
+ */
+
+is.equal = function (value, other) {
+  var type = toString.call(value)
+  var key;
+
+  if (type !== toString.call(other)) {
+    return false;
+  }
+
+  if ('[object Object]' === type) {
+    for (key in value) {
+      if (!is.equal(value[key], other[key])) {
+        return false;
+      }
+    }
+    return true;
+  }
+
+  if ('[object Array]' === type) {
+    key = value.length;
+    if (key !== other.length) {
+      return false;
+    }
+    while (--key) {
+      if (!is.equal(value[key], other[key])) {
+        return false;
+      }
+    }
+    return true;
+  }
+
+  if ('[object Function]' === type) {
+    return value.prototype === other.prototype;
+  }
+
+  if ('[object Date]' === type) {
+    return value.getTime() === other.getTime();
+  }
+
+  return value === other;
+};
+
+/**
+ * is.hosted
+ * Test if `value` is hosted by `host`.
+ *
+ * @param {Mixed} value to test
+ * @param {Mixed} host host to test with
+ * @return {Boolean} true if `value` is hosted by `host`, false otherwise
+ * @api public
+ */
+
+is.hosted = function (value, host) {
+  var type = typeof host[value];
+  return type === 'object' ? !!host[value] : !NON_HOST_TYPES[type];
+};
+
+/**
+ * is.instance
+ * Test if `value` is an instance of `constructor`.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is an instance of `constructor`
+ * @api public
+ */
+
+is.instance = is['instanceof'] = function (value, constructor) {
+  return value instanceof constructor;
+};
+
+/**
+ * is.null
+ * Test if `value` is null.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is null, false otherwise
+ * @api public
+ */
+
+is['null'] = function (value) {
+  return value === null;
+};
+
+/**
+ * is.undefined
+ * Test if `value` is undefined.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is undefined, false otherwise
+ * @api public
+ */
+
+is.undefined = function (value) {
+  return value === undefined;
+};
+
+/**
+ * Test arguments.
+ */
+
+/**
+ * is.arguments
+ * Test if `value` is an arguments object.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is an arguments object, false otherwise
+ * @api public
+ */
+
+is.arguments = function (value) {
+  var isStandardArguments = '[object Arguments]' === toString.call(value);
+  var isOldArguments = !is.array(value) && is.arraylike(value) && is.object(value) && is.fn(value.callee);
+  return isStandardArguments || isOldArguments;
+};
+
+/**
+ * Test array.
+ */
+
+/**
+ * is.array
+ * Test if 'value' is an array.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is an array, false otherwise
+ * @api public
+ */
+
+is.array = function (value) {
+  return '[object Array]' === toString.call(value);
+};
+
+/**
+ * is.arguments.empty
+ * Test if `value` is an empty arguments object.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is an empty arguments object, false otherwise
+ * @api public
+ */
+is.arguments.empty = function (value) {
+  return is.arguments(value) && value.length === 0;
+};
+
+/**
+ * is.array.empty
+ * Test if `value` is an empty array.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is an empty array, false otherwise
+ * @api public
+ */
+is.array.empty = function (value) {
+  return is.array(value) && value.length === 0;
+};
+
+/**
+ * is.arraylike
+ * Test if `value` is an arraylike object.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is an arguments object, false otherwise
+ * @api public
+ */
+
+is.arraylike = function (value) {
+  return !!value && !is.boolean(value)
+    && owns.call(value, 'length')
+    && isFinite(value.length)
+    && is.number(value.length)
+    && value.length >= 0;
+};
+
+/**
+ * Test boolean.
+ */
+
+/**
+ * is.boolean
+ * Test if `value` is a boolean.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is a boolean, false otherwise
+ * @api public
+ */
+
+is.boolean = function (value) {
+  return '[object Boolean]' === toString.call(value);
+};
+
+/**
+ * is.false
+ * Test if `value` is false.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is false, false otherwise
+ * @api public
+ */
+
+is['false'] = function (value) {
+  return is.boolean(value) && (value === false || value.valueOf() === false);
+};
+
+/**
+ * is.true
+ * Test if `value` is true.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is true, false otherwise
+ * @api public
+ */
+
+is['true'] = function (value) {
+  return is.boolean(value) && (value === true || value.valueOf() === true);
+};
+
+/**
+ * Test date.
+ */
+
+/**
+ * is.date
+ * Test if `value` is a date.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is a date, false otherwise
+ * @api public
+ */
+
+is.date = function (value) {
+  return '[object Date]' === toString.call(value);
+};
+
+/**
+ * Test element.
+ */
+
+/**
+ * is.element
+ * Test if `value` is an html element.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is an HTML Element, false otherwise
+ * @api public
+ */
+
+is.element = function (value) {
+  return value !== undefined
+    && typeof HTMLElement !== 'undefined'
+    && value instanceof HTMLElement
+    && value.nodeType === 1;
+};
+
+/**
+ * Test error.
+ */
+
+/**
+ * is.error
+ * Test if `value` is an error object.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is an error object, false otherwise
+ * @api public
+ */
+
+is.error = function (value) {
+  return '[object Error]' === toString.call(value);
+};
+
+/**
+ * Test function.
+ */
+
+/**
+ * is.fn / is.function (deprecated)
+ * Test if `value` is a function.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is a function, false otherwise
+ * @api public
+ */
+
+is.fn = is['function'] = function (value) {
+  var isAlert = typeof window !== 'undefined' && value === window.alert;
+  return isAlert || '[object Function]' === toString.call(value);
+};
+
+/**
+ * Test number.
+ */
+
+/**
+ * is.number
+ * Test if `value` is a number.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is a number, false otherwise
+ * @api public
+ */
+
+is.number = function (value) {
+  return '[object Number]' === toString.call(value);
+};
+
+/**
+ * is.infinite
+ * Test if `value` is positive or negative infinity.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is positive or negative Infinity, false otherwise
+ * @api public
+ */
+is.infinite = function (value) {
+  return value === Infinity || value === -Infinity;
+};
+
+/**
+ * is.decimal
+ * Test if `value` is a decimal number.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is a decimal number, false otherwise
+ * @api public
+ */
+
+is.decimal = function (value) {
+  return is.number(value) && !isActualNaN(value) && value % 1 !== 0;
+};
+
+/**
+ * is.divisibleBy
+ * Test if `value` is divisible by `n`.
+ *
+ * @param {Number} value value to test
+ * @param {Number} n dividend
+ * @return {Boolean} true if `value` is divisible by `n`, false otherwise
+ * @api public
+ */
+
+is.divisibleBy = function (value, n) {
+  var isDividendInfinite = is.infinite(value);
+  var isDivisorInfinite = is.infinite(n);
+  var isNonZeroNumber = is.number(value) && !isActualNaN(value) && is.number(n) && !isActualNaN(n) && n !== 0;
+  return isDividendInfinite || isDivisorInfinite || (isNonZeroNumber && value % n === 0);
+};
+
+/**
+ * is.int
+ * Test if `value` is an integer.
+ *
+ * @param value to test
+ * @return {Boolean} true if `value` is an integer, false otherwise
+ * @api public
+ */
+
+is.int = function (value) {
+  return is.number(value) && !isActualNaN(value) && value % 1 === 0;
+};
+
+/**
+ * is.maximum
+ * Test if `value` is greater than 'others' values.
+ *
+ * @param {Number} value value to test
+ * @param {Array} others values to compare with
+ * @return {Boolean} true if `value` is greater than `others` values
+ * @api public
+ */
+
+is.maximum = function (value, others) {
+  if (isActualNaN(value)) {
+    throw new TypeError('NaN is not a valid value');
+  } else if (!is.arraylike(others)) {
+    throw new TypeError('second argument must be array-like');
+  }
+  var len = others.length;
+
+  while (--len >= 0) {
+    if (value < others[len]) {
+      return false;
+    }
+  }
+
+  return true;
+};
+
+/**
+ * is.minimum
+ * Test if `value` is less than `others` values.
+ *
+ * @param {Number} value value to test
+ * @param {Array} others values to compare with
+ * @return {Boolean} true if `value` is less than `others` values
+ * @api public
+ */
+
+is.minimum = function (value, others) {
+  if (isActualNaN(value)) {
+    throw new TypeError('NaN is not a valid value');
+  } else if (!is.arraylike(others)) {
+    throw new TypeError('second argument must be array-like');
+  }
+  var len = others.length;
+
+  while (--len >= 0) {
+    if (value > others[len]) {
+      return false;
+    }
+  }
+
+  return true;
+};
+
+/**
+ * is.nan
+ * Test if `value` is not a number.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is not a number, false otherwise
+ * @api public
+ */
+
+is.nan = function (value) {
+  return !is.number(value) || value !== value;
+};
+
+/**
+ * is.even
+ * Test if `value` is an even number.
+ *
+ * @param {Number} value value to test
+ * @return {Boolean} true if `value` is an even number, false otherwise
+ * @api public
+ */
+
+is.even = function (value) {
+  return is.infinite(value) || (is.number(value) && value === value && value % 2 === 0);
+};
+
+/**
+ * is.odd
+ * Test if `value` is an odd number.
+ *
+ * @param {Number} value value to test
+ * @return {Boolean} true if `value` is an odd number, false otherwise
+ * @api public
+ */
+
+is.odd = function (value) {
+  return is.infinite(value) || (is.number(value) && value === value && value % 2 !== 0);
+};
+
+/**
+ * is.ge
+ * Test if `value` is greater than or equal to `other`.
+ *
+ * @param {Number} value value to test
+ * @param {Number} other value to compare with
+ * @return {Boolean}
+ * @api public
+ */
+
+is.ge = function (value, other) {
+  if (isActualNaN(value) || isActualNaN(other)) {
+    throw new TypeError('NaN is not a valid value');
+  }
+  return !is.infinite(value) && !is.infinite(other) && value >= other;
+};
+
+/**
+ * is.gt
+ * Test if `value` is greater than `other`.
+ *
+ * @param {Number} value value to test
+ * @param {Number} other value to compare with
+ * @return {Boolean}
+ * @api public
+ */
+
+is.gt = function (value, other) {
+  if (isActualNaN(value) || isActualNaN(other)) {
+    throw new TypeError('NaN is not a valid value');
+  }
+  return !is.infinite(value) && !is.infinite(other) && value > other;
+};
+
+/**
+ * is.le
+ * Test if `value` is less than or equal to `other`.
+ *
+ * @param {Number} value value to test
+ * @param {Number} other value to compare with
+ * @return {Boolean} if 'value' is less than or equal to 'other'
+ * @api public
+ */
+
+is.le = function (value, other) {
+  if (isActualNaN(value) || isActualNaN(other)) {
+    throw new TypeError('NaN is not a valid value');
+  }
+  return !is.infinite(value) && !is.infinite(other) && value <= other;
+};
+
+/**
+ * is.lt
+ * Test if `value` is less than `other`.
+ *
+ * @param {Number} value value to test
+ * @param {Number} other value to compare with
+ * @return {Boolean} if `value` is less than `other`
+ * @api public
+ */
+
+is.lt = function (value, other) {
+  if (isActualNaN(value) || isActualNaN(other)) {
+    throw new TypeError('NaN is not a valid value');
+  }
+  return !is.infinite(value) && !is.infinite(other) && value < other;
+};
+
+/**
+ * is.within
+ * Test if `value` is within `start` and `finish`.
+ *
+ * @param {Number} value value to test
+ * @param {Number} start lower bound
+ * @param {Number} finish upper bound
+ * @return {Boolean} true if 'value' is is within 'start' and 'finish'
+ * @api public
+ */
+is.within = function (value, start, finish) {
+  if (isActualNaN(value) || isActualNaN(start) || isActualNaN(finish)) {
+    throw new TypeError('NaN is not a valid value');
+  } else if (!is.number(value) || !is.number(start) || !is.number(finish)) {
+    throw new TypeError('all arguments must be numbers');
+  }
+  var isAnyInfinite = is.infinite(value) || is.infinite(start) || is.infinite(finish);
+  return isAnyInfinite || (value >= start && value <= finish);
+};
+
+/**
+ * Test object.
+ */
+
+/**
+ * is.object
+ * Test if `value` is an object.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is an object, false otherwise
+ * @api public
+ */
+
+is.object = function (value) {
+  return value && '[object Object]' === toString.call(value);
+};
+
+/**
+ * is.hash
+ * Test if `value` is a hash - a plain object literal.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is a hash, false otherwise
+ * @api public
+ */
+
+is.hash = function (value) {
+  return is.object(value) && value.constructor === Object && !value.nodeType && !value.setInterval;
+};
+
+/**
+ * Test regexp.
+ */
+
+/**
+ * is.regexp
+ * Test if `value` is a regular expression.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if `value` is a regexp, false otherwise
+ * @api public
+ */
+
+is.regexp = function (value) {
+  return '[object RegExp]' === toString.call(value);
+};
+
+/**
+ * Test string.
+ */
+
+/**
+ * is.string
+ * Test if `value` is a string.
+ *
+ * @param {Mixed} value value to test
+ * @return {Boolean} true if 'value' is a string, false otherwise
+ * @api public
+ */
+
+is.string = function (value) {
+  return '[object String]' === toString.call(value);
+};
+
+
+},{}],8:[function(require,module,exports){
+
+var hasOwn = Object.prototype.hasOwnProperty;
+
+module.exports = function forEach (obj, fn, ctx) {
+    if (typeof fn !== 'function') {
+        throw new TypeError('iterator must be a function');
+    }
+    var l = obj.length;
+    if (l === +l) {
+        for (var i = 0; i < l; i++) {
+            fn.call(ctx, obj[i], i, obj);
+        }
+    } else {
+        for (var k in obj) {
+            if (hasOwn.call(obj, k)) {
+                fn.call(ctx, obj[k], k, obj);
+            }
+        }
+    }
+};
+
+
 },{}]},{},[1])(1)
 });
-;
+;
\ No newline at end of file
index 818b83362ab5c40c7936dd257fc7aee062defea7..65148bed9fd36f36eae09ffb3d1eeea75558aef7 100644 (file)
Binary files a/vendor/assets/potlatch2/potlatch2.swf and b/vendor/assets/potlatch2/potlatch2.swf differ
index 7b29c16cae753b3204586b5c8788af49a084583b..c0acf45ccbf88b222c3cddfc930bf020b095e465 100644 (file)
Binary files a/vendor/assets/potlatch2/potlatch2/assets.zip and b/vendor/assets/potlatch2/potlatch2/assets.zip differ
index 661b5ee16df72f80eee2956365aee8b00c0e8a9d..433599870a62efc78b8f8ef1f1bd604918ab13d5 100644 (file)
Binary files a/vendor/assets/potlatch2/potlatch2/locales/zh_TW.swf and b/vendor/assets/potlatch2/potlatch2/locales/zh_TW.swf differ