From: Richard Fairhurst Date: Mon, 26 Jan 2015 17:26:46 +0000 (+0000) Subject: Merge pull request #28 from zerebubuth/routing-ui-tweaks-2 X-Git-Tag: live~4282^2~10 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/497009ed2b98dfdeeb349e891c1fbd88d14ff087?hp=24df66b718e39a37eab151aa8fb5b6050789d81e Merge pull request #28 from zerebubuth/routing-ui-tweaks-2 Routing UI tweaks, part deux --- diff --git a/Gemfile b/Gemfile index ac030d38d..e59705dad 100644 --- 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' diff --git a/Gemfile.lock b/Gemfile.lock index 3f6685175..fee72773e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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) diff --git a/README.md b/README.md index 90a9b93ef..34e3325f0 100644 --- 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 diff --git a/Rakefile b/Rakefile index 039e38f47..28fdc4c57 100644 --- 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 diff --git a/Vendorfile b/Vendorfile index c2267a6d8..6468d5067 100644 --- a/Vendorfile +++ b/Vendorfile @@ -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 diff --git a/app/assets/images/RSS.png b/app/assets/images/RSS.png index 4838e5a70..89dda0c00 100644 Binary files a/app/assets/images/RSS.png and b/app/assets/images/RSS.png differ diff --git a/app/assets/images/about/osm.png b/app/assets/images/about/osm.png index d5479eea3..d97904e13 100644 Binary files a/app/assets/images/about/osm.png and b/app/assets/images/about/osm.png differ diff --git a/app/assets/images/about/sprite.png b/app/assets/images/about/sprite.png index bc76ee097..d38090599 100644 Binary files a/app/assets/images/about/sprite.png and b/app/assets/images/about/sprite.png differ diff --git a/app/assets/images/about/sprite@2x.png b/app/assets/images/about/sprite@2x.png index 65d09d73d..471b31d8f 100644 Binary files a/app/assets/images/about/sprite@2x.png and b/app/assets/images/about/sprite@2x.png differ diff --git a/app/assets/images/aol.png b/app/assets/images/aol.png index 917028b50..cf773f907 100644 Binary files a/app/assets/images/aol.png and b/app/assets/images/aol.png differ diff --git a/app/assets/images/attribution_example.png b/app/assets/images/attribution_example.png index 463c80ed0..afcdc5d25 100644 Binary files a/app/assets/images/attribution_example.png and b/app/assets/images/attribution_example.png differ diff --git a/app/assets/images/browse/aerodrome.p.16.png b/app/assets/images/browse/aerodrome.p.16.png index 8f13cd76f..e8462b68b 100644 Binary files a/app/assets/images/browse/aerodrome.p.16.png and b/app/assets/images/browse/aerodrome.p.16.png differ diff --git a/app/assets/images/browse/allotments.png b/app/assets/images/browse/allotments.png index bc8d3fe96..9dcc925aa 100644 Binary files a/app/assets/images/browse/allotments.png and b/app/assets/images/browse/allotments.png differ diff --git a/app/assets/images/browse/alpinehut.p.16.png b/app/assets/images/browse/alpinehut.p.16.png index 84b09771b..0499c586a 100644 Binary files a/app/assets/images/browse/alpinehut.p.16.png and b/app/assets/images/browse/alpinehut.p.16.png differ diff --git a/app/assets/images/browse/atm2.p.16.png b/app/assets/images/browse/atm2.p.16.png index 62caf207e..b3f843b3a 100644 Binary files a/app/assets/images/browse/atm2.p.16.png and b/app/assets/images/browse/atm2.p.16.png differ diff --git a/app/assets/images/browse/bank2.p.16.png b/app/assets/images/browse/bank2.p.16.png index a7d30e86d..e3f194635 100644 Binary files a/app/assets/images/browse/bank2.p.16.png and b/app/assets/images/browse/bank2.p.16.png differ diff --git a/app/assets/images/browse/bar.p.16.png b/app/assets/images/browse/bar.p.16.png index 201d66a03..ad2c8ebd2 100644 Binary files a/app/assets/images/browse/bar.p.16.png and b/app/assets/images/browse/bar.p.16.png differ diff --git a/app/assets/images/browse/bridge.20.png b/app/assets/images/browse/bridge.20.png index ed4808440..8146456fc 100644 Binary files a/app/assets/images/browse/bridge.20.png and b/app/assets/images/browse/bridge.20.png differ diff --git a/app/assets/images/browse/bridleway.20.png b/app/assets/images/browse/bridleway.20.png index bb46bcb8e..5e024ada6 100644 Binary files a/app/assets/images/browse/bridleway.20.png and b/app/assets/images/browse/bridleway.20.png differ diff --git a/app/assets/images/browse/brownfield.png b/app/assets/images/browse/brownfield.png index 76d94ccee..1b1603399 100644 Binary files a/app/assets/images/browse/brownfield.png and b/app/assets/images/browse/brownfield.png differ diff --git a/app/assets/images/browse/building.png b/app/assets/images/browse/building.png index 189bbe928..fd37114c9 100644 Binary files a/app/assets/images/browse/building.png and b/app/assets/images/browse/building.png differ diff --git a/app/assets/images/browse/bus_station.n.16.png b/app/assets/images/browse/bus_station.n.16.png index 5224dd119..182d6eb45 100644 Binary files a/app/assets/images/browse/bus_station.n.16.png and b/app/assets/images/browse/bus_station.n.16.png differ diff --git a/app/assets/images/browse/bus_stop.p.16.png b/app/assets/images/browse/bus_stop.p.16.png index 7d9d5e8b6..d50858deb 100644 Binary files a/app/assets/images/browse/bus_stop.p.16.png and b/app/assets/images/browse/bus_stop.p.16.png differ diff --git a/app/assets/images/browse/byway.20.png b/app/assets/images/browse/byway.20.png index fb98d24e9..ee682e3b6 100644 Binary files a/app/assets/images/browse/byway.20.png and b/app/assets/images/browse/byway.20.png differ diff --git a/app/assets/images/browse/cafe.p.16.png b/app/assets/images/browse/cafe.p.16.png index 836f8a540..75d272c23 100644 Binary files a/app/assets/images/browse/cafe.p.16.png and b/app/assets/images/browse/cafe.p.16.png differ diff --git a/app/assets/images/browse/camping.n.16.png b/app/assets/images/browse/camping.n.16.png index b76912566..bf35aaec4 100644 Binary files a/app/assets/images/browse/camping.n.16.png and b/app/assets/images/browse/camping.n.16.png differ diff --git a/app/assets/images/browse/car_share.p.16.png b/app/assets/images/browse/car_share.p.16.png index 1dcc537f6..e14c9d4eb 100644 Binary files a/app/assets/images/browse/car_share.p.16.png and b/app/assets/images/browse/car_share.p.16.png differ diff --git a/app/assets/images/browse/caravan_park.n.16.png b/app/assets/images/browse/caravan_park.n.16.png index a4b35a433..b605f4059 100644 Binary files a/app/assets/images/browse/caravan_park.n.16.png and b/app/assets/images/browse/caravan_park.n.16.png differ diff --git a/app/assets/images/browse/cemetery.png b/app/assets/images/browse/cemetery.png index 6d6d07222..f89cf18e2 100644 Binary files a/app/assets/images/browse/cemetery.png and b/app/assets/images/browse/cemetery.png differ diff --git a/app/assets/images/browse/centre.png b/app/assets/images/browse/centre.png index 10661ae4a..92abe2427 100644 Binary files a/app/assets/images/browse/centre.png and b/app/assets/images/browse/centre.png differ diff --git a/app/assets/images/browse/cinema.p.16.png b/app/assets/images/browse/cinema.p.16.png index 21f7dcb65..14b3efc33 100644 Binary files a/app/assets/images/browse/cinema.p.16.png and b/app/assets/images/browse/cinema.p.16.png differ diff --git a/app/assets/images/browse/commercial.png b/app/assets/images/browse/commercial.png index 0d2d27c14..3008f1809 100644 Binary files a/app/assets/images/browse/commercial.png and b/app/assets/images/browse/commercial.png differ diff --git a/app/assets/images/browse/common.png b/app/assets/images/browse/common.png index b2c4de826..4d0c1b465 100644 Binary files a/app/assets/images/browse/common.png and b/app/assets/images/browse/common.png differ diff --git a/app/assets/images/browse/cycleway.20.png b/app/assets/images/browse/cycleway.20.png index a75255098..882cf11ba 100644 Binary files a/app/assets/images/browse/cycleway.20.png and b/app/assets/images/browse/cycleway.20.png differ diff --git a/app/assets/images/browse/drinkingtap.p.16.png b/app/assets/images/browse/drinkingtap.p.16.png index b9baef7b7..4ce28753c 100644 Binary files a/app/assets/images/browse/drinkingtap.p.16.png and b/app/assets/images/browse/drinkingtap.p.16.png differ diff --git a/app/assets/images/browse/education_nursery.p.16.png b/app/assets/images/browse/education_nursery.p.16.png index 63651ef87..5b3be736d 100644 Binary files a/app/assets/images/browse/education_nursery.p.16.png and b/app/assets/images/browse/education_nursery.p.16.png differ diff --git a/app/assets/images/browse/education_school.p.16.png b/app/assets/images/browse/education_school.p.16.png index 95744bf6c..8373892af 100644 Binary files a/app/assets/images/browse/education_school.p.16.png and b/app/assets/images/browse/education_school.p.16.png differ diff --git a/app/assets/images/browse/education_university.p.16.png b/app/assets/images/browse/education_university.p.16.png index 57c92c39e..1b0fc5214 100644 Binary files a/app/assets/images/browse/education_university.p.16.png and b/app/assets/images/browse/education_university.p.16.png differ diff --git a/app/assets/images/browse/farm.png b/app/assets/images/browse/farm.png index 5b6f0bcfd..97890000c 100644 Binary files a/app/assets/images/browse/farm.png and b/app/assets/images/browse/farm.png differ diff --git a/app/assets/images/browse/fast_food.p.16.png b/app/assets/images/browse/fast_food.p.16.png index 28e78bfec..713290101 100644 Binary files a/app/assets/images/browse/fast_food.p.16.png and b/app/assets/images/browse/fast_food.p.16.png differ diff --git a/app/assets/images/browse/firestation.p.16.png b/app/assets/images/browse/firestation.p.16.png index cf2455922..c8ec4c0e9 100644 Binary files a/app/assets/images/browse/firestation.p.16.png and b/app/assets/images/browse/firestation.p.16.png differ diff --git a/app/assets/images/browse/footway.20.png b/app/assets/images/browse/footway.20.png index 5f69d00f1..fb85d5925 100644 Binary files a/app/assets/images/browse/footway.20.png and b/app/assets/images/browse/footway.20.png differ diff --git a/app/assets/images/browse/forest.png b/app/assets/images/browse/forest.png index 7e37c5df6..da748f81d 100644 Binary files a/app/assets/images/browse/forest.png and b/app/assets/images/browse/forest.png differ diff --git a/app/assets/images/browse/fuel.p.16.png b/app/assets/images/browse/fuel.p.16.png index 7bab32a4d..ba0b37e7e 100644 Binary files a/app/assets/images/browse/fuel.p.16.png and b/app/assets/images/browse/fuel.p.16.png differ diff --git a/app/assets/images/browse/gate2.p.16.png b/app/assets/images/browse/gate2.p.16.png index cee412c89..adba236c8 100644 Binary files a/app/assets/images/browse/gate2.p.16.png and b/app/assets/images/browse/gate2.p.16.png differ diff --git a/app/assets/images/browse/golf.png b/app/assets/images/browse/golf.png index f05ff255a..4f7afc4fa 100644 Binary files a/app/assets/images/browse/golf.png and b/app/assets/images/browse/golf.png differ diff --git a/app/assets/images/browse/halt.p.16.png b/app/assets/images/browse/halt.p.16.png index fbea173c3..ed4e96058 100644 Binary files a/app/assets/images/browse/halt.p.16.png and b/app/assets/images/browse/halt.p.16.png differ diff --git a/app/assets/images/browse/health_dentist.p.16.png b/app/assets/images/browse/health_dentist.p.16.png index e3219f792..cc05fe988 100644 Binary files a/app/assets/images/browse/health_dentist.p.16.png and b/app/assets/images/browse/health_dentist.p.16.png differ diff --git a/app/assets/images/browse/health_doctors.p.16.png b/app/assets/images/browse/health_doctors.p.16.png index 9cdc46914..8efa8a5b9 100644 Binary files a/app/assets/images/browse/health_doctors.p.16.png and b/app/assets/images/browse/health_doctors.p.16.png differ diff --git a/app/assets/images/browse/health_opticians.p.16.png b/app/assets/images/browse/health_opticians.p.16.png index d89ff568f..e27633daf 100644 Binary files a/app/assets/images/browse/health_opticians.p.16.png and b/app/assets/images/browse/health_opticians.p.16.png differ diff --git a/app/assets/images/browse/health_veterinary.p.16.png b/app/assets/images/browse/health_veterinary.p.16.png index dd8ee1699..6dba64b10 100644 Binary files a/app/assets/images/browse/health_veterinary.p.16.png and b/app/assets/images/browse/health_veterinary.p.16.png differ diff --git a/app/assets/images/browse/heathland.png b/app/assets/images/browse/heathland.png index 9342b56da..cb2fc225d 100644 Binary files a/app/assets/images/browse/heathland.png and b/app/assets/images/browse/heathland.png differ diff --git a/app/assets/images/browse/hospital.p.16.png b/app/assets/images/browse/hospital.p.16.png index dd4febf2b..9cd448a74 100644 Binary files a/app/assets/images/browse/hospital.p.16.png and b/app/assets/images/browse/hospital.p.16.png differ diff --git a/app/assets/images/browse/hostel.p.16.png b/app/assets/images/browse/hostel.p.16.png index ddab301d1..936269272 100644 Binary files a/app/assets/images/browse/hostel.p.16.png and b/app/assets/images/browse/hostel.p.16.png differ diff --git a/app/assets/images/browse/hotel.p.16.png b/app/assets/images/browse/hotel.p.16.png index cd2ba1620..3133a89b1 100644 Binary files a/app/assets/images/browse/hotel.p.16.png and b/app/assets/images/browse/hotel.p.16.png differ diff --git a/app/assets/images/browse/industrial.png b/app/assets/images/browse/industrial.png index e90e4633d..4ad4e5193 100644 Binary files a/app/assets/images/browse/industrial.png and b/app/assets/images/browse/industrial.png differ diff --git a/app/assets/images/browse/lake.png b/app/assets/images/browse/lake.png index 78cdd020c..c838303f6 100644 Binary files a/app/assets/images/browse/lake.png and b/app/assets/images/browse/lake.png differ diff --git a/app/assets/images/browse/level_crossing.p.16.png b/app/assets/images/browse/level_crossing.p.16.png index 27448359f..64097e313 100644 Binary files a/app/assets/images/browse/level_crossing.p.16.png and b/app/assets/images/browse/level_crossing.p.16.png differ diff --git a/app/assets/images/browse/library.p.16.png b/app/assets/images/browse/library.p.16.png index 4e42a73ce..c3e367d18 100644 Binary files a/app/assets/images/browse/library.p.16.png and b/app/assets/images/browse/library.p.16.png differ diff --git a/app/assets/images/browse/light_rail.20.png b/app/assets/images/browse/light_rail.20.png index 7f65a6271..d5796712a 100644 Binary files a/app/assets/images/browse/light_rail.20.png and b/app/assets/images/browse/light_rail.20.png differ diff --git a/app/assets/images/browse/lighthouse.p.16.png b/app/assets/images/browse/lighthouse.p.16.png index 96ffd440c..d5dc99f79 100644 Binary files a/app/assets/images/browse/lighthouse.p.16.png and b/app/assets/images/browse/lighthouse.p.16.png differ diff --git a/app/assets/images/browse/military.png b/app/assets/images/browse/military.png index 54741f3d2..93905b4d8 100644 Binary files a/app/assets/images/browse/military.png and b/app/assets/images/browse/military.png differ diff --git a/app/assets/images/browse/mini_round.p.16.png b/app/assets/images/browse/mini_round.p.16.png index 1448b3ee2..7d89ec4e6 100644 Binary files a/app/assets/images/browse/mini_round.p.16.png and b/app/assets/images/browse/mini_round.p.16.png differ diff --git a/app/assets/images/browse/motorway.20.png b/app/assets/images/browse/motorway.20.png index c89fa12a8..183c79411 100644 Binary files a/app/assets/images/browse/motorway.20.png and b/app/assets/images/browse/motorway.20.png differ diff --git a/app/assets/images/browse/museum.p.16.png b/app/assets/images/browse/museum.p.16.png index c58d30683..c587c04d3 100644 Binary files a/app/assets/images/browse/museum.p.16.png and b/app/assets/images/browse/museum.p.16.png differ diff --git a/app/assets/images/browse/park.png b/app/assets/images/browse/park.png index fac6f1fb9..a60755dd0 100644 Binary files a/app/assets/images/browse/park.png and b/app/assets/images/browse/park.png differ diff --git a/app/assets/images/browse/parking.p.16.png b/app/assets/images/browse/parking.p.16.png index 51660458a..dfe1dee68 100644 Binary files a/app/assets/images/browse/parking.p.16.png and b/app/assets/images/browse/parking.p.16.png differ diff --git a/app/assets/images/browse/path.20.png b/app/assets/images/browse/path.20.png index 13a090e89..d4ff508cc 100644 Binary files a/app/assets/images/browse/path.20.png and b/app/assets/images/browse/path.20.png differ diff --git a/app/assets/images/browse/pharmacy.p.16.png b/app/assets/images/browse/pharmacy.p.16.png index fb1c56c86..1541837a8 100644 Binary files a/app/assets/images/browse/pharmacy.p.16.png and b/app/assets/images/browse/pharmacy.p.16.png differ diff --git a/app/assets/images/browse/pitch.png b/app/assets/images/browse/pitch.png index 68333b7a4..a49af3010 100644 Binary files a/app/assets/images/browse/pitch.png and b/app/assets/images/browse/pitch.png differ diff --git a/app/assets/images/browse/place_of_worship.png b/app/assets/images/browse/place_of_worship.png index 95494f59c..a45cd9ca0 100644 Binary files a/app/assets/images/browse/place_of_worship.png and b/app/assets/images/browse/place_of_worship.png differ diff --git a/app/assets/images/browse/place_of_worship_unknown3.p.16.png b/app/assets/images/browse/place_of_worship_unknown3.p.16.png index 08b832963..f4db652ce 100644 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 diff --git a/app/assets/images/browse/police.p.16.png b/app/assets/images/browse/police.p.16.png index 2dd87aaf2..e9482854a 100644 Binary files a/app/assets/images/browse/police.p.16.png and b/app/assets/images/browse/police.p.16.png differ diff --git a/app/assets/images/browse/post_box.p.16.png b/app/assets/images/browse/post_box.p.16.png index 3119cc135..7c1656d02 100644 Binary files a/app/assets/images/browse/post_box.p.16.png and b/app/assets/images/browse/post_box.p.16.png differ diff --git a/app/assets/images/browse/post_office.p.16.png b/app/assets/images/browse/post_office.p.16.png index 743255eb0..d1e2b4dd4 100644 Binary files a/app/assets/images/browse/post_office.p.16.png and b/app/assets/images/browse/post_office.p.16.png differ diff --git a/app/assets/images/browse/primary.20.png b/app/assets/images/browse/primary.20.png index 668e25d71..7a6efb4c8 100644 Binary files a/app/assets/images/browse/primary.20.png and b/app/assets/images/browse/primary.20.png differ diff --git a/app/assets/images/browse/prison.p.16.png b/app/assets/images/browse/prison.p.16.png index 4b2fc4015..7971e1e0f 100644 Binary files a/app/assets/images/browse/prison.p.16.png and b/app/assets/images/browse/prison.p.16.png differ diff --git a/app/assets/images/browse/pub.p.16.png b/app/assets/images/browse/pub.p.16.png index b452a7ead..6169f8001 100644 Binary files a/app/assets/images/browse/pub.p.16.png and b/app/assets/images/browse/pub.p.16.png differ diff --git a/app/assets/images/browse/rail.20.png b/app/assets/images/browse/rail.20.png index f93a6ef8a..127bde724 100644 Binary files a/app/assets/images/browse/rail.20.png and b/app/assets/images/browse/rail.20.png differ diff --git a/app/assets/images/browse/recycling.p.16.png b/app/assets/images/browse/recycling.p.16.png index 59eb331aa..83fdd36f0 100644 Binary files a/app/assets/images/browse/recycling.p.16.png and b/app/assets/images/browse/recycling.p.16.png differ diff --git a/app/assets/images/browse/reserve.png b/app/assets/images/browse/reserve.png index cf16376f6..e1aa792fc 100644 Binary files a/app/assets/images/browse/reserve.png and b/app/assets/images/browse/reserve.png differ diff --git a/app/assets/images/browse/residential.png b/app/assets/images/browse/residential.png index 67c2e34e0..e3b850e46 100644 Binary files a/app/assets/images/browse/residential.png and b/app/assets/images/browse/residential.png differ diff --git a/app/assets/images/browse/restaurant.p.16.png b/app/assets/images/browse/restaurant.p.16.png index 5c410087b..e9e360c0c 100644 Binary files a/app/assets/images/browse/restaurant.p.16.png and b/app/assets/images/browse/restaurant.p.16.png differ diff --git a/app/assets/images/browse/retail.png b/app/assets/images/browse/retail.png index cc9621111..23b097ba4 100644 Binary files a/app/assets/images/browse/retail.png and b/app/assets/images/browse/retail.png differ diff --git a/app/assets/images/browse/runway.20.png b/app/assets/images/browse/runway.20.png index dac187ff1..de044be1a 100644 Binary files a/app/assets/images/browse/runway.20.png and b/app/assets/images/browse/runway.20.png differ diff --git a/app/assets/images/browse/school.png b/app/assets/images/browse/school.png index ea35d02aa..9361041fc 100644 Binary files a/app/assets/images/browse/school.png and b/app/assets/images/browse/school.png differ diff --git a/app/assets/images/browse/secondary.20.png b/app/assets/images/browse/secondary.20.png index f6a758ed9..dfdfd1bfb 100644 Binary files a/app/assets/images/browse/secondary.20.png and b/app/assets/images/browse/secondary.20.png differ diff --git a/app/assets/images/browse/service.20.png b/app/assets/images/browse/service.20.png index b28d744dd..e88a60273 100644 Binary files a/app/assets/images/browse/service.20.png and b/app/assets/images/browse/service.20.png differ diff --git a/app/assets/images/browse/shelter2.p.16.png b/app/assets/images/browse/shelter2.p.16.png index 09ea53054..38ea444a6 100644 Binary files a/app/assets/images/browse/shelter2.p.16.png and b/app/assets/images/browse/shelter2.p.16.png differ diff --git a/app/assets/images/browse/shop_bakery.p.16.png b/app/assets/images/browse/shop_bakery.p.16.png index 89de12eb5..27ae96b14 100644 Binary files a/app/assets/images/browse/shop_bakery.p.16.png and b/app/assets/images/browse/shop_bakery.p.16.png differ diff --git a/app/assets/images/browse/shop_bicycle.p.16.png b/app/assets/images/browse/shop_bicycle.p.16.png index d0b3680f0..5bb99b9c8 100644 Binary files a/app/assets/images/browse/shop_bicycle.p.16.png and b/app/assets/images/browse/shop_bicycle.p.16.png differ diff --git a/app/assets/images/browse/shop_books.p.16.png b/app/assets/images/browse/shop_books.p.16.png index dc241d202..46e9b363d 100644 Binary files a/app/assets/images/browse/shop_books.p.16.png and b/app/assets/images/browse/shop_books.p.16.png differ diff --git a/app/assets/images/browse/shop_butcher.p.16.png b/app/assets/images/browse/shop_butcher.p.16.png index 8ff574093..0341f9c3b 100644 Binary files a/app/assets/images/browse/shop_butcher.p.16.png and b/app/assets/images/browse/shop_butcher.p.16.png differ diff --git a/app/assets/images/browse/shop_clothes.p.16.png b/app/assets/images/browse/shop_clothes.p.16.png index b028a1cde..973b6178f 100644 Binary files a/app/assets/images/browse/shop_clothes.p.16.png and b/app/assets/images/browse/shop_clothes.p.16.png differ diff --git a/app/assets/images/browse/shop_convenience.p.16.png b/app/assets/images/browse/shop_convenience.p.16.png index 2fc7584d5..21257fe42 100644 Binary files a/app/assets/images/browse/shop_convenience.p.16.png and b/app/assets/images/browse/shop_convenience.p.16.png differ diff --git a/app/assets/images/browse/shop_diy.p.16.png b/app/assets/images/browse/shop_diy.p.16.png index b1954ab91..7cd1af6f8 100644 Binary files a/app/assets/images/browse/shop_diy.p.16.png and b/app/assets/images/browse/shop_diy.p.16.png differ diff --git a/app/assets/images/browse/shop_estateagent2.p.16.png b/app/assets/images/browse/shop_estateagent2.p.16.png index fc2cecff5..9e7835f24 100644 Binary files a/app/assets/images/browse/shop_estateagent2.p.16.png and b/app/assets/images/browse/shop_estateagent2.p.16.png differ diff --git a/app/assets/images/browse/shop_fish.p.16.png b/app/assets/images/browse/shop_fish.p.16.png index 7e0eabbbd..53e352286 100644 Binary files a/app/assets/images/browse/shop_fish.p.16.png and b/app/assets/images/browse/shop_fish.p.16.png differ diff --git a/app/assets/images/browse/shop_garden_centre.p.16.png b/app/assets/images/browse/shop_garden_centre.p.16.png index ca07d4302..897455532 100644 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 diff --git a/app/assets/images/browse/shop_gift.p.16.png b/app/assets/images/browse/shop_gift.p.16.png index ac084f5fa..35b38f5a8 100644 Binary files a/app/assets/images/browse/shop_gift.p.16.png and b/app/assets/images/browse/shop_gift.p.16.png differ diff --git a/app/assets/images/browse/shop_greengrocer.p.16.png b/app/assets/images/browse/shop_greengrocer.p.16.png index abb2c5231..b9fd7e137 100644 Binary files a/app/assets/images/browse/shop_greengrocer.p.16.png and b/app/assets/images/browse/shop_greengrocer.p.16.png differ diff --git a/app/assets/images/browse/shop_hairdresser.p.16.png b/app/assets/images/browse/shop_hairdresser.p.16.png index aa783f260..799c004b9 100644 Binary files a/app/assets/images/browse/shop_hairdresser.p.16.png and b/app/assets/images/browse/shop_hairdresser.p.16.png differ diff --git a/app/assets/images/browse/shop_jewelry.p.16.png b/app/assets/images/browse/shop_jewelry.p.16.png index bb9825596..5b0405ec2 100644 Binary files a/app/assets/images/browse/shop_jewelry.p.16.png and b/app/assets/images/browse/shop_jewelry.p.16.png differ diff --git a/app/assets/images/browse/shop_supermarket.p.16.png b/app/assets/images/browse/shop_supermarket.p.16.png index 3b4338a96..cfd5577e3 100644 Binary files a/app/assets/images/browse/shop_supermarket.p.16.png and b/app/assets/images/browse/shop_supermarket.p.16.png differ diff --git a/app/assets/images/browse/station.p.16.png b/app/assets/images/browse/station.p.16.png index f10492d70..2ecb17ed8 100644 Binary files a/app/assets/images/browse/station.p.16.png and b/app/assets/images/browse/station.p.16.png differ diff --git a/app/assets/images/browse/subway.20.png b/app/assets/images/browse/subway.20.png index 56b89b03d..d80cc8792 100644 Binary files a/app/assets/images/browse/subway.20.png and b/app/assets/images/browse/subway.20.png differ diff --git a/app/assets/images/browse/taxiway.20.png b/app/assets/images/browse/taxiway.20.png index 3fb1dba7a..78507b4ec 100644 Binary files a/app/assets/images/browse/taxiway.20.png and b/app/assets/images/browse/taxiway.20.png differ diff --git a/app/assets/images/browse/telephone.p.16.png b/app/assets/images/browse/telephone.p.16.png index 29378e44b..c2e9b1296 100644 Binary files a/app/assets/images/browse/telephone.p.16.png and b/app/assets/images/browse/telephone.p.16.png differ diff --git a/app/assets/images/browse/tertiary.20.png b/app/assets/images/browse/tertiary.20.png index 3dd7528c1..49a51f113 100644 Binary files a/app/assets/images/browse/tertiary.20.png and b/app/assets/images/browse/tertiary.20.png differ diff --git a/app/assets/images/browse/theatre.p.16.png b/app/assets/images/browse/theatre.p.16.png index 6e0feab5c..a49cd447b 100644 Binary files a/app/assets/images/browse/theatre.p.16.png and b/app/assets/images/browse/theatre.p.16.png differ diff --git a/app/assets/images/browse/toilets.p.16.png b/app/assets/images/browse/toilets.p.16.png index 353208cf7..25cdb3d04 100644 Binary files a/app/assets/images/browse/toilets.p.16.png and b/app/assets/images/browse/toilets.p.16.png differ diff --git a/app/assets/images/browse/tourism.png b/app/assets/images/browse/tourism.png index c70be84d7..3ba099aa7 100644 Binary files a/app/assets/images/browse/tourism.png and b/app/assets/images/browse/tourism.png differ diff --git a/app/assets/images/browse/tourist_castle.p.16.png b/app/assets/images/browse/tourist_castle.p.16.png index 477166750..085783cd2 100644 Binary files a/app/assets/images/browse/tourist_castle.p.16.png and b/app/assets/images/browse/tourist_castle.p.16.png differ diff --git a/app/assets/images/browse/tourist_memorial.p.16.png b/app/assets/images/browse/tourist_memorial.p.16.png index 0db93d729..f9dfa1ab5 100644 Binary files a/app/assets/images/browse/tourist_memorial.p.16.png and b/app/assets/images/browse/tourist_memorial.p.16.png differ diff --git a/app/assets/images/browse/tourist_monument.p.16.png b/app/assets/images/browse/tourist_monument.p.16.png index 5c468aa19..d41ea997c 100644 Binary files a/app/assets/images/browse/tourist_monument.p.16.png and b/app/assets/images/browse/tourist_monument.p.16.png differ diff --git a/app/assets/images/browse/tourist_picnic.p.16.png b/app/assets/images/browse/tourist_picnic.p.16.png index 0eff097bf..d221bf01f 100644 Binary files a/app/assets/images/browse/tourist_picnic.p.16.png and b/app/assets/images/browse/tourist_picnic.p.16.png differ diff --git a/app/assets/images/browse/tourist_ruins.p.16.png b/app/assets/images/browse/tourist_ruins.p.16.png index 804672ec6..ad7c3f199 100644 Binary files a/app/assets/images/browse/tourist_ruins.p.16.png and b/app/assets/images/browse/tourist_ruins.p.16.png differ diff --git a/app/assets/images/browse/tourist_windmill.p.16.png b/app/assets/images/browse/tourist_windmill.p.16.png index 9ec568cc6..ea000cfae 100644 Binary files a/app/assets/images/browse/tourist_windmill.p.16.png and b/app/assets/images/browse/tourist_windmill.p.16.png differ diff --git a/app/assets/images/browse/tourist_wreck.p.16.png b/app/assets/images/browse/tourist_wreck.p.16.png index eb190e207..b01f19bac 100644 Binary files a/app/assets/images/browse/tourist_wreck.p.16.png and b/app/assets/images/browse/tourist_wreck.p.16.png differ diff --git a/app/assets/images/browse/track.20.png b/app/assets/images/browse/track.20.png index 36e579e20..074485b39 100644 Binary files a/app/assets/images/browse/track.20.png and b/app/assets/images/browse/track.20.png differ diff --git a/app/assets/images/browse/traffic_light.png b/app/assets/images/browse/traffic_light.png index 1c2b3ca7b..bc279925f 100644 Binary files a/app/assets/images/browse/traffic_light.png and b/app/assets/images/browse/traffic_light.png differ diff --git a/app/assets/images/browse/tram.20.png b/app/assets/images/browse/tram.20.png index 092ec65e5..9cbd104be 100644 Binary files a/app/assets/images/browse/tram.20.png and b/app/assets/images/browse/tram.20.png differ diff --git a/app/assets/images/browse/transport_parking_bicycle.p.16.png b/app/assets/images/browse/transport_parking_bicycle.p.16.png index ff988ba55..85b706f65 100644 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 diff --git a/app/assets/images/browse/transport_rental_bicycle.p.16.png b/app/assets/images/browse/transport_rental_bicycle.p.16.png index edf986c1e..1a46fba70 100644 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 diff --git a/app/assets/images/browse/transport_rental_car.p.16.png b/app/assets/images/browse/transport_rental_car.p.16.png index b5fc399c8..7874729a7 100644 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 diff --git a/app/assets/images/browse/tree.p.16.png b/app/assets/images/browse/tree.p.16.png index c8c3067af..3c17f03a4 100644 Binary files a/app/assets/images/browse/tree.p.16.png and b/app/assets/images/browse/tree.p.16.png differ diff --git a/app/assets/images/browse/trunk.20.png b/app/assets/images/browse/trunk.20.png index 25b374f36..930de64e7 100644 Binary files a/app/assets/images/browse/trunk.20.png and b/app/assets/images/browse/trunk.20.png differ diff --git a/app/assets/images/browse/tunnel.20.png b/app/assets/images/browse/tunnel.20.png index 49cd98f19..bc5ee83a4 100644 Binary files a/app/assets/images/browse/tunnel.20.png and b/app/assets/images/browse/tunnel.20.png differ diff --git a/app/assets/images/browse/turning_circle.p.16.png b/app/assets/images/browse/turning_circle.p.16.png index d29def0ff..c31c6c80c 100644 Binary files a/app/assets/images/browse/turning_circle.p.16.png and b/app/assets/images/browse/turning_circle.p.16.png differ diff --git a/app/assets/images/browse/unclassified.20.png b/app/assets/images/browse/unclassified.20.png index 2f687c171..1eebbd9b2 100644 Binary files a/app/assets/images/browse/unclassified.20.png and b/app/assets/images/browse/unclassified.20.png differ diff --git a/app/assets/images/browse/view_point.p.16.png b/app/assets/images/browse/view_point.p.16.png index b18660c86..5f9d81ab7 100644 Binary files a/app/assets/images/browse/view_point.p.16.png and b/app/assets/images/browse/view_point.p.16.png differ diff --git a/app/assets/images/browse/wall.20.png b/app/assets/images/browse/wall.20.png index 12dffce4e..a2ce43ae2 100644 Binary files a/app/assets/images/browse/wall.20.png and b/app/assets/images/browse/wall.20.png differ diff --git a/app/assets/images/browse/wood.png b/app/assets/images/browse/wood.png index 1bebdfa47..329bfa483 100644 Binary files a/app/assets/images/browse/wood.png and b/app/assets/images/browse/wood.png differ diff --git a/app/assets/images/cc_button.png b/app/assets/images/cc_button.png index f0a944e0b..5749f65b8 100644 Binary files a/app/assets/images/cc_button.png and b/app/assets/images/cc_button.png differ diff --git a/app/assets/images/closed_note_marker@2x.png b/app/assets/images/closed_note_marker@2x.png index ea434e90e..96a2592e1 100644 Binary files a/app/assets/images/closed_note_marker@2x.png and b/app/assets/images/closed_note_marker@2x.png differ diff --git a/app/assets/images/confirm-illustration.png b/app/assets/images/confirm-illustration.png index ad673d547..08a954a45 100644 Binary files a/app/assets/images/confirm-illustration.png and b/app/assets/images/confirm-illustration.png differ diff --git a/app/assets/images/google.png b/app/assets/images/google.png index 8d5207403..39f6bc208 100644 Binary files a/app/assets/images/google.png and b/app/assets/images/google.png differ diff --git a/app/assets/images/key/mapnik/admin.png b/app/assets/images/key/mapnik/admin.png index db9b50616..0cae05889 100644 Binary files a/app/assets/images/key/mapnik/admin.png and b/app/assets/images/key/mapnik/admin.png differ diff --git a/app/assets/images/key/mapnik/allotments.png b/app/assets/images/key/mapnik/allotments.png index 9f8d1bace..e39771885 100644 Binary files a/app/assets/images/key/mapnik/allotments.png and b/app/assets/images/key/mapnik/allotments.png differ diff --git a/app/assets/images/key/mapnik/apron.png b/app/assets/images/key/mapnik/apron.png index ba7ac5427..bcea5e3fb 100644 Binary files a/app/assets/images/key/mapnik/apron.png and b/app/assets/images/key/mapnik/apron.png differ diff --git a/app/assets/images/key/mapnik/bridge.png b/app/assets/images/key/mapnik/bridge.png index c59e05a61..d388d7b81 100644 Binary files a/app/assets/images/key/mapnik/bridge.png and b/app/assets/images/key/mapnik/bridge.png differ diff --git a/app/assets/images/key/mapnik/bridleway.png b/app/assets/images/key/mapnik/bridleway.png index 53fdd3469..9aec1ad33 100644 Binary files a/app/assets/images/key/mapnik/bridleway.png and b/app/assets/images/key/mapnik/bridleway.png differ diff --git a/app/assets/images/key/mapnik/brownfield.png b/app/assets/images/key/mapnik/brownfield.png index 7567846d5..c0a12794a 100644 Binary files a/app/assets/images/key/mapnik/brownfield.png and b/app/assets/images/key/mapnik/brownfield.png differ diff --git a/app/assets/images/key/mapnik/building.png b/app/assets/images/key/mapnik/building.png index cb24a48d9..bc074feeb 100644 Binary files a/app/assets/images/key/mapnik/building.png and b/app/assets/images/key/mapnik/building.png differ diff --git a/app/assets/images/key/mapnik/byway.png b/app/assets/images/key/mapnik/byway.png index 4bb3bdb3e..3b696ef24 100644 Binary files a/app/assets/images/key/mapnik/byway.png and b/app/assets/images/key/mapnik/byway.png differ diff --git a/app/assets/images/key/mapnik/cable.png b/app/assets/images/key/mapnik/cable.png index eb391f541..84ff6d8d2 100644 Binary files a/app/assets/images/key/mapnik/cable.png and b/app/assets/images/key/mapnik/cable.png differ diff --git a/app/assets/images/key/mapnik/cemetery.png b/app/assets/images/key/mapnik/cemetery.png index b0b667061..f88f47de0 100644 Binary files a/app/assets/images/key/mapnik/cemetery.png and b/app/assets/images/key/mapnik/cemetery.png differ diff --git a/app/assets/images/key/mapnik/centre.png b/app/assets/images/key/mapnik/centre.png index 98d5ebe49..a1c4522b7 100644 Binary files a/app/assets/images/key/mapnik/centre.png and b/app/assets/images/key/mapnik/centre.png differ diff --git a/app/assets/images/key/mapnik/commercial.png b/app/assets/images/key/mapnik/commercial.png index 2d52c6012..7a2ca5e8d 100644 Binary files a/app/assets/images/key/mapnik/commercial.png and b/app/assets/images/key/mapnik/commercial.png differ diff --git a/app/assets/images/key/mapnik/common.png b/app/assets/images/key/mapnik/common.png index c785eb073..c1422e7be 100644 Binary files a/app/assets/images/key/mapnik/common.png and b/app/assets/images/key/mapnik/common.png differ diff --git a/app/assets/images/key/mapnik/construction.png b/app/assets/images/key/mapnik/construction.png index 838c08667..bec836d7e 100644 Binary files a/app/assets/images/key/mapnik/construction.png and b/app/assets/images/key/mapnik/construction.png differ diff --git a/app/assets/images/key/mapnik/cycleway.png b/app/assets/images/key/mapnik/cycleway.png index 15e793344..a1a16f1ed 100644 Binary files a/app/assets/images/key/mapnik/cycleway.png and b/app/assets/images/key/mapnik/cycleway.png differ diff --git a/app/assets/images/key/mapnik/destination.png b/app/assets/images/key/mapnik/destination.png index 7368fba21..1fe261dbe 100644 Binary files a/app/assets/images/key/mapnik/destination.png and b/app/assets/images/key/mapnik/destination.png differ diff --git a/app/assets/images/key/mapnik/farm.png b/app/assets/images/key/mapnik/farm.png index 355352624..e63e571bb 100644 Binary files a/app/assets/images/key/mapnik/farm.png and b/app/assets/images/key/mapnik/farm.png differ diff --git a/app/assets/images/key/mapnik/footway.png b/app/assets/images/key/mapnik/footway.png index 33a351002..4486119ba 100644 Binary files a/app/assets/images/key/mapnik/footway.png and b/app/assets/images/key/mapnik/footway.png differ diff --git a/app/assets/images/key/mapnik/forest.png b/app/assets/images/key/mapnik/forest.png index 14c6b4275..5b341c61d 100644 Binary files a/app/assets/images/key/mapnik/forest.png and b/app/assets/images/key/mapnik/forest.png differ diff --git a/app/assets/images/key/mapnik/golf.png b/app/assets/images/key/mapnik/golf.png index ae91f1329..11a623097 100644 Binary files a/app/assets/images/key/mapnik/golf.png and b/app/assets/images/key/mapnik/golf.png differ diff --git a/app/assets/images/key/mapnik/heathland.png b/app/assets/images/key/mapnik/heathland.png index 4238d66b8..d48f9690f 100644 Binary files a/app/assets/images/key/mapnik/heathland.png and b/app/assets/images/key/mapnik/heathland.png differ diff --git a/app/assets/images/key/mapnik/industrial.png b/app/assets/images/key/mapnik/industrial.png index bc0243c76..c5ac802ac 100644 Binary files a/app/assets/images/key/mapnik/industrial.png and b/app/assets/images/key/mapnik/industrial.png differ diff --git a/app/assets/images/key/mapnik/lake.png b/app/assets/images/key/mapnik/lake.png index 28f3a9df9..3f16b54d1 100644 Binary files a/app/assets/images/key/mapnik/lake.png and b/app/assets/images/key/mapnik/lake.png differ diff --git a/app/assets/images/key/mapnik/military.png b/app/assets/images/key/mapnik/military.png index c6a11724a..73c82d49e 100644 Binary files a/app/assets/images/key/mapnik/military.png and b/app/assets/images/key/mapnik/military.png differ diff --git a/app/assets/images/key/mapnik/motorway.png b/app/assets/images/key/mapnik/motorway.png index 2c962c621..3940c83d2 100644 Binary files a/app/assets/images/key/mapnik/motorway.png and b/app/assets/images/key/mapnik/motorway.png differ diff --git a/app/assets/images/key/mapnik/park.png b/app/assets/images/key/mapnik/park.png index bce935473..149795a87 100644 Binary files a/app/assets/images/key/mapnik/park.png and b/app/assets/images/key/mapnik/park.png differ diff --git a/app/assets/images/key/mapnik/permissive.png b/app/assets/images/key/mapnik/permissive.png index 627b8ad37..d8239f128 100644 Binary files a/app/assets/images/key/mapnik/permissive.png and b/app/assets/images/key/mapnik/permissive.png differ diff --git a/app/assets/images/key/mapnik/pitch.png b/app/assets/images/key/mapnik/pitch.png index 78f5aa17f..98177f604 100644 Binary files a/app/assets/images/key/mapnik/pitch.png and b/app/assets/images/key/mapnik/pitch.png differ diff --git a/app/assets/images/key/mapnik/primary.png b/app/assets/images/key/mapnik/primary.png index 12191ebc4..a51703c4f 100644 Binary files a/app/assets/images/key/mapnik/primary.png and b/app/assets/images/key/mapnik/primary.png differ diff --git a/app/assets/images/key/mapnik/primary12.png b/app/assets/images/key/mapnik/primary12.png index c9b9cd914..741b13896 100644 Binary files a/app/assets/images/key/mapnik/primary12.png and b/app/assets/images/key/mapnik/primary12.png differ diff --git a/app/assets/images/key/mapnik/private.png b/app/assets/images/key/mapnik/private.png index 22e7a3a90..7a5f90042 100644 Binary files a/app/assets/images/key/mapnik/private.png and b/app/assets/images/key/mapnik/private.png differ diff --git a/app/assets/images/key/mapnik/rail.png b/app/assets/images/key/mapnik/rail.png index 861f93120..0abf0c1df 100644 Binary files a/app/assets/images/key/mapnik/rail.png and b/app/assets/images/key/mapnik/rail.png differ diff --git a/app/assets/images/key/mapnik/rail13.png b/app/assets/images/key/mapnik/rail13.png index ec87192fb..957f17c85 100644 Binary files a/app/assets/images/key/mapnik/rail13.png and b/app/assets/images/key/mapnik/rail13.png differ diff --git a/app/assets/images/key/mapnik/reserve.png b/app/assets/images/key/mapnik/reserve.png index 483d43a3c..5e3a79f0d 100644 Binary files a/app/assets/images/key/mapnik/reserve.png and b/app/assets/images/key/mapnik/reserve.png differ diff --git a/app/assets/images/key/mapnik/resident.png b/app/assets/images/key/mapnik/resident.png index 26116d0a1..6ee3c4d2b 100644 Binary files a/app/assets/images/key/mapnik/resident.png and b/app/assets/images/key/mapnik/resident.png differ diff --git a/app/assets/images/key/mapnik/retail.png b/app/assets/images/key/mapnik/retail.png index 6469e15bf..216799212 100644 Binary files a/app/assets/images/key/mapnik/retail.png and b/app/assets/images/key/mapnik/retail.png differ diff --git a/app/assets/images/key/mapnik/runway.png b/app/assets/images/key/mapnik/runway.png index 2a0b9d3b9..c65672806 100644 Binary files a/app/assets/images/key/mapnik/runway.png and b/app/assets/images/key/mapnik/runway.png differ diff --git a/app/assets/images/key/mapnik/school.png b/app/assets/images/key/mapnik/school.png index c1478c656..50f30a2f3 100644 Binary files a/app/assets/images/key/mapnik/school.png and b/app/assets/images/key/mapnik/school.png differ diff --git a/app/assets/images/key/mapnik/secondary.png b/app/assets/images/key/mapnik/secondary.png index 16f254796..cbd457839 100644 Binary files a/app/assets/images/key/mapnik/secondary.png and b/app/assets/images/key/mapnik/secondary.png differ diff --git a/app/assets/images/key/mapnik/secondary12.png b/app/assets/images/key/mapnik/secondary12.png index 121670fcf..b95b18822 100644 Binary files a/app/assets/images/key/mapnik/secondary12.png and b/app/assets/images/key/mapnik/secondary12.png differ diff --git a/app/assets/images/key/mapnik/station.png b/app/assets/images/key/mapnik/station.png index 1a10b1c49..6c36e3c61 100644 Binary files a/app/assets/images/key/mapnik/station.png and b/app/assets/images/key/mapnik/station.png differ diff --git a/app/assets/images/key/mapnik/subway.png b/app/assets/images/key/mapnik/subway.png index 76ea5e806..cb42ee2dc 100644 Binary files a/app/assets/images/key/mapnik/subway.png and b/app/assets/images/key/mapnik/subway.png differ diff --git a/app/assets/images/key/mapnik/summit.png b/app/assets/images/key/mapnik/summit.png index 4a4ec2426..9dbfcd360 100644 Binary files a/app/assets/images/key/mapnik/summit.png and b/app/assets/images/key/mapnik/summit.png differ diff --git a/app/assets/images/key/mapnik/tourist.png b/app/assets/images/key/mapnik/tourist.png index df512bb8c..bb3cf3686 100644 Binary files a/app/assets/images/key/mapnik/tourist.png and b/app/assets/images/key/mapnik/tourist.png differ diff --git a/app/assets/images/key/mapnik/track.png b/app/assets/images/key/mapnik/track.png index 60bbbe96c..f294edca0 100644 Binary files a/app/assets/images/key/mapnik/track.png and b/app/assets/images/key/mapnik/track.png differ diff --git a/app/assets/images/key/mapnik/tram.png b/app/assets/images/key/mapnik/tram.png index 46f3877ad..1c64b2877 100644 Binary files a/app/assets/images/key/mapnik/tram.png and b/app/assets/images/key/mapnik/tram.png differ diff --git a/app/assets/images/key/mapnik/trunk.png b/app/assets/images/key/mapnik/trunk.png index 690396363..93611efa3 100644 Binary files a/app/assets/images/key/mapnik/trunk.png and b/app/assets/images/key/mapnik/trunk.png differ diff --git a/app/assets/images/key/mapnik/trunk12.png b/app/assets/images/key/mapnik/trunk12.png index 399e26bb2..d8becf020 100644 Binary files a/app/assets/images/key/mapnik/trunk12.png and b/app/assets/images/key/mapnik/trunk12.png differ diff --git a/app/assets/images/key/mapnik/tunnel.png b/app/assets/images/key/mapnik/tunnel.png index cc5b1c32f..4c52ff4fe 100644 Binary files a/app/assets/images/key/mapnik/tunnel.png and b/app/assets/images/key/mapnik/tunnel.png differ diff --git a/app/assets/images/key/mapnik/unclassified.png b/app/assets/images/key/mapnik/unclassified.png index 5f3b8c5a5..3cdfb2dda 100644 Binary files a/app/assets/images/key/mapnik/unclassified.png and b/app/assets/images/key/mapnik/unclassified.png differ diff --git a/app/assets/images/key/mapnik/unclassified13.png b/app/assets/images/key/mapnik/unclassified13.png index 5b63d9194..1a8792462 100644 Binary files a/app/assets/images/key/mapnik/unclassified13.png and b/app/assets/images/key/mapnik/unclassified13.png differ diff --git a/app/assets/images/key/mapnik/unsurfaced.png b/app/assets/images/key/mapnik/unsurfaced.png index 2dec21a0d..25c215049 100644 Binary files a/app/assets/images/key/mapnik/unsurfaced.png and b/app/assets/images/key/mapnik/unsurfaced.png differ diff --git a/app/assets/images/key/mapnik/wood.png b/app/assets/images/key/mapnik/wood.png index 821781a1c..2413cda6c 100644 Binary files a/app/assets/images/key/mapnik/wood.png and b/app/assets/images/key/mapnik/wood.png differ diff --git a/app/assets/images/mag_map-rss2.0.png b/app/assets/images/mag_map-rss2.0.png index c4f3cf3ac..1356dfae5 100644 Binary files a/app/assets/images/mag_map-rss2.0.png and b/app/assets/images/mag_map-rss2.0.png differ diff --git a/app/assets/images/map_sprite.png b/app/assets/images/map_sprite.png index 99734b12f..f1e16c485 100644 Binary files a/app/assets/images/map_sprite.png and b/app/assets/images/map_sprite.png differ diff --git a/app/assets/images/map_zoomin.png b/app/assets/images/map_zoomin.png index 1ac4864d4..160a15c08 100644 Binary files a/app/assets/images/map_zoomin.png and b/app/assets/images/map_zoomin.png differ diff --git a/app/assets/images/map_zoomout.png b/app/assets/images/map_zoomout.png index d67a87de5..4fea1e6e4 100644 Binary files a/app/assets/images/map_zoomout.png and b/app/assets/images/map_zoomout.png differ diff --git a/app/assets/images/marker-blue.png b/app/assets/images/marker-blue.png index 7614b7c7f..98b672616 100644 Binary files a/app/assets/images/marker-blue.png and b/app/assets/images/marker-blue.png differ diff --git a/app/assets/images/marker-green.png b/app/assets/images/marker-green.png index 56a0b1c47..f0e64e747 100644 Binary files a/app/assets/images/marker-green.png and b/app/assets/images/marker-green.png differ diff --git a/app/assets/images/marker-red.png b/app/assets/images/marker-red.png index 46c70185a..5ea2a6cc4 100644 Binary files a/app/assets/images/marker-red.png and b/app/assets/images/marker-red.png differ diff --git a/app/assets/images/marker-yellow.png b/app/assets/images/marker-yellow.png index eb6d6ef74..394aa5341 100644 Binary files a/app/assets/images/marker-yellow.png and b/app/assets/images/marker-yellow.png differ diff --git a/app/assets/images/menu-icon.png b/app/assets/images/menu-icon.png index da3f92c5d..a67c73cf1 100644 Binary files a/app/assets/images/menu-icon.png and b/app/assets/images/menu-icon.png differ diff --git a/app/assets/images/myopenid.png b/app/assets/images/myopenid.png index 5e410bb81..080018f9c 100644 Binary files a/app/assets/images/myopenid.png and b/app/assets/images/myopenid.png differ diff --git a/app/assets/images/new.png b/app/assets/images/new.png index d6355e021..4a9fa8b36 100644 Binary files a/app/assets/images/new.png and b/app/assets/images/new.png differ diff --git a/app/assets/images/new_note_marker@2x.png b/app/assets/images/new_note_marker@2x.png index 6098079cd..756ad6fe5 100644 Binary files a/app/assets/images/new_note_marker@2x.png and b/app/assets/images/new_note_marker@2x.png differ diff --git a/app/assets/images/notice.png b/app/assets/images/notice.png index a2698d77b..f9285e49b 100644 Binary files a/app/assets/images/notice.png and b/app/assets/images/notice.png differ diff --git a/app/assets/images/open_note_marker@2x.png b/app/assets/images/open_note_marker@2x.png index e465ca918..84df3f725 100644 Binary files a/app/assets/images/open_note_marker@2x.png and b/app/assets/images/open_note_marker@2x.png differ diff --git a/app/assets/images/openid.png b/app/assets/images/openid.png index dd6f65e9d..dc7e01fc0 100644 Binary files a/app/assets/images/openid.png and b/app/assets/images/openid.png differ diff --git a/app/assets/images/openid_input.png b/app/assets/images/openid_input.png index b5aa49dfa..954297520 100644 Binary files a/app/assets/images/openid_input.png and b/app/assets/images/openid_input.png differ diff --git a/app/assets/images/openid_small.png b/app/assets/images/openid_small.png index 83bb30282..41adc9fa6 100644 Binary files a/app/assets/images/openid_small.png and b/app/assets/images/openid_small.png differ diff --git a/app/assets/images/osm_logo.png b/app/assets/images/osm_logo.png index a2d3671f9..22f116632 100644 Binary files a/app/assets/images/osm_logo.png and b/app/assets/images/osm_logo.png differ diff --git a/app/assets/images/osm_logo_114.png b/app/assets/images/osm_logo_114.png index 63713fb9a..67c4b21cc 100644 Binary files a/app/assets/images/osm_logo_114.png and b/app/assets/images/osm_logo_114.png differ diff --git a/app/assets/images/osm_logo_144.png b/app/assets/images/osm_logo_144.png index 35a975450..b24fb1c3a 100644 Binary files a/app/assets/images/osm_logo_144.png and b/app/assets/images/osm_logo_144.png differ diff --git a/app/assets/images/osm_logo_228.png b/app/assets/images/osm_logo_228.png index 752d6363b..d387ad25d 100644 Binary files a/app/assets/images/osm_logo_228.png and b/app/assets/images/osm_logo_228.png differ diff --git a/app/assets/images/osm_logo_72.png b/app/assets/images/osm_logo_72.png index dc4e6d5aa..2bb1f30e6 100644 Binary files a/app/assets/images/osm_logo_72.png and b/app/assets/images/osm_logo_72.png differ diff --git a/app/assets/images/roles/administrator.png b/app/assets/images/roles/administrator.png index ea363d257..6bb919cf6 100644 Binary files a/app/assets/images/roles/administrator.png and b/app/assets/images/roles/administrator.png differ diff --git a/app/assets/images/roles/blank_moderator.png b/app/assets/images/roles/blank_moderator.png index 7dc307284..1608387c8 100644 Binary files a/app/assets/images/roles/blank_moderator.png and b/app/assets/images/roles/blank_moderator.png differ diff --git a/app/assets/images/sign-up-illustration-arm.png b/app/assets/images/sign-up-illustration-arm.png index 5f780299e..5c837b00b 100644 Binary files a/app/assets/images/sign-up-illustration-arm.png and b/app/assets/images/sign-up-illustration-arm.png differ diff --git a/app/assets/images/sign-up-illustration.png b/app/assets/images/sign-up-illustration.png index 0a92b9c5b..e785ec602 100644 Binary files a/app/assets/images/sign-up-illustration.png and b/app/assets/images/sign-up-illustration.png differ diff --git a/app/assets/images/sotm-birmingham-ad.png b/app/assets/images/sotm-birmingham-ad.png index 05bb1466b..a6c5449fd 100644 Binary files a/app/assets/images/sotm-birmingham-ad.png and b/app/assets/images/sotm-birmingham-ad.png differ diff --git a/app/assets/images/sotm-us-ad.png b/app/assets/images/sotm-us-ad.png index c1ab6f261..c775396c0 100644 Binary files a/app/assets/images/sotm-us-ad.png and b/app/assets/images/sotm-us-ad.png differ diff --git a/app/assets/images/sprite.png b/app/assets/images/sprite.png index e3ed0e7f8..d5577d4b7 100644 Binary files a/app/assets/images/sprite.png and b/app/assets/images/sprite.png differ diff --git a/app/assets/images/terms-illustration.png b/app/assets/images/terms-illustration.png index 475da0e87..7c32f4f30 100644 Binary files a/app/assets/images/terms-illustration.png and b/app/assets/images/terms-illustration.png differ diff --git a/app/assets/images/users/images/large.png b/app/assets/images/users/images/large.png index ec0a7fde6..c33266c56 100644 Binary files a/app/assets/images/users/images/large.png and b/app/assets/images/users/images/large.png differ diff --git a/app/assets/images/users/images/small.png b/app/assets/images/users/images/small.png index 19fd092cc..7e3f60130 100644 Binary files a/app/assets/images/users/images/small.png and b/app/assets/images/users/images/small.png differ diff --git a/app/assets/images/welcome-sprite.png b/app/assets/images/welcome-sprite.png index 969c53f96..f904f00cd 100644 Binary files a/app/assets/images/welcome-sprite.png and b/app/assets/images/welcome-sprite.png differ diff --git a/app/assets/images/wordpress.png b/app/assets/images/wordpress.png index 21e22ed41..6f63efc2c 100644 Binary files a/app/assets/images/wordpress.png and b/app/assets/images/wordpress.png differ diff --git a/app/assets/images/yahoo.png b/app/assets/images/yahoo.png index 7bd439d4f..2a9c4a4f3 100644 Binary files a/app/assets/images/yahoo.png and b/app/assets/images/yahoo.png differ diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index 66dfa5b6f..afb6b3d65 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -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(); } diff --git a/app/assets/javascripts/index/directions.js.erb b/app/assets/javascripts/index/directions.js.erb index 30b6349fd..a8f4feb78 100644 --- a/app/assets/javascripts/index/directions.js.erb +++ b/app/assets/javascripts/index/directions.js.erb @@ -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('

' + I18n.t('javascripts.directions.instructions.courtesy', {link: chosenEngine.creditline}) + '

'); + + $('#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(',')); diff --git a/app/assets/javascripts/index/query.js b/app/assets/javascripts/index/query.js index 1f45a6872..29916272e 100644 --- a/app/assets/javascripts/index/query.js +++ b/app/assets/javascripts/index/query.js @@ -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) { diff --git a/app/assets/javascripts/index/search.js b/app/assets/javascripts/index/search.js index 46f756f3b..08d2dc96c 100644 --- a/app/assets/javascripts/index/search.js +++ b/app/assets/javascripts/index/search.js @@ -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"); diff --git a/app/assets/javascripts/leaflet.note.js b/app/assets/javascripts/leaflet.note.js index c0f72af20..0df22eb57 100644 --- a/app/assets/javascripts/leaflet.note.js +++ b/app/assets/javascripts/leaflet.note.js @@ -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 ? diff --git a/app/assets/javascripts/piwik.js b/app/assets/javascripts/piwik.js index d327296f6..19b5619a2 100644 --- a/app/assets/javascripts/piwik.js +++ b/app/assets/javascripts/piwik.js @@ -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(); diff --git a/app/assets/stylesheets/common.css.scss b/app/assets/stylesheets/common.css.scss index d6549e740..7efe76cb1 100644 --- a/app/assets/stylesheets/common.css.scss +++ b/app/assets/stylesheets/common.css.scss @@ -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; } diff --git a/app/assets/stylesheets/parameters.scss b/app/assets/stylesheets/parameters.scss index 989444a62..eb363459c 100644 --- a/app/assets/stylesheets/parameters.scss +++ b/app/assets/stylesheets/parameters.scss @@ -16,3 +16,4 @@ $sidebarWidth: 350px; $keyline: 1px solid $lightgrey; $border-radius: 3px; $list-highlight: #FFFFE6; +$border: 1px solid $grey; diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 90a967276..bd4a62948 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -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 diff --git a/app/controllers/browse_controller.rb b/app/controllers/browse_controller.rb index f0b92f4b4..f60957ff7 100644 --- a/app/controllers/browse_controller.rb +++ b/app/controllers/browse_controller.rb @@ -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 diff --git a/app/controllers/changeset_controller.rb b/app/controllers/changeset_controller.rb index adda8c20c..eaa87df7b 100644 --- a/app/controllers/changeset_controller.rb +++ b/app/controllers/changeset_controller.rb @@ -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) diff --git a/app/controllers/diary_entry_controller.rb b/app/controllers/diary_entry_controller.rb index 091744e22..741ff1500 100644 --- a/app/controllers/diary_entry_controller.rb +++ b/app/controllers/diary_entry_controller.rb @@ -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 diff --git a/app/controllers/message_controller.rb b/app/controllers/message_controller.rb index fd638e4e7..c7acc90d8 100644 --- a/app/controllers/message_controller.rb +++ b/app/controllers/message_controller.rb @@ -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. diff --git a/app/controllers/notes_controller.rb b/app/controllers/notes_controller.rb index acd88be04..7584daf62 100644 --- a/app/controllers/notes_controller.rb +++ b/app/controllers/notes_controller.rb @@ -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 diff --git a/app/controllers/redactions_controller.rb b/app/controllers/redactions_controller.rb index f8713608d..d0f902717 100644 --- a/app/controllers/redactions_controller.rb +++ b/app/controllers/redactions_controller.rb @@ -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 diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index dbfc44a37..a7bf53824 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -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 diff --git a/app/models/diary_comment.rb b/app/models/diary_comment.rb index 9d29f52b7..5ace3d158 100644 --- a/app/models/diary_comment.rb +++ b/app/models/diary_comment.rb @@ -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 diff --git a/app/models/diary_entry.rb b/app/models/diary_entry.rb index 58f8710f9..c0fbac546 100644 --- a/app/models/diary_entry.rb +++ b/app/models/diary_entry.rb @@ -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 diff --git a/app/models/message.rb b/app/models/message.rb index b51c59f43..b05d005b0 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -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 diff --git a/app/models/old_node.rb b/app/models/old_node.rb index 90304acae..5ea3a778b 100644 --- a/app/models/old_node.rb +++ b/app/models/old_node.rb @@ -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 diff --git a/app/models/old_relation.rb b/app/models/old_relation.rb index dc89afa50..5496f7115 100644 --- a/app/models/old_relation.rb +++ b/app/models/old_relation.rb @@ -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 diff --git a/app/models/old_way.rb b/app/models/old_way.rb index 1552bae04..dbdcdd46d 100644 --- a/app/models/old_way.rb +++ b/app/models/old_way.rb @@ -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 diff --git a/app/models/redaction.rb b/app/models/redaction.rb index 43f5b3c7b..a9bdf5580 100644 --- a/app/models/redaction.rb +++ b/app/models/redaction.rb @@ -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 diff --git a/app/models/user.rb b/app/models/user.rb index ed0813bee..7ace4bca4 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -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 diff --git a/app/models/user_block.rb b/app/models/user_block.rb index cb1a97dca..d8fa95cb2 100644 --- a/app/models/user_block.rb +++ b/app/models/user_block.rb @@ -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, diff --git a/app/views/browse/changeset.html.erb b/app/views/browse/changeset.html.erb index bbe227921..efb7bb7f9 100644 --- a/app/views/browse/changeset.html.erb +++ b/app/views/browse/changeset.html.erb @@ -15,7 +15,7 @@
- <% if @changeset.subscribers.exists?(@user) %> + <% if @user and @changeset.subscribers.exists?(@user.id) %> <% else %> diff --git a/app/views/layouts/_search.html.erb b/app/views/layouts/_search.html.erb index fb4f79eb6..441ea3212 100644 --- a/app/views/layouts/_search.html.erb +++ b/app/views/layouts/_search.html.erb @@ -9,7 +9,7 @@
-
<%= link_to tag('span', { :class => "icon close"}), root_path, { :title => t('site.search.close_directions_title') } %>
+
<%= link_to tag('span', { :class => "icon close"}), root_path, { :title => t('site.search.close_directions_title'), :class => "directions_close" } %>
<%= image_tag "marker-green.png", :class => 'routing_marker', :id => 'marker_from', :draggable => 'true' %> @@ -21,6 +21,6 @@
<%= submit_tag t('site.search.submit_text') %>
- <%= image_tag "searching-small.gif", :class => 'spinner', :style => "vertical-align: middle; display: none;" %> +
diff --git a/config.ru b/config.ru index 5bc2a619e..bd83b2541 100644 --- 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 diff --git a/config/application.rb b/config/application.rb index a40336c33..6a96b9dd6 100644 --- a/config/application.rb +++ b/config/application.rb @@ -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) diff --git a/config/boot.rb b/config/boot.rb index 5e5f0c1fa..6b750f00b 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -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. diff --git a/config/environments/development.rb b/config/environments/development.rb index a414d1490..01466ae75 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -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. diff --git a/config/environments/production.rb b/config/environments/production.rb index 941070902..1dab35563 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -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 diff --git a/config/environments/test.rb b/config/environments/test.rb index b0ff645a0..3c8b55457 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -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 diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index c90054b0a..ef7efcbb9 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -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 ) diff --git a/config/initializers/cookies_serializer.rb b/config/initializers/cookies_serializer.rb index 7a06a89f0..7f70458de 100644 --- a/config/initializers/cookies_serializer.rb +++ b/config/initializers/cookies_serializer.rb @@ -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 diff --git a/config/initializers/i18n.rb b/config/initializers/i18n.rb index 156eea4ec..2562b67a0 100644 --- a/config/initializers/i18n.rb +++ b/config/initializers/i18n.rb @@ -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 diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb index be247274f..576da5285 100644 --- a/config/initializers/mime_types.rb +++ b/config/initializers/mime_types.rb @@ -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 index 9dcc34fcc..000000000 --- a/config/initializers/postgresql_adapter.rb +++ /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 diff --git a/config/initializers/sanitize.rb b/config/initializers/sanitize.rb index 0df38f0fa..eb3039a13 100644 --- a/config/initializers/sanitize.rb +++ b/config/initializers/sanitize.rb @@ -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' ] diff --git a/config/locales/ast.yml b/config/locales/ast.yml index f9766db6b..608a48872 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -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 diff --git a/config/locales/be.yml b/config/locales/be.yml index 893e259ee..a8694a422 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -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} %{when} + таму + commented_by: Каментар ад %{user} %{when} таму 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: Пераадкрыта ананімным карыстальнікам %{when} таму hidden_by: Схавана %{user} %{when} таму + 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: Апісанне diff --git a/config/locales/br.yml b/config/locales/br.yml index 6d60f526d..9d4e60737 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -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} %{when} + zo + commented_by: Addispleg gant %{user} %{when}zo 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 %{when} zo hidden_by: Kuzhet gant %{user} %{when} zo + 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ù nevesañ + 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 diff --git a/config/locales/bs.yml b/config/locales/bs.yml index a3d2dcd74..1f45c23b8 100644 --- a/config/locales/bs.yml +++ b/config/locales/bs.yml @@ -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 (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 webmasterom @@ -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. - 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 ovu wiki stranicu. @@ -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.

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: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index e925e9088..db93720fb 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -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} %{when} + ago + commented_by: Comentari de %{user} %{when} ago 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 %{when} reopened_by_anonymous: Reactivat per un anònim fa %{when} hidden_by: Ocultat per %{user} fa %{when} + 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 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ó diff --git a/config/locales/cs.yml b/config/locales/cs.yml index bdada882a..852516b67 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -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} Před + %{when} + commented_by: Před %{when} 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 před %{when} anonym hidden_by: Skryl před %{when} %{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 index 000000000..495473c38 --- /dev/null +++ b/config/locales/cy.yml @@ -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 %{time} yn ôl + closed_html: Wedi cau %{time} yn ôl + created_by_html: Crewyd %{time} yn ôl gan %{user} + deleted_by_html: Dilewyd %{time} yn ôl gan %{user} + edited_by_html: Golygwyd %{time} yn ôl gan %{user} + closed_by_html: Caewyd %{time} yn ôl 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} %{when} + yn ôl + commented_by: Sylw gan %{user} %{when} yn ôl + 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} %{when} yn ôl + open_by_anonymous: Crëwyd yn ddienw %{when} yn ôl + commented_by: Sylw gan %{user} %{when} yn ôl + commented_by_anonymous: Sylw yn ddienw %{when} yn + ôl + hidden_by: Cuddwyd gan %{user} %{when} yn ôl + 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 Comin + Data Agored (Open Data Commons Open Database License) (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 Internal + us_postcode: Canlyniadau o Geocoder.us + uk_postcode: Canlyniadau o NPEMap / FreeThe + Postcode + ca_postcode: Canlyniadau o Geocoder.CA + osm_nominatim: Canlyniadau o OpenStreetMap + Nominatim + geonames: Canlyniadau o GeoNames + osm_nominatim_reverse: Canlyniadau o OpenStreetMap + Nominatim + geonames_reverse: Canlyniadau o GeoNames + 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 data agored, dan drwydded Open Data + Commons Open Database License (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: "Y Deyrnas Gyfunol: 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: ©cyfrannwyr
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: © cyfranwyr OpenStreetMap + donate_link_text: + 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? +... diff --git a/config/locales/da.yml b/config/locales/da.yml index 85a678adb..55cda5d4f 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -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} %{when} + siden + commented_by: Kommentar fra %{user} for %{when} + siden 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 %{when} siden hidden_by: Skjult af %{user} for %{when} siden + 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 diff --git a/config/locales/de.yml b/config/locales/de.yml index 8486fabec..1ca436b54 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -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} vor + %{when} + commented_by: Kommentar von %{user} vor %{when} 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 vor %{when} hidden_by: Versteckt von %{user} vor %{when} + 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 diff --git a/config/locales/diq.yml b/config/locales/diq.yml index 9b5f077e7..a1aec97f7 100644 --- a/config/locales/diq.yml +++ b/config/locales/diq.yml @@ -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:' diff --git a/config/locales/el.yml b/config/locales/el.yml index aaf2c0cd0..8cdd25506 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -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: Οικιστική Οδός + residential: Δρόμος σε κατοικημένη περιοχή rest_area: Περιοχή Ανάπαυσης road: Δρόμος secondary: Δευτερεύουσα Οδός @@ -1016,6 +1022,10 @@ el: Stadt Wien (υπό CC BY), Land Vorarlberg και Land Tirol (υπό CC BY AT με τροποποιήσεις). + contributors_fi_html: "Φινλανδία: Περιέχει δεδομένα από το + National Land Survey of Finland's Topographic Database\nκαι άλλα datasets, + υπό την \nNLSFI + Άδεια." contributors_fr_html: 'Γαλλία: Περιέχει δεδομένα που προέρχονται από το Direction Générale des Impôts.' contributors_nl_html: 'Ολλανδία: Περιέχει δεδομένα που προέρχονται @@ -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: Περιγραφή diff --git a/config/locales/es.yml b/config/locales/es.yml index 36218f412..c2dfed7d6 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -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} hace + %{when} + commented_by: Comentario de %{user} hace %{when} 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 hace %{when} hidden_by: Oculto por %{user} hace %{when} + 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: ©Colaboradores de
OpenStreetMap @@ -1163,8 +1180,8 @@ es: Para aprender más acerca de la comunidad, consulte los diarios de los usuarios, blogs de la comunidad y el sitio web de la Fundación OSM. open_data_title: Datos abiertos open_data_html: 'OpenStreetMap es datos abiertos: 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 página sobre Derechos de autor y Licencia 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 diff --git a/config/locales/et.yml b/config/locales/et.yml index e489b0a96..86e342c25 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -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} %{when} + tagasi + commented_by: Kommentaar kasutajalt %{user} %{when} + tagasi 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 diff --git a/config/locales/eu.yml b/config/locales/eu.yml index c700982a6..cab092b77 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -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: |- + Austria: Honako iturrietatik ateratako datuak ditu: + Stadt Wien (CC BY lizentziapean), + Land Vorarlberg eta + Land Tirol (CC BY AT zuzenketekin lizentziapean). + contributors_fr_html: 'Frantzia: 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? ... diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 7157e75d6..2dd16829c 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -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: دوباره فعال شده توسط ناشناس %{when} قبل hidden_by: مخفی شد توسط %{user} %{when} قبل + 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: شرح diff --git a/config/locales/fi.yml b/config/locales/fi.yml index c12917482..24d94dcd1 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -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 %{when} + sitten + commented_by: Kommentti käyttäjältä %{user} %{when} + sitten 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 hidden_by: Piilottanut käyttäjä %{user} %{when} sitten + 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 diff --git a/config/locales/fr.yml b/config/locales/fr.yml index f4d900d15..df8e6fd14 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -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éé il y a %{time} - closed_html: Fermé il y a %{time} + created_html: Créé il y a %{time} + closed_html: Fermé il y a %{time} created_by_html: Créé il y a %{time} par %{user} - deleted_by_html: Supprimé il y a %{time} par %{user} - edited_by_html: Modifié il y a %{time} par %{user} - closed_by_html: Fermé il y a %{time} par %{user} + deleted_by_html: Supprimé il y a %{time} par %{user} + edited_by_html: Modifié il y a %{time} par %{user} + closed_by_html: Fermé il y a %{time} 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} il + y a %{when} + commented_by: Commentaire de %{user} %il y a %{when} 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} il y a %{when} commented_by_anonymous: Commenté par un utilisateur anonyme il y a %{when} - closed_by: Résolu par %{user} il y a %{when} - closed_by_anonymous: Résolu par un utilisateur anonyme il - y a %{when} - reopened_by: Réactivé par %{user} il y a %{when} - reopened_by_anonymous: Réactivé par un utilisateur anonyme il - y a %{when} - hidden_by: Masqué par %{user} il y a %{when} + closed_by: Résolu par %{user} il y a %{when} + closed_by_anonymous: Résolu par un utilisateur anonyme il y a %{when} + reopened_by: Réactivé par %{user} il y a %{when} + reopened_by_anonymous: Réactivé par un utilisateur anonyme il y a %{when} + hidden_by: Masqué par %{user} il y a %{when} + 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 licence - Open Data Commons ­– Base de données Ouverte (ODbL). + Open Data Commons Open Database (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 de OpenStreetMap + de données d’OpenStreetMap 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 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 d’utilisateur + partners_html: L’hébergement est pris en charge par %{ucl}, %{ic}, %{bytemark} + et d’autres %{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 données ouvertes, disponibles sous la licence Open Data Commons Open Database License (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 texte légal 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 - cette page de mentions légales. - 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. + 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 + cette page de mentions légales. + 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 d’attribution 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 FAQ - légale. + 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 FAQ + légale. 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 politique d'utilisation de l'API, à notre politique d'utilisation des tuiles, et à la politique d'utilisation de Nominatim. + 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 politique d’utilisation de l’API, à notre politique d’utilisation des tuiles, et à la politique d’utilisation de Nominatim. 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 :" - contributors_at_html: |- - Autriche: Contient des données sur - la ville de Vienne (sous licence - CC BY 3.0 Autriche), - la région du Vorarlberg. et la région du Tyrol (sous licence CC-BY AT avec amendements). - contributors_ca_html: |- - Canada : contient des données de - GeoBase®, GeoGratis (© Département des Ressources - naturelles du Canada), CanVec (© Département des Ressources - naturelles du Canada) et StatCan (Division Géographie, - Statistiques du Canada). - contributors_fi_html: "Finlande : 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: 'Autriche : contient des données sur + la ville de Vienne (sous licence CC BY), la + région + du Vorarlberg et la région du Tyrol (sous licence CC + BY AT avec amendements).' + contributors_ca_html: 'Canada : contient des données de GeoBase®, + GeoGratis (© Département des Ressources naturelles du Canada), CanVec + (© Département des Ressources naturelles du Canada) et StatCan (Division + Géographie, Statistiques du Canada).' + contributors_fi_html: 'Finlande : 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 \nlicence - NLSFI." - contributors_fr_html: |- - France : contient des données de la - Direction générale des impôts. - contributors_nl_html: |- - Pays-Bas: Contient des données © AND, 2007 - (www.and.com) - contributors_nz_html: |- - Nouvelle-Zélande : contient des données provenant du - Land Information New Zealand. © Copyright de la Couronne réservé. + et d’autres ensembles de données, sous licence + NLSFI.' + contributors_fr_html: 'France : contient des données de la + Direction générale des finances publiques (anciennement la Direction + générale des impôts).' + contributors_nl_html: 'Pays-Bas : contient des données © AND, 2007 (www.and.com).' + contributors_nz_html: 'Nouvelle-Zélande : contient des données + provenant du Land Information New Zealand. Copyright de la Couronne + réservé.' contributors_za_html: |- - Afrique du Sud: Contient des données issues de - Direction principale: - Information Géospatiale Nationale, tous droits de l'État réservés. - contributors_gb_html: 'Royaume Uni: Contient des données de - l''Institut Géographique National © 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 page des Contributeurs 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. + Afrique du Sud : contient des données issues de la Direction principale des + Informations Géospatiales Nationales, copyright de l’État réservé. + contributors_gb_html: 'Royaume-Uni : contient des données issues + de l’Ordnance Survey © 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 contributeurs + 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. Google Maps 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 d’auteur, veuillez vous référer à notre procédure - de retrait de données ou notifiez nous directement à travers notre ou notifiez-nous directement à travers notre formulaire en ligne. 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 réelles et actuelles - - 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 exclu 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 qu’il y a sur la carte + on_html: OpenStreetMap sert à cartographier des objets qui sont à la fois réels + et actuels — 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 exclu 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 éditeur est un programme ou site web qui vous - permet d'éditer la carte. - node_html: Un nœud est un point sur la carte, comme un restaurant - ou un arbre individuel. - way_html: |- - Un chemintag 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 nœud est un point sur la carte, tel qu’un seul + restaurant ou un arbre isolé. + way_html: Un cheminattribut (ou tag) 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. Trouvez de l’aide ici. 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 la carte et cliquez sur l'icône note: - . 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 la carte et cliquez sur l’icône note : + . 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 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\npage - d e droit d’auteur pour des informations plus légales, ou contacter le - \ngroupe de travail - OSMF 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 page + des droits d’auteur pour des informations légales ou contacter le groupe + de travail OSMF 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 de OpenStreetMap. + description: Commencer avec ce guide rapide couvrant les bases d’OpenStreetMap. 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 - de OSM. + description: Poser une question ou chercher des réponses sur le site de questions-et-réponses + d’OSM. 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 diff --git a/config/locales/fur.yml b/config/locales/fur.yml index 4e668c474..fdd50ef70 100644 --- a/config/locales/fur.yml +++ b/config/locales/fur.yml @@ -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} %{when} + indaûr + commented_by: Coment di %{user} %{when} indaûr 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 %{when} indaûr hidden_by: Platade di %{user} %{when} indaûr + 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 diff --git a/config/locales/gl.yml b/config/locales/gl.yml index a097508f1..595cf2a1b 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -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} + fai %{when} + commented_by: Comentario de %{user} fai %{when} 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 hai %{when} hidden_by: Agochado por %{user} hai %{when} + 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 diff --git a/config/locales/he.yml b/config/locales/he.yml index f4e02fcee..42f129d4f 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -135,11 +135,17 @@ he: way_paginated: דרכים (%{x}–%{y} מתוך %{count}) relation: יחסים (%{count}) relation_paginated: יחסים (%{x}–%{y} מתוך %{count}) + comment: הערות (%{count}) + hidden_commented_by: הערה מוסתרת ממשתמש %{user} לפני + %{when} + commented_by: הערה ממשתמש %{user} לפני %{when} 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: תתבצע טעינת %{num_features} תכונות, וזה עלול לגרום לדפדפן להיות + feature_warning: תתבצע טעינת %{num_features} ישויות, וזה עלול לגרום לדפדפן להיות תקוע. האם ברצונך באמת להציג את הנתונים האלה? load_data: טעינת נתונים loading: בטעינה... @@ -216,6 +222,11 @@ he: reopened_by_anonymous: הופעל מחדש על־ידי אלמוני לפני %{when} hidden_by: הוסתר על־ידי %{user} לפני %{when} + 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: דרך באזור מגורים rest_area: אזור מנוחה road: דרך secondary: דרך משנית @@ -647,7 +665,7 @@ he: cliff: מצוק crater: מכתש dune: חולית - feature: תכונה + feature: ישות 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 הוא מקום למיפוי דברים אמתיים ונוכחיים – הוא מכיל מיליוני - מבנים, דרכים ופרטים אחרים על מקומות. אפשר למפות כל דבר מהעולם מהאמתי שמעניין + מבנים, דרכים ופרטים אחרים על מקומות. אפשר למפות כל ישות מהעולם האמתי שמעניין אותך. 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: תיאור diff --git a/config/locales/hsb.yml b/config/locales/hsb.yml index 38037d52b..c7c7ac808 100644 --- a/config/locales/hsb.yml +++ b/config/locales/hsb.yml @@ -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 před %{when} hidden_by: Schowany wot %{user} před %{when} + 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 diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 315734c77..5017d8148 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -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 diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 8a031e75b..00ea28758 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -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' diff --git a/config/locales/id.yml b/config/locales/id.yml index 0e343cbe0..518008805 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -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 diff --git a/config/locales/it.yml b/config/locales/it.yml index 3283d8b9f..2ed733e59 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -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} %{when} fa 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 %{when} fa hidden_by: Nascosta da %{user} %{when} fa + 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 diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 2873060f6..55a3b1016 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -135,11 +135,16 @@ ja: way_paginated: ウェイ (%{x}-%{y} / %{count}) relation: リレーション (%{count}) relation_paginated: リレーション (%{x}-%{y} / %{count}) + comment: コメント (%{count}件) + hidden_commented_by: '%{user}さんからの%{when}前の非表示のコメント' + commented_by: '%{user}さんからの%{when}前のコメント' 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}さんが%{when}前に再開' reopened_by_anonymous: 誰かが%{when}前に再開 hidden_by: '%{user}さんが%{when}前に非表示化' + 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: 受信箱 diff --git a/config/locales/ka.yml b/config/locales/ka.yml index 7846b5cd6..233a2d5ad 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -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: მეორადი გზა diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 58358d1af..7f4c599e4 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -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} 사용자가 %{when} 전에 + 남긴 숨겨진 덧글' + commented_by: '%{user} 사용자가 %{when} 전에 + 덧글을 남김' 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: 설명 diff --git a/config/locales/ksh.yml b/config/locales/ksh.yml index b550ed1b5..1d2122ad5 100644 --- a/config/locales/ksh.yml +++ b/config/locales/ksh.yml @@ -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 e-mail beschtäätejje' user_block: diff --git a/config/locales/lb.yml b/config/locales/lb.yml index 69bae315e..cdc583335 100644 --- a/config/locales/lb.yml +++ b/config/locales/lb.yml @@ -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} viru(n) %{when} + open_by_anonymous: Ugeluecht vun engem Anonymen + viru(n) %{when} commented_by: Bemierkung vum %{user} viru(n) %{when} commented_by_anonymous: Bemierkung vun engem Anonymen viru(n) %{when} + closed_by: Geléist vum %{user} viru(n) %{when} + closed_by_anonymous: Geléist vun engem Anonymen + viru(n) %{when} reopened_by: Reaktivéiert vum %{user} viru(n) %{when} + reopened_by_anonymous: Reaktivéiert vun engem Anonymen + viru(n) %{when} hidden_by: Verstoppt vum %{user} viru(n) %{when} 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: 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 diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 59dae1cea..fd852f6bb 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -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 diff --git a/config/locales/mk.yml b/config/locales/mk.yml index 6c0207ee1..f6850d606 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -123,11 +123,17 @@ mk: way_paginated: Патишта (%{x}-%{y} од вкупно %{count}) relation: Односи (%{count}) relation_paginated: Односи (%{x}-%{y} од вкупно %{count}) + comment: Коментари (%{count}) + hidden_commented_by: Скриен коментар на %{user} пред + %{when} + commented_by: Коментар на %{user} пред %{when} 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: Преактивирано од анонимен пред %{when} hidden_by: Скриено од %{user} пред %{when} + 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: Прилог „Надвозник“ + title: Извршник „Надвозник“ 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">Правни ЧПП. more_2_html: |- Иако OpenStreetMap работи со отворени податоци, ние не можеме да понудиме - бесплатни програмски прилози (API) за карти на трети програмери. - Погледајте ги правилата за употреба на прилогот, + бесплатни извршници (API) за карти на трети програмери. + Погледајте ги правилата за употреба на извршникот, правилата за употреба на полињата и Nominatim. contributors_title_html: Нашите учесници @@ -1135,7 +1151,7 @@ mk: next: Следно copyright_html: ©Ð£Ñ‡ÐµÑÐ½Ð¸Ñ†Ð¸ на
OpenStreetMap used_by: '%{name} обезбедува картографски податоци на стотици мрежни места, мобилни - прилози и сметачки уреди' + извршници и сметачки уреди' 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: Зачувај промени 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: Вашиот пристап до приложниот програм (API) е привремено запрен. + need_to_see_terms: Вашиот пристап до извршничкиот програм е привремено запрен. Најавете се на мрежниот посредник за да ги погледате Условите за учесниците. Нема потреба да се согласувате со услоците, но мора да ги прочитате. oauth: oauthorize: title: Овластете пристап до вашата сметка - request_access: Програмскиот прилог %{app_name} бара пристап до вашата сметка, - %{user}. Видете дали би сакале прилогот да ги има следните можности. Можете - да одберете колку што сакате. + request_access: Извршникот %{app_name} бара пристап до вашата сметка, %{user}. + Видете дали би сакале извршникот да ги има следните можности. Можете да одберете + колку што сакате. allow_to: 'Дозволи му на клиентскиот програм да:' allow_read_prefs: ви ги чита корисничките прилагодувања. allow_write_prefs: ги менува вашите кориснички прилагодувања. @@ -1599,11 +1628,11 @@ mk: allow_write_notes: измена на белешки. oauthorize_success: title: Барањето за овластување е дозволено - allowed: На прилогот %{app_name} му дадовте пристап до вашата сметка. + allowed: На извршникот %{app_name} му дадовте пристап до вашата сметка. verification: Потврдниот код гласи %{code}. oauthorize_failure: title: Барањето за овластување не успеа - denied: На прилогот %{app_name} му го одбивте пристапот до вашата сметка. + denied: На извршникот %{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: Опис diff --git a/config/locales/mr.yml b/config/locales/mr.yml index 7230a340b..d363187dd 100644 --- a/config/locales/mr.yml +++ b/config/locales/mr.yml @@ -190,18 +190,18 @@ mr: closed_title: 'निराकरण झालेली टीप #%{note_name}' hidden_title: 'लपविलेली टीप #%{note_name}' open_by: %{when} पूर्वी%{user} ने तयार केले - open_by_anonymous: %{when} पूर्वी%{user}अनामिकाने + open_by_anonymous: %{when} पूर्वी अनामिकाने तयार केले commented_by: %{when} पूर्वी%{user} ची टिप्पणी - commented_by_anonymous: %{when} पूर्वी%{user} - अनामिकाची टिप्पणी + commented_by_anonymous: %{when} पूर्वी अनामिकाची + टिप्पणी closed_by: %{when} पूर्वी%{user} ने वियोजित केले - closed_by_anonymous: %{when} पूर्वी%{user}अनामिकाने + closed_by_anonymous: %{when} पूर्वी अनामिकाने वियोजित केले reopened_by: %{when} पूर्वी%{user} ने सक्रिय केले - reopened_by_anonymous: %{when} पूर्वी%{user}अनामिकाने + reopened_by_anonymous: %{when} पूर्वी अनामिकाने सक्रिय केले hidden_by: %{when} पूर्वी%{user} ने लपविले changeset: diff --git a/config/locales/ms.yml b/config/locales/ms.yml index a07c9b656..e023fddbe 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -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 diff --git a/config/locales/nb.yml b/config/locales/nb.yml index 3d61e185b..b195dce5c 100644 --- a/config/locales/nb.yml +++ b/config/locales/nb.yml @@ -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 diff --git a/config/locales/nl.yml b/config/locales/nl.yml index d54e19b4b..d5451830c 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -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} %{when} + geleden + commented_by: Reactie van %{user} %{when} geleden 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: %{when} geleden opnieuw geactiveerd door anoniem hidden_by: %{when} ago 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 Veel gestelde juridische + href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">Veelgestelde juridische vragen. 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.
Klik op de koppeling in de bevestiging om deze te activeren of vraag een nieuwe bevestiging per e-mail aan. account is suspended: Uw gebruiker is automatisch opgeschort vanwege verdachte activiteit.
Neem contact op met de webmaster 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: |- -

Uw OpenID is nog niet gekoppeld aan een OpenStreetMap-account.

+

Uw OpenID is nog niet gekoppeld aan een OpenStreetMapgebruiker.

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 diff --git a/config/locales/pa.yml b/config/locales/pa.yml index 03d840517..baf767880 100644 --- a/config/locales/pa.yml +++ b/config/locales/pa.yml @@ -682,9 +682,6 @@ pa: text: ਦਾਨ ਦਿਉ learn_more: ਹੋਰ ਜਾਣੋ more: ਹੋਰ - sotm_line_1: ੮ਵਾਂ ਸਲਾਨਾ ਸੰਮੇਲਨ - sotm_line_2: ੭-੯ ਨਵੰਬਰ ੨੦੧੪ - sotm_line_3: ਬੁਏਨਸ ਆਇਰਸ, ਅਰਜਨਟੀਨਾ license_page: foreign: title: ਇਸ ਤਰਜਮੇ ਬਾਰੇ diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 7c4d99c0b..fa8917bae 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -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 %{time} temu closed_html: Zamknięte %{time} temu @@ -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} %{when} + temu + commented_by: Komentarz od %{user} %{when} temu 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 %{when} temu hidden_by: Ukryte przez %{user} %{when} temu + 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 diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index f538c10f5..531120687 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -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} %{when} + atrás + commented_by: Comentado por %{user} há %{when} atrás 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á %{when} atrás hidden_by: Ocultado por %{user} há %{when} atrás + 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 diários dos editores, blogues da comunidade, e o site da OSM Foundation. - open_data_title: Data de Abertura + open_data_title: Dados Abertos open_data_html: |- O OpenStreetMap é constituído por dados abertos: 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 política de privacidade) - 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 diff --git a/config/locales/pt.yml b/config/locales/pt.yml index ee460d17f..37ded693d 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -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 diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 9121b403f..92c54decf 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -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: Граница страны + level6: Граница района 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: Редактор — это программа или веб-сайт, которые можно использовать для редактирования карты. - node_html: Точка — простейший элемент карты, вроде входа в - ресторан или отдельного дерева. + node_html: Точка (node) — простейший элемент карты, вроде входа + в ресторан или отдельного дерева. way_html: Линия — это отрезок или кривая, соединяющая точки, обозначающая, к примеру, дорогу, ручей, контур озера или здания. tag_html: Тег – это единица описания точки или линии, например @@ -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: Извините, ваша учётная запись ещё не активирована.
Чтобы активировать её, пожалуйста, нажмите на ссылку в отправленном вам письме, или запросите отправку нового письма-подтверждения. @@ -1779,7 +1791,7 @@ ru: about: header: Свободно редактируемая html: |- -

в Отличие от других карт, карты OpenStreetMap полностью создаются обычными людьми вроде вас +

В отличие от других карт, OpenStreetMap полностью создаются такими же людьми, как и вы, и они свободны для исправления, обновления, загрузки и использования каждым.

Зарегистрируйтесь, чтобы сделать свой вклад. Мы отправим вам письмо, чтобы подтвердить ваш аккаунт.

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: Описание diff --git a/config/locales/sl.yml b/config/locales/sl.yml index b8c0cd883..a1dcb616a 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -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} %{when} + nazaj + commented_by: Komentar uporabnika %{user} %{when} + nazaj 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 diff --git a/config/locales/sq.yml b/config/locales/sq.yml index ec2d2303a..24d884de5 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -102,18 +102,15 @@ sq: browse: created: Krijuar closed: I Mbyllur - created_html: Krijuar %{kohë} - më parë - closed_html: Të mbyllura %{kohë} - më parë - created_by_html: Të Krijuar %{kohë} - më parë nga %{user} - deleted_by_html: Të Fshira %{kohë} - më parë nga %{user} - edited_by_html: të Redaktuara %{kohë} - më parë nga %{user} - closed_by_html: Të mbyllura %{kohë} - më parë nga %{user} + created_html: Krijuar %{time} më parë + closed_html: Të mbyllura %{time} më parë + created_by_html: Të Krijuar %{time} më parë nga + %{user} + deleted_by_html: Të Fshira %{time} më parë nga %{user} + edited_by_html: të Redaktuara %{time} më parë nga + %{user} + closed_by_html: Të mbyllura %{time} më parë 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 (%{x}-%{y} - nga %{count}) + node_paginated: Nyjet (%{x}-%{y} nga %{count}) way: Mënyra (%{count}) - way_paginated: Mënyra (%{x}-%{y} - nga %{count}) + way_paginated: Mënyra (%{x}-%{y} nga %{count}) relation: Marrëdhëniet (%{count}) - relation_paginated: Marrëdhëniet (%{x}-%{y} - nga %{count}) + relation_paginated: Marrëdhëniet (%{x}-%{y} nga %{count}) changesetxml: Ndryshim en XML osmchangexml: Ndrsyhim i OSM-s en XML feed: diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 9f83bc069..3ee249fe8 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -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} %{when} + sedan + commented_by: Kommentar frÃ¥n %{user} %{when} sedan 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 %{when} sedan hidden_by: Gömd av %{user} %{when} sedan + 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 diff --git a/config/locales/ta.yml b/config/locales/ta.yml index b8ac4fb23..35ef5ad8a 100644 --- a/config/locales/ta.yml +++ b/config/locales/ta.yml @@ -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: இரண்டாம் நிலை சாலை diff --git a/config/locales/te.yml b/config/locales/te.yml index d4eb290a4..1dc7bd172 100644 --- a/config/locales/te.yml +++ b/config/locales/te.yml @@ -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: diff --git a/config/locales/tl.yml b/config/locales/tl.yml index 082a5b32e..0e0f15d98 100644 --- a/config/locales/tl.yml +++ b/config/locales/tl.yml @@ -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 diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 7cb2bea2f..b8bf7e969 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -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 yorumu' commented_by_anonymous: Anonim kullanıcının %{when} önceki 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: ©OpenStreetMap
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 diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 3b636088c..f3d17d780 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -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} %{when} + тому + commented_by: Коментар від %{user} %{when} тому 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: Відновлено анонімом %{when} тому hidden_by: Приховано учасником %{user} %{when} тому + 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: Вулиця місцевого значення + residential: Дорога місцевого значення 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}', але повідомлення, на яке ви хочете відповісти, - було відправлено не цьому користувачу. Будь ласка, увійдіть з правильним ім’ям - користувача щоб відповісти. + wrong_user: Ви увійшли як „%{user}“, але повідомлення, на яке ви хочете відповісти, + було надіслане не вам. Будь ласка, увійдіть з відповідним ім’ям користувача + щоб відповісти. read: title: Перегляд повідомлення from: Від @@ -1316,9 +1349,9 @@ uk: unread_button: Позначити як непрочитане back: Назад to: 'Кому:' - wrong_user: Ви увійшли як `%{user}', але повідомлення, яке ви хочете прочитати, - не було відправлено цим користувачем, чи призначено для цього користувача. - Будь ласка, увійдіть під правильним ім'ям користувача, щоб прочитати його. + wrong_user: Ви увійшли як „%{user}“, але повідомлення, яке ви хочете прочитати, + не було надіслане вами, чи призначено для вас. Будь ласка, увійдіть під відповідним + ім’ям користувача, щоб прочитати його. 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: Опис diff --git a/config/locales/vi.yml b/config/locales/vi.yml index cbe65cf30..14a55671d 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -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} cách + đây %{when} + commented_by: Bình luận của %{user} cách đây %{when} 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} cách đây %{when} reopened_by_anonymous: Mở lại vô danh cách đây %{when} hidden_by: Ẩn bởi %{user} cách đây %{when} + 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ả diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 187b08369..a1084e352 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -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: %{when}前来自 %{user} 的隐藏评论 + commented_by: %{when}前来自 %{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: '对不起,找不到%{type} #%{id}。' + sorry: '对不起,无法找到 %{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} 创建于 %{when} 前' open_by_anonymous: 匿名用户创建于 %{when} 前 commented_by: '%{user} 于 %{when} 前发表的评论' commented_by_anonymous: 匿名用户于 %{when} 前发表的评论 closed_by: '%{user} 解决于 %{when} 前' closed_by_anonymous: 匿名用户解决于 %{when} 前 - reopened_by: '%{user} 重启于 %{when} 前' - reopened_by_anonymous: 匿名用户重启于 %{when} 前 + reopened_by: '%{user} 重新激活于 %{when} 前' + reopened_by_anonymous: 匿名用户重新激活于 %{when} 前 hidden_by: '%{user} 隐藏于 %{when} 前' + 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: 荷兰:含有© AND data, 2007(www.and.com) contributors_nz_html: 新西兰:包含来自新西兰土地信息部的数据。Crown 版权所有。 contributors_za_html: 南非:包含来自行政局:国家地球空间信息,国家版权所有。 - contributors_gb_html: 英国:包含来自 Ordnance 的调查数据,© 皇家版权所有及数据库权利,2010-12。 + contributors_gb_html: 英国:包含来自 Ordnance 的调查数据,© Crown 版权所有及数据库权利,2010-12。 contributors_footer_1_html: |- 关于其进一步的细节,及其他被用来帮助提升 OpenStreetMap 的来源,详见 OpenStreetMap Wiki 的贡献者页面。 @@ -1032,9 +1048,9 @@ zh-CN: href='%{help_url}'>点此获取帮助。 start_mapping: 开始绘制地图 add_a_note: - title: 没有时间编辑?添加注释! - paragraph_1_html: 如果您这是想做一些微小改动而没有时间登录来学习如何编辑,那做一些注释是非常容易的。 - paragraph_2_html: 只要去地图并单击注释图标:。这将在地图上添加一个标记,您可以拖动它,并添加您的注释,然后单击保存,其他人可以确认是否正确。 + title: 没有时间编辑?添加笔记! + paragraph_1_html: 如果您这是想做一些微小改动而没有时间登录来学习如何编辑,那做一些笔记是非常容易的。 + paragraph_2_html: 只要去地图并单击笔记图标:。这将在地图上添加一个标记,您可以拖动它,并添加您的笔记,然后单击保存,其他人可以确认是否正确。 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。其他几种选择也可以用来编辑 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: 城市快速道路 primary: 一级道路 secondary: 二级道路 unclassified: 未分类道路 @@ -1325,7 +1351,8 @@ zh-CN: edit: 编辑 preview: 预览 markdown_help: - title_html: 使用Markdown解析 + title_html: 使用 Markdown + 解析 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: 尚无轨迹。上传新轨迹或在维基页面上了解 + public_traces: 公开 GPS 轨迹 + your_traces: 您的 GPS 轨迹 + public_traces_from: 来自 %{user} 的公开 GPS 轨迹 + description: 浏览最近上传的 GPS 轨迹 + tagged_with: 以 %{tags} 标记 + empty_html: 尚无轨迹。上传新轨迹或在wiki页面上了解 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: 对不起,你的账户尚未激活。
请点击在账户确认邮件中的链接来激活你的账户,或请求新的确认电子邮件。 - account is suspended: 对不起,你的帐户因可疑活动已被暂停。
如果你想讨论这个,请联系网站管理员。 - auth failure: 对不起,凭这些信息你无法登录。 - openid missing provider: 对不起,无法联系你的 OpenID 提供者 - openid invalid: 对不起,你的 OpenID 格式似乎不正确 - openid_logo_alt: 使用OpenID登录 + account not active: 对不起,您的账户尚未激活。
请点击在账户确认邮件中的链接来激活您的账户,或请求新的确认电子邮件。 + account is suspended: 对不起,您的帐户因可疑活动已被暂停。
如果您想讨论这个,请联系网站管理员。 + 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: 请联系网站管理员来安排创建一个账户 - - 我们将尽快尝试处理你的请求。 + - 我们将尽快尝试处理您的请求。 about: header: 自由且可编辑 html: |- -

不同于其他地图,OpenStreetMap是完全由像你一样的人创建的,并且免费提供给任何人用以修正、更新、下载和使用。

-

登录来贡献你的力量吧。我们将发送一份邮件来确认你的账号。

- license_agreement: 当你确认你的帐户时,你需要同意贡献者条款。 +

不同于其他地图,OpenStreetMap 是完全由像您一样的人创建的,并且免费提供给任何人用以修正、更新、下载和使用。

+

登录来贡献您的力量吧。我们将发送一份邮件来确认您的账号。

+ license_agreement: 当您确认您的帐户时,您需要同意贡献者条款。 email address: 电子邮件地址: confirm email address: 确认电子邮件地址: not displayed publicly: 不公开显示(参阅隐私政策) 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: |- -

你的 OpenID 尚未与一个 OpenStreetMap 帐户相关联。

+

您的 OpenID 尚未与一个 OpenStreetMap 帐户相关联。

continue: 注册 - terms accepted: 感谢你接受新的贡献条款! - terms declined: 我们很遗憾你已决定不接受新的贡献者条款。有关详细信息,请参阅此维基页面. + terms accepted: 感谢您接受新的贡献条款! + terms declined: 我们很遗憾您已决定不接受新的贡献者条款。有关详细信息,请参阅此 wiki 页面. 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: 目前你的编辑是匿名的,人们不能发送邮件给你或看到你的位置。为了显示你的编辑,让别人通过网站与你联系,请点击下面的按钮。由于 0.6 - API 的转换,只有公开的用户可以编辑地图数据。(知道为什么)。 + text: 目前您的编辑是匿名的,人们不能发送邮件给您或看到您的位置。为了显示您的编辑,让别人通过网站与您联系,请点击下面的按钮。由于 0.6 + API 的转换,只有公开的用户可以编辑地图数据。(了解为什么)。 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: 如果你需要我们重新发送确认邮件,请点击这里。 + reconfirm_html: 如果您需要我们重新发送确认邮件,请点击这里。 confirm_resend: - success: 我们已经发送一封新的确认电子邮件到 %{email},只要你确认你的帐户,你就可以开始制图了。

如果你使用的反垃圾邮件系统发送确认请求,那么请确保你的白名单中有 + success: 我们已经发送一封新的确认电子邮件到 %{email},只要您确认您的帐户,您就可以开始制图了。

如果您使用的反垃圾邮件系统发送确认请求,那么请确保您的白名单中有 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: |-

- 对不起,你的帐户已因可疑 + 对不起,您的帐户已因可疑 活动被自动暂停。

- 这项决定将在短时间内由管理员审核,或者如果你想讨论这一点 - ,可以联系%{webmaster}。 + 这项决定将在短时间内由管理员审核,或者如果您想讨论这一点 + ,可以联系 %{webmaster}。

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: 必须为管理员才能创建或更新一个块。 + non_moderator_update: 必须为管理员才能创建或更新一个封禁。 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: © OpenStreetMap贡献者 + copyright: © OpenStreetMap 贡献者 donate_link_text: 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: diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 23538ac1e..59c680216 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -138,11 +138,16 @@ zh-TW: way_paginated: 路線(%{count}的%{x}-%{y}) relation: 關係(%{count}) relation_paginated: 關係(%{count}的%{x}-%{y}) + comment: 留言(%{count}) + hidden_commented_by: 隱藏來自%{user},%{when} ago的評論 + commented_by: '%{user}於%{when}前發表的評論' 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: 於%{when}前由%{user}重開 reopened_by_anonymous: 於%{when}前由匿名用户重開 hidden_by: 於%{when}前由%{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: 評論 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: 客運站 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: 說明 diff --git a/db/migrate/001_create_osm_db.rb b/db/migrate/001_create_osm_db.rb index d952c0a07..34b020340 100644 --- a/db/migrate/001_create_osm_db.rb +++ b/db/migrate/001_create_osm_db.rb @@ -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 diff --git a/db/migrate/002_cleanup_osm_db.rb b/db/migrate/002_cleanup_osm_db.rb index 630661a0b..fb27c91b7 100644 --- a/db/migrate/002_cleanup_osm_db.rb +++ b/db/migrate/002_cleanup_osm_db.rb @@ -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 diff --git a/db/migrate/003_sql_session_store_setup.rb b/db/migrate/003_sql_session_store_setup.rb index 5853d4d00..69ad969b7 100644 --- a/db/migrate/003_sql_session_store_setup.rb +++ b/db/migrate/003_sql_session_store_setup.rb @@ -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 diff --git a/db/migrate/004_user_enhancements.rb b/db/migrate/004_user_enhancements.rb index af4b65123..8b352be3e 100644 --- a/db/migrate/004_user_enhancements.rb +++ b/db/migrate/004_user_enhancements.rb @@ -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 diff --git a/db/migrate/005_tile_tracepoints.rb b/db/migrate/005_tile_tracepoints.rb index d429b6fdc..fea6d4137 100644 --- a/db/migrate/005_tile_tracepoints.rb +++ b/db/migrate/005_tile_tracepoints.rb @@ -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" diff --git a/db/migrate/006_tile_nodes.rb b/db/migrate/006_tile_nodes.rb index 91f8acb6b..8bfb6bc3f 100644 --- a/db/migrate/006_tile_nodes.rb +++ b/db/migrate/006_tile_nodes.rb @@ -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" diff --git a/db/migrate/007_add_relations.rb b/db/migrate/007_add_relations.rb index 41d62928f..4a0f74c52 100644 --- a/db/migrate/007_add_relations.rb +++ b/db/migrate/007_add_relations.rb @@ -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 diff --git a/db/migrate/008_remove_segments.rb b/db/migrate/008_remove_segments.rb index ce49e9cca..0c68ce050 100644 --- a/db/migrate/008_remove_segments.rb +++ b/db/migrate/008_remove_segments.rb @@ -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" diff --git a/db/migrate/010_diary_comments.rb b/db/migrate/010_diary_comments.rb index ecad2f5dc..ad2edffa4 100644 --- a/db/migrate/010_diary_comments.rb +++ b/db/migrate/010_diary_comments.rb @@ -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 diff --git a/db/migrate/018_create_acls.rb b/db/migrate/018_create_acls.rb index 08ed4f731..0db06f30c 100644 --- a/db/migrate/018_create_acls.rb +++ b/db/migrate/018_create_acls.rb @@ -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 diff --git a/db/migrate/020_populate_node_tags_and_remove.rb b/db/migrate/020_populate_node_tags_and_remove.rb index 4c9628f27..8fa7b7e5d 100644 --- a/db/migrate/020_populate_node_tags_and_remove.rb +++ b/db/migrate/020_populate_node_tags_and_remove.rb @@ -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 diff --git a/db/migrate/021_move_to_innodb.rb b/db/migrate/021_move_to_innodb.rb index f9110cca6..030515a98 100644 --- a/db/migrate/021_move_to_innodb.rb +++ b/db/migrate/021_move_to_innodb.rb @@ -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 diff --git a/db/migrate/022_key_constraints.rb b/db/migrate/022_key_constraints.rb index f94c965bb..e854ba78e 100644 --- a/db/migrate/022_key_constraints.rb +++ b/db/migrate/022_key_constraints.rb @@ -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. diff --git a/db/migrate/023_add_changesets.rb b/db/migrate/023_add_changesets.rb index 5bee21512..3a6c32e19 100644 --- a/db/migrate/023_add_changesets.rb +++ b/db/migrate/023_add_changesets.rb @@ -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 diff --git a/db/migrate/025_add_end_time_to_changesets.rb b/db/migrate/025_add_end_time_to_changesets.rb index eaccc008f..32d27959a 100644 --- a/db/migrate/025_add_end_time_to_changesets.rb +++ b/db/migrate/025_add_end_time_to_changesets.rb @@ -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. diff --git a/db/migrate/028_add_more_changeset_indexes.rb b/db/migrate/028_add_more_changeset_indexes.rb index 45d014e9e..ea2dc0290 100644 --- a/db/migrate/028_add_more_changeset_indexes.rb +++ b/db/migrate/028_add_more_changeset_indexes.rb @@ -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 diff --git a/db/migrate/029_add_user_foreign_keys.rb b/db/migrate/029_add_user_foreign_keys.rb index cb0d9e1dd..5d3532c72 100644 --- a/db/migrate/029_add_user_foreign_keys.rb +++ b/db/migrate/029_add_user_foreign_keys.rb @@ -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 diff --git a/db/migrate/030_add_foreign_keys.rb b/db/migrate/030_add_foreign_keys.rb index e3dc7e82d..1b99f664d 100644 --- a/db/migrate/030_add_foreign_keys.rb +++ b/db/migrate/030_add_foreign_keys.rb @@ -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 diff --git a/db/migrate/031_create_countries.rb b/db/migrate/031_create_countries.rb index 923d943f7..c0b4fb634 100644 --- a/db/migrate/031_create_countries.rb +++ b/db/migrate/031_create_countries.rb @@ -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 diff --git a/db/migrate/034_create_languages.rb b/db/migrate/034_create_languages.rb index e62a3dff9..a9d683151 100644 --- a/db/migrate/034_create_languages.rb +++ b/db/migrate/034_create_languages.rb @@ -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 diff --git a/db/migrate/035_change_user_locale.rb b/db/migrate/035_change_user_locale.rb index bfb43056a..117e1cd0c 100644 --- a/db/migrate/035_change_user_locale.rb +++ b/db/migrate/035_change_user_locale.rb @@ -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 diff --git a/db/migrate/042_add_foreign_keys_to_oauth_tables.rb b/db/migrate/042_add_foreign_keys_to_oauth_tables.rb index ee8048a36..abc4e9c51 100644 --- a/db/migrate/042_add_foreign_keys_to_oauth_tables.rb +++ b/db/migrate/042_add_foreign_keys_to_oauth_tables.rb @@ -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 diff --git a/db/migrate/044_create_user_roles.rb b/db/migrate/044_create_user_roles.rb index 0db3ea77e..26b2adf6f 100644 --- a/db/migrate/044_create_user_roles.rb +++ b/db/migrate/044_create_user_roles.rb @@ -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 diff --git a/db/migrate/045_create_user_blocks.rb b/db/migrate/045_create_user_blocks.rb index b3313ce92..e97822a0d 100644 --- a/db/migrate/045_create_user_blocks.rb +++ b/db/migrate/045_create_user_blocks.rb @@ -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 diff --git a/db/migrate/046_alter_user_roles_and_blocks.rb b/db/migrate/046_alter_user_roles_and_blocks.rb index 9799e4e5e..864f0db5d 100644 --- a/db/migrate/046_alter_user_roles_and_blocks.rb +++ b/db/migrate/046_alter_user_roles_and_blocks.rb @@ -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 diff --git a/db/migrate/054_refactor_map_bug_tables.rb b/db/migrate/054_refactor_map_bug_tables.rb index d94105035..d3839aaa8 100644 --- a/db/migrate/054_refactor_map_bug_tables.rb +++ b/db/migrate/054_refactor_map_bug_tables.rb @@ -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" diff --git a/db/migrate/20110521142405_rename_bugs_to_notes.rb b/db/migrate/20110521142405_rename_bugs_to_notes.rb index 2934b73fd..5b9933e04 100644 --- a/db/migrate/20110521142405_rename_bugs_to_notes.rb +++ b/db/migrate/20110521142405_rename_bugs_to_notes.rb @@ -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" diff --git a/db/migrate/20111212183945_add_lowercase_user_indexes.rb b/db/migrate/20111212183945_add_lowercase_user_indexes.rb index 4142a642d..69e7ed299 100644 --- a/db/migrate/20111212183945_add_lowercase_user_indexes.rb +++ b/db/migrate/20111212183945_add_lowercase_user_indexes.rb @@ -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 diff --git a/db/migrate/20120318201948_create_redactions.rb b/db/migrate/20120318201948_create_redactions.rb index b6ee96037..15cc1e13b 100644 --- a/db/migrate/20120318201948_create_redactions.rb +++ b/db/migrate/20120318201948_create_redactions.rb @@ -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 diff --git a/db/migrate/20120328090602_drop_session_table.rb b/db/migrate/20120328090602_drop_session_table.rb index e5f9739a5..627db6d7c 100644 --- a/db/migrate/20120328090602_drop_session_table.rb +++ b/db/migrate/20120328090602_drop_session_table.rb @@ -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 diff --git a/db/migrate/20120404205604_add_user_and_description_to_redaction.rb b/db/migrate/20120404205604_add_user_and_description_to_redaction.rb index 05c75d37e..0ca0be4a0 100644 --- a/db/migrate/20120404205604_add_user_and_description_to_redaction.rb +++ b/db/migrate/20120404205604_add_user_and_description_to_redaction.rb @@ -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 diff --git a/db/migrate/20140115192822_add_text_index_to_note_comments.rb b/db/migrate/20140115192822_add_text_index_to_note_comments.rb index e43374595..e0d223060 100644 --- a/db/migrate/20140115192822_add_text_index_to_note_comments.rb +++ b/db/migrate/20140115192822_add_text_index_to_note_comments.rb @@ -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 diff --git a/db/migrate/20140507110937_create_changeset_comments.rb b/db/migrate/20140507110937_create_changeset_comments.rb index 8d2a4599d..cfc499535 100644 --- a/db/migrate/20140507110937_create_changeset_comments.rb +++ b/db/migrate/20140507110937_create_changeset_comments.rb @@ -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 diff --git a/db/migrate/20140519141742_add_join_table_between_users_and_changesets.rb b/db/migrate/20140519141742_add_join_table_between_users_and_changesets.rb index d07c6aae9..c23ed1f9f 100644 --- a/db/migrate/20140519141742_add_join_table_between_users_and_changesets.rb +++ b/db/migrate/20140519141742_add_join_table_between_users_and_changesets.rb @@ -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 index 000000000..84bc2be40 --- /dev/null +++ b/db/migrate/20150110152606_change_default_formats.rb @@ -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 index 000000000..2bc021476 --- /dev/null +++ b/db/migrate/20150111192335_subscribe_old_changesets.rb @@ -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 diff --git a/db/structure.sql b/db/structure.sql index 343aec084..5d52a87be 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -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'); diff --git a/lib/diff_reader.rb b/lib/diff_reader.rb index de2da3c6b..ca38d3501 100644 --- a/lib/diff_reader.rb +++ b/lib/diff_reader.rb @@ -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 diff --git a/lib/migrate.rb b/lib/migrate.rb index 7f8d33693..681eba5b6 100644 --- a/lib/migrate.rb +++ b/lib/migrate.rb @@ -1,143 +1,49 @@ 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 diff --git a/script/vagrant/setup/provision.sh b/script/vagrant/setup/provision.sh index f9ba3c98b..47534b84d 100644 --- a/script/vagrant/setup/provision.sh +++ b/script/vagrant/setup/provision.sh @@ -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 diff --git a/test/controllers/api_controller_test.rb b/test/controllers/api_controller_test.rb index 6426184fc..ba8bdbae6 100644 --- a/test/controllers/api_controller_test.rb +++ b/test/controllers/api_controller_test.rb @@ -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 diff --git a/test/controllers/changeset_controller_test.rb b/test/controllers/changeset_controller_test.rb index 461738330..ff987b6e9 100644 --- a/test/controllers/changeset_controller_test.rb +++ b/test/controllers/changeset_controller_test.rb @@ -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 diff --git a/test/controllers/diary_entry_controller_test.rb b/test/controllers/diary_entry_controller_test.rb index ad3d6787b..32cab96cb 100644 --- a/test/controllers/diary_entry_controller_test.rb +++ b/test/controllers/diary_entry_controller_test.rb @@ -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}'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}'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 diff --git a/test/controllers/message_controller_test.rb b/test/controllers/message_controller_test.rb index 44271f5dd..1476831cf 100644 --- a/test/controllers/message_controller_test.rb +++ b/test/controllers/message_controller_test.rb @@ -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 diff --git a/test/controllers/node_controller_test.rb b/test/controllers/node_controller_test.rb index 3d689bb3f..9663ed4fb 100644 --- a/test/controllers/node_controller_test.rb +++ b/test/controllers/node_controller_test.rb @@ -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 diff --git a/test/controllers/notes_controller_test.rb b/test/controllers/notes_controller_test.rb index 6f2125193..430d018e2 100644 --- a/test/controllers/notes_controller_test.rb +++ b/test/controllers/notes_controller_test.rb @@ -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") diff --git a/test/controllers/old_node_controller_test.rb b/test/controllers/old_node_controller_test.rb index 5b0436348..f4e88ddd0 100644 --- a/test/controllers/old_node_controller_test.rb +++ b/test/controllers/old_node_controller_test.rb @@ -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) diff --git a/test/controllers/old_relation_controller_test.rb b/test/controllers/old_relation_controller_test.rb index 1db613cd4..ea1550ab4 100644 --- a/test/controllers/old_relation_controller_test.rb +++ b/test/controllers/old_relation_controller_test.rb @@ -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 ## diff --git a/test/controllers/old_way_controller_test.rb b/test/controllers/old_way_controller_test.rb index 40315caa5..306a48615 100644 --- a/test/controllers/old_way_controller_test.rb +++ b/test/controllers/old_way_controller_test.rb @@ -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 ## diff --git a/test/controllers/relation_controller_test.rb b/test/controllers/relation_controller_test.rb index 66d601284..d7a9bf536 100644 --- a/test/controllers/relation_controller_test.rb +++ b/test/controllers/relation_controller_test.rb @@ -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 diff --git a/test/controllers/user_controller_test.rb b/test/controllers/user_controller_test.rb index a39e07efc..75d057b9f 100644 --- a/test/controllers/user_controller_test.rb +++ b/test/controllers/user_controller_test.rb @@ -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 diff --git a/test/controllers/way_controller_test.rb b/test/controllers/way_controller_test.rb index 6e2ee3b0f..ca87e6543 100644 --- a/test/controllers/way_controller_test.rb +++ b/test/controllers/way_controller_test.rb @@ -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 diff --git a/test/fixtures/current_node_tags.yml b/test/fixtures/current_node_tags.yml index 9c41a375e..38b941e3c 100644 --- a/test/fixtures/current_node_tags.yml +++ b/test/fixtures/current_node_tags.yml @@ -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 diff --git a/test/fixtures/node_tags.yml b/test/fixtures/node_tags.yml index 21a63f5b1..d9001b720 100644 --- a/test/fixtures/node_tags.yml +++ b/test/fixtures/node_tags.yml @@ -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: diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb index f9aeb73cc..5604b09bf 100644 --- a/test/helpers/application_helper_test.rb +++ b/test/helpers/application_helper_test.rb @@ -17,11 +17,11 @@ class ApplicationHelperTest < ActionView::TestCase html = linkify(text) assert_equal false, html.html_safe? - assert_equal "Test #{link} is made into a link", html + assert_dom_equal "Test #{link} is made into a link", html html = linkify(text.html_safe) assert_equal true, html.html_safe? - assert_equal "Test #{link} is made into a link", html + assert_dom_equal "Test #{link} 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 "\"Rss\"", link + assert_dom_equal "\"Rss\"", link end def test_atom_link_to link = atom_link_to(:controller => :changeset, :action => :feed) - assert_equal "\"Rss\"", link + assert_dom_equal "\"Rss\"", 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 "
Test 1
", html + assert_dom_equal "
Test 1
", html html = if_logged_in(:span) { "Test 2" } - assert_equal "Test 2", html + assert_dom_equal "Test 2", html end def test_if_not_logged_in html = if_not_logged_in { "Test 1" } - assert_equal "
Test 1
", html + assert_dom_equal "
Test 1
", html html = if_not_logged_in(:span) { "Test 2" } - assert_equal "Test 2", html + assert_dom_equal "Test 2", html end def test_if_user html = if_user(users(:normal_user)) { "Test 1" } - assert_equal "
Test 1
", html + assert_dom_equal "
Test 1
", html html = if_user(users(:normal_user), :span) { "Test 2" } - assert_equal "Test 2", html + assert_dom_equal "Test 2", 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 "
Test 1
", html + assert_dom_equal "
Test 1
", html html = unless_user(users(:normal_user), :span) { "Test 2" } - assert_equal "Test 2", html + assert_dom_equal "Test 2", html html = unless_user(nil) { "Test 3" } - assert_equal "
Test 3
", html + assert_dom_equal "
Test 3
", html html = unless_user(nil, :span) { "Test 4" } - assert_equal "Test 4", html + assert_dom_equal "Test 4", html end def test_if_administrator html = if_administrator { "Test 1" } - assert_equal "
Test 1
", html + assert_dom_equal "
Test 1
", html html = if_administrator(:span) { "Test 2" } - assert_equal "Test 2", html + assert_dom_equal "Test 2", html end def test_richtext_area diff --git a/test/helpers/browse_helper_test.rb b/test/helpers/browse_helper_test.rb index d3ed3a826..5d5c038c2 100644 --- a/test/helpers/browse_helper_test.rb +++ b/test/helpers/browse_helper_test.rb @@ -17,39 +17,39 @@ class BrowseHelperTest < ActionView::TestCase end def test_printable_name - assert_equal "17", printable_name(current_nodes(:redacted_node)) - assert_equal "Test Node (18)", printable_name(current_nodes(:node_with_name)) - assert_equal "Test Node (18)", printable_name(nodes(:node_with_name_current_version)) - assert_equal "18", printable_name(nodes(:node_with_name_redacted_version)) - assert_equal "Test Node (18, v2)", 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 "проверки узла (18)", printable_name(current_nodes(:node_with_name)) - assert_equal "проверки узла (18)", printable_name(nodes(:node_with_name_current_version)) - assert_equal "18", printable_name(nodes(:node_with_name_redacted_version)) - assert_equal "проверки узла (18, v2)", 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 "проверки узла (18)", printable_name(current_nodes(:node_with_name)) - assert_equal "проверки узла (18)", printable_name(nodes(:node_with_name_current_version)) - assert_equal "18", printable_name(nodes(:node_with_name_redacted_version)) - assert_equal "проверки узла (18, v2)", 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 "Test Node (18)", printable_name(current_nodes(:node_with_name)) + assert_dom_equal "Test Node (18)", printable_name(nodes(:node_with_name_current_version)) + assert_dom_equal "18", printable_name(nodes(:node_with_name_redacted_version)) + assert_dom_equal "Test Node (18, v2)", 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 "Nó teste (18)", printable_name(current_nodes(:node_with_name)) + assert_dom_equal "Nó teste (18)", printable_name(nodes(:node_with_name_current_version)) + assert_dom_equal "18", printable_name(nodes(:node_with_name_redacted_version)) + assert_dom_equal "Nó teste (18, v2)", 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 "Nó teste (18)", printable_name(current_nodes(:node_with_name)) + assert_dom_equal "Nó teste (18)", printable_name(nodes(:node_with_name_current_version)) + assert_dom_equal "18", printable_name(nodes(:node_with_name_redacted_version)) + assert_dom_equal "Nó teste (18, v2)", 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 "Test Node (18)", printable_name(current_nodes(:node_with_name)) - assert_equal "Test Node (18)", printable_name(nodes(:node_with_name_current_version)) - assert_equal "18", printable_name(nodes(:node_with_name_redacted_version)) - assert_equal "Test Node (18, v2)", 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 "Test Node (18)", printable_name(current_nodes(:node_with_name)) + assert_dom_equal "Test Node (18)", printable_name(nodes(:node_with_name_current_version)) + assert_dom_equal "18", printable_name(nodes(:node_with_name_redacted_version)) + assert_dom_equal "Test Node (18, v2)", 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 "highway", html + assert_dom_equal "highway", 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 "primary", html + assert_dom_equal "primary", 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 "+1234567890", html + assert_dom_equal "+1234567890", html end def test_icon_tags diff --git a/test/integration/user_creation_test.rb b/test/integration/user_creation_test.rb index d2dd0564e..0efe2e1a7 100644 --- a/test/integration/user_creation_test.rb +++ b/test/integration/user_creation_test.rb @@ -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 diff --git a/test/integration/user_login_test.rb b/test/integration/user_login_test.rb index 66f8f4b09..ec91c1adc 100644 --- a/test/integration/user_login_test.rb +++ b/test/integration/user_login_test.rb @@ -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 diff --git a/test/lib/rich_text_test.rb b/test/lib/rich_text_test.rb index e99d594a4..14e6f2196 100644 --- a/test/lib/rich_text_test.rb +++ b/test/lib/rich_text_test.rb @@ -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 < bar & baz > 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 diff --git a/test/models/changeset_comment_test.rb b/test/models/changeset_comment_test.rb index 5f8efdbbd..c13fde8e2 100644 --- a/test/models/changeset_comment_test.rb +++ b/test/models/changeset_comment_test.rb @@ -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 diff --git a/test/models/node_test.rb b/test/models/node_test.rb index 7acc6168f..612bff703 100644 --- a/test/models/node_test.rb +++ b/test/models/node_test.rb @@ -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 index 867fc8c98..000000000 --- a/test/performance/browsing_test.rb +++ /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 diff --git a/vendor/assets/javascripts/html5shiv.js b/vendor/assets/javascripts/html5shiv.js index 94324d7c8..77dace490 100644 --- a/vendor/assets/javascripts/html5shiv.js +++ b/vendor/assets/javascripts/html5shiv.js @@ -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 || {}; @@ -82,7 +82,25 @@ 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. @@ -187,7 +205,7 @@ '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 + '")'; @@ -244,7 +262,7 @@ * @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 @@ -287,7 +305,10 @@ createElement: createElement, //creates a shived documentFragment - createDocumentFragment: createDocumentFragment + createDocumentFragment: createDocumentFragment, + + //extends list of elements + addElements: addElements }; /*--------------------------------------------------------------------------*/ diff --git a/vendor/assets/jquery/jquery.cookie.js b/vendor/assets/jquery/jquery.cookie.js index 64128472e..feb62e925 100644 --- a/vendor/assets/jquery/jquery.cookie.js +++ b/vendor/assets/jquery/jquery.cookie.js @@ -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') { diff --git a/vendor/assets/jquery/jquery.simulate.js b/vendor/assets/jquery/jquery.simulate.js index 1dd96ac3a..4a96cc310 100644 --- a/vendor/assets/jquery/jquery.simulate.js +++ b/vendor/assets/jquery/jquery.simulate.js @@ -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 ); diff --git a/vendor/assets/leaflet/leaflet.osm.js b/vendor/assets/leaflet/leaflet.osm.js index f7bf207d0..cbedd045a 100644 --- a/vendor/assets/leaflet/leaflet.osm.js +++ b/vendor/assets/leaflet/leaflet.osm.js @@ -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: '© OpenStreetMap and contributors, under an open license' + attribution: '© OpenStreetMap 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 Andy Allan" + attribution: '© OpenStreetMap contributors. Tiles courtesy of Andy Allan' } }); L.OSM.TransportMap = L.OSM.TileLayer.extend({ options: { url: 'http://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png', - attribution: "Tiles courtesy of Andy Allan" + attribution: '© OpenStreetMap contributors. Tiles courtesy of Andy Allan' } }); @@ -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 MapQuest " : - "Tiles courtesy of MapQuest " + attribution: '© OpenStreetMap contributors. ' + document.location.protocol === 'https:' ? + 'Tiles courtesy of MapQuest ' : + 'Tiles courtesy of MapQuest ' } }); @@ -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 Humanitarian OpenStreetMap Team" + attribution: '© OpenStreetMap contributors. Tiles courtesy of Humanitarian OpenStreetMap Team' } }); diff --git a/vendor/assets/ohauth/ohauth.js b/vendor/assets/ohauth/ohauth.js index 73eb8b9ee..e30e575e3 100644 --- a/vendor/assets/ohauth/ohauth.js +++ b/vendor/assets/ohauth/ohauth.js @@ -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 diff --git a/vendor/assets/potlatch2/potlatch2.swf b/vendor/assets/potlatch2/potlatch2.swf index 818b83362..65148bed9 100644 Binary files a/vendor/assets/potlatch2/potlatch2.swf and b/vendor/assets/potlatch2/potlatch2.swf differ diff --git a/vendor/assets/potlatch2/potlatch2/assets.zip b/vendor/assets/potlatch2/potlatch2/assets.zip index 7b29c16ca..c0acf45cc 100644 Binary files a/vendor/assets/potlatch2/potlatch2/assets.zip and b/vendor/assets/potlatch2/potlatch2/assets.zip differ diff --git a/vendor/assets/potlatch2/potlatch2/locales/zh_TW.swf b/vendor/assets/potlatch2/potlatch2/locales/zh_TW.swf index 661b5ee16..433599870 100644 Binary files a/vendor/assets/potlatch2/potlatch2/locales/zh_TW.swf and b/vendor/assets/potlatch2/potlatch2/locales/zh_TW.swf differ