]> git.openstreetmap.org Git - rails.git/commitdiff
Merge branch 'master' into openid
authorTom Hughes <tom@compton.nu>
Fri, 24 Sep 2010 08:35:36 +0000 (09:35 +0100)
committerTom Hughes <tom@compton.nu>
Fri, 24 Sep 2010 08:35:36 +0000 (09:35 +0100)
115 files changed:
app/controllers/changeset_tag_controller.rb [deleted file]
app/controllers/oauth_controller.rb
app/controllers/old_relation_tag_controller.rb [deleted file]
app/controllers/old_way_tag_controller.rb [deleted file]
app/controllers/relation_tag_controller.rb [deleted file]
app/controllers/user_controller.rb
app/controllers/way_tag_controller.rb [deleted file]
app/models/client_application.rb
app/models/request_token.rb
app/views/browse/start.rjs
app/views/export/start.rjs
app/views/layouts/site.html.erb
app/views/notifier/signup_confirm.text.html.erb
app/views/notifier/signup_confirm.text.plain.erb
app/views/oauth/authorize_success.html.erb
app/views/way_tag/search.html.erb [deleted file]
config/environment.rb
config/example.application.yml
config/locales/af.yml
config/locales/aln.yml
config/locales/ar.yml
config/locales/arz.yml
config/locales/be.yml
config/locales/br.yml
config/locales/cs.yml
config/locales/da.yml
config/locales/de.yml
config/locales/dsb.yml
config/locales/en.yml
config/locales/eo.yml
config/locales/es.yml
config/locales/eu.yml
config/locales/fi.yml
config/locales/fr.yml
config/locales/fur.yml
config/locales/gl.yml
config/locales/hr.yml
config/locales/hsb.yml
config/locales/hu.yml
config/locales/ia.yml
config/locales/is.yml
config/locales/it.yml
config/locales/ja.yml
config/locales/lb.yml [new file with mode: 0644]
config/locales/mk.yml
config/locales/nl.yml
config/locales/no.yml
config/locales/pl.yml
config/locales/pt-BR.yml
config/locales/ru.yml
config/locales/sk.yml
config/locales/sl.yml
config/locales/sr-EC.yml
config/locales/sv.yml
config/locales/uk.yml
config/locales/vi.yml
config/locales/zh-CN.yml
config/locales/zh-TW.yml
config/potlatch/icon_presets.txt
config/potlatch/locales/cs.yml
config/potlatch/locales/hr.yml
config/potlatch/locales/lb.yml
config/potlatch/locales/mk.yml
config/potlatch/locales/pt-BR.yml
config/potlatch/locales/rue.yml [new file with mode: 0644]
config/routes.rb
config/wiki_pages.yml
db/migrate/20100910084426_add_callback_to_oauth_tokens.rb [new file with mode: 0644]
public/openlayers/OpenLayers.js
public/potlatch/potlatch.swf
vendor/plugins/oauth-plugin/.gitignore [deleted file]
vendor/plugins/oauth-plugin/CHANGELOG [deleted file]
vendor/plugins/oauth-plugin/MIT-LICENSE [deleted file]
vendor/plugins/oauth-plugin/README.rdoc [deleted file]
vendor/plugins/oauth-plugin/Rakefile [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/USAGE [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/oauth_provider_generator.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/_form.html.erb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/access_token.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/authorize.html.erb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/authorize_failure.html.erb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/authorize_success.html.erb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/client_application.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/client_application_spec.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/client_application_test.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/client_applications.yml [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller_spec.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller_test.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_helper.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller_spec.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller_spec_helper.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller_test.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller_test_helper.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/edit.html.erb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/helper.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/index.html.erb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/migration.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/new.html.erb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_nonce.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_nonce_spec.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_nonce_test.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_nonces.yml [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_token.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_token_spec.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_token_test.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_tokens.yml [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/request_token.rb [deleted file]
vendor/plugins/oauth-plugin/generators/oauth_provider/templates/show.html.erb [deleted file]
vendor/plugins/oauth-plugin/init.rb [deleted file]
vendor/plugins/oauth-plugin/install.rb [deleted file]
vendor/plugins/oauth-plugin/lib/oauth/rails/controller_methods.rb [deleted file]
vendor/plugins/oauth-plugin/tasks/oauth_tasks.rake [deleted file]
vendor/plugins/oauth-plugin/uninstall.rb [deleted file]

diff --git a/app/controllers/changeset_tag_controller.rb b/app/controllers/changeset_tag_controller.rb
deleted file mode 100644 (file)
index 374e21c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-class ChangesetTagController < ApplicationController
-  layout 'site'
-
-  def search
-    @tags = ChangesetTag.find(:all, :limit => 11, :conditions => ["match(v) against (?)", params[:query][:query].to_s] )
-  end
-
-end
index 4b539b1fdc879207eca038bdfe59e31be2b429ff..f70a644cdb4146f69cdb98fa2ed46e80ad620b8f 100644 (file)
@@ -52,9 +52,17 @@ class OauthController < ApplicationController
 
         if any_auth
           @token.authorize!(@user)
-          redirect_url = params[:oauth_callback] || @token.client_application.callback_url
-          if redirect_url
-            redirect_to "#{redirect_url}?oauth_token=#{@token.token}"
+          if @token.oauth10?
+            redirect_url = params[:oauth_callback] || @token.client_application.callback_url
+          else
+            redirect_url = @token.oob? ? @token.client_application.callback_url : @token.callback_url
+          end
+          if redirect_url and not redirect_url.empty?
+            if @token.oauth10?
+              redirect_to "#{redirect_url}?oauth_token=#{@token.token}"
+            else
+              redirect_to "#{redirect_url}?oauth_token=#{@token.token}&oauth_verifier=#{@token.verifier}"
+            end
           else
             render :action => "authorize_success"
           end
diff --git a/app/controllers/old_relation_tag_controller.rb b/app/controllers/old_relation_tag_controller.rb
deleted file mode 100644 (file)
index fba59a0..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-class OldRelationTagController < ApplicationController
-
-end
diff --git a/app/controllers/old_way_tag_controller.rb b/app/controllers/old_way_tag_controller.rb
deleted file mode 100644 (file)
index 02c1e2e..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-class OldWayTagController < ApplicationController
-end
diff --git a/app/controllers/relation_tag_controller.rb b/app/controllers/relation_tag_controller.rb
deleted file mode 100644 (file)
index c58364c..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-class RelationTagController < ApplicationController
-  layout 'site'
-
-  def search
-    @tags = RelationTag.find(:all, :limit => 11, :conditions => ["match(v) against (?)", params[:query][:query].to_s] )
-  end
-
-
-end
index cc4ae4cd82e455479c5697bffa30862e39bbddbe..17f52fd40e9362de99318c9343cdaf994c432ff4 100644 (file)
@@ -231,7 +231,7 @@ class UserController < ApplicationController
       else
         password_authentication(params[:username], params[:password])
       end
-    else
+    elsif flash[:notice].nil?
       flash.now[:notice] =  t 'user.login.notice'
     end
   end
diff --git a/app/controllers/way_tag_controller.rb b/app/controllers/way_tag_controller.rb
deleted file mode 100644 (file)
index 02e7a68..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-class WayTagController < ApplicationController
-  layout 'site'
-
-  def search
-    @tags = WayTag.find(:all, :limit => 11, :conditions => ["match(v) against (?)", params[:query][:query].to_s] )
-  end
-
-
-end
index d3799abe00a483db593d68ef2e6bc4e8d07c4de0..9474a01370ea692bf14e22c5585c4ddb3a34c0e7 100644 (file)
@@ -6,6 +6,21 @@ class ClientApplication < ActiveRecord::Base
   validates_uniqueness_of :key
   before_validation_on_create :generate_keys
   
+  validates_format_of :url, :with => /\Ahttp(s?):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/i
+  validates_format_of :support_url, :with => /\Ahttp(s?):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/i, :allow_blank=>true
+  validates_format_of :callback_url, :with => /\Ahttp(s?):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/i, :allow_blank=>true
+
+  attr_accessor :token_callback_url
+  
+  def self.find_token(token_key)
+    token = OauthToken.find_by_token(token_key, :include => :client_application)
+    if token && token.authorized?
+      token
+    else
+      nil
+    end
+  end
+
   def self.verify_request(request, options = {}, &block)
     begin
       signature = OAuth::Signature.build(request, options, &block)
@@ -35,7 +50,7 @@ class ClientApplication < ActiveRecord::Base
   end
     
   def create_request_token
-    RequestToken.create :client_application => self
+    RequestToken.create :client_application => self, :callback_url => self.token_callback_url
   end
 
   # the permissions that this client would like from the user
@@ -52,8 +67,8 @@ protected
                  :allow_write_api, :allow_read_gpx, :allow_write_gpx ]
 
   def generate_keys
-    @oauth_client = oauth_server.generate_consumer_credentials
-    self.key = @oauth_client.key
-    self.secret = @oauth_client.secret
+    oauth_client = oauth_server.generate_consumer_credentials
+    self.key = oauth_client.key
+    self.secret = oauth_client.secret
   end
 end
index d66fe6ce13e93f74370fe6efe35d9c2c54e9809a..0044dde261e70debd643f09996d1bafe13c61995 100644 (file)
@@ -1,17 +1,23 @@
 class RequestToken < OauthToken
+
+  attr_accessor :provided_oauth_verifier
+
   def authorize!(user)
     return false if authorized?
     self.user = user
     self.authorized_at = Time.now
+    self.verifier = OAuth::Helper.generate_key(16)[0,20] unless oauth10?
     self.save
   end
-  
+
   def exchange!
     return false unless authorized?
+    return false unless oauth10? || verifier == provided_oauth_verifier
+
     RequestToken.transaction do
       params = { :user => user, :client_application => client_application }
       # copy the permissions from the authorised request token to the access token
-      client_application.permissions.each { |p| 
+      client_application.permissions.each { |p|
         params[p] = read_attribute(p)
       }
 
@@ -20,4 +26,21 @@ class RequestToken < OauthToken
       access_token
     end
   end
+
+  def to_query
+    if oauth10?
+      super
+    else
+      "#{super}&oauth_callback_confirmed=true"
+    end
+  end
+
+  def oob?
+    self.callback_url=='oob'
+  end
+
+  def oauth10?
+    (defined? OAUTH_10_SUPPORT) && OAUTH_10_SUPPORT && self.callback_url.blank?
+  end
+
 end
index 1b68043c9065703e085671a88ae8eed3f4565755..d4ef1f530ca85b1aa170d6393edbccec7a016fd8 100644 (file)
@@ -25,10 +25,10 @@ page << <<EOJ
         sides: 4,
         snapAngle: 90,
         irregular: true,
-        persist: true,
-        callbacks: { done: endDrag }
+        persist: true
       }
     });
+    browseBoxControl.handler.callbacks.done = endDrag;
     map.addControl(browseBoxControl);
 
     map.events.register("moveend", map, showData);
index b9e2da7f674edc3ec0d3a8dfeff14a91134884f6..abf9e671ddb1dd0b161429fc6cb5edaf2df4ca79 100644 (file)
@@ -17,10 +17,10 @@ page << <<EOJ
         sides: 4,
         snapAngle: 90,
         irregular: true,
-        persist: true,
-        callbacks: { done: endDrag }
+        persist: true
       }
     });
+    box.handler.callbacks.done = endDrag;
     map.addControl(box);
 
     map.events.register("moveend", map, mapMoved);
@@ -228,12 +228,12 @@ page << <<EOJ
   function htmlUrlChanged() {
     var bounds = new OpenLayers.Bounds($("minlon").value, $("minlat").value, $("maxlon").value, $("maxlat").value);
     var layerName = map.baseLayer.keyid;
-    var url = "http://#{SERVER_URL}/export/embed.html?bbox=" + bounds.toBBOX() + "&layer=" + layerName;
+    var url = "http://#{SERVER_URL}/export/embed.html?bbox=" + bounds.toBBOX() + "&amp;layer=" + layerName;
     var markerUrl = "";
 
     if ($("marker_lat").value && $("marker_lon").value) {
-      markerUrl = "&mlat=" + $("marker_lat").value + "&mlon=" + $("marker_lon").value;
-      url += "&marker=" + $("marker_lat").value + "," + $("marker_lon").value;
+      markerUrl = "&amp;mlat=" + $("marker_lat").value + "&amp;mlon=" + $("marker_lon").value;
+      url += "&amp;marker=" + $("marker_lat").value + "," + $("marker_lon").value;
     } 
     
     var html = '<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="'+url+'" style="border: 1px solid black"></iframe>';
@@ -248,7 +248,7 @@ page << <<EOJ
     
     var layers = getMapLayers();
 
-    html += '<br /><small><a href="http://#{SERVER_URL}/?lat='+center.lat+'&lon='+center.lon+'&zoom='+zoom+'&layers='+layers+markerUrl+'">'+"#{html_escape_unicode(I18n.t('export.start_rjs.view_larger_map'))}"+'</a></small>';
+    html += '<br /><small><a href="http://#{SERVER_URL}/?lat='+center.lat+'&amp;lon='+center.lon+'&amp;zoom='+zoom+'&amp;layers='+layers+markerUrl+'">'+"#{html_escape_unicode(I18n.t('export.start_rjs.view_larger_map'))}"+'</a></small>';
 
     $("export_html_text").value = html;
 
index a026c059479081cb7712eb8cf20cb8ed799a3719..b514fef990943e7ab5dd22e24820a5ba0d6583b8 100644 (file)
       <% end %>
 
       <div id="left_menu" class="left_menu">
-        <a href="<%= t 'layouts.help_wiki_url' %>" title="<%= t 'layouts.help_wiki_tooltip' %>"><%= t 'layouts.help_wiki' %></a><br />
+        <%= t 'layouts.help_and_wiki',
+            :help => link_to(t('layouts.help'), t('layouts.help_url'), :title => t('layouts.help_title')),
+            :wiki => link_to(t('layouts.wiki'), t('layouts.wiki_url'), :title => t('layouts.wiki_title'))
+        %><br />
         <%= link_to t('layouts.copyright'), {:controller => 'site', :action => 'copyright'} %><br />
         <a href="http://blogs.openstreetmap.org/" title="<%= t 'layouts.news_blog_tooltip' %>"><%= t 'layouts.news_blog' %></a><br />
         <a href="<%= t 'layouts.shop_url' %>" title="<%= t 'layouts.shop_tooltip' %>"><%= t 'layouts.shop' %></a><br />
index eaeb7dce83aa9b9b54b3a475fd4f11b79fa9f024..c0883382e7a76fd13b5ad89769c493b6a114759e 100644 (file)
@@ -11,6 +11,8 @@
 
 <p><%= t'notifier.signup_confirm_html.get_reading' %></p>
 
+<p><%= t'notifier.signup_confirm_html.ask_questions' %></p>
+
 <p><%= t'notifier.signup_confirm_html.wiki_signup' %></p>
 
 <p><%= t'notifier.signup_confirm_html.user_wiki_page' %></p> 
index a3c4ee92a168946af526b16140d53bce51d2a1b5..a53f27dda99e8c0ba5dffaee7b3de640e7eb92fb 100644 (file)
 
        http://www.opengeodata.org/
 
+<%= t'notifier.signup_confirm_plain.ask_questions' %>
+
+       http://help.openstreetmap.org/
+
 <%= t'notifier.signup_confirm_plain.wiki_signup' %>
 
        <%= t'notifier.signup_confirm_plain.wiki_signup_url' %>
index effe24a796716c71469a56802de7b2b60752099a..a25b98ec782fda42c7f9f3ee0ecd11b656c7c670 100644 (file)
@@ -1 +1,5 @@
-<h1>You have allowed this request</h1>
\ No newline at end of file
+<h1>You have allowed this request</h1>
+
+<% if @token.oob? %>
+<p>The verification code is <%= @token.verifier %></p>
+<% end %>
diff --git a/app/views/way_tag/search.html.erb b/app/views/way_tag/search.html.erb
deleted file mode 100644 (file)
index 820bad7..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<h2>Search results</h5>
-fixme postcodes and geonames
-
-<% form_tag :controller => 'way_tag', :action => 'search' do %>
-<%= text_field 'query', 'query'%>
-<%= submit_tag 'Search' %>
-<% end %>
-
-
-<table border="0"> 
-  <% @tags.each do |tag| %>
-  <tr>
-    <td>
-      <%= link_to tag.v, :controller => 'site', :action => 'goto_way', :id => tag.id %> (k:<%= tag.k %>)<br>
-      <font size="-2" color="green">
-        Way <%= tag.id %> (<%= tag.way.timestamp %>)
-        <%= link_to 'Map', :controller => 'site', :action => 'goto_way', :id => tag.id %> - 
-        <%= link_to 'API', :controller => 'way', :action => 'rest', :id => tag.id %>
-        <br /><br/ >
-      </font>
-    </td>
-  </tr>
-  <% end %>
-</table>
index 00067a2638ff279396b286fa326a0fc371d31dfa..7e550ca9f42a07f7ccfa62475053ae1d70dbc9df 100644 (file)
@@ -20,7 +20,8 @@ Rails::Initializer.run do |config|
   end
   config.gem 'libxml-ruby', :version => '>= 1.1.1', :lib => 'libxml'
   config.gem 'rmagick', :lib => 'RMagick'
-  config.gem 'oauth', :version => '>= 0.3.6'
+  config.gem 'oauth', :version => '>= 0.4.3'
+  config.gem 'oauth-plugin', :version => '>= 0.3.14'
   config.gem 'httpclient'
   config.gem 'SystemTimer', :version => '>= 1.1.3', :lib => 'system_timer'
   config.gem 'sanitize'
index 25df99d265ad5b56e063f7ab51236d3651efd947..9b00beb58de2fccc8ef964fa25d1a9ead65dbe7b 100644 (file)
@@ -53,6 +53,8 @@ standard_settings: &standard_settings
   gpx_image_dir: "/home/osm/images"
   # Location of data for file columns
   #file_column_root: ""
+  # Enable legacy OAuth 1.0 support
+  oauth_10_support: true
 
 development:
   <<: *standard_settings
index 346cc9fc4514fb91aeb9b292ce0ae55ac7757be7..0bd7d1fd1be45e8455bb333fa2a907348637fdc1 100644 (file)
@@ -758,8 +758,6 @@ af:
     export_tooltip: Eksporteer kaartdata
     gps_traces: GPS-spore
     gps_traces_tooltip: Beheer GPS-spore
-    help_wiki: Help &amp; Wiki
-    help_wiki_tooltip: Help en wiki vir die projek
     history: Geskiedenis
     home: tuis
     home_tooltip: Gaan na tuisligging
index ac25e6ef866e2e8117668debe28fe10c5b371544..39fb1b5eec9fe136fa90e159b49476635423932e 100644 (file)
@@ -883,8 +883,6 @@ aln:
     export_tooltip: Harta dhënat Eksporti
     gps_traces: GPS Gjurmët
     gps_traces_tooltip: Manage gjurmë GPS
-    help_wiki: Ndihmë & Wiki
-    help_wiki_tooltip: Ndihmë & Wiki faqe interneti për projektin
     history: Historia
     home: shtëpi
     home_tooltip: Shkoni në shtëpi vend
index 0068c3ac5409f60e8cd76c61d9229a8ddebfb800..2240f320edd7abd9d96b65b4002f76337a196b72 100644 (file)
@@ -890,8 +890,6 @@ ar:
     export_tooltip: صدّر بيانات الخريطة
     gps_traces: آثار جي بي أس
     gps_traces_tooltip: عالج آثار جي بي إس
-    help_wiki: المساعدة والويكي
-    help_wiki_tooltip: المساعدة وموقع الويكي للمشروع
     history: تاريخ
     home: الصفحة الرئيسية
     home_tooltip: اذهب إلى الصفحة الرئيسية
index 3d40146b40f36e5f326db8929e8fc8f7bc5e3d58..0f7f853ecac9e703f98f44bc75a10357562f741c 100644 (file)
@@ -822,8 +822,6 @@ arz:
     export_tooltip: صدّر بيانات الخريطة
     gps_traces: آثار جى بى أس
     gps_traces_tooltip: عالج الآثار
-    help_wiki: المساعده والويكي
-    help_wiki_tooltip: المساعده وموقع الويكى للمشروع
     history: تاريخ
     home: الصفحه الرئيسية
     home_tooltip: اذهب إلى الصفحه الرئيسية
index 6a0b51f35a998fea8a375d552dd34a891e3bf217..87683bf5589edaa925d88162b5c338ff6acc66dd 100644 (file)
@@ -286,9 +286,6 @@ be:
     export_tooltip: Экспартаваць данныя карты
     gps_traces: GPS Трэкі
     gps_traces_tooltip: Працаваць з трэкамі
-    help_wiki: Дапамога і Wiki
-    help_wiki_tooltip: Даведка і сайт Вікі
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/RU:Main_Page?uselang=be
     history: Гісторыя
     home: дамоў
     home_tooltip: Паказаць маю хату
index cd0ee0ffb600bbc0c5e5e483396fdf14013d10dc..7d9784f7151871c5edaef3b860afdfb0d50a20f0 100644 (file)
@@ -879,8 +879,6 @@ br:
     export_tooltip: Ezporzhiañ roadennoù ar gartenn
     gps_traces: Roudoù GPS
     gps_traces_tooltip: Merañ ar roudoù GPS
-    help_wiki: Skoazell &amp; Wiki
-    help_wiki_tooltip: Skoazell &amp; lec'hienn Wiki evit ar raktres
     history: Istor
     home: degemer
     home_tooltip: Mont da lec'h ar gêr
index 2b9ca86caaacbcfff53434f12197ac540cf044e2..1564cb9b2bf992afeec470609e7539d8ff81040b 100644 (file)
@@ -287,11 +287,19 @@ cs:
       subject: "Předmět:"
       use_map_link: použít mapu
     feed: 
+      all: 
+        description: Nedávné záznamy v deníčcích uživatelů OpenStreetMap
+        title: Deníčkové záznamy OpenStreetMap
       language: 
         description: Aktuální záznamy v deníčcích uživatelů OpenStreetMap v jazyce {{language_name}}
         title: Deníčkové záznamy OpenStreetMap v jazyce {{language_name}}
+      user: 
+        description: Nedávné záznamy v OpenStreetMap deníčku uživatele {{user}}
+        title: Záznamy v OpenStreetMap deníčku uživatele {{user}}
     list: 
       in_language_title: Deníčkové záznamy v jazyce {{language}}
+      new: Nový záznam do deníčku
+      new_title: Sepsat nový záznam do vašeho uživatelského deníčku
       no_entries: Žádné záznamy v deníčku
       recent_entries: "Aktuální deníčkové záznamy:"
       title: Deníčky uživatelů
@@ -390,21 +398,41 @@ cs:
         amenity: 
           airport: Letiště
           bank: Banka
+          bench: Lavička
           cafe: Kavárna
           cinema: Kino
+          courthouse: Soud
           crematorium: Krematorium
           embassy: Velvyslanectví
+          ferry_terminal: Přístaviště přívozu
+          fire_station: Hasičská stanice
+          fountain: Fontána
+          fuel: Čerpací stanice
+          grave_yard: Hřbitov
+          hospital: Nemocnice
+          hunting_stand: Posed
           kindergarten: Mateřská škola
+          library: Knihovna
+          mountain_rescue: Horská služba
           park: Park
           parking: Parkoviště
+          place_of_worship: Náboženský objekt
+          post_box: Poštovní schránka
           post_office: Pošta
+          prison: Věznice
           retirement_home: Domov důchodců
+          school: Škola
           telephone: Telefonní automat
+          theatre: Divadlo
           toilets: Toalety
+          townhall: Radnice
+        boundary: 
+          administrative: Administrativní hranice
         building: 
           city_hall: Radnice
           entrance: Vstup do objektu
           hospital: Nemocniční budova
+          public: Veřejná budova
           stadium: Stadion
           tower: Věž
           train_station: Železniční stanice
@@ -413,13 +441,16 @@ cs:
           bus_stop: Autobusová zastávka
           construction: Silnice ve výstavbě
           gate: Brána
+          living_street: Obytná zóna
           motorway: Dálnice
           residential: Ulice
           secondary: Silnice II. třídy
+          secondary_link: Silnice II. třídy
           steps: Schody
           unsurfaced: Nezpevněná cesta
         historic: 
           battlefield: Bojiště
+          building: Budova
           memorial: Památník
           museum: Muzeum
           wreck: Vrak
@@ -429,6 +460,7 @@ cs:
           construction: Staveniště
           landfill: Skládka
           military: Vojenský prostor
+          piste: Sjezdovka
           vineyard: Vinice
         leisure: 
           garden: Zahrada
@@ -442,12 +474,19 @@ cs:
           swimming_pool: Bazén
         natural: 
           beach: Pláž
+          cliff: Útes
+          coastline: Pobřežní čára
+          fjord: Fjord
+          geyser: Gejzír
           glacier: Ledovec
           hill: Kopec
           island: Ostrov
+          marsh: Mokřina
+          peak: Vrchol
           river: Řeka
           tree: Strom
           valley: Údolí
+          volcano: Sopka
         place: 
           airport: Letiště
           city: Velkoměsto
@@ -484,6 +523,7 @@ cs:
           hairdresser: Kadeřnictví
           jewelry: Klenotnictví
           optician: Oční optika
+          travel_agency: Cestovní kancelář
         tourism: 
           alpine_hut: Vysokohorská chata
           attraction: Turistická atrakce
@@ -520,9 +560,10 @@ cs:
     edit: Upravit
     export: Export
     export_tooltip: Exportovat mapová data
-    help_wiki: Nápověda &amp; wiki
-    help_wiki_tooltip: Server s nápovědou a wiki k tomuto projektu
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/Cs:Main_Page?uselang=cs
+    gps_traces: GPS stopy
+    help: Nápověda
+    help_and_wiki: "{{help}} & {{wiki}}"
+    help_title: Stránky s nápovědou k tomuto projektu
     history: Historie
     home: domů
     home_tooltip: Přejít na polohu domova
@@ -564,6 +605,8 @@ cs:
     view_tooltip: Zobrazit mapu
     welcome_user: Vítejte, {{user_link}}
     welcome_user_link_tooltip: Vaše uživatelská stránka
+    wiki: wiki
+    wiki_title: Wiki k tomuto projektu
   license_page: 
     native: 
       title: O této stránce
@@ -647,6 +690,18 @@ cs:
     signup_confirm_plain: 
       the_wiki_url: http://wiki.openstreetmap.org/wiki/Cs:Beginners_Guide?uselang=cs
       wiki_signup_url: http://wiki.openstreetmap.org/index.php?title=Special:UserLogin&type=signup&returnto=Cs:Main_Page&uselang=cs
+  oauth: 
+    oauthorize: 
+      allow_read_gpx: číst vaše soukromé GPS stopy.
+      allow_read_prefs: číst vaše uživatelské nastavení.
+      allow_to: "Umožnit klientské aplikaci:"
+      allow_write_api: upravovat mapu.
+      allow_write_diary: vytvářet deníčkové záznamy, komentovat a navazovat přátelství.
+      allow_write_gpx: nahrávat GPS stopy.
+      allow_write_prefs: měnit vaše uživatelské nastavení.
+      request_access: Aplikace {{app_name}} žádá o přístup k vašemu účtu. Vyberte si, zda si přejete, aby aplikace měla následující oprávnění. Můžete jich zvolit libovolný počet.
+    revoke: 
+      flash: Přístup pro aplikaci {{application}} byl odvolán.
   oauth_clients: 
     index: 
       my_apps: Mé klientské aplikace
@@ -680,6 +735,7 @@ cs:
           bridleway: Koňská stezka
           brownfield: Zbořeniště
           building: Významná budova
+          byway: Cesta
           cable: 
             - Lanovka
             - sedačková lanovka
@@ -733,6 +789,7 @@ cs:
           tunnel: Čárkované obrysy = tunel
           unclassified: Silnice
           unsurfaced: Nezpevněná cesta
+          wood: Les
         heading: Legenda pro z{{zoom_level}}
     search: 
       search: Hledat
@@ -749,73 +806,103 @@ cs:
   trace: 
     create: 
       trace_uploaded: Váš GPX soubor byl uložen a čeká na zařazení do databáze. Obvykle to netrvá víc jak půl hodiny. Až bude zařazen, budete informováni emailem.
-      upload_trace: Nahrát GPS záznam
+      upload_trace: Nahrát GPS stopu
+    delete: 
+      scheduled_for_deletion: Stopa označena ke smazání
     edit: 
       description: "Popis:"
       download: stáhnout
       edit: upravit
       filename: "Název souboru:"
-      heading: Úprava GPS záznamu {{name}}
+      heading: Úprava stopy {{name}}
       map: mapa
       owner: "Vlastník:"
       points: "Body:"
       save_button: Uložit změny
       start_coord: "Souřadnice začátku:"
-      tags: "Tagy:"
+      tags: "Štítky:"
       tags_help: oddělené čárkou
+      title: Úprava stopy {{name}}
       uploaded_at: "Nahráno v:"
       visibility: "Viditelnost:"
       visibility_help: co tohle znamená?
     list: 
-      your_traces: Vaše GPS záznamy
+      public_traces: Veřejné GPS stopy
+      public_traces_from: Veřejné GPS stopy uživatele {{user}}
+      tagged_with: " oštítkované jako {{tags}}"
+      your_traces: Vaše GPS stopy
+    make_public: 
+      made_public: Stopa zveřejněna
     no_such_user: 
       body: Lituji, ale uživatel {{user}} neexistuje. Zkontrolujte překlepy nebo jste možná klikli na chybný odkaz.
       heading: Uživatel {{user}} neexistuje
       title: Uživatel nenalezen
+    offline: 
+      heading: GPX úložiště offline
+      message: Úložiště GPX souborů a systém pro nahrávání jsou momentálně mimo provoz.
+    offline_warning: 
+      message: Systém pro načítání GPX souborů je momentálně mimo provoz.
     trace: 
       ago: před {{time_in_words_ago}}
       by: od
       count_points: "{{count}} bodů"
       edit: upravit
       edit_map: Upravit mapu
+      identifiable: IDENTIFIKOVATELNÁ
       in: v
       map: mapa
       more: více
+      pending: ZPRACOVÁVÁ SE
+      private: SOUKROMÁ
+      public: VEŘEJNÁ
+      trace_details: Zobrazit podrobnosti stopy
+      trackable: STOPOVATELNÁ
       view_map: Zobrazit mapu
     trace_form: 
       description: Popis
       help: Nápověda
-      tags: Tagy
-      tags_help: oddělěné čárkou
+      tags: Štítky
+      tags_help: oddělené čárkou
       upload_button: Nahrát
       upload_gpx: Nahrát GPX soubor
       visibility: Viditelnost
       visibility_help: co tohle znamená?
     trace_header: 
-      see_all_traces: Zobrazit všechny GPS záznamy
-      see_your_traces: Zobrazit všechny vaše GPS záznamy
+      see_all_traces: Zobrazit všechny stopy
+      see_your_traces: Zobrazit všechny vaše stopy
+      traces_waiting: Na zpracování čeká {{count}} vašich stop. Zvažte, zda by nebylo před nahráním dalších lepší počkat, dokud nebudou zpracovány, abyste neblokovali frontu dalším uživatelům.
+      upload_trace: Nahrát stopu
+      your_traces: Zobrazit pouze vaše stopy
     trace_optionals: 
-      tags: Tagy
+      tags: Štítky
     trace_paging_nav: 
       next: Následující &raquo;
       previous: "&laquo; Předchozí"
       showing_page: Zobrazuji stranu {{page}}
     view: 
+      delete_track: Smazat tuto stopu
       description: "Popis:"
       download: stáhnout
       edit: upravit
+      edit_track: Upravit tuto stopu
       filename: "Název souboru:"
+      heading: Zobrazení stopy {{name}}
       map: mapa
+      none: Žádné
       owner: "Vlastník:"
-      tags: "Tagy:"
-      trace_not_found: GPS záznam nenalezen!
+      pending: ZPRACOVÁVÁ SE
+      points: "Bodů:"
+      start_coordinates: "Souřadnice začátku:"
+      tags: "Štítky:"
+      title: Zobrazení stopy {{name}}
+      trace_not_found: Stopa nenalezena!
       uploaded: "Nahráno v:"
       visibility: "Viditelnost:"
     visibility: 
-      identifiable: Identifikovatelný (zobrazuje se v seznamu a jako identifikovatelné, uspořádané body s časovou značkou)
-      private: Soukromý (dostupná jedině jako anonymní, neuspořádané body)
-      public: VeÅ\99ejný (zobrazuje se v seznamu i jako anonymní, neuspořádané body)
-      trackable: Trackable (dostupný jedině jako anonymní, uspořádané body s časovými značkami)
+      identifiable: Identifikovatelná (zobrazuje se v seznamu a jako identifikovatelné uspořádané body s časovou značkou)
+      private: Soukromá (veÅ\99ejnÄ\9b dostupná jedině jako anonymní, neuspořádané body)
+      public: VeÅ\99ejná (zobrazuje se v seznamu i jako anonymní, neuspořádané body)
+      trackable: Stopovatelná (veřejně dostupná jedině jako anonymní, uspořádané body s časovými značkami)
   user: 
     account: 
       current email address: "Stávající e-mailová adresa:"
@@ -857,6 +944,9 @@ cs:
       success: Vaše e-mailová adresa byla potvrzena, děkujeme za registraci!
     filter: 
       not_an_administrator: K provedení této akce musíte být správce.
+    list: 
+      heading: Uživatelé
+      title: Uživatelé
     login: 
       account not active: Je mi líto, ale váš uživatelský účet dosud nebyl aktivován.<br />Svůj účet si můžete aktivovat kliknutím na odkaz v potvrzovacím e-mailu.
       account suspended: Je nám líto, ale váš účet byl pozastaven kvůli podezřelé aktivitě.<br />Pokud to chcete řešit, kontaktujte {{webmaster}}.
@@ -957,7 +1047,7 @@ cs:
       remove as friend: odstranit jako přítele
       send message: poslat zprávu
       settings_link_text: nastavení
-      traces: záznamy
+      traces: stopy
       user location: Pozice uživatele
       your friends: Vaši přátelé
   user_block: 
index d9e5d87b4d22ddf8c02d071aa1895572a1ef86b4..30c3f04b90291d410c1fa4ebed38fd4777540af2 100644 (file)
@@ -343,9 +343,6 @@ da:
     export_tooltip: Eksporter kortdata
     gps_traces: GPS-spor
     gps_traces_tooltip: Håndter GPS-spor
-    help_wiki: Hjælp &amp; Wiki
-    help_wiki_tooltip: Hjælp- og Wiki-side for projektet
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/Da:Main_Page?uselang=da
     history: Historik
     home: hjem
     home_tooltip: Gå til hjemmeposition
index 00168b96187b0018bb27bac290d8111720aaf250..06d105e2dd7469baa55c3d2f3908e6453fa0da48 100644 (file)
@@ -897,9 +897,9 @@ de:
     export_tooltip: Kartendaten exportieren
     gps_traces: GPS-Tracks
     gps_traces_tooltip: GPS-Tracks verwalten
-    help_wiki: Hilfe + Wiki
-    help_wiki_tooltip: Hilfe + Wiki des Projekts
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/Hauptseite?uselang=de
+    help: Hilfe
+    help_and_wiki: "{{help}} + {{wiki}}"
+    help_title: Hilfesite des Projekts
     history: Chronik
     home: Standort
     home_tooltip: Eigener Standort
@@ -938,6 +938,8 @@ de:
     view_tooltip: Karte anzeigen
     welcome_user: Willkommen, {{user_link}}
     welcome_user_link_tooltip: Eigene Benutzerseite
+    wiki: Wiki
+    wiki_title: Wiki des Projekts
   license_page: 
     foreign: 
       english_link: dem englischsprachigen Original
@@ -1070,6 +1072,7 @@ de:
     signup_confirm: 
       subject: "[OpenStreetMap] Deine E-Mail-Adresse bestätigen"
     signup_confirm_html: 
+      ask_questions: Du kannst jegliche Fragen zu OpenStreetMap auf unserer Website mit <a href="http://help.openstreetmap.org/">Fragen und Antworten</a> stellen.
       click_the_link: Wenn du das bist, Herzlich Willkommen! Bitte klicke auf den folgenden Link unter dieser Zeile um dein Benutzerkonto zu bestätigen. Lies danach weiter, denn es folgen mehr Informationen über OSM.
       current_user: Ebenso ist <a href="http://wiki.openstreetmap.org/wiki/Category:Users_by_geographical_region">eine Liste mit allen Benutzern in einer Kategorie</a>, die anzeigt wo diese auf der Welt sind, verfügbar.
       get_reading: Weitere Informationen über OpenStreetMap findest du in <a href="http://wiki.openstreetmap.org/wiki/DE:Beginners_Guide">unserem Wiki</a>, informiere dich über die neusten Nachrichten über das <a href="http://blog.openstreetmap.org/">OpenStreetMap-Blog</a> oder <a href="http://twitter.com/openstreetmap">Twitter</a>, oder besuche das <a href="http://www.opengeodata.org/">OpenGeoData-Blog</a> von OpenStreetMap-Gründer Steve Coast für die gekürzte Geschichte des Projektes, dort werden auch <a href="http://www.opengeodata.org/?cat=13">Podcasts zum Hören</a> angeboten.
@@ -1082,6 +1085,7 @@ de:
       video_to_openstreetmap: Einführungsvideo zu OpenStreetMap
       wiki_signup: Im <a href="http://wiki.openstreetmap.org/wiki/Hauptseite">Wiki von OpenStreetMap</a> kannst du dich ebenfalls <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup">registrieren</a>.
     signup_confirm_plain: 
+      ask_questions: "Du kannst jegliche Fragen zu OpenStreetMap auf unserer Website mit Fragen und Antworten stellen:"
       blog_and_twitter: "Immer auf dem neuesten Stand dank dem OpenStreetMap-Blog oder Twitter:"
       click_the_link_1: Wenn du das bist, Herzlich Willkommen! Bitte klicke auf den folgenden Link unter dieser Zeile, um dein
       click_the_link_2: Benutzerkonto zu bestätigen. Lies danach weiter, denn es folgen mehr Informationen über OSM.
index b11df78a4b530b1514e05d7c4c83d3ad421e8d7d..a3a07dc683221044817de30a730c307d7c486720 100644 (file)
@@ -890,8 +890,6 @@ dsb:
     export_tooltip: Kórtowe daty eksportěrowaś
     gps_traces: GPS-slědy
     gps_traces_tooltip: GPS-slědy zastojaś
-    help_wiki: Pomoc &amp; wiki
-    help_wiki_tooltip: Pomoc &amp; wikisedło za projekt
     history: Historija
     home: domoj
     home_tooltip: K stojnišćoju
index d027b8a9a6dd481708933e5a21b738c3bc927d8d..8a3a1a2ecce1099b0752d85241cf4fb5408e7c65 100644 (file)
@@ -924,9 +924,13 @@ en:
     osm_read_only: "The OpenStreetMap database is currently in read-only mode while essential database maintenance work is carried out."
     donate: "Support OpenStreetMap by {{link}} to the Hardware Upgrade Fund."
     donate_link_text: donating
-    help_wiki: "Help &amp; Wiki"
-    help_wiki_tooltip: "Help &amp; Wiki site for the project"
-    help_wiki_url: "http://wiki.openstreetmap.org"
+    help_and_wiki: "{{help}} & {{wiki}}"
+    help: Help
+    help_url: http://help.openstreetmap.org/
+    help_title: Help site for the project
+    wiki: Wiki
+    wiki_url: http://wiki.openstreetmap.org/
+    wiki_title: Wiki site for the project
     copyright: "Copyright &amp; License"
     news_blog: "News blog"
     news_blog_tooltip: "News blog about OpenStreetMap, free geographical data, etc."
@@ -1100,6 +1104,7 @@ en:
       the_wiki_url: "http://wiki.openstreetmap.org/wiki/Beginners%27_Guide"
       blog_and_twitter: "Catch up with the latest news via the OpenStreetMap blog or Twitter:"
       opengeodata: "OpenGeoData.org is OpenStreetMap founder Steve Coast's blog, and it has podcasts too:"
+      ask_questions: "You can ask any questions you may have about OpenStreetMap at our question and answer site:"
       wiki_signup: "You may also want to sign up to the OpenStreetMap wiki at:"
       wiki_signup_url: "http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page"
       # next four translations are in pairs : please word wrap appropriately
@@ -1116,6 +1121,7 @@ en:
       more_videos: "There are {{more_videos_link}}."
       more_videos_here: "more videos here"
       get_reading: Get reading about OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_Guide">on the wiki</a>, catch up with the latest news via the <a href="http://blog.openstreetmap.org/">OpenStreetMap blog</a> or <a href="http://twitter.com/openstreetmap">Twitter</a>, or browse through OpenStreetMap founder Steve Coast's <a href="http://www.opengeodata.org/">OpenGeoData blog</a> for the potted history of the project, which has <a href="http://www.opengeodata.org/?cat=13">podcasts to listen to</a> also!
+      ask_questions: You can ask any questions you may have about OpenStreetMap at our <a href="http://help.openstreetmap.org/">question and answer site</a>.
       wiki_signup: 'You may also want to <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">sign up to the OpenStreetMap wiki</a>.'
       user_wiki_page: 'It is recommended that you create a user wiki page, which includes category tags noting where you are, such as <a href="http://wiki.openstreetmap.org/wiki/Category:Users_in_London">[[Category:Users_in_London]]</a>.'
       current_user: 'A list of current users in categories, based on where in the world they are, is available from <a href="http://wiki.openstreetmap.org/wiki/Category:Users_by_geographical_region">Category:Users_by_geographical_region</a>.'
index 142083539874ba3afc2ec454e79d158970e7e26e..69fb0e83734ca054b174aeaab2e79524c018a5b9 100644 (file)
@@ -345,8 +345,6 @@ eo:
     export_tooltip: Eksporti mapajn datumojn
     gps_traces: GPS spuroj
     gps_traces_tooltip: Manipuli spurojn
-    help_wiki: Helpo kaj Vikio
-    help_wiki_tooltip: Helpo kaj Vikio por la projekto
     history: Historio
     home: hejmo
     home_tooltip: Iri al hejmloko
@@ -384,7 +382,7 @@ eo:
     inbox: 
       date: Dato
       my_inbox: Mia leterkesto
-      title: Leterkesto
+      title: Alvenkesto
       you_have: Vi havas {{new_count}} novajn mesaĝojn kaj {{old_count}} malnovajn mesaĝojn
     mark: 
       as_read: Mesaĝo markita kiel legita
@@ -405,7 +403,7 @@ eo:
       title: Tiu uzanto aŭ mesaĝo ne ekzistas
     outbox: 
       date: Dato
-      inbox: leterkesto
+      inbox: Alvenkesto
       my_inbox: Mia {{inbox_link}}
       you_have_sent_messages: 
         one: Vi havas 1 mesaĝon
index 86d2469db0f95b28e64a5e0698b355fe2590e1bd..b86b2893494e47fdef13a43794fd34ca848a1e05 100644 (file)
@@ -883,9 +883,6 @@ es:
     export_tooltip: Exportar datos del mapa
     gps_traces: Trazas GPS
     gps_traces_tooltip: Gestiona las trazas GPS
-    help_wiki: Ayuda y Wiki
-    help_wiki_tooltip: Ayuda y sitio Wiki del proyecto
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/ES:Main_Page?uselang=es
     history: Historial
     home: inicio
     home_tooltip: Ir a la página inicial
index bbe52ad33cfe14fd2b732298ccb23fb0c46c9daf..0b41eba7bae221d54256b57ca57877bb2eb31baa 100644 (file)
@@ -495,7 +495,6 @@ eu:
   layouts: 
     edit: Aldatu
     export: Esportatu
-    help_wiki: Laguntza eta Wiki
     history: Historia
     home: hasiera
     inbox: sarrera-ontzia ({{count}})
index d1053e080f1fbf36dee0f8790dd66689baaf3d4a..84ebaf5f45af4a2313b987125a4636729bb11af7 100644 (file)
@@ -723,8 +723,6 @@ fi:
     export: Vienti
     export_tooltip: Karttatiedon vienti
     gps_traces: GPS-jäljet
-    help_wiki: Wiki ja ohjeet
-    help_wiki_tooltip: Projektin ohje ja wiki
     history: Historia
     home: koti
     home_tooltip: Siirry kotisijaintiin
index 815ca0aaea1c1bfd52735fabec530e4e4cfe3b6a..7ec2b4f66bc27af77fd9f144b3e3e74ea16508f7 100644 (file)
@@ -888,8 +888,6 @@ fr:
     export_tooltip: Exporter les données de la carte
     gps_traces: Traces GPS
     gps_traces_tooltip: Gérer les traces GPS
-    help_wiki: Aide &amp; Wiki
-    help_wiki_tooltip: Aide et site Wiki du projet
     history: Historique
     home: Chez moi
     home_tooltip: Aller à l'emplacement de mon domicile
index aa0a94fce9e5bb4da1dd815b619f5b30cfccd39a..2ff87fcd762d2f6fca245c0be4a013b9452eecf3 100644 (file)
@@ -479,8 +479,6 @@ fur:
     export_tooltip: Espuarte i dâts de mape
     gps_traces: Percors GPS
     gps_traces_tooltip: Gjestìs i percors GPS
-    help_wiki: Jutori &amp; Vichi
-    help_wiki_tooltip: Jutori &amp; Vichi pal progjet
     history: Storic
     home: lûc iniziâl
     home_tooltip: Va al lûc iniziâl
index 69a0a4353d73378bdc0133ed6e100ab8cc949d7f..7724f10795aa284269abf5a739c827bbb562f72a 100644 (file)
@@ -881,8 +881,9 @@ gl:
     export_tooltip: Exportar os datos do mapa
     gps_traces: Pistas GPS
     gps_traces_tooltip: Xestionar as pistas GPS
-    help_wiki: Axuda e wiki
-    help_wiki_tooltip: Axuda e sitio wiki do proxecto
+    help: Axuda
+    help_and_wiki: "{{help}} e {{wiki}}"
+    help_title: Sitio de axuda do proxecto
     history: Historial
     home: inicio
     home_tooltip: Ir ao meu domicilio
@@ -921,6 +922,8 @@ gl:
     view_tooltip: Ver o mapa
     welcome_user: Benvido, {{user_link}}
     welcome_user_link_tooltip: A súa páxina de usuario
+    wiki: wiki
+    wiki_title: Wiki de axuda do proxecto
   license_page: 
     foreign: 
       english_link: a orixinal en inglés
@@ -1053,6 +1056,7 @@ gl:
     signup_confirm: 
       subject: "[OpenStreetMap] Confirme o seu enderezo de correo electrónico"
     signup_confirm_html: 
+      ask_questions: Pode facer calquera pregunta en relación ao OpenStreetMap no noso <a href="http://help.openstreetmap.org/">sitio de preguntas e respostas</a>.
       click_the_link: Se este é vostede, benvido! Prema na ligazón que aparece a continuación para confirmar a súa conta e obter máis información sobre o OpenStreetMap.
       current_user: "A lista de todos os usuarios por categorías, baseada segundo a súa localización no mundo, está dispoñible en: <a href=\"http://wiki.openstreetmap.org/wiki/Category:Users_by_geographical_region\">Category:Users_by_geographical_region</a>."
       get_reading: Infórmese sobre o OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_Guide">no wiki</a>, póñase ao día das últimas novas a través do <a href="http://blog.openstreetmap.org/">blogue</a> ou o <a href="http://twitter.com/openstreetmap">Twitter</a> do OpenStreetMap ou vaia polo <a href="http://www.opengeodata.org/">blogue OpenGeoData</a> de Steve Coast, o fundador do OpenStreetMap, para ler a pequena historia do proxecto e <a href="http://www.opengeodata.org/?cat=13">escoitar os podcasts</a> tamén!
@@ -1065,6 +1069,7 @@ gl:
       video_to_openstreetmap: vídeo introdutorio ao OpenStreetMap
       wiki_signup: Poida que tamén queira <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">crear unha conta no wiki do OpenStreetMap</a>.
     signup_confirm_plain: 
+      ask_questions: "Pode facer calquera pregunta en relación ao OpenStreetMap no noso sitio de preguntas e respostas:"
       blog_and_twitter: "Póñase ao día das últimas novas a través do blogue ou o Twitter do OpenStreetMap:"
       click_the_link_1: Se este é vostede, benvido! Prema na ligazón que aparece a continuación para confirmar a súa
       click_the_link_2: conta e obter máis información sobre o OpenStreetMap.
index dc0b799da5d7740fea3fd84aa1fd7f6093810476..274b981fc88321869588ac9cf1f5c0a5b7e13c3b 100644 (file)
@@ -3,6 +3,7 @@
 # Export driver: syck
 # Author: Mnalis
 # Author: Mvrban
+# Author: SpeedyGonsales
 hr: 
   activerecord: 
     attributes: 
@@ -885,9 +886,9 @@ hr:
     export_tooltip: Izvoz podataka karte
     gps_traces: GPS trase
     gps_traces_tooltip: Upravljaj GPS trasama
-    help_wiki: Pomoć &amp; Wiki
-    help_wiki_tooltip: Pomoć &amp; Wiki-site za projekt
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/Hr:Main_Page?uselang=hr
+    help: Pomoć
+    help_and_wiki: "{{help}} & {{wiki}}"
+    help_title: Stranice pomoći za projekt
     history: Povijest
     home: dom
     home_tooltip: Idi na lokaciju svog doma
@@ -928,6 +929,8 @@ hr:
     view_tooltip: Pogledaj na karti
     welcome_user: Dobrodošli, {{user_link}}
     welcome_user_link_tooltip: Tvoja korisnička stranica
+    wiki: Wiki
+    wiki_title: Wiki stranice projekta
   license_page: 
     foreign: 
       english_link: Engleski izvornik
@@ -1060,6 +1063,7 @@ hr:
     signup_confirm: 
       subject: "[OpenStreetMap] potvrdi email adresu"
     signup_confirm_html: 
+      ask_questions: Možete postaviti bilo kakva pitanja koja imate o projektu OpenStreetMap na našim <a href="http://help.openstreetmap.org/">stranicama pitanja i odgovora</a>.
       click_the_link: Ako si ovo ti, dobrodošao! Molim klikni na link ispod za potvrdu korisničkog računa i čitaj dalje za više informacija o OpenStreetMap-u
       current_user: Lista trenutnih korisnika u kategorijama, bazirano gdje su na svijetu, je dostupna s <a href="http://wiki.openstreetmap.org/wiki/Category:Users_by_geographical_region">Category:Users_by_geographical_region</a>.
       get_reading: Čitajte o OpenStreetMap-u <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_Guide">na wiki-ju</a>, budute u toku s zadnjim novostima preko <a href="http://blog.openstreetmap.org/">OpenStreetMap bloga</a> ili <a href="http://twitter.com/openstreetmap">Twittera</a>, ili pregledajte <a href="http://www.opengeodata.org/">OpenGeoData blog</a> osnivača OpenStreetMap-a, Stevea Coasta za povijest projekta, gdje imate i <a href="http://www.opengeodata.org/?cat=13">podcaste za slušanje</a>!
@@ -1072,6 +1076,7 @@ hr:
       video_to_openstreetmap: uvodni video za OpenStreetMap
       wiki_signup: Možda se želiš <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">otvoriti račun na OpenStreetMap wiki</a>.
     signup_confirm_plain: 
+      ask_questions: "Možete postaviti bilo kakva pitanja koja imate o projektu OpenStreetMap na našim stranicama pitanja i odgovora:"
       blog_and_twitter: "Budite u toku s najnovijim vijestima preko OpenstreetMap bloga ili Twittera:"
       click_the_link_1: Ako si to ti, dobrodošao! Molim klikni donji link za potvrdu
       click_the_link_2: korinički račun i čitaj za više informacija o OpenStreetMap-u.
index 3502ae7e6d09f75965c965434135839991f3335c..b7c957b53e95647e46ef7983f75a8531e92867f9 100644 (file)
@@ -890,8 +890,6 @@ hsb:
     export_tooltip: Kartowe daty eksportować
     gps_traces: GPS-ćěrje
     gps_traces_tooltip: GPS-ćěrje zrjadować
-    help_wiki: Pomoc &amp; wiki
-    help_wiki_tooltip: Sydło Pomoc & wiki za projekt
     history: Historija
     home: domoj
     home_tooltip: Domoj hić
index 18ebc83e9c04d3e8d696f1e4ee2f67e450ab151c..b08cf975203324fb83ff304499a92310b99bffea 100644 (file)
@@ -885,9 +885,6 @@ hu:
     export_tooltip: Térképadatok exportálása
     gps_traces: Nyomvonalak
     gps_traces_tooltip: GPS nyomvonalak kezelése
-    help_wiki: Segítség és wiki
-    help_wiki_tooltip: Segítség és wikioldal a projekthez
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/HU:Main_Page?uselang=hu
     history: Előzmények
     home: otthon
     home_tooltip: Ugrás otthonra
index 0f8de1fba5cce76620e62c86c012e86ef98eb7e2..d08063915f23113ade599a543fd0a85bc503de82 100644 (file)
@@ -880,8 +880,9 @@ ia:
     export_tooltip: Exportar datos cartographic
     gps_traces: Tracias GPS
     gps_traces_tooltip: Gerer tracias GPS
-    help_wiki: Adjuta &amp; Wiki
-    help_wiki_tooltip: Adjuta &amp; sito Wiki pro le projecto
+    help: Adjuta
+    help_and_wiki: "{{help}} & {{wiki}}"
+    help_title: Sito de adjuta pro le projecto
     history: Historia
     home: initio
     home_tooltip: Ir al position de origine
@@ -922,6 +923,8 @@ ia:
     view_tooltip: Vider le carta
     welcome_user: Benvenite, {{user_link}}
     welcome_user_link_tooltip: Tu pagina de usator
+    wiki: Wiki
+    wiki_title: Sito wiki pro le projecto
   license_page: 
     foreign: 
       english_link: le original in anglese
@@ -1054,6 +1057,7 @@ ia:
     signup_confirm: 
       subject: "[OpenStreetMap] Confirma tu adresse de e-mail"
     signup_confirm_html: 
+      ask_questions: Tu pote poner qualcunque questiones super OpenStreetMap a nostre <a href="http://help.openstreetmap.org/">sito de questiones e responsas</a>.
       click_the_link: Si isto es tu, benvenite! Per favor clicca super le ligamine ci infra pro confirmar iste conto e continua a leger pro ulterior informationes super OpenStreetMap
       current_user: Un lista de usatores actual in categorias, a base de lor position geographic, es disponibile de <a href="http://wiki.openstreetmap.org/wiki/Category:Users_by_geographical_region">Category:Users_by_geographical_region</a>.
       get_reading: Informa te super OpenStreetMap per <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_Guide">leger le wiki</a>, tene te al currente con le ultime novas via le <a href="http://blog.openstreetmap.org/">blog de OpenStreetMap</a> o con <a href="http://twitter.com/openstreetmap">Twitter</a>, o percurre le <a href="http://www.opengeodata.org/">blog OpenGeoData</a> del fundator de OpenStreetMap Steve Coast pro le historia compendiose del projecto, le qual include tamben <a href="http://www.opengeodata.org/?cat=13">podcasts a ascoltar</a>!
@@ -1066,6 +1070,7 @@ ia:
       video_to_openstreetmap: video de introduction a OpenStreetMap
       wiki_signup: Considera tamben <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">inscriber te al wiki de OpenStreetMap</a>.
     signup_confirm_plain: 
+      ask_questions: "Tu pote poner qualcunque questiones super OpenStreetMap a nostre sito de questiones e responsas:"
       blog_and_twitter: "Tene te al currente con le ultime novas al blog de OpenStreetMap o con Twitter:"
       click_the_link_1: Si isto es tu, benvenite! Per favor clicca super le ligamine ci infra pro confirmar tu
       click_the_link_2: conto. Continua a leger pro plus informationes a proposito de OpenStreetMap.
index 0483fb81871b62011cd2284cbcabe254a76da3e3..fe7c8c05ba5968ed045fcaf718120a5cdf12b2c1 100644 (file)
@@ -579,9 +579,6 @@ is:
     export_tooltip: Niðurhala kortagögnum á hinum ýmsu sniðum
     gps_traces: GPS ferlar
     gps_traces_tooltip: Sjá alla GPS ferla
-    help_wiki: Hjálp &amp; Wiki
-    help_wiki_tooltip: Hjálpar og wiki-síða fyrir verkefnið
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/Fors%C3%AD%C3%B0a?uselang=is
     history: Breytingarskrá
     home: heim
     home_tooltip: Færa kortasýnina á þína staðsetningu
index 419381b77b4aa6f671581d1b2b9c486b983c7c68..6f8744f183a64ee19ab9621d632f8270cf257111 100644 (file)
@@ -815,8 +815,6 @@ it:
     export_tooltip: Esporta i dati della mappa
     gps_traces: Tracciati GPS
     gps_traces_tooltip: Gestisci i tracciati GPS
-    help_wiki: Aiuto &amp; Wiki
-    help_wiki_tooltip: Sito e Wiki di supporto per il progetto
     history: Storico
     home: posizione iniziale
     inbox: in arrivo ({{count}})
index 4769d010d155f30fb14e2d9ccb0a2d993d868d93..1d50d32c460fd501f133ec791a2d7e5b4558fcfa 100644 (file)
@@ -618,6 +618,7 @@ ja:
         place: 
           airport: 空港
           city: 市
+          country: 国
           county: 郡
           farm: 牧場
           hamlet: 村
@@ -714,9 +715,6 @@ ja:
     export_tooltip: 地図データのエクスポート
     gps_traces: GPS トレース
     gps_traces_tooltip: トレースの管理
-    help_wiki: ヘルプと Wiki
-    help_wiki_tooltip: プロジェクトのヘルプと Wiki
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/Ja:Main_Page?uselang=ja
     history: 履歴
     home: ホーム
     home_tooltip: ホームへ戻る
@@ -1180,6 +1178,7 @@ ja:
     list: 
       confirm: 選択したユーザを確認
       empty: 条件に一致するユーザーが見つかりません
+      heading: 利用者
       hide: 選択したユーザーを隠す
       title: ユーザー
     login: 
diff --git a/config/locales/lb.yml b/config/locales/lb.yml
new file mode 100644 (file)
index 0000000..57ff130
--- /dev/null
@@ -0,0 +1,637 @@
+# Messages for Luxembourgish (Lëtzebuergesch)
+# Exported from translatewiki.net
+# Export driver: syck
+# Author: Robby
+lb: 
+  activerecord: 
+    attributes: 
+      diary_entry: 
+        language: Sprooch
+        title: Titel
+        user: Benotzer
+      friend: 
+        friend: Frënd
+        user: Benotzer
+      message: 
+        title: Titel
+      trace: 
+        description: Beschreiwung
+        name: Numm
+        public: Ëffentlech
+        size: Gréisst
+        user: Benotzer
+      user: 
+        active: Aktiv
+        description: Beschreiwung
+        display_name: Numm dee gewise gëtt
+        email: E-Mail
+        languages: Sproochen
+        pass_crypt: Passwuert
+    models: 
+      country: Land
+      friend: Frënd
+      language: Sprooch
+      message: Message
+      node: Knuet
+      old_node: Ale Knuet
+      old_relation: Al Relatioun
+      old_way: Ale Wee
+      relation: Relatioun
+      user: Benotzer
+      user_preference: Benotzerastellung
+      way: Wee
+  browse: 
+    changeset: 
+      download: Als {{changeset_xml_link}} oder {{osmchange_xml_link}} eroflueden.
+      osmchangexml: osmChange XML
+    changeset_details: 
+      belongs_to: "Gehéiert dem:"
+      closed_at: "Zougemaach den:"
+    common_details: 
+      changeset_comment: "Bemierkung:"
+      edited_at: "Geännert den:"
+      edited_by: "Geännert vum:"
+      version: "Versioun:"
+    containing_relation: 
+      entry: Relatioun {{relation_name}}
+      entry_role: Relatioun {{relation_name}} (als {{relation_role}})
+    map: 
+      deleted: Geläscht
+      larger: 
+        area: Géigend op méi enger grousser Kaart weisen
+        node: Knuet op méi enger grousser Kaart weisen
+        relation: D'Relatioun op méi enger grousser Kaart weisen
+        way: Wee op méi enger grousser Kaart weisen
+      loading: Lueden...
+    navigation: 
+      all: 
+        next_node_tooltip: Nächste Knuet
+        next_relation_tooltip: Nächst Relatioun
+        next_way_tooltip: Nächste Wee
+        prev_node_tooltip: Virege Knuet
+        prev_relation_tooltip: Vireg Relatioun
+        prev_way_tooltip: Virege Wee
+      user: 
+        name_changeset_tooltip: Ännerunge vum {{user}} weisen
+        next_changeset_tooltip: Nächst Ännerung vum {{user}}
+        prev_changeset_tooltip: Vireg Ännerung vum {{user}}
+    node: 
+      download: "{{download_xml_link}}, {{view_history_link}} oder {{edit_link}}"
+      download_xml: XML eroflueden
+      edit: änneren
+      node: Knuet
+      node_title: "Knuet: {{node_name}}"
+      view_history: Versioune weisen
+    node_details: 
+      coordinates: "Koordinaten:"
+      part_of: "Deel vu(n):"
+    node_history: 
+      download: "{{download_xml_link}} oder {{view_details_link}}"
+      download_xml: XML eroflueden
+      view_details: Detailer weisen
+    not_found: 
+      type: 
+        node: Knuet
+        relation: Relatioun
+        way: Wee
+    paging_nav: 
+      of: vu(n)
+      showing_page: Säit gëtt gewisen
+    relation: 
+      download: "{{download_xml_link}} oder {{view_history_link}}"
+      download_xml: XML eroflueden
+      relation: Relatioun
+      relation_title: "Relatioun: {{relation_name}}"
+      view_history: Versioune weisen
+    relation_details: 
+      members: "Memberen:"
+      part_of: "Deel vu(n):"
+    relation_history: 
+      download: "{{download_xml_link}} oder {{view_details_link}}"
+      download_xml: XML eroflueden
+      view_details: Detailer weisen
+    relation_member: 
+      entry_role: "{{type}} {{name}} als {{role}}"
+      type: 
+        node: Knuet
+        relation: Relatioun
+        way: Wee
+    start_rjs: 
+      data_frame_title: Donnéeën
+      data_layer_name: Donnéeën
+      details: Detailer
+      edited_by_user_at_timestamp: Vum [[user]] de(n) [[timestamp]] geännert
+      load_data: Donnéeë lueden
+      loading: Lueden...
+      object_list: 
+        details: Detailer
+        heading: Lëscht mat Objeten
+        history: 
+          type: 
+            node: Knuet [[id]]
+            way: Wee [[id]]
+        selected: 
+          type: 
+            node: Knuet [[id]]
+            way: Wee [[id]]
+        type: 
+          node: Knuet
+          way: Wee
+      private_user: private Benotzer
+      show_history: Versioune weisen
+      wait: Waart w.e.g. ...
+    tag_details: 
+      wikipedia_link: Den Artikel {{page}} op der Wikipedia
+    timeout: 
+      type: 
+        node: Knuet
+        relation: Relatioun
+        way: Wee
+    way: 
+      download: "{{download_xml_link}}, {{view_history_link}} oder {{edit_link}}"
+      download_xml: XML eroflueden
+      edit: änneren
+      view_history: Versioune weisen
+      way: Wee
+      way_title: "Wee: {{way_name}}"
+    way_details: 
+      nodes: "Kniet:"
+      part_of: "Deel vu(n):"
+    way_history: 
+      download: "{{download_xml_link}} oder {{view_details_link}}"
+      download_xml: XML eroflueden
+      view_details: Detailer weisen
+  changeset: 
+    changeset: 
+      anonymous: Anonym
+      big_area: (grouss)
+      no_edits: (keng Ännerungen)
+    changeset_paging_nav: 
+      next: Nächst &raquo;
+      previous: "&laquo; Vireg"
+    changesets: 
+      user: Benotzer
+  diary_entry: 
+    diary_comment: 
+      confirm: Confirméieren
+    diary_entry: 
+      confirm: Confirméieren
+    edit: 
+      language: "Sprooch:"
+      save_button: Späicheren
+      subject: "Sujet:"
+    location: 
+      edit: Änneren
+    no_such_user: 
+      heading: De Benotzer {{user}} gëtt et net
+      title: Esou e Benotzer gëtt et net
+    view: 
+      save_button: Späicheren
+  export: 
+    start: 
+      format: Format
+      image_size: "Gréisst vum Bild:"
+      licence: Lizenz
+      options: Optiounen
+      scale: Maassstab
+      zoom: Zoom
+  geocoder: 
+    direction: 
+      east: ëstlech
+      north: nërdlech
+      north_east: nordost
+      north_west: nordwest
+      south: südlech
+      south_east: südost
+      south_west: südwest
+      west: westlech
+    search_osm_namefinder: 
+      suffix_place: ", {{distance}} {{direction}} vu(n) {{placename}}"
+    search_osm_nominatim: 
+      prefix: 
+        amenity: 
+          airport: Fluchhafen
+          bank: Bank
+          bus_station: Busarrêt
+          cafe: Café
+          cinema: Kino
+          clinic: Klinik
+          crematorium: Crematoire
+          dentist: Zänndokter
+          doctors: Dokteren
+          driving_school: Fahrschoul
+          embassy: Ambassade
+          fire_station: Pompjeeën
+          fountain: Sprangbur
+          hospital: Klinik
+          hotel: Hotel
+          kindergarten: Spillschoul
+          market: Maart
+          marketplace: Maartplaz
+          mountain_rescue: Biergrettung
+          park: Park
+          pharmacy: Apdikt
+          police: Police
+          preschool: Spillschoul
+          prison: Prisong
+          restaurant: Restaurant
+          sauna: Sauna
+          school: Schoul
+          supermarket: Supermarché
+          taxi: Taxi
+          telephone: Telefonscabine
+          theatre: Theater
+          toilets: Toiletten
+          townhall: Stadhaus
+          university: Universitéit
+        building: 
+          bunker: Bunker
+          chapel: Kapell
+          church: Kierch
+          hotel: Hotel
+          house: Haus
+          stadium: Stadion
+          terrace: Terrasse
+          tower: Tuerm
+          train_station: Gare (Eisebunn)
+          "yes": Gebai
+        highway: 
+          footway: Fousswee
+          gate: Paard
+          motorway: Autobunn
+          path: Pad
+          road: Strooss
+        historic: 
+          building: Gebai
+          castle: Schlass
+          church: Kierch
+          house: Haus
+          monument: Monument
+          museum: Musée
+          ruins: Ruinen
+          tower: Tuerm
+        landuse: 
+          cemetery: Kierfecht
+          forest: Bësch
+          military: Militairegebitt
+          park: Park
+          railway: Eisebunn
+          vineyard: Wéngert
+          wood: Bësch
+        leisure: 
+          marina: Yachthafen
+          miniature_golf: Minigolf
+          playground: Spillplaz
+          stadium: Stadion
+          swimming_pool: Schwëmm
+        natural: 
+          crater: Krater
+          fjord: Fjord
+          geyser: Geysir
+          glacier: Gletscher
+          hill: Hiwwel
+          island: Insel
+          point: Punkt
+          river: Floss
+          rock: Steng
+          spring: Quell
+          tree: Bam
+          valley: Dall
+          volcano: Vulkan
+          water: Waasser
+          wood: Bësch
+        place: 
+          airport: Fluchhafen
+          country: Land
+          houses: Haiser
+          island: Insel
+          region: Regioun
+          sea: Mier
+          town: Stad
+          village: Duerf
+        railway: 
+          disused: Fréier Eisebunn
+          tram: Tram
+        shop: 
+          bakery: Bäckerei
+          books: Bichergeschäft
+          chemist: Apdikt
+          clothes: Kleedergeschäft
+          dry_cleaning: Botzerei
+          hairdresser: Coiffeur
+          insurance: Versécherungsbüro
+          jewelry: Bijouterie
+          optician: Optiker
+          photo: Fotosgeschäft
+          shoes: Schonggeschäft
+          supermarket: Supermarché
+          travel_agency: Reesbüro
+        tourism: 
+          artwork: Konschtwierk
+          attraction: Attraktioun
+          information: Informatioun
+          museum: Musée
+          picnic_site: Piknikplaz
+          valley: Dall
+          viewpoint: Aussiichtspunkt
+          zoo: Zoo
+        waterway: 
+          canal: Kanal
+          river: Floss
+          wadi: Wadi
+          waterfall: Waasserfall
+  javascripts: 
+    site: 
+      edit_tooltip: Kaart änneren
+  layouts: 
+    copyright: Copyright &amp; Lizenz
+    donate_link_text: Don
+    edit: Änneren
+    intro_3_partners: Wiki
+    make_a_donation: 
+      text: En Don maachen
+    shop: Geschäft
+    user_diaries: Benotzer Bloggen
+    welcome_user: Wëllkomm, {{user_link}}
+    welcome_user_link_tooltip: Är Benotzersäit
+  license_page: 
+    foreign: 
+      english_link: den engleschen Original
+      title: Iwwer dës Iwwersetzung
+    native: 
+      native_link: lëtzebuergesch Versioun
+      title: Iwwer dës Säit
+  message: 
+    delete: 
+      deleted: Message geläscht
+    inbox: 
+      date: Datum
+      subject: Sujet
+    message_summary: 
+      delete_button: Läschen
+      reply_button: Äntwerten
+    new: 
+      send_button: Schécken
+      subject: Sujet
+      title: Noriicht schécken
+    no_such_user: 
+      heading: Esou e Benotzer gëtt et net
+      title: Esou e Benotzer gëtt et net
+    outbox: 
+      date: Datum
+      subject: Sujet
+    read: 
+      date: Datum
+      reply_button: Äntwerten
+    sent_message_summary: 
+      delete_button: Läschen
+  notifier: 
+    diary_comment_notification: 
+      hi: Salut {{to_user}},
+    email_confirm_html: 
+      greeting: Salut,
+    email_confirm_plain: 
+      greeting: Salut,
+    gpx_notification: 
+      greeting: Salut,
+      with_description: mat der Beschreiwung
+    lost_password_html: 
+      greeting: Salut,
+    lost_password_plain: 
+      greeting: Salut,
+    signup_confirm_plain: 
+      more_videos: "Hei si méi Videoen:"
+  oauth_clients: 
+    edit: 
+      submit: Änneren
+    form: 
+      name: Numm
+    new: 
+      submit: Registréieren
+    show: 
+      allow_write_api: Kaart änneren
+  site: 
+    edit: 
+      user_page_link: Benotzersäit
+    key: 
+      table: 
+        entry: 
+          golf: Golfterrain
+          lake: 
+            - Séi
+          motorway: Autobunn
+          rail: Eisebunn
+          school: 
+            - Schoul
+            - Universitéit
+          subway: Metro
+          summit: 
+            - Spëtzt
+          wood: Bësch
+    search: 
+      search: Sichen
+      submit_text: Lass
+    sidebar: 
+      close: Zoumaachen
+      search_results: Reaultater vun der Sich
+  time: 
+    formats: 
+      friendly: "%e %B %Y ëm %H:%M"
+  trace: 
+    edit: 
+      description: "Beschreiwung:"
+      download: eroflueden
+      edit: änneren
+      filename: "Numm vum Fichier:"
+      map: Kaart
+      owner: "Besëtzer:"
+      points: "Punkten:"
+      save_button: Ännerunge späicheren
+      tags_help: Mat Komma getrennt
+      uploaded_at: "Eropgelueden:"
+      visibility: "Visibilitéit:"
+      visibility_help: wat heescht dat?
+    no_such_user: 
+      heading: De Benotzer {{user}} gëtt et net
+      title: Esou e Benotzer gëtt et net
+    trace: 
+      ago: viru(n) {{time_in_words_ago}}
+      by: vum
+      count_points: "{{count}} Punkten"
+      edit: änneren
+      edit_map: Kaart änneren
+      in: an
+      map: Kaart
+      more: méi
+      private: PRIVAT
+      public: ËFFENTLECH
+      view_map: Kaart weisen
+    trace_form: 
+      description: Beschreiwung
+      help: Hëllef
+      upload_button: Eroplueden
+      upload_gpx: GPX-Fichier eroplueden
+      visibility: Visibilitéit
+      visibility_help: wat heescht dat?
+    trace_paging_nav: 
+      next: Nächst &raquo;
+      previous: "&laquo; Vireg"
+      showing_page: D'Säit {{page}} gëtt gewisen
+    view: 
+      description: "Beschreiwung:"
+      download: eroflueden
+      edit: änneren
+      filename: "Numm vum Fichier:"
+      map: Kaart
+      none: Keen
+      owner: "Besëtzer:"
+      points: "Punkten:"
+      uploaded: "Eropgelueden:"
+      visibility: "Visibilitéit:"
+  user: 
+    account: 
+      contributor terms: 
+        link text: wat ass dëst?
+      current email address: "Aktuell E-Mailadress:"
+      delete image: Dat aktuellt Bild ewechhuelen
+      flash update success: Benotzerinformatioun ass elo aktualiséiert.
+      image: "Bild:"
+      keep image: Dat aktuellt Bild behalen
+      make edits public button: All meng Ännerunge ëffentlech maachen
+      my settings: Meng Astellungen
+      new email address: "Nei E-Mailadress:"
+      new image: E Bild derbäisetzen
+      preferred languages: "Léifste Sproochen:"
+      public editing: 
+        disabled link text: Firwat kann ech net änneren?
+        enabled link text: wat ass dëst?
+      replace image: Dat aktuellt Bild ersetzen
+      save changes button: Ännerunge späicheren
+    confirm: 
+      button: Confirméieren
+      heading: E Benotzerkont confirméieren
+      press confirm button: Klickt w.e.g. op de Knäppchen confirméieren fir Äre Benotzerkont z'aktivéieren.
+    confirm_email: 
+      button: Confirméieren
+    go_public: 
+      flash success: All Är Ännerunge sinn elo ëffentlech, an Dir däerft elo änneren.
+    list: 
+      confirm: Erausgesichte Benotzer confirméieren
+      heading: Benotzer
+      hide: Erausgesichte Benotzer vrstoppen
+      title: Benotzer
+    login: 
+      lost password link: Hutt Dir Äert Passwuert vergiess?
+      password: "Passwuert:"
+      webmaster: Webmaster
+    logout: 
+      logout_button: Ofmellen
+      title: Ofmellen
+    lost_password: 
+      email address: "E-Mailadress:"
+      heading: Passwuert vergiess?
+      new password button: Passwuert zrécksetzen
+      notice email cannot find: Déi E-Mailadress konnt net fonnt ginn, pardon
+      title: Passwuert vergiess
+    make_friend: 
+      already_a_friend: Dir sidd schonn de Frënd vum {{name}}.
+      success: "{{name}} ass elo Äre Frënd."
+    new: 
+      confirm email address: "E-Mailadress confirméieren:"
+      confirm password: "Passwuert confirméieren:"
+      continue: Weider
+      display name: Numm weisen
+      email address: "E-Mailadress:"
+      heading: E Benotzerkont uleeën
+      password: "Passwuert:"
+    no_such_user: 
+      heading: De Benotzer {{user}} gëtt et net
+      title: Esou e Benotzer gëtt et net
+    popup: 
+      friend: Frënn
+    remove_friend: 
+      not_a_friend: "{{name}} ass kee vun Äre Frënn."
+    reset_password: 
+      confirm password: "Passwuert confirméieren:"
+      flash changed: Äert Passwuert gouf geännert.
+      heading: Passwuert fir {{user}} zrécksetzen
+      password: "Passwuert:"
+      reset: Passwuert zrécksetzen
+      title: Passwuert zrécksetzen
+    suspended: 
+      webmaster: Webmaster
+    terms: 
+      agree: Akzeptéieren
+      consider_pd_why: wat ass dat?
+      legale_names: 
+        france: Frankräich
+        italy: Italien
+        rest_of_world: Rescht vun der Welt
+      legale_select: "Sicht w.e.g. d'Land eraus wou Dir wunnt:"
+    view: 
+      activate_user: dëse Benotzer aktivéieren
+      add as friend: als Frënd derbäisetzen
+      ago: (viru(n) {{time_in_words_ago}})
+      confirm: Confirméieren
+      confirm_user: dëse Benotzer confirméieren
+      create_block: dëse Benotzer spären
+      deactivate_user: dëse Benotzer desaktivéieren
+      delete_user: dëse Benotzer läschen
+      description: Beschreiwung
+      diary: Blog
+      edits: Ännerungen
+      email address: "E-Mailadress:"
+      hide_user: dëse Benotzer verstoppen
+      km away: "{{count}} km ewech"
+      m away: "{{count}} m ewech"
+      my diary: mäi Blog
+      my edits: meng Ännerungen
+      my settings: meng Astellungen
+      nearby users: Aner Benotzer nobäi
+      remove as friend: als Frënd ewechhuelen
+      role: 
+        administrator: Dëse Benotzer ass en Administrateur
+      settings_link_text: Astellungen
+      unhide_user: dëse Benotzer net méi verstoppen
+      your friends: Är Frënn
+  user_block: 
+    blocks_by: 
+      title: Späre vum {{name}}
+    edit: 
+      submit: Spär aktualiséieren
+    index: 
+      title: Benotzerspären
+    new: 
+      submit: Spär uleeën
+    partial: 
+      confirm: Sidd Dir sécher?
+      display_name: Gespaarte Benotzer
+      edit: Änneren
+      reason: Grond fir d'Spär
+      show: Weisen
+    period: 
+      one: 1 Stonn
+      other: "{{count}} Stonnen"
+    show: 
+      confirm: Sidd Dir sécher?
+      edit: Änneren
+      heading: "{{block_on}} gespaart vum {{block_by}}"
+      reason: "Grond fir d'Spär:"
+      show: Weisen
+      title: "{{block_on}} gespaart vum {{block_by}}"
+    update: 
+      success: Spär aktualiséiert
+  user_role: 
+    filter: 
+      already_has_role: De Benotzer huet d'Roll {{role}} schonn.
+      doesnt_have_role: De Benotzer huet d'Roll {{role}} net.
+      not_a_role: D'Zeechen '{{role}}' ass keng valabel Roll.
+      not_an_administrator: Nëmmen Adminstrateure kënnen d'Gstioun vun de Rolle maachen, an Dir sidd net Administrateur.
+    grant: 
+      confirm: Confirméieren
+    revoke: 
+      are_you_sure: Sidd Dir sécher datt Dir dem Benotzer '{{name}}' d'Roll '{{role}}' ofhuele wëllt?
+      confirm: Confirméieren
+      fail: D'Roll '{{role}}' konnt met vum Benotzer '{{name}}' ewechgeholl ginn. Kuckt w.e.g. no ob de Benotzer an d'Roll allen zwee valabel sinn.
+      heading: Confirméiert d'Zréckzéie vun der Roll
+      title: Confirméiert d'Zréckzéie vun der Roll
index 59453961f6c362ae8db301bef9690aa774dcd079..6878df03ff2b7d2f4c63f3dfba414f1a7a6eee63 100644 (file)
@@ -301,9 +301,9 @@ mk:
       body: "Содржина:"
       language: "Јазик:"
       latitude: Геог. ширина
-      location: "Ð\9bокаÑ\86иÑ\98а:"
+      location: "Ð\9cеÑ\81Ñ\82оположба:"
       longitude: Геог. должина
-      marker_text: Ð\9bокаÑ\86иÑ\98а на дневничкиот запис
+      marker_text: Ð\9cеÑ\81Ñ\82о на дневничкиот запис
       save_button: Зачувај
       subject: "Наслов:"
       title: Уреди дневничка ставка
@@ -386,9 +386,9 @@ mk:
   geocoder: 
     description: 
       title: 
-        geonames: Ð\9bокаÑ\86иÑ\98а од <a href="http://www.geonames.org/">GeoNames</a>
+        geonames: Ð\9cеÑ\81Ñ\82оположба од <a href="http://www.geonames.org/">GeoNames</a>
         osm_namefinder: "{{types}} од <a href=\"http://gazetteer.openstreetmap.org/namefinder/\">OpenStreetMap Именикот</a>"
-        osm_nominatim: Ð\9bокаÑ\86иÑ\98а од <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>
+        osm_nominatim: Ð\9cеÑ\81Ñ\82оположба од <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>
       types: 
         cities: Градови
         places: Места
@@ -880,11 +880,12 @@ mk:
     export_tooltip: Извоз на податоци од картата
     gps_traces: GPS-траги
     gps_traces_tooltip: Работа со GPS траги
-    help_wiki: Помош и вики
-    help_wiki_tooltip: Помош и Вики-страница за овој проект
+    help: Помош
+    help_and_wiki: "{{help}} и {{wiki}}"
+    help_title: Помошна страница за проектот
     history: Историја
     home: дома
-    home_tooltip: Ð\9eди Ð½Ð° Ð´Ð¾Ð¼Ð°Ñ\88на Ð»Ð¾ÐºÐ°Ñ\86иÑ\98а
+    home_tooltip: Ð\9eди Ð½Ð° Ð¼Ð°Ñ\82иÑ\87наÑ\82а Ð¼ÐµÑ\81Ñ\82оположба
     inbox: пораки ({{count}})
     inbox_tooltip: 
       one: Имате 1 непрочитана порака во сандачето
@@ -922,6 +923,8 @@ mk:
     view_tooltip: Види карта
     welcome_user: Добредојде, {{user_link}}
     welcome_user_link_tooltip: Ваша корисничка страница
+    wiki: Вики
+    wiki_title: Помошна страница за проектот
   license_page: 
     foreign: 
       english_link: англискиот оригинал
@@ -1054,6 +1057,7 @@ mk:
     signup_confirm: 
       subject: "[OpenStreetMap] Потврдете ја вашата е-поштенска адреса"
     signup_confirm_html: 
+      ask_questions: Можете да поставувате прашања за OpenStreetMap на нашата <a href="http://help.openstreetmap.org/">страница за прашања и одговори</a>.
       click_the_link: Ако ова сте вие, добредојдовте! Кликнете на врската подолу за да ја потврдите таа сметка и да прочитате повеќе информации за OpenStreetMap
       current_user: На <a href="http://wiki.openstreetmap.org/wiki/Category:Users_by_geographical_region">Категорија:Корисници_по_географски_регион</a> ќе најдете список на тековни корисници во категории, зависно од нивната местоположба во светот.
       get_reading: Читајте за OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_Guide">на викито</a>, информирајте се за најновите збиднувања преку <a href="http://blog.openstreetmap.org/">OpenStreetMap блогот</a> или <a href="http://twitter.com/openstreetmap">Twitter</a>, или пак прелистајте го<a href="http://www.opengeodata.org/">блогот „OpenGeoData“</a> на основачот на OpenStreetMap, Стив Коуст за историја на проектот, заедно со <a href="http://www.opengeodata.org/?cat=13">под-емитувања</a>!
@@ -1066,11 +1070,12 @@ mk:
       video_to_openstreetmap: воведен видеоклип за OpenStreetMap
       wiki_signup: Препорачуваме да <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">се регистрирате на викито на OpenStreetMap</a>.
     signup_confirm_plain: 
+      ask_questions: "Можете да поставувате прашања за OpenStreetMap на нашата страница за прашања и одговори:"
       blog_and_twitter: "Бидете информирани за најновите збиднувања преку блогот на OpenStreetMap blog или Twitter:"
       click_the_link_1: Ако ова сте вие, добредојдовте! Кликнете на врската подолу за да ја потврдите
       click_the_link_2: сметка и прочитајте повеќе за дополнителни информации за OpenStreetMap.
       current_user_1: Список на тековни корисници во категории, врз основа на нивната местоположба во светот
-      current_user_2: "локаÑ\86иÑ\98а во светот ќе најдете на:"
+      current_user_2: "меÑ\81Ñ\82оположба во светот ќе најдете на:"
       greeting: Здраво!
       hopefully_you: Некој (се надеваме, Вие) сака да отвори сметка на
       introductory_video: "Погледајте го воведниот видеоклип за  OpenStreetMap тука:"
@@ -1240,7 +1245,7 @@ mk:
       search_help: "примери: 'Струмица', 'Илинденска', 'Regent Street, Cambridge', 'CB2 5AQ' или 'post offices near Lünen' <a href='http://wiki.openstreetmap.org/wiki/Search'>повеќе примери...</a>"
       submit_text: ->
       where_am_i: Каде сум?
-      where_am_i_title: Ð\9eпиÑ\88еÑ\82е Ñ\98а Ð¼Ð¾Ð¼ÐµÐ½Ñ\82алнаÑ\82а Ð»Ð¾ÐºÐ°Ñ\86иÑ\98а со помош на пребарувачот
+      where_am_i_title: Ð\9eпиÑ\88еÑ\82е Ñ\98а Ð¼Ð¾Ð¼ÐµÐ½Ñ\82алнаÑ\82а Ð¼ÐµÑ\81Ñ\82оположба со помош на пребарувачот
     sidebar: 
       close: Затвори
       search_results: Резултати од пребарувањето
@@ -1361,7 +1366,7 @@ mk:
       email never displayed publicly: (никогаш не се прикажува јавно)
       flash update success: Корисничките информации се успешно ажурирани.
       flash update success confirm needed: Корисничките информации се успешно ажурирани. Проверете е-пошта за да ја потврдите на адресата.
-      home location: "Ð\94омаÑ\88на Ð»Ð¾ÐºÐ°Ñ\86иÑ\98а:"
+      home location: "Ð\9cаÑ\82иÑ\87на Ð¼ÐµÑ\81Ñ\82оположба:"
       image: "Слика:"
       image size hint: (најдобро работат квадратни слики, барем 100x100)
       keep image: Задржи ја тековната слика
@@ -1371,7 +1376,7 @@ mk:
       my settings: Мои прилагодувања
       new email address: "Нова е-поштенска адреса:"
       new image: Додај слика
-      no home location: Ð\9dемаÑ\82е Ð²Ð½ÐµÑ\81ено Ð´Ð¾Ð¼Ð°Ñ\88на Ð»Ð¾ÐºÐ°Ñ\86иÑ\98а.
+      no home location: Ð\9dемаÑ\82е Ð²Ð½ÐµÑ\81ено Ð¼Ð°Ñ\82иÑ\87на Ð¼ÐµÑ\81Ñ\82оположба.
       preferred languages: "Претпочитани јазици:"
       profile description: "Опис за профилот:"
       public editing: 
@@ -1388,7 +1393,7 @@ mk:
       return to profile: Назад кон профилот
       save changes button: Зачувај ги промените
       title: Уреди сметка
-      update home location on click: Подновувај ја домашната локација кога ќе кликнам на картата
+      update home location on click: Подновувај го матичната местоположба кога ќе кликнам на картата
     confirm: 
       button: Потврди
       failure: Веќе имаме потврдено корисничка сметка со овој жетон.
@@ -1471,7 +1476,7 @@ mk:
     popup: 
       friend: Пријател
       nearby mapper: Соседен картограф
-      your location: Ð\92аÑ\88а Ð»Ð¾ÐºÐ°Ñ\86иÑ\98а
+      your location: Ð\92аÑ\88а Ð¼ÐµÑ\81Ñ\82оположба
     remove_friend: 
       not_a_friend: "{{name}} не е меѓу вашите пријатели."
       success: Корисникот {{name}} е отстранет од вашите пријатели.
@@ -1480,11 +1485,11 @@ mk:
       flash changed: Лозинката ви е сменета.
       flash token bad: Не го пронајдов тој жетон. Проверете ја URL адресата.
       heading: Смени лозинка за {{user}}
-      password: Лозинка
+      password: "Лозинка:"
       reset: Смени лозинка
       title: Смени лозинка
     set_home: 
-      flash success: Ð\94омаÑ\88наÑ\82а Ð»Ð¾ÐºÐ°Ñ\86иÑ\98а е успешно зачувана
+      flash success: Ð\9cаÑ\82иÑ\87наÑ\82а Ð¼ÐµÑ\81Ñ\82оположба е успешно зачувана
     suspended: 
       body: "<p>\n  Нажалост, вашата сметка беше автоматски закочена поради\n  сомнителни активности.\n</p>\n<p>\n  Донесената одлуката набргу ќе ја прегледа администратор, но\n  можете да се обратите кај {{webmaster}} ако сакате да продискутирате за овој проблем.\n</p>"
       heading: Сметката е закочена
@@ -1521,7 +1526,7 @@ mk:
       edits: уредувања
       email address: Е-пошта
       hide_user: сокриј го корисников
-      if set location: Ð\90ко Ñ\98а Ð½Ð°Ð¼ÐµÑ\81Ñ\82иÑ\82е Ð²Ð°Ñ\88аÑ\82а Ð»Ð¾ÐºÐ°Ñ\86иÑ\98а, Ð¿Ð¾Ð´ Ð¾Ð²Ð° Ñ\9cе Ð²Ð¸ Ñ\81е Ð¿Ð¾Ñ\98ави Ñ\83бава ÐºÐ°Ñ\80Ñ\82а Ð¸ Ð´Ñ\80Ñ\83ги Ñ\80абоÑ\82и. Ð\94омаÑ\88наÑ\82а Ð»Ð¾ÐºÐ°Ñ\86иÑ\98а можете да си ја наместите на страницата {{settings_link}}.
+      if set location: Ð\90ко Ñ\98а Ð½Ð°Ð¼ÐµÑ\81Ñ\82иÑ\82е Ð²Ð°Ñ\88аÑ\82а Ð¼ÐµÑ\81Ñ\82оположба, Ð¿Ð¾Ð´ Ð¾Ð²Ð° Ñ\9cе Ð²Ð¸ Ñ\81е Ð¿Ð¾Ñ\98ави Ñ\83бава ÐºÐ°Ñ\80Ñ\82а Ð¸ Ð´Ñ\80Ñ\83ги Ñ\80абоÑ\82и. Ð\9cаÑ\82иÑ\87наÑ\82а Ð¼ÐµÑ\81Ñ\82оположба можете да си ја наместите на страницата {{settings_link}}.
       km away: "{{count}}km од вас"
       m away: "{{count}}m од вас"
       mapper since: "Картограф од:"
@@ -1551,7 +1556,7 @@ mk:
       status: "Статус:"
       traces: траги
       unhide_user: покажи го корисникот
-      user location: Ð\9bокаÑ\86иÑ\98а на корисникот
+      user location: Ð\9cеÑ\81Ñ\82оположба на корисникот
       your friends: Ваши пријатели
   user_block: 
     blocks_by: 
index 631a75f94a052bf8754f8c7efb7c720e108702a6..72ed34ae62eac5bd1db0ad98f1114236b69d7f1e 100644 (file)
@@ -883,8 +883,9 @@ nl:
     export_tooltip: Kaartgegevens exporteren
     gps_traces: GPS-tracks
     gps_traces_tooltip: GPS-tracks beheren
-    help_wiki: Help &amp; wiki
-    help_wiki_tooltip: Help en wikisite voor het project
+    help: Hulp
+    help_and_wiki: "{{help}} en {{wiki}}"
+    help_title: Helpsite voor dit project
     history: Geschiedenis
     home: home
     home_tooltip: Naar thuislocatie gaan
@@ -923,6 +924,8 @@ nl:
     view_tooltip: Kaart bekijken
     welcome_user: Welkom, {{user_link}}
     welcome_user_link_tooltip: Uw gebruikerspagina
+    wiki: wiki
+    wiki_title: Wikisite voor het project
   license_page: 
     foreign: 
       english_link: Engelstalige origineel
@@ -1055,6 +1058,7 @@ nl:
     signup_confirm: 
       subject: "[OpenStreetMap] Bevestig uw e-mailadres"
     signup_confirm_html: 
+      ask_questions: U kunt vragen stellen over OpenStreetMap op onze <a href="http://help.openstreetmap.org/">vraag en antwoordsite</a>.
       click_the_link: Als u dat bent, welkom! Volg de verwijzing hieronder beneden om uw gebruiker bevestigen en om meer over OpenStreetMap te weten te komen
       current_user: Een lijst van gebruikers, gesorteerd op woonplaats, is te zien op <a href="http://wiki.openstreetmap.org/wiki/Category:Users_by_geographical_region">Category:Users_by_geographical_region</a>.
       get_reading: Lees over OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_Guide">op de wiki</a>, volg het laatste nieuws op de <a href="http://blog.openstreetmap.org/">OpenStreetMap-blog</a> of via <a href="http://twitter.com/openstreetmap">Twitter</a>. Lees ook de <a href="http://www.opengeodata.org/">OpenGeoData-blog</a> van OpenSteetMap-grondlegger Steve Coast, die ook <a href="http://www.opengeodata.org/?cat=13">podcasts</a> aanbiedt!
@@ -1067,6 +1071,7 @@ nl:
       video_to_openstreetmap: introductievideo over OpenStreetMap bekijken
       wiki_signup: U kunt zich ook <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">registreren op de OpenStreetMap-wiki</a>.
     signup_confirm_plain: 
+      ask_questions: "U kunt vragen stellen over OpenStreetMap op onze vraag en antwoordsite:"
       blog_and_twitter: "Volg het laatste nieuws via de OpenStreetMap-blog of Twitter:"
       click_the_link_1: Als u dat bent, welkom! Volg de verwijzing hieronder om uw gebruiker te bevestigen
       click_the_link_2: en om meer informatie over OpenStreetMap te krijgen.
index b9e04d1733b2781c4d49dbe4640767b05b908dcd..ca0adbee5536b9e1c07fb9446be501475e9614b2 100644 (file)
@@ -93,7 +93,7 @@
       title: Endringssett
     changeset_details: 
       belongs_to: "Tilhører:"
-      bounding_box: "Bounding box:"
+      bounding_box: "Avgrensingsboks:"
       box: boks
       closed_at: "Lukket:"
       created_at: "Opprettet:"
       has_ways: 
         one: "Har følgende {{count}} vei:"
         other: "Har følgende {{count}} veier:"
-      no_bounding_box: Ingen bounding box er lagret for dette endringssettet.
+      no_bounding_box: Ingen avgrensingsboks er lagret for dette endringssettet.
       show_area_box: Vis boks for område
     common_details: 
       changeset_comment: "Kommentar:"
           way: Vei
       private_user: privat bruker
       show_history: Vis historikk
-      unable_to_load_size: "Klarte ikke laste inn: Bounding box med størrelse [[bbox_size]] er for stor (må være mindre enn {{max_bbox_size}})"
+      unable_to_load_size: "Klarte ikke laste inn: Avgrensingsboks med størrelse [[bbox_size]] er for stor (må være mindre enn {{max_bbox_size}})"
       wait: Vent ...
       zoom_or_select: Zoom inn eller velg et område av kartet for visning
     tag_details: 
           chapel: Kapell
           church: Kirke
           city_hall: Rådhus
+          commercial: Kommersiell bygning
           dormitory: Sovesal
           entrance: Bygningsinngang
+          faculty: Fakultetsbygning
           farm: Gårdsbygg
           flats: Leiligheter
           garage: Garasje
           office: Kontorbygg
           public: Offentlig bygg
           residential: Boligbygg
+          retail: Detaljsalgbygg
           school: Skolebygg
           shop: Butikk
           stadium: Stadion
           "yes": Bygning
         highway: 
           bridleway: Ridevei
+          bus_guideway: Ledet bussfelt
           bus_stop: Busstopp
           byway: Stikkvei
           construction: Motorvei under konstruksjon
           distance_marker: Avstandsmarkør
           emergency_access_point: Nødtilgangspunkt
           footway: Gangsti
+          ford: Vadested
           gate: Bom
+          living_street: Gatetun
           minor: Mindre vei
           motorway: Motorvei
           motorway_junction: Motorveikryss
+          motorway_link: Vei til motorvei
           path: Sti
           pedestrian: Gangvei
+          platform: Perrong
           primary: Primær vei
           primary_link: Primær vei
+          raceway: Racerbane
           residential: Bolig
           road: Vei
           secondary: Sekundær vei
           secondary_link: Sekundær vei
           service: Tjenestevei
+          services: Motorveitjenester
           steps: Trapper
+          stile: Stige
           tertiary: Tertiær vei
           track: Sti
           trail: Sti
           tower: Tårn
           wreck: Vrak
         landuse: 
+          allotments: Kolonihager
+          basin: Elveområde
+          brownfield: Tidligere industriområde
           cemetery: Gravplass
           commercial: Kommersielt område
+          conservation: Fredet
           construction: Kontruksjon
           farm: Gård
           farmland: Jordbruksland
           farmyard: Gårdstun
           forest: Skog
           grass: Gress
+          greenfield: Ikke-utviklet område
           industrial: Industriområde
           landfill: Landfylling
           meadow: Eng
           mountain: Fjell
           nature_reserve: Naturreservat
           park: Park
+          piste: Løype
+          plaza: Torg
           quarry: Steinbrudd
           railway: Jernbane
           recreation_ground: Idrettsplass
           reservoir: Reservoar
           residential: Boligområde
+          retail: Detaljsalg
+          village_green: landsbypark
           vineyard: Vingård
           wetland: Våtland
           wood: Skog
           miniature_golf: Minigolf
           nature_reserve: Naturreservat
           park: Park
+          pitch: Sportsarena
           playground: Lekeplass
           recreation_ground: Idrettsplass
           slipway: Slipp
           junction: Jernbanekryss
           light_rail: Bybane
           monorail: Enskinnebane
+          narrow_gauge: Smalspor jernbane
           platform: Jernbaneperrong
+          preserved: Bevart jernbane
+          spur: Jernbaneforgrening
           station: Jernbanestasjon
           subway: T-banestasjon
           subway_entrance: T-baneinngang
+          switch: Sporveksel
           tram: Sporvei
           tram_stop: Trikkestopp
+          yard: Skiftetomt
         shop: 
           alcohol: Utenfor lisens
           apparel: Klesbutikk
           art: Kunstbutikk
           bakery: Bakeri
           beauty: Skjønnhetssalong
+          beverages: Drikkevarerbutikk
           bicycle: Sykkelbutikk
           books: Bokhandel
           butcher: Slakter
           chemist: Kjemiker
           clothes: Klesbutikk
           computer: Databutikk
+          confectionery: Konditori
           convenience: Nærbutikk
           copyshop: Kopieringsbutikk
           cosmetics: Kosmetikkforretning
           fish: Fiskebutikk
           florist: Blomsterbutikk
           food: Matbutikk
+          funeral_directors: Begravelsesforretning
           furniture: Møbler
           gallery: Galleri
           garden_centre: Hagesenter
           shoes: Skobutikk
           shopping_centre: Kjøpesenter
           sports: Sportsbutikk
+          stationery: Papirbutikk
           supermarket: Supermarked
           toys: Lekebutikk
           travel_agency: Reisebyrå
           viewpoint: Utsiktspunkt
           zoo: Dyrepark
         waterway: 
+          boatyard: Båthan
           canal: Kanal
+          connector: Vannveiforbindelse
           dam: Demning
           ditch: Grøft
           dock: Dokk
+          drain: Avløp
+          lock: Sluse
+          lock_gate: Sluseport
+          mineral_spring: Mineralkilde
           mooring: Fortøyning
           rapids: Stryk
           river: Elv
           riverbank: Elvebredd
           stream: Strøm
+          wadi: Elveleie
+          water_point: Vannpunkt
           waterfall: Foss
+          weir: Overløpskant \
   javascripts: 
     map: 
       base: 
     export_tooltip: Eksporter kartdata
     gps_traces: GPS-spor
     gps_traces_tooltip: Behandle GPS-spor
-    help_wiki: Hjelp &amp; Wiki
-    help_wiki_tooltip: Hjelp- &amp; Wiki-side for prosjektet
     history: Historikk
     home: hjem
     home_tooltip: Gå til hjemmeposisjon
       shortlink: Kort lenke
     key: 
       map_key: Kartforklaring
-      map_key_tooltip: Kartforklaring for Mapnik-visninen på dette zoom-nivået
+      map_key_tooltip: Kartforklaring for Mapnik-visningen på dette zoom-nivået
       table: 
         entry: 
           admin: Administrativ grense
+          allotments: Kolonihager
           apron: 
             - terminal
             - terminal
           bridge: Sort kant = bru
           bridleway: Ridevei
+          brownfield: Tidligere industriområde
           building: Viktig bygning
           byway: Stikkvei
           cable: 
           footway: Gangvei
           forest: Skog
           golf: Golfbane
+          heathland: Heilandskap
           industrial: Industriområde
           lake: 
             - Innsjø
           motorway: Motorvei
           park: Park
           permissive: Betinget tilgang
+          pitch: Sportsarena
           primary: Primær vei
           private: Privat tilgang
           rail: Jernbane
           reserve: Naturreservat
           resident: Boligområde
-          retail: Militært område
+          retail: Detaljsalgområde
           runway: 
             - Flystripe
             - taksebane
       empty: Ingen samsvarende brukere funnet
       heading: Brukere
       hide: Skjul valgte brukere
+      showing: 
+        one: Viser side {{page}} ({{page}} av {{page}})
+        other: Viser side {{page}} ({{page}}-{{page}} av {{page}})
       summary: "{{name}} opprettet fra {{ip_address}} den {{date}}"
       summary_no_ip: "{{name}} opprettet {{date}}"
       title: Brukere
       heading: Logg inn
       login_button: Logg inn
       lost password link: Mistet passordet ditt?
+      notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Finn ut mer om OpenStreetMap sitt kommende bytte av lisens</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">oversettelser</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">diskusjon</a>)
       password: "Passord:"
       please login: Logg inn eller {{create_user_link}}.
       remember: "Huske meg:"
         italy: Italia
         rest_of_world: Resten av verden
       legale_select: "Velg ditt bostedsland:"
+      read and accept: Les avtalen nedenfor og trykk godkjenningsknapp for å bekrefte at du godtar betingelsene i denne avtalen for dine eksisterende og kommende bidrag.
       title: Bidragsytervilkår
     view: 
       activate_user: aktiver denne brukeren
       needs_view: Brukeren må logge inn før denne blokkeringen blir fjernet.
       reason: "Årsak for blokkering:"
       revoke: Tilbakekall!
+      revoker: "Tilbakekaller:"
       show: Vis
       status: Status
       time_future: Slutter om {{time}}
index 0267e9097edd97fc0fa0a47c1004b4dd7ffa7003..f1facb4c943573a95a5ca43ddfee891140deb16f 100644 (file)
@@ -882,8 +882,6 @@ pl:
     export_tooltip: Eksport danych mapy
     gps_traces: Ślady GPS
     gps_traces_tooltip: Zarządzanie śladami GPS
-    help_wiki: Pomoc &amp; Wiki
-    help_wiki_tooltip: Pomoc i strony Wiki projektu
     history: Zmiany
     home: główna
     home_tooltip: Przejdź do strony głównej
index b5d6c7edca572b67f9e7cfc53f049ba9bac4f306..ec8eb9f282cc89c8a03ada624606d4bd6772640f 100644 (file)
@@ -901,9 +901,9 @@ pt-BR:
     export_tooltip: Exportar dados do mapa
     gps_traces: Trilhas GPS
     gps_traces_tooltip: Gerenciar trilhas GPS
-    help_wiki: Ajuda & Wiki
-    help_wiki_tooltip: Ajuda &amp; Wiki do projeto
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/Pt-br:Main_Page?uselang=pt-br
+    help: Ajuda
+    help_and_wiki: "{{help}} & {{wiki}}"
+    help_title: Site de ajuda para o projeto
     history: Histórico
     home: início
     home_tooltip: Ir para a sua localização
@@ -950,6 +950,8 @@ pt-BR:
     view_tooltip: Veja o mapa
     welcome_user: Bem vindo, {{user_link}}
     welcome_user_link_tooltip: Sua Página de usuário
+    wiki: Wikia
+    wiki_title: Site wiki para o projeto
   license_page: 
     foreign: 
       english_link: o original em Inglês
index 9f991ccfb0664a39e36692171ec6df4ca72ffacb..d0d057124d157ce4bb606b107a192d95fc167704 100644 (file)
@@ -12,6 +12,7 @@
 # Author: Lockal
 # Author: Yuri Nazarov
 # Author: Александр Сигачёв
+# Author: Сrower
 ru: 
   activerecord: 
     attributes: 
@@ -892,9 +893,9 @@ ru:
     export_tooltip: Экспортировать данные карты
     gps_traces: GPS-треки
     gps_traces_tooltip: Работать с GPS треками
-    help_wiki: Справка и вики
-    help_wiki_tooltip: Справка и вики-сайт проекта
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/RU:Main_Page?uselang=ru
+    help: Помощь
+    help_and_wiki: "{{help}} & {{wiki}}"
+    help_title: Сайт помощи проекта
     history: История
     home: домой
     home_tooltip: Показать мой дом
@@ -934,6 +935,8 @@ ru:
     view_tooltip: Посмотреть карту
     welcome_user: Добро пожаловать, {{user_link}}
     welcome_user_link_tooltip: Ваша страница пользователя
+    wiki: Вики
+    wiki_title: Вики-сайт проекта
   license_page: 
     foreign: 
       english_link: английского оригинала
@@ -1067,6 +1070,7 @@ ru:
     signup_confirm: 
       subject: "[OpenStreetMap] Подтвердите ваш адрес электронной почты"
     signup_confirm_html: 
+      ask_questions: Вы можете задать интересующие Вас вопросы о OpenStreetMap на нашем <a href="http://help.openstreetmap.org/">сайте вопросов и ответов</a> .
       click_the_link: Если это действительно вы — добро пожаловать! Пожалуйста, перейдите по ссылке ниже, чтобы подтвердить регистрацию и просмотреть дополнительную информацию об OpenStreetMap
       current_user: "Список пользователей, основанный на их местоположении, доступен здесь: <a href=\"http://wiki.openstreetmap.org/index.php?title=Category:Users_by_geographical_region&uselang=ru\">Category:Users_by_geographical_region</a>."
       get_reading: Прочтите об OpenStreetMap в <a href="http://wiki.openstreetmap.org/index.php?title=RU:Beginners_Guide&uselang=ru">вики</a>, узнайте последние новости в <a href="http://blog.openstreetmap.org/">блоге OpenStreetMap</a> или в <a href="http://twitter.com/openstreetmap">Twitter</a>. Ознакомьтесь с историей проекта в <a href="http://www.opengeodata.org/">блоге OpenGeoData</a>, автором которого является Стив Коуст (Steve Coast), основатель OpenStreetMap, в этом блоге есть <a href="http://www.opengeodata.org/?cat=13">подкасты</a>, которые также можно прослушать!
@@ -1079,6 +1083,7 @@ ru:
       video_to_openstreetmap: ознакомительное видео об OpenStreetMap
       wiki_signup: Вы можете <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Ru:Main_Page&uselang=ru">зарегистрироваться в вики OpenStreetMap</a>.
     signup_confirm_plain: 
+      ask_questions: "Вы можете задать интересующие Вас вопросы об OpenStreetMap на нашем сайте вопросов и ответов:"
       blog_and_twitter: "Ознакомиться с последними новостями через блог OpenStreetMap или Twitter:"
       click_the_link_1: Если это действительно вы — добро пожаловать! Пожалуйста, перейдите по ссылке ниже, чтобы подтвердить
       click_the_link_2: регистрацию и прочитать больше об OpenStreetMap.
index a5589865718fed921fa2e6eab383177eca87b23d..085990675a036b23900235fd9e30d780c05742de 100644 (file)
@@ -829,8 +829,6 @@ sk:
     export_tooltip: Export mapových dát
     gps_traces: GPS Stopy
     gps_traces_tooltip: Správa GPS stopy
-    help_wiki: Pomocník &amp; Wiki
-    help_wiki_tooltip: Help &amp; Wiki stránka projektu
     history: História
     home: domov
     home_tooltip: Choďte na domácu polohu
index 901eddc539f1683ee8b0d8c7964a5da8df5e48e9..b4c6f4a1dbc5e691f0cafc1e6516c0483b191393 100644 (file)
@@ -479,9 +479,6 @@ sl:
     export_tooltip: Izvozite podatke zemljevida
     gps_traces: GPS sledi
     gps_traces_tooltip: Upravljaj sledi GPS
-    help_wiki: Pomoč in Wiki
-    help_wiki_tooltip: Pomoč in Wiki strani projekta
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/Sl:Main_Page?uselang=sl
     history: Zgodovina
     home: domov
     home_tooltip: Prikaži domači kraj
index a1ec4e369e2498326c60100e5a0e7f5bcb9c817b..6eab2eb6426b874cb0b84cb2b6be508244209218 100644 (file)
@@ -297,9 +297,14 @@ sr-EC:
       save_button: Сними
       subject: "Тема:"
       title: Уреди дневнички унос
+    feed: 
+      all: 
+        title: OpenStreetMap кориснички уноси
     list: 
+      in_language_title: Дневници на {{language}}
       new: Нови дневнички унос
       newer_entries: Новији уноси
+      no_entries: Нема дневничких уноса
       older_entries: Старији уноси
       recent_entries: "Скорашњи дневнички уноси:"
       title: Кориснички дневници
@@ -316,7 +321,9 @@ sr-EC:
     view: 
       leave_a_comment: Оставите коментар
       login: Пријави се
+      login_to_leave_a_comment: "{{login_link}} да оставите коментар"
       save_button: Сними
+      title: "{{user}} дневник | {{title}}"
       user_title: Дневник корисника {{user}}
   export: 
     start: 
@@ -336,7 +343,11 @@ sr-EC:
       options: Подешавања
       osm_xml_data: OpenStreetMap XML подаци
       osmarender_image: Осмарендер слика
+      output: Излаз
+      paste_html: Пренесите HTML како бисте уградили у сајт
       scale: Размера
+      too_large: 
+        heading: Превелика област
       zoom: Увећање
     start_rjs: 
       add_marker: Додајте маркер на мапу
@@ -372,6 +383,15 @@ sr-EC:
     results: 
       more_results: Још резултата
       no_results: Нема резултата претраге
+    search: 
+      title: 
+        ca_postcode: Резултати од <a href="http://geocoder.ca/">Geocoder.ca</a>
+        geonames: Резултати од <a href="http://www.geonames.org/">GeoNames</a>-а
+        latlon: Резултати од <a href="http://openstreetmap.org/">Internal</a>
+        osm_namefinder: Резултати од <a href="http://gazetteer.openstreetmap.org/namefinder/">OpenStreetMap Namefinder</a>
+        osm_nominatim: Резултати од <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>
+        uk_postcode: Резултати од <a href="http://www.npemap.org.uk/">NPEMap / FreeThe Postcode</a>
+        us_postcode: Резултати од <a href="http://geocoder.us/">Geocoder.us</a>
     search_osm_namefinder: 
       suffix_parent: "{{suffix}} ({{parentdistance}} {{parentdirection}} од {{parentname}})"
       suffix_place: ", {{distance}} {{direction}} од {{placename}}"
@@ -381,6 +401,7 @@ sr-EC:
           airport: Аеродром
           arts_centre: Уметнички центар
           atm: Банкомат
+          auditorium: Дворана
           bank: Банка
           bar: Бар
           bench: Клупа
@@ -389,6 +410,7 @@ sr-EC:
           bureau_de_change: Мењачница
           bus_station: Аутобуска станица
           cafe: Кафе
+          car_rental: Изнајмљивање аутомобила
           car_wash: Ауто-перионица
           casino: Казино
           cinema: Биоскоп
@@ -398,6 +420,7 @@ sr-EC:
           courthouse: Зграда суда
           crematorium: Крематоријум
           dentist: Зубар
+          dormitory: Студентски дом
           drinking_water: Пијаћа вода
           driving_school: Ауто-школа
           embassy: Амбасада
@@ -408,15 +431,20 @@ sr-EC:
           fuel: Гориво
           grave_yard: Гробље
           gym: Фитнес центар / Теретана
+          hall: Сала
           health_centre: Дом здравља
           hospital: Болница
           hotel: Хотел
           ice_cream: Сладолед
           kindergarten: Обданиште
           library: Библиотека
+          market: Пијаца
           marketplace: Пијаца
           mountain_rescue: Горска служба
           nightclub: Ноћни клуб
+          nursery: Обданиште
+          nursing_home: Старачки дом
+          office: Пословница
           park: Парк
           parking: Паркинг
           pharmacy: Апотека
@@ -426,6 +454,7 @@ sr-EC:
           preschool: Обданиште
           prison: Затвор
           pub: Паб
+          public_market: Пијаца
           restaurant: Ресторан
           retirement_home: Старачки дом
           sauna: Сауна
@@ -438,55 +467,76 @@ sr-EC:
           telephone: Јавна говорница
           theatre: Позориште
           toilets: Тоалети
+          townhall: Градска скупштина
           university: Универзитет
+          village_hall: Сеоска већница
           waste_basket: Корпа за отпатке
           wifi: Wi-Fi приступ
           youth_centre: Дом омладине
         boundary: 
           administrative: Административна граница
         building: 
+          apartments: Стамбени блок
           bunker: Бункер
           chapel: Капела
           church: Црква
+          city_hall: Градска скупштина
+          dormitory: Студентски дом
           faculty: Факултетска зграда
           flats: Станови
           garage: Гаража
+          hall: Сала
           hospital: Болница
           hotel: Хотел
           house: Кућа
+          residential: Стамбена зграда
           school: Школа
           shop: Продавница
           stadium: Стадион
+          store: Продавница
+          terrace: Тераса
           tower: Торањ
           train_station: Железничка станица
           university: Универзитетска зграда
           "yes": Зграда
         highway: 
           bus_stop: Аутобуска станица
+          byway: Споредни пут
           construction: Аутопут у изградњи
+          cycleway: Бициклистичка стаза
           emergency_access_point: Излаз за случај опасности
           footway: Стаза
           ford: Газ
           gate: Капија
           motorway: Аутопут
+          motorway_junction: Петља
           motorway_link: Мото-пут
           path: Стаза
+          pedestrian: Пешачка стаза
           platform: Платформа
+          primary: Главни пут
           primary_link: Главни пут
           raceway: Тркачка стаза
+          residential: Стамбени
           road: Пут
           secondary: Споредни пут
           secondary_link: Споредни пут
           steps: Степенице
+          track: Коловозна трака
           trail: Стаза
+          trunk: Магистрални пут
           trunk_link: Магистрални пут
         historic: 
           archaeological_site: Археолошко налазиште
+          battlefield: Бојиште
+          boundary_stone: Гранични камен
           building: Зграда
           castle: Дворац
           church: Црква
           house: Кућа
           icon: Икона
+          manor: Племићко имање
+          memorial: Споменик
           mine: Рудник
           monument: Споменик
           museum: Музеј
@@ -496,24 +546,33 @@ sr-EC:
         landuse: 
           basin: Басен
           cemetery: Гробље
+          commercial: Пословна област
           construction: Градилиште
           farm: Фарма
+          farmyard: Сеоско двориште
           forest: Шума
           grass: Трава
           industrial: Индустријска зона
+          landfill: Депонија
           meadow: Ливада
           military: Војна област
           mine: Рудник
           mountain: Планина
           park: Парк
           piste: Скијашка стаза
+          plaza: Шеталиште
           quarry: Каменолом
           railway: Железничка пруга
           reservoir: Резервоар
           residential: Стамбена област
+          retail: Малопродаја
           vineyard: Виноград
+          wetland: Мочвара
           wood: Гај
         leisure: 
+          beach_resort: Морско одмаралиште
+          common: Општинско земљиште
+          fishing: Риболовно подручје
           garden: Башта
           golf_course: Голф терен
           ice_rink: Клизалиште
@@ -535,25 +594,32 @@ sr-EC:
           cave_entrance: Улаз у пећину
           channel: Канал
           cliff: Литица
+          coastline: Обала
           crater: Кратер
           fjord: Фјорд
           geyser: Гејзир
           glacier: Глечер
           hill: Брдо
           island: Острво
+          land: Земљиште
           marsh: Мочвара
+          moor: Вресиште
           mud: Блато
           peak: Врх
+          point: Врх
           reef: Гребен
           ridge: Гребен
           river: Река
           rock: Стена
+          shoal: Спруд
           spring: Извор
           strait: Мореуз
           tree: Дрво
           valley: Долина
           volcano: Вулкан
           water: Вода
+          wetland: Мочвара
+          wetlands: Мочвара
           wood: Гај
         place: 
           airport: Аеродром
@@ -576,7 +642,17 @@ sr-EC:
           town: Варош
           village: Село
         railway: 
+          abandoned: Напуштена железница
+          construction: Железничка пруга у изградњи
+          disused: Напуштена железница
+          historic_station: Историјска железничка станица
+          junction: Железнички чвор
           narrow_gauge: Пруга уског колосека
+          platform: Железничка платформа
+          preserved: Очувана железница
+          station: Железничка станица
+          subway: Станица метроа
+          subway_entrance: Улаз метроа
           tram: Трамвај
           tram_stop: Трамвајско стајалиште
         shop: 
@@ -585,26 +661,35 @@ sr-EC:
           beauty: Салон лепоте
           books: Књижара
           butcher: Месара
+          car_dealer: Ауто дилер
           car_parts: Продавница ауто-делова
           car_repair: Ауто-сервис
+          chemist: Апотекар
           clothes: Бутик
           copyshop: Копирница
+          department_store: Робна кућа
           drugstore: Апотека
           dry_cleaning: Хемијско чишћење
           estate_agent: Агент за некретнине
+          fish: Рибарница
           florist: Цвећара
+          food: Бакалница
           furniture: Намештај
           gallery: Галерија
           gift: Сувенирница
+          greengrocer: Пиљарница
           grocery: Бакалница
           hairdresser: Фризерски салон
           insurance: Осигурање
           jewelry: Јувелирница
           kiosk: Киоск
+          laundry: Сервис за прање рубља
           mall: Тржни центар
           market: Маркет
           music: Музичка продавница
           optician: Оптичар
+          organic: Здрава храна
+          outdoor: Штанд
           photo: Фотографска радња
           salon: Салон
           shoes: Продавница ципела
@@ -630,11 +715,20 @@ sr-EC:
         waterway: 
           canal: Канал
           dam: Брана
+          derelict_canal: Одбачени канал
           ditch: Јарак
+          dock: Пристаниште
+          drain: Одвод
+          lock: Брана
+          lock_gate: Врата бране
           mineral_spring: Минерални извор
+          mooring: Сидриште
           rapids: Брзаци
           river: Река
+          riverbank: Обала реке
+          stream: Водена струја
           waterfall: Водопад
+          weir: Устава
   javascripts: 
     map: 
       base: 
@@ -644,13 +738,13 @@ sr-EC:
       edit_tooltip: Уреди мапу
       history_zoom_alert: Морате увећати како бисте видели историју уређивања
   layouts: 
+    copyright: Ауторска права и лиценца
     donate_link_text: донирање
     edit: Уреди
     export: Извези
     export_tooltip: Извоз мапа
     gps_traces: ГПС трагови
     gps_traces_tooltip: Управљање ГПС траговима
-    help_wiki: Помоћ и вики
     history: Историја
     home: мој дом
     home_tooltip: Иди на почетну локацију
@@ -662,7 +756,7 @@ sr-EC:
       zero: Немате непрочитаних порука
     intro_1: OpenStreetMap је слободна мапа целог света. Сачињавају је корисници као што сте ви.
     intro_2: OpenStreetMap вам омогућава да прегледате, уређујете и користите географске податке са било ког места на Земљи.
-    intro_3: Одржавање OpenStreetMap је подржано од стране {{ucl}} и {{bytemark}}.
+    intro_3: Одржавање OpenStreetMap је подржано од стране {{ucl}} и {{bytemark}}.  Остале присталице пројекта су на списку {{partners}}.
     intro_3_partners: вики
     license: 
       title: Подаци OpenStreetMap сајта су лиценцирани под Creative Commons Attribution-Share Alike 2.0 општом лиценцом
@@ -688,7 +782,9 @@ sr-EC:
     welcome_user_link_tooltip: Ваша корисничка страна
   license_page: 
     foreign: 
+      english_link: Енглески оригинал
       title: О овом преводу
+    legal_babble: "<h2>Ауторска права и лиценца</h2>\n<p>\n   OpenStreetMap чине <i>слободни подаци</i>, лиценцирани под <a\n   href=\"http://creativecommons.org/licenses/by-sa/2.0/sr\">Creative\n   Commons Attribution-ShareAlike 2.0</a> лиценцом (CC-BY-SA).\n</p>\n<p>\n  Слободни сте да копирате, делите, преносите и прилагођавате\n  наше мапе и податке, све док именујете OpenStreetMap и њене\n  уређиваче. Ако желите да мењате или надограђујете наше\n  мапе и податке, можете их делити само под истом лиценцом.\n  Пун <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">\n  текст уговора</a> објашњава ваша права и одговорности.\n</p>\n\n<h3>How to credit OpenStreetMap</h3>\n<p>\n  Ако користите OpenStreetMap слике мапа, тражимо да\n  заслуге садрже бар &ldquo;&copy; OpenStreetMap\n  contributors, CC-BY-SA&rdquo;. Ако користите само податке\n  мапа, тражимо да гласи &ldquo;Map data &copy; OpenStreetMap\n  contributors, CC-BY-SA&rdquo;.\n</p>\n<p>\n  Где је могуће, пожељно је да OpenStreetMap буде хиперлинкован на \n  <a href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n  и CC-BY-SA на <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">\n  http://creativecommons.org/licenses/by-sa/2.0/</a>. Ако користите\n  медијум на коме хипервезе нису могуће (нпр. штампани рад),\n  предлажемо да усмерите вапе читаоце на  www.openstreetmap.org\n  (по могућству проширивањем &lsquo;OpenStreetMap&rsquo;\n  на пуну адресу) и на www.creativecommons.org.\n</p>\n\n<h3>Сазнајте више</h3>\n<p>\n  Прочитајте још о коришћењу наших података на <a\n  href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">Legal\n  FAQ</a>.\n</p>\n<p>\n  OSM уређивачи се подсећају да никада не додају податке\n  од било ког извора заштићеног ауторскип правима (нпр.\n  Google Мапе или штампане мапе) без изричите дозволе\n  носиоца ауторских права.\n</p>\n<p>\n  Иако OpenStreetMap чине слободни подаци, не можемо обезбедити\n  бесплатне АПИ мапа другим програмерима.\n\n  Погледајте нашу <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">API Usage Policy</a>,\n  <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Tile Usage Policy</a>\n  и <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Nominatim Usage Policy</a>.\n</p>\n\n<h3>Наши сарадници</h3>\n<p>\n  Наша CC-BY-SA лиценца захтева да &ldquo;Морате да\n  наведете име изворног аутора на начин који је одређен\n  од стране изворног аутора или даваоца лиценце&rdquo;.\n  Индивидуални OSM не захтевају истицање заслуга осим\n  &ldquo;OpenStreetMap сарадници&rdquo;, али када су\n  подаци припадају националној географској агенцији\n  или другом већем извору који је укључен у\n  OpenStreetMap, разумно је директно навести извор\n  или оставити хипервезу до извора.\n</p>\n\n<!--\nInformation for page editors\n\nThe following lists only those organisations who require attribution\nas a condition of their data being used in OpenStreetMap. It is not a\ngeneral catalogue of imports, and must not be used except when\nattribution is required to comply with the licence of the imported\ndata.\n\nAny additions here must be discussed with OSM sysadmins first.\n-->\n\n<ul id=\"contributors\">\n   <li><strong>Australia</strong>: Contains suburb data based\n   on Australian Bureau of Statistics data.</li>\n   <li><strong>Canada</strong>: Contains data from\n   GeoBase&reg;, GeoGratis (&copy; Department of Natural\n   Resources Canada), CanVec (&copy; Department of Natural\n   Resources Canada), and StatCan (Geography Division,\n   Statistics Canada).</li>\n   <li><strong>New Zealand</strong>: Contains data sourced from\n   Land Information New Zealand. Crown Copyright reserved.</li>\n   <li><strong>Poland</strong>: Contains data from <a\n   href=\"http://ump.waw.pl/\">UMP-pcPL maps</a>. Copyright\n   UMP-pcPL contributors.</li>\n   <li><strong>United Kingdom</strong>: Contains Ordnance\n   Survey data &copy; Crown copyright and database right\n   2010.</li>\n</ul>\n\n<p>\n  Inclusion of data in OpenStreetMap does not imply that the original\n  data provider endorses OpenStreetMap, provides any warranty, or\n  accepts any liability.\n</p>"
     native: 
       mapping_link: почни мапирање
       title: О овој страници
@@ -762,6 +858,7 @@ sr-EC:
       hopefully_you: Неко (вероватно ви) би желео да промени адресу е-поште са {{server_url}} на {{new_address}}.
     email_confirm_plain: 
       greeting: Поздрав,
+      hopefully_you_2: "{{server_url}} на {{new_address}}."
     friend_notification: 
       subject: "[OpenStreetMap] {{user}} вас је додао за пријатеља"
     gpx_notification: 
@@ -797,6 +894,15 @@ sr-EC:
       submit: Уреди
     form: 
       name: Име
+    index: 
+      application: Име апликације
+      register_new: Региструј своју апликацију
+      revoke: Опозови!
+    new: 
+      submit: Региструј
+      title: Региструј нову апликацију
+    not_found: 
+      sorry: Жао нам је, {{type}} није могло бити пронађено.
   site: 
     edit: 
       user_page_link: корисничка страна
@@ -814,11 +920,15 @@ sr-EC:
           bridge: Црни оквир = мост
           brownfield: Грађевинско земљиште
           building: Значајна зграда
+          byway: Споредни пут
+          cable: 
+            - Жичара
           cemetery: Гробље
           centre: Спортски центар
           commercial: Пословна област
           common: 
-            1: ливада
+            - Пољана
+            - ливада
           construction: Путеви у изградњи
           cycleway: Бициклистичка стаза
           farm: Фарма
@@ -838,6 +948,7 @@ sr-EC:
           rail: Железничка пруга
           reserve: Парк природе
           resident: Стамбена област
+          retail: Малопродајна област
           runway: 
             - Аеродромска писта
           school: 
@@ -850,12 +961,13 @@ sr-EC:
             - Узвишење
             - врх
           tourist: Туристичка атракција
-          track: Ð¡Ñ\82аза
+          track: Ð\9aоловозна Ñ\82Ñ\80ака
           tram: 
             - Лака железница
             - трамвај
           trunk: Магистрални пут
           tunnel: Испрекидан оквир = тунел
+          unclassified: Некатегорисан пут
           unsurfaced: Подземни пут
           wood: Гај
         heading: Легенда за  увећање {{zoom_level}}
@@ -963,7 +1075,11 @@ sr-EC:
   user: 
     account: 
       contributor terms: 
+        agreed: Сложили сте се са новим условима уређивања.
+        agreed_with_pd: Такође се слажете да ваше измене буду у јавном власништву.
+        heading: "Услови уређивања:"
         link text: шта је ово?
+        not yet agreed: Још се нисте сложили са новим условима уређивања.
       current email address: "Тренутна адреса е-поште:"
       delete image: Уклони тренутну слику
       email never displayed publicly: (не приказуј јавно)
@@ -971,6 +1087,8 @@ sr-EC:
       flash update success confirm needed: Подаци о кориснику успешно ажурирани. Проверите вашу е-пошту како бисте потврдивли нову адресу е-поште.
       home location: "Моја локација:"
       image: "Слика:"
+      image size hint: (квадратна слика од отприлике 100x100 се најбоље уклапа)
+      keep image: Задржи тренутну слику
       latitude: "Географска ширина:"
       longitude: "Географска дужина:"
       make edits public button: Нека све моје измене буду јавне
@@ -983,6 +1101,8 @@ sr-EC:
       public editing: 
         disabled link text: зашто не могу да уређујем?
         enabled link text: шта је ово?
+      public editing note: 
+        heading: Јавне измене
       return to profile: Повратак на профил
       save changes button: Сачувај промене
       title: Уреди налог
@@ -1002,15 +1122,18 @@ sr-EC:
       summary_no_ip: "{{name}}, направљен {{date}}"
       title: Корисници
     login: 
+      account not active: Извињавамо се, ваш налог још није активиран. <br />Молимо пратите везу у е-мејлу за потврду налога како бисте га активирали.
       create_account: направите налог
       email or username: "Адреса е-поште или корисничко име:"
       heading: Пријављивање
       login_button: Пријавите се
       lost password link: Изгубили сте лозинку?
+      notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Сазнајте више о предстојећој OpenStreetMap промени лиценце</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">преводи</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">дискусије</a>)
       password: "Лозинка:"
       please login: Молимо пријавите се или {{create_user_link}}.
       remember: "Запамти ме:"
       title: Пријављивање
+      webmaster: администратор
     logout: 
       logout_button: Одјави се
       title: Одјави се
@@ -1041,6 +1164,9 @@ sr-EC:
     popup: 
       friend: Пријатељ
       your location: Ваша локација
+    remove_friend: 
+      not_a_friend: "{{name}} није један од ваших пријатеља."
+      success: "{{name}} је уклоњен из ваших пријатеља."
     reset_password: 
       confirm password: "Потврдите лозинку:"
       flash changed: Ваша лозинка је промењена.
@@ -1050,21 +1176,29 @@ sr-EC:
       title: Обнови лозинку
     set_home: 
       flash success: Ваша локација је успешно сачувана
+    suspended: 
+      heading: Суспендован налог
+      title: Суспендован налог
+      webmaster: администратор
     terms: 
+      agree: Прихвати
       consider_pd_why: шта је ово?
+      decline: Одбаци
       legale_names: 
         france: Француска
         italy: Италија
         rest_of_world: Остатак света
     view: 
       add as friend: додај за пријатеља
+      ago: (пре {{time_in_words_ago}})
+      blocks on me: моја блокирања
       confirm: Потврди
       create_block: блокирај овог корисника
       delete_user: избриши овог корисника
       description: Опис
       diary: дневник
       edits: измене
-      email address: "Ð\95-меÑ\98л Ð°Ð´Ñ\80еÑ\81а:"
+      email address: "Ð\90дÑ\80еÑ\81а Ðµ-поÑ\88Ñ\82е:"
       km away: "{{count}}km далеко"
       m away: "{{count}}m далеко"
       mapper since: "Мапер од:"
@@ -1074,7 +1208,7 @@ sr-EC:
       my traces: моји трагови
       nearby users: "Остали корисници у близини:"
       new diary entry: нови дневнички унос
-      no friends: Још нисте додали ни једног пријатеља.
+      no friends: Још нисте додали ниједног пријатеља.
       remove as friend: уклони као пријатеља
       role: 
         administrator: Овај корисник је администратор
@@ -1084,6 +1218,7 @@ sr-EC:
         moderator: Овај корисник је модератор
       send message: пошаљи поруку
       settings_link_text: подешавања
+      status: "Статус:"
       traces: трагови
       user location: Локација корисника
       your friends: Ваши пријатељи
@@ -1092,7 +1227,10 @@ sr-EC:
       confirm: Јесте ли сигурни?
       display_name: Блокирани корисник
       edit: Уреди
+      not_revoked: (није опозван)
       reason: Разлози блокирања
+      revoke: Опозови!
+      revoker_name: Опозвао
       show: Прикажи
       status: Стање
     period: 
index 880cde52ad7f2d002ae41b0861de777b0b586d5e..237e4bd988cced8bddab96aeab025220b0f19cd2 100644 (file)
@@ -683,8 +683,12 @@ sv:
         cycle_map: Cykelkarta
         noname: NoName
     site: 
+      edit_disabled_tooltip: Zooma in för att redigera kartan
+      edit_tooltip: Redigera kartan
       edit_zoom_alert: Du måste zooma in för att kunna ändra kartan
-      history_zoom_alert: Du måste zooma in för att kunna se karterings historik.
+      history_disabled_tooltip: Zooma in för att kunna se karteringshistorik för detta område
+      history_tooltip: Visa ändringar för detta område
+      history_zoom_alert: Du måste zooma in för att kunna se karteringshistorik.
   layouts: 
     donate: Donera till OpenStreetMap via {{link}} till hårdvaruuppgraderingsfonden.
     donate_link_text: donera
@@ -692,9 +696,7 @@ sv:
     export: Exportera
     export_tooltip: Exportera kartdata som bild eller rådata
     gps_traces: GPS-spår
-    gps_traces_tooltip: Hantera spår
-    help_wiki: Hjälp &amp; wiki
-    help_wiki_tooltip: Hjälp och wiki för projektet
+    gps_traces_tooltip: Visa, ladda upp och ändra GPS-spår.
     history: Historik
     home: hem
     home_tooltip: Gå till hempositionen
@@ -878,6 +880,7 @@ sv:
       map_key: Kartnyckel
       table: 
         entry: 
+          admin: Administrativ gräns
           allotments: Koloniträdgårdar
           apron: 
             - Flygplatsterminal
@@ -931,7 +934,7 @@ sv:
         heading: Symbolförklaring för z{{zoom_level}}
     search: 
       search: Sök
-      search_help: "exempel: 'Delsbo', 'Storgatan, Svedala', 'post offices near Hässelby' <a href='http://wiki.openstreetmap.org/wiki/Sv:Search'>Fler exempel..</a>"
+      search_help: "exempel: 'Delsbo', 'Storgatan, Svedala', <a href='http://wiki.openstreetmap.org/wiki/Sv:Search'>Fler exempel..</a>"
       submit_text: Gå
       where_am_i: Var är jag
     sidebar: 
index 86d7e5920e8a611cc3697fe61d81faab0b47007b..7b1b0d940cccdf6c4dc95f12a024b45956db3130 100644 (file)
@@ -889,9 +889,6 @@ uk:
     export_tooltip: Експортувати картографічні дані
     gps_traces: GPS-треки
     gps_traces_tooltip: Управління GPS треками
-    help_wiki: Довідка та Вікі
-    help_wiki_tooltip: Довідка та Вікі проекту
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/Uk:Main_Page?uselang=uk
     history: Історія
     home: додому
     home_tooltip: Показати моє місце знаходження
index 2234e9900c50808a2175cf6fbce58e73dad383b0..b782cde99edafee0433d4f60479a45b7b5884096 100644 (file)
@@ -796,9 +796,9 @@ vi:
     export_tooltip: Xuất dữ liệu bản đồ
     gps_traces: Tuyến đường GPS
     gps_traces_tooltip: Quản lý tuyến đường GPS
-    help_wiki: Trợ giúp &amp; Wiki
-    help_wiki_tooltip: Site trợ giúp &amp; wiki của dự án
-    help_wiki_url: http://wiki.openstreetmap.org/wiki/Vi:Main_Page?uselang=vi
+    help: Trợ giúp
+    help_and_wiki: "{{help}} & {{wiki}}"
+    help_title: Trang trợ giúp của dự án
     history: Lịch sử
     home: nhà
     home_tooltip: Về vị trí nhà
@@ -840,6 +840,8 @@ vi:
     view_tooltip: Xem bản đồ
     welcome_user: Hoan nghênh, {{user_link}}
     welcome_user_link_tooltip: Trang cá nhân của bạn
+    wiki: Wiki
+    wiki_title: Trang wiki của dự án
   license_page: 
     foreign: 
       english_link: nguyên bản tiếng Anh
@@ -973,6 +975,7 @@ vi:
     signup_confirm: 
       subject: "[OpenStreetMap] Xác nhận địa chỉ thư điện tử của bạn"
     signup_confirm_html: 
+      ask_questions: Có thể đặt bất kỳ câu hỏi mà bạn có về OpenStreetMap tại <a href="http://help.openstreetmap.org/">trang hỏi đáp</a>.
       click_the_link: Nếu bạn là người đó, hoan nghênh! Xin hãy nhấn chuột vào liên kết ở dưới để xác nhân tài khoản đó và đọc tiếp để tìm hiểu thêm về OpenStreetMap.
       current_user: Có danh sách các người dùng, xếp thể loại theo nơi ở, tại <a href="http://wiki.openstreetmap.org/wiki/Category:Users_by_geographical_region?uselang=vi">Category:Users by geographical region</a>.
       get_reading: Bắt đầu tìm hiểu về OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/Vi:Beginners%27_Guide?uselang=vi">tại wiki</a>, theo dõi tin tức gần đây tại <a href="http://blog.openstreetmap.org/">blog OpenGeoData</a> hay <a href="http://twitter.com/openstreetmap">Twitter</a>, hoặc đọc <a href="http://www.opengeodata.org/">blog</a> và nghe <a href="http://www.opengeodata.org/?cat=13">podcast</a> của nhà sáng lập Steve Coast!
@@ -985,6 +988,7 @@ vi:
       video_to_openstreetmap: video giới thiệu về OpenStreetMap
       wiki_signup: Có lẽ bạn cũng muốn <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Vi:Main_Page&uselang=vi">mở tài khoản ở wiki OpenStreetMap</a>.
     signup_confirm_plain: 
+      ask_questions: "Có thể đặt bất kỳ câu hỏi mà bạn có về OpenStreetMap tại trang hỏi đáp:"
       blog_and_twitter: "Theo dõi tin tức gần đây tại blog OpenStreetMap và Twitter:"
       click_the_link_1: Nếu bạn là người đó, hoan nghênh! Xin hãy nhấn chuột vào liên kết ở dưới để
       click_the_link_2: xác nhận tài khoản của bạn và đọc tiếp để tìm hiểu thêm về OpenStreetMap.
index 506f122cc71657c45aafc7fc208b25c95c90dcfa..acb58db76dcbb8f8d285f11555e7ad853ab2a72b 100644 (file)
@@ -269,7 +269,6 @@ zh-CN:
     export_tooltip: 输出地图数据
     gps_traces: GPS 追踪
     gps_traces_tooltip: 管理追踪
-    help_wiki: 帮助 &amp; Wiki
     history: 历史
     home: 主页
     home_tooltip: 回到主页位置
index c057a09c1ab6c81bafb20d60c2d31e3884e967f2..dba21ca2146755a139ddb93af6985f0cdf85dba2 100644 (file)
@@ -454,8 +454,6 @@ zh-TW:
     export_tooltip: 匯出地圖資料
     gps_traces: GPS 軌跡
     gps_traces_tooltip: 管理 GPS 軌跡
-    help_wiki: 求助 &amp; Wiki
-    help_wiki_tooltip: 本計畫的求助 &amp; Wiki 網站
     history: 歷史
     home: 家
     home_tooltip: 移至家位置
index d90bc5c603e8ce5eaf71535c69c4bc7a321694d0..f81d47c3fa50b51e0058ef8ccbea8d72c691b48f 100644 (file)
@@ -24,4 +24,3 @@ police        amenity=police
 place_of_worship       amenity=place_of_worship
 museum tourism=museum
 school amenity=school
-disaster       building=yes;earthquake_damage=(type damage here)
index 1f4bf9d92a368610793b21f95aade5bfa2770d0e..0b1220aa28ebf50311d0b76c78b0fcbbff35f02c 100644 (file)
@@ -1,6 +1,7 @@
 # Messages for Czech (Česky)
 # Exported from translatewiki.net
 # Export driver: syck
+# Author: Mormegil
 cs: 
   a_poi: $1 bod zájmu
   a_way: $1 cestu
@@ -56,7 +57,7 @@ cs:
   prompt_launch: Otevřít externí webovou adresu?
   prompt_revertversion: "Vrátit se ke dříve uložené verzi:"
   prompt_savechanges: Uložit změny
-  prompt_taggedpoints: Některé uzle této cesty mají tagy, opravdu smazat?
+  prompt_taggedpoints: Některé body na této cestě jsou označené nebo v relacích. Opravdu smazat?
   prompt_track: Převede vaši GPS stopu na (uzamčené) cesty, které následně můžete upravit.
   prompt_welcome: Vítejte na OpenStreetMap
   save: Uložit změny
@@ -66,7 +67,7 @@ cs:
   tip_anticlockwise: Proti směru hodinových ručiček (kliknutím otočíte směr kruhové cesty)
   tip_clockwise: Po směru hodinových ručiček (kliknutím otočíte směr kruhové cesty)
   tip_direction: Směr cesty (kliknutím otočíte)
-  tip_gps: Zobrazit GPX stopy (GPS logy) (G)
+  tip_gps: Zobrazit GPS stopy (G)
   tip_noundo: Není, co vzít zpět
   tip_options: Možnosti (vyberte si mapu na pozadí)
   tip_presettype: Zvolit skupinu předvoleb v menu.
index b4ab59545fd6f0fcc540e43619785ebf0c4b60a4..3ff037a52b12325f4ff7b56c9518ca7239b60fc0 100644 (file)
@@ -2,6 +2,7 @@
 # Exported from translatewiki.net
 # Export driver: syck
 # Author: Mvrban
+# Author: SpeedyGonsales
 hr: 
   a_poi: $1 POI (točka interesa)
   a_way: $1 put
@@ -64,8 +65,8 @@ hr:
   emailauthor: \n\nMolim pošalji e-mail richard\@systemeD.net sa izvješćem o bug-u, recite što ste radili u to vrijeme.
   error_anonymous: Ne možete kontaktirati anonimnog mappera.
   error_connectionfailed: Žao mi je, veza sa OpenstreetMap serverom nije uspjela. Neke nedavne promjene nisu spremljene.\n\nŽelite li pokušati ponovno?
-  error_microblog_long: "Slanje na $1 nije uspjelo:\nHTTP code: $2\nPoruka o grešci: $3\n$1 greška: $4"
-  error_nopoi: POI se ne može naći (možda ste pomakli kartu), tako da nemogu poništiti.
+  error_microblog_long: "Slanje na $1 nije uspjelo:\nHTTP kod pogreške: $2\nTekst pogreške: $3\n$1 pogreška: $4"
+  error_nopoi: POI se ne može naći (možda ste pomakli kartu), tako da ne mogu poništiti.
   error_nosharedpoint: Putevi $1 i $2 više ne dijele zajedničku točku, pa se ne mogu razdvojiti.
   error_noway: Put $1 se ne može pronaći (možda ste pomakli kartu?), pa ne mogu poništiti.
   error_readfailed: Žao mi je, OpenStreetMap server nije reagirao kada je bio upitan za podatke.\n\nŽelite li pokušati ponovno?
@@ -129,19 +130,22 @@ hr:
   option_layer_ooc_25k: UK povijesni 1:25k
   option_layer_ooc_7th: "UK povijesni: 7th"
   option_layer_ooc_npe: "UK povijesni: NPE"
+  option_layer_ooc_scotland: "UK povijesni: Škotska"
+  option_layer_os_streetview: "UK: OS pregled ulica"
   option_layer_streets_haiti: "Haiti: imena ulica"
+  option_layer_surrey_air_survey: "UK: Surrey fotografije iz zraka"
   option_layer_tip: Izaberite pozadinu za prikaz
   option_limitways: Upozori kada se učitava puno podataka
   option_microblog_id: "Naziv Microbloga:"
   option_microblog_pwd: "Microblog lozinka:"
   option_noname: Osvjetli neimenovane ceste
   option_photo: "Fotografija KML:"
-  option_thinareas: Koristi take linije za područja
+  option_thinareas: Koristi tanke linije za područja
   option_thinlines: Koristi tanke linije u svim uvećanjima
   option_tiger: Osvjetli nepromjenjeni TIGER
   option_warnings: Prikaži plutajuća upozorenja
   point: Točka
-  preset_icon_airport: Aerodrom
+  preset_icon_airport: Zračna luka
   preset_icon_bar: Bar
   preset_icon_bus_stop: Autobusno stajalište
   preset_icon_cafe: Caffe bar
@@ -189,7 +193,7 @@ hr:
   retry: Pokušaj ponovo
   revert: Vrati na staro
   save: Spremi
-  tags_backtolist: Povratak na listu
+  tags_backtolist: Povratak na popis
   tags_descriptions: Opisi '$1'
   tags_findatag: Pronađi oznaku (tag)
   tags_findtag: Pronađi oznaku (tag)
@@ -217,8 +221,8 @@ hr:
   uploading_deleting_ways: Brišem puteve
   uploading_poi: Uploadiram POI $1
   uploading_poi_name: Uploadiram POI $1, $2
-  uploading_relation: Upoloadiram relaciju $1
-  uploading_relation_name: Uploadiram relaciju $1, $2
+  uploading_relation: Snimam relaciju $1 na poslužitelj
+  uploading_relation_name: Snimam relaciju $1, $2 na poslužitelj
   uploading_way: Uploadiram put $1
   uploading_way_name: Uploadiram put $1, $2
   warning: Upozorenje!
index baa3c4f0a3746f65b73430beb42b5417d5bb1ef8..d9c99994f4e7d72ee3f3241aa6037f211568a4ce 100644 (file)
@@ -5,8 +5,10 @@
 lb: 
   a_way: $1 ee Wee
   action_deletepoint: e Punkt läschen
+  action_mergeways: Zwee Weeër zesummeleeën
   action_movepoint: e Punkt réckelen
   action_splitway: e Wee opdeelen
+  advanced: Erweidert
   advanced_inspector: Inspekter
   advanced_maximise: Fënster maximéieren
   advanced_minimise: Fënster minimiséieren
@@ -22,12 +24,16 @@ lb:
   delete: Läschen
   deleting: läschen
   heading_drawing: Zeechnen
+  heading_introduction: Aféierung
   help: Hëllef
+  hint_loading: Donnéeë lueden
   inspector: Inspekter
+  inspector_duplicate: Doublon vu(n)
   inspector_locked: Gespaart
   inspector_node_count: ($1 mol)
   inspector_unsaved: Net gespäichert
   inspector_uploading: (eroplueden)
+  inspector_way_nodes: $1 Kniet
   loading: Lueden...
   login_pwd: "Passwuert:"
   login_uid: "Benotzernumm:"
@@ -37,10 +43,15 @@ lb:
   offset_motorway: Autobunn (D3)
   ok: OK
   option_layer_cycle_map: OSM - Vëloskaart
+  option_layer_nearmap: "Australien: NearMap"
+  option_layer_os_streetview: "UK : OS StreetView"
   option_layer_streets_haiti: "Haiti: Stroossennimm"
   option_photo: "Foto-KML:"
+  point: Punkt
   preset_icon_airport: Fluchhafen
   preset_icon_bar: Bar
+  preset_icon_bus_stop: Busarrêt
+  preset_icon_cafe: Café
   preset_icon_cinema: Kino
   preset_icon_disaster: Haiti Gebai
   preset_icon_ferry_terminal: Fähr
@@ -50,24 +61,40 @@ lb:
   preset_icon_museum: Musée
   preset_icon_parking: Parking
   preset_icon_pharmacy: Apdikt
+  preset_icon_police: Policebüro
+  preset_icon_post_box: Bréifboîte
   preset_icon_pub: Bistro
+  preset_icon_recycling: Recyclage
   preset_icon_restaurant: Restaurant
   preset_icon_school: Schoul
   preset_icon_station: Gare
   preset_icon_supermarket: Supermarché
   preset_icon_telephone: Telefon
   preset_icon_theatre: Theater
+  prompt_addtorelation: $1 bäi eng Relatioun derbäisetzen
   prompt_changesetcomment: "Gitt eng Beschreiwung vun Ären Ännerungen:"
+  prompt_editlive: Live änneren
+  prompt_editsave: Mat späicheren änneren
+  prompt_helpavailable: Neie Benotzer? Kuckt ënne lenks fir Hëllef.
+  prompt_launch: Extern URL opmaachen
+  prompt_revertversion: "Op eng méi fréi gespäichert Versioun zerécksetzen:"
   prompt_savechanges: Ännerunge späicheren
+  prompt_welcome: Wëllkomm op OpenStreetMap!
   retry: Nach eng Kéier probéieren
   revert: Zrécksetzen
   save: Späicheren
   tags_backtolist: Zréck op d'Lëscht
   tags_descriptions: Beschreiwunge vu(n) '$1'
+  tip_alert: Et ass e Feeler geschitt - klickt hei fir weider Detailer
+  tip_options: Optiounen astellen (Sicht den Hannergrond vun der Kaart eraus)
   tip_photo: Fotoe lueden
+  tip_undo: $1 réckgängeg maachen (Z)
   uploading: Eroplueden...
   uploading_deleting_ways: Weeër läschen
+  uploading_poi: POI $1 eroplueden
+  uploading_poi_name: POI $1, $2 eroplueden
   uploading_relation: Realtioun $1 eroplueden
+  uploading_way: Wee $1 eroplueden
   warning: Warnung
   way: Wee
   "yes": Jo
index 61003b4b7064eb5669b750128ffa249118382685..6b9d1a32c44348cd1f17bbd3536bef9eac5793ce 100644 (file)
@@ -80,7 +80,7 @@ mk:
   heading_tagging: Означување
   heading_troubleshooting: Отстранување неисправности
   help: Помош
-  help_html: "<!--\n\n========================================================================================================================\nСÑ\82Ñ\80аниÑ\86а 1: Ð\92овед\n\n--><headline>Ð\94обÑ\80едоÑ\98довÑ\82е Ð²Ð¾ Potlatch</headline>\n<largeText>Potlatch Ðµ Ñ\83Ñ\80едник Ð½Ð° OpenStreetMap ÐºÐ¾Ñ\98 Ðµ Ð»ÐµÑ\81ен Ð·Ð° Ñ\83поÑ\82Ñ\80еба. Ð¦Ñ\80Ñ\82аÑ\98Ñ\82е Ð¿Ð°Ñ\82иÑ\88Ñ\82а, Ð·Ð½Ð°Ð¼ÐµÐ½Ð¸Ñ\82оÑ\81Ñ\82и, Ñ\81помениÑ\86и Ð¸ Ð¿Ñ\80одавниÑ\86и Ð¾Ð´ Ð²Ð°Ñ\88иÑ\82е GPS Ð¿Ð¾Ð´Ð°Ñ\82оÑ\86и, Ñ\81аÑ\82елиÑ\82Ñ\81ки Ñ\81лики Ð¸Ð»Ð¸ Ñ\81Ñ\82аÑ\80и ÐºÐ°Ñ\80Ñ\82и.\n\nÐ\9eвие Ñ\81Ñ\82Ñ\80аниÑ\86и Ð·Ð° Ð¿Ð¾Ð¼Ð¾Ñ\88 Ñ\9cе Ð²Ðµ Ð·Ð°Ð¿Ð¾Ð·Ð½Ð°Ð°Ñ\82 Ñ\81о Ð¾Ñ\81новиÑ\82е Ð½Ð° ÐºÐ¾Ñ\80иÑ\81Ñ\82еÑ\9aе Ð½Ð° Potlatch, Ð¸ Ñ\9cе Ð²Ð¸ Ð¿Ð¾ÐºÐ°Ð¶Ð°Ñ\82 ÐºÐ°Ð´Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ð´Ð¾Ð·Ð½Ð°ÐµÑ\82е Ð¿Ð¾Ð²ÐµÑ\9cе. Ð\9aликнеÑ\82е Ð½Ð° Ð½Ð°Ñ\81ловиÑ\82е Ð¿Ð¾Ð³Ð¾Ñ\80е Ð·Ð° Ð´Ð° Ð¿Ð¾Ñ\87неÑ\82е.\n\nÐ\97а Ð´Ð° Ð¸Ð·Ð»ÐµÐ·ÐµÑ\82е, ÐºÐ»Ð¸ÐºÐ½ÐµÑ\82е Ð±Ð¸Ð»Ð¾ ÐºÐ°Ð´Ðµ Ð²Ð¾Ð½ Ð¿Ñ\80озоÑ\80еÑ\86ов.\n\n</largeText>\n\n<column/><headline>Ð\9aоÑ\80иÑ\81но Ð´Ð° Ñ\81е Ð·Ð½Ð°Ðµ</headline>\n<bodyText>Ð\9dе ÐºÐ¾Ð¿Ð¸Ñ\80аÑ\98Ñ\82е Ð¾Ð´ Ð´Ñ\80Ñ\83ги ÐºÐ°Ñ\80Ñ\82и!\n\nÐ\90ко Ð¸Ð·Ð±ÐµÑ\80еÑ\82е â\80\9eУÑ\80едÑ\83ваÑ\9aе Ð²Ð¾ Ð¶Ð¸Ð²Ð¾â\80\9c, Ñ\81иÑ\82е Ð¿Ñ\80омени ÐºÐ¾Ð¸ Ñ\9cе Ð³Ð¸ Ð½Ð°Ð¿Ñ\80авиÑ\82е Ð¾Ð´Ð°Ñ\82 Ð½Ð° Ð±Ð°Ð·Ð°Ñ\82а Ð´Ð¾Ð´ÐµÐºÐ° Ð³Ð¸ Ñ\86Ñ\80Ñ\82аÑ\82е - Ñ\82.е. <i>веднаÑ\88</i>. Ð\90ко Ð½Ðµ Ñ\81Ñ\82е Ñ\82олкÑ\83 Ñ\81игÑ\83Ñ\80ни Ð²Ð¾ Ð¿Ñ\80омениÑ\82е, Ð¾Ð´Ð±ÐµÑ\80еÑ\82е â\80\9eУÑ\80едÑ\83ваÑ\9aе Ñ\81о Ð·Ð°Ñ\87Ñ\83вÑ\83ваÑ\9aеâ\80\9c, Ð¸ Ñ\82ака Ð¿Ñ\80омениÑ\82е Ñ\9cе Ñ\81е Ð¿Ð¾Ñ\98аваÑ\82 Ð´Ñ\83Ñ\80и ÐºÐ¾Ð³Ð° Ñ\9cе Ñ\81Ñ\82иÑ\81неÑ\82е Ð½Ð° â\80\9eÐ\97аÑ\87Ñ\83ваÑ\98â\80\9c.\n\nСиÑ\82е Ð½Ð°Ð¿Ñ\80авени Ñ\83Ñ\80едÑ\83ваÑ\9aа Ñ\9cе Ñ\81е Ð¿Ð¾ÐºÐ°Ð¶Ð°Ñ\82 Ð¿Ð¾ Ñ\87аÑ\81-два (на Ð½ÐµÐºÐ¾Ð»ÐºÑ\83 Ð¿Ð¾Ñ\81ложени Ñ\80абоÑ\82и Ð¸Ð¼ Ñ\82Ñ\80еба ÐµÐ´Ð½Ð° Ð½ÐµÐ´ÐµÐ»Ð°). Ð\9dа ÐºÐ°Ñ\80Ñ\82аÑ\82а Ð½Ðµ Ðµ Ð¿Ñ\80икажано Ñ\81è - Ñ\82оа Ð±Ð¸ Ð±Ð¸Ð» Ð³Ð¾Ð»ÐµÐ¼ Ð½ÐµÑ\80ед. Ð\91идеÑ\98Ñ\9cи Ð¿Ð¾Ð´Ð°Ñ\82оÑ\86иÑ\82е Ð½Ð° OpenStreetMap Ñ\81е Ð¾Ñ\82воÑ\80ен Ð¸Ð·Ð²Ð¾Ñ\80, Ð´Ñ\80Ñ\83гиÑ\82е ÐºÐ¾Ñ\80иÑ\81ниÑ\86и Ñ\81лободно Ð¿Ñ\80аваÑ\82 ÐºÐ°Ñ\80Ñ\82и Ð½Ð° ÐºÐ¾Ð¸ Ñ\81е Ð¿Ñ\80икажани Ñ\80азлиÑ\87ни Ð°Ñ\81пекÑ\82и - ÐºÐ°ÐºÐ¾ <a href=\"http://www.opencyclemap.org/\" target=\"_blank\">OpenCycleMap (Ð\9eÑ\82воÑ\80ена Ð²ÐµÐ»Ð¾Ñ\81ипедÑ\81ка ÐºÐ°Ñ\80Ñ\82а)</a> Ð¸Ð»Ð¸ <a href=\"http://maps.cloudmade.com/?styleId=999\" target=\"_blank\">Midnight Commander</a>.\n\nÐ\97апомнеÑ\82е Ð´ÐµÐºÐ° Ð¾Ð²Ð° Ðµ <i>и</i> Ñ\83бава ÐºÐ°Ñ\80Ñ\82а (заÑ\82оа Ñ\86Ñ\80Ñ\82аÑ\98Ñ\82е Ñ\83бави ÐºÑ\80иви Ð»Ð¸Ð½Ð¸Ð¸ Ð·Ð° ÐºÑ\80ивиниÑ\82е), Ð½Ð¾ Ð¸ Ð´Ð¸Ñ\98агÑ\80ам (заÑ\82оа Ð¿Ñ\80овеÑ\80Ñ\83ваÑ\98Ñ\82е Ð´ÐµÐºÐ° Ð¿Ð°Ñ\82иÑ\88Ñ\82аÑ\82а Ñ\81е Ñ\81Ñ\80еÑ\9cавааÑ\82 Ð½Ð° ÐºÑ\80Ñ\81Ñ\82оÑ\81ниÑ\86и) .\n\nÐ\94али Ð²Ð¸ Ñ\81поменавме Ð´ÐµÐºÐ° Ð½Ðµ Ñ\81мее Ð´Ð° Ñ\81е ÐºÐ¾Ð¿Ð¸Ñ\80а Ð¾Ð´ Ð´Ñ\80Ñ\83ги ÐºÐ°Ñ\80Ñ\82и?\n</bodyText>\n\n<column/><headline>Ð\94ознаÑ\98Ñ\82е Ð¿Ð¾Ð²ÐµÑ\9cе</headline>\n<bodyText><a href=\"http://wiki.openstreetmap.org/wiki/Potlatch\" target=\"_blank\">Potlatch Ð¿Ñ\80иÑ\80аÑ\87ник</a>\n<a href=\"http://lists.openstreetmap.org/\" target=\"_blank\">Ð\9fоÑ\88Ñ\82енÑ\81ки Ñ\81пиÑ\81оÑ\86и</a>\n<a href=\"http://irc.openstreetmap.org/\" target=\"_blank\">РазговоÑ\80и (помоÑ\88 Ð²Ð¾ Ð¶Ð¸Ð²Ð¾)</a>\n<a href=\"http://forum.openstreetmap.org/\" target=\"_blank\">ФоÑ\80Ñ\83м</a>\n<a href=\"http://wiki.openstreetmap.org/\" target=\"_blank\">Ð\92ики Ð½Ð° Ð·Ð°ÐµÐ´Ð½Ð¸Ñ\86аÑ\82а</a>\n<a href=\"http://trac.openstreetmap.org/browser/applications/editors/potlatch\" target=\"_blank\">Ð\98звоÑ\80ен ÐºÐ¾Ð´ Ð½Ð° Potlatch</a>\n</bodyText>\n<!-- News etc. goes here -->\n\n<!--\n========================================================================================================================\nСÑ\82Ñ\80аниÑ\86а 2: ÐºÐ°ÐºÐ¾ Ð´Ð° Ð¿Ð¾Ñ\87неÑ\82е\n\n--><page/><headline>Ð\9aако Ð´Ð° Ð¿Ð¾Ñ\87неÑ\82е</headline>\n<bodyText>Сега Potlatch Ð²Ð¸ Ðµ Ð¾Ñ\82воÑ\80ен. Ð\9aликнеÑ\82е Ð½Ð° â\80\9eУÑ\80еди Ð¸ Ð·Ð°Ñ\87Ñ\83ваÑ\98â\80\9c Ð·Ð° Ð´Ð° Ð¿Ð¾Ñ\87неÑ\82е\n\nÐ\97наÑ\87и Ñ\81пÑ\80емни Ñ\81Ñ\82е Ð´Ð° Ð½Ð°Ñ\86Ñ\80Ñ\82аÑ\82е ÐºÐ°Ñ\80Ñ\82а. Ð\9dаÑ\98леÑ\81но Ðµ Ð´Ð° Ñ\81е Ð¿Ð¾Ñ\87не Ñ\81о Ð¿Ð¾Ñ\81Ñ\82авеÑ\9aе Ð½Ð° Ñ\82оÑ\87ки Ð¾Ð´ Ð¸Ð½Ñ\82еÑ\80еÑ\81 Ð½Ð° ÐºÐ°Ñ\80Ñ\82аÑ\82а (POI). Ð\9eвие Ð¼Ð¾Ð¶Ð°Ñ\82 Ð´Ð° Ð±Ð¸Ð´Ð°Ñ\82 Ñ\80еÑ\81Ñ\82оÑ\80ани, Ñ\86Ñ\80кви, Ð¶ÐµÐ»ÐµÐ·Ð½Ð¸Ñ\87ки Ñ\81Ñ\82аниÑ\86и...Ñ\81è Ñ\88Ñ\82о Ñ\81акаÑ\82е.</bodytext>\n\n<column/><headline>Ð\92леÑ\87еÑ\9aе Ð¸ Ð¿Ñ\83Ñ\88Ñ\82аÑ\9aе</headline>\n<bodyText>Ð\97а Ð´Ð° Ð²Ð¸ Ð¾Ð»ÐµÑ\81ниме, Ð³Ð¸ Ð¿Ð¾Ñ\81Ñ\82авивме Ð½Ð°Ñ\98Ñ\87еÑ\81Ñ\82иÑ\82е Ð²Ð¸Ð´Ð¾Ð²Ð¸ Ð½Ð° Ñ\82оÑ\87ки Ð¾Ð´ Ð¸Ð½Ñ\82еÑ\80еÑ\81 (POI), Ð½Ð° Ð´Ð½Ð¾Ñ\82о Ð¾Ð´ ÐºÐ°Ñ\80Ñ\82аÑ\82а. Ð\9dа ÐºÐ°Ñ\80Ñ\82аÑ\82а Ñ\81е Ñ\81Ñ\82авааÑ\82 Ñ\81о Ð½Ð¸Ð²Ð½Ð¾ Ð¿Ð¾Ð²Ð»ÐµÐºÑ\83ваÑ\9aе Ð¸ Ð¿Ñ\83Ñ\88Ñ\82аÑ\9aе Ð½Ð° Ñ\81аканоÑ\82о Ð¼ÐµÑ\81Ñ\82о. Ð\98 Ð½Ðµ Ð³Ñ\80ижеÑ\82е Ñ\81е Ð°ÐºÐ¾ Ð½Ðµ Ñ\81Ñ\82е Ð³Ð¾ Ð¿Ð¾Ð³Ð¾Ð´Ð¸Ð»Ðµ Ð¼ÐµÑ\81Ñ\82оÑ\82о Ð¾Ð´ Ð¿Ñ\80в Ð¿Ð°Ñ\82: Ð¼Ð¾Ð¶ÐµÑ\82е Ñ\82оÑ\87киÑ\82е Ð´Ð° Ð¿Ð¾Ð²Ð»ÐµÐºÑ\83ваÑ\82е Ð¿Ð¾Ð²Ñ\82оÑ\80но, Ñ\81è Ð´Ð¾Ð´ÐµÐºÐ° Ð½Ðµ Ñ\98а Ð½Ð°Ð¼ÐµÑ\81Ñ\82иÑ\82е Ñ\81екоÑ\98а Ñ\82оÑ\87ка ÐºÐ°Ð´ÐµÑ\88Ñ\82о Ñ\81акаÑ\82е.\n\nÐ\9aога Ñ\81Ñ\82е Ð³Ð¾Ñ\82ови Ñ\81о Ñ\82оа, Ñ\81Ñ\82авеÑ\82е Ð¼Ñ\83 Ð¸Ð¼Ðµ Ð½Ð° Ñ\80еÑ\81Ñ\82оÑ\80аноÑ\82 (или Ñ\86Ñ\80кваÑ\82а, Ñ\81Ñ\82аниÑ\86аÑ\82а Ð¸Ñ\82н.) Ð\9dа Ð´Ð½Ð¾Ñ\82о Ñ\9cе Ñ\81е Ð¿Ð¾Ñ\98ави Ð¼Ð°Ð»Ð° Ñ\82абела. Ð\95дна Ð¾Ð´ Ñ\81Ñ\82авкиÑ\82е Ñ\9cе Ð±Ð¸Ð´Ðµ â\80\9eимеâ\80\9c, Ð¸ Ð´Ð¾ Ð½ÐµÐ³Ð¾ â\80\9e\82Ñ\83ка Ð²Ð½ÐµÑ\81еÑ\82е Ð¸Ð¼Ðµ)â\80\9c. Ð\9aликнеÑ\82е Ð½Ð° Ñ\82оÑ\98 Ñ\82екÑ\81Ñ\82 Ð¸ Ð²Ð¿Ð¸Ñ\88еÑ\82е Ð³Ð¾ Ð¸Ð¼ÐµÑ\82о.\n\nÐ\9aликнеÑ\82е Ð´Ñ\80Ñ\83где Ð½Ð° ÐºÐ°Ñ\80Ñ\82аÑ\82а Ð·Ð° Ð´Ð° Ð³Ð¾ Ð¾Ð´Ð¸Ð·Ð±ÐµÑ\80еÑ\82е Ð²Ð°Ñ\88аÑ\82а Ñ\82оÑ\87ка Ð¾Ð´ Ð¸Ð½Ñ\82еÑ\80еÑ\81 (POI), Ð¸ Ñ\82ака Ñ\9cе Ñ\81е Ð²Ñ\80аÑ\82и Ð¼Ð°Ð»Ð¸Ð¾Ñ\82 Ñ\88аÑ\80ен Ð¿Ñ\80авоаголник.\n\nÐ\9bеÑ\81но Ðµ, Ð½ÐµÐ»Ð¸? Ð\9aликнеÑ\82е Ð½Ð° â\80\9eÐ\97аÑ\87Ñ\83ваÑ\98â\80\9c (наÑ\98долÑ\83-деÑ\81но) ÐºÐ¾Ð³Ð° Ñ\81Ñ\82е Ð³Ð¾Ñ\82ови.\n</bodyText><column/><headline>Ð\94вижеÑ\9aе Ð¿Ð¾ ÐºÐ°Ñ\80Ñ\82аÑ\82а</headline>\n<bodyText>Ð\97а Ð´Ð° Ð¾Ñ\82идеÑ\82е Ð½Ð° Ð´Ñ\80Ñ\83г Ð´ÐµÐ» Ð¾Ð´ ÐºÐ°Ñ\80Ñ\82аÑ\82а, Ñ\81амо Ð¿Ð¾Ð²Ð»ÐµÑ\87еÑ\82е Ð¿Ñ\80азен Ð¿Ñ\80оÑ\81Ñ\82оÑ\80. Potlatch Ð°Ð²Ñ\82омаÑ\82Ñ\81ки Ñ\9cе Ð²Ñ\87иÑ\82а Ð½Ð¾Ð²Ð¸ Ð¿Ð¾Ð´Ð°Ñ\82оÑ\86и (гледаÑ\98Ñ\82е Ð½Ð°Ñ\98гоÑ\80е-деÑ\81но)\n\nÐ\92и Ñ\80ековме Ð´Ð° â\80\9eУÑ\80едиÑ\82е Ð¸ Ð·Ð°Ñ\87Ñ\83ваÑ\82еâ\80\9c, Ð½Ð¾ Ð¼Ð¾Ð¶ÐµÑ\82е Ð¸ Ð´Ð° ÐºÐ»Ð¸ÐºÐ½ÐµÑ\82е Ð½Ð° â\80\9eУÑ\80едÑ\83ваÑ\9aе Ð²Ð¾ Ð¶Ð¸Ð²Ð¾â\80\9c. Ð\9fод Ð¾Ð²Ð¾Ñ\98 Ñ\80ежим Ð¿Ñ\80омениÑ\82е Ð¾Ð´Ð°Ñ\82 Ð¿Ñ\80аво Ð²Ð¾ Ð±Ð°Ð·Ð°Ñ\82а, Ð¸ Ð·Ð°Ñ\82оа Ð½ÐµÐ¼Ð° ÐºÐ¾Ð¿Ñ\87е â\80\9eÐ\97аÑ\87Ñ\83ваÑ\98â\80\9c. Ð\9eва Ðµ Ð´Ð¾Ð±Ñ\80о Ð·Ð° Ð±Ñ\80зи Ð¿Ñ\80омени Ð¸ <a href=\"http://wiki.openstreetmap.org/wiki/Current_events\" target=\"_blank\">каÑ\80Ñ\82огÑ\80аÑ\84Ñ\81ки Ð°ÐºÑ\86ии</a>.</bodyText>\n\n<headline>Следни Ñ\87екоÑ\80и</headline>\n<bodyText>Ð\97адоволни Ñ\81Ñ\82е Ð¾Ð´ Ð´Ð¾Ñ\81егаÑ\88ноÑ\82о? Ð\9eдлиÑ\87но. Ð\9aликнеÑ\82е Ð½Ð° â\80\9eÐ\98Ñ\81Ñ\82Ñ\80ажÑ\83ваÑ\9aеâ\80\9c Ð¿Ð¾Ð³Ð¾Ñ\80е Ð·Ð° Ð´Ð° Ð´Ð¾Ð·Ð½Ð°ÐµÑ\82е ÐºÐ°ÐºÐ¾ Ð´Ð° Ð±Ð¸Ð´ÐµÑ\82е <i>виÑ\81Ñ\82инÑ\81ки</i> ÐºÐ°Ñ\80Ñ\82огÑ\80аÑ\84!</bodyText>\n\n<!--\n========================================================================================================================\nСÑ\82Ñ\80аниÑ\86а 3: Ð\98Ñ\81Ñ\82Ñ\80ажÑ\83ваÑ\9aе\n\n--><page/><headline>Ð\98Ñ\81Ñ\82Ñ\80ажÑ\83ваÑ\9aе Ñ\81о GPS</headline>\n<bodyText>Ð\98деÑ\98аÑ\82а Ð¿Ð¾Ð·Ð°Ð´Ð¸ OpenStreetMap  Ðµ Ñ\81оздаваÑ\9aе Ð½Ð° ÐºÐ°Ñ\80Ñ\82а Ð±ÐµÐ· Ð¾Ð³Ñ\80аниÑ\87Ñ\83ваÑ\87киÑ\82е Ð°Ð²Ñ\82оÑ\80Ñ\81ки Ð¿Ñ\80ава ÐºÐ¾Ð¸ Ð³Ð¸ Ð¸Ð¼Ð°Ð°Ñ\82 Ð´Ñ\80Ñ\83ги ÐºÐ°Ñ\80Ñ\82и. Ð\9eва Ð·Ð½Ð°Ñ\87и Ð´ÐµÐºÐ° Ð¾Ð²Ð´ÐµÑ\88ниÑ\82е ÐºÐ°Ñ\80Ñ\82и Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ð³Ð¸ ÐºÐ¾Ð¿Ð¸Ñ\80аÑ\82е Ð¾Ð´ Ð½Ð¸ÐºÐ°Ð´Ðµ: Ð¼Ð¾Ñ\80аÑ\82е Ñ\81амиÑ\82е Ð´Ð° Ð³Ð¸ Ð¸Ñ\81Ñ\82Ñ\80ажиÑ\82е Ñ\83лиÑ\86иÑ\82е. Ð\97а Ñ\81Ñ\80еÑ\9cа, Ð¾Ð²Ð° Ðµ Ð¼Ð½Ð¾Ð³Ñ\83 Ð·Ð°Ð±Ð°Ð²Ð½Ð¾!\nÐ\9dаÑ\98добÑ\80о Ðµ Ð´Ð° Ñ\81е Ð·ÐµÐ¼Ðµ Ñ\80аÑ\87ен GPS-Ñ\83Ñ\80ед. Ð\9fÑ\80онаÑ\98деÑ\82е Ð½ÐµÐºÐ¾Ñ\98 Ñ\80егион ÐºÐ¾Ñ\98 Ñ\81è Ñ\83Ñ\88Ñ\82е Ð½Ðµ Ðµ Ð½Ð° ÐºÐ°Ñ\80Ñ\82аÑ\82а. Ð\9fÑ\80оÑ\88еÑ\82аÑ\98Ñ\82е Ð¿Ð¾ Ñ\83лиÑ\86иÑ\82е, Ð¸Ð»Ð¸ Ð¸Ð·Ð²Ð¾Ð·ÐµÑ\82е Ð³Ð¸ Ð½Ð° Ð²ÐµÐ»Ð¾Ñ\81ипед, Ð´Ñ\80жаÑ\98Ñ\9cи Ð³Ð¾ Ñ\83Ñ\80едоÑ\82 Ð²ÐºÐ»Ñ\83Ñ\87ен. Ð\9fо Ð¿Ð°Ñ\82 Ð·Ð°Ð¿Ð¸Ñ\88Ñ\83ваÑ\98Ñ\82е Ð³Ð¸ Ð¸Ð¼Ð¸Ñ\9aаÑ\82а Ð½Ð° Ñ\83лиÑ\86иÑ\82е, Ð¸ Ñ\81еÑ\82о Ð¾Ð½Ð° Ñ\88Ñ\82о Ð²Ðµ Ð¸Ð½Ñ\82еÑ\80еÑ\81иÑ\80а (Ñ\80еÑ\81Ñ\82оÑ\80ани? Ñ\86Ñ\80кви?).\n\nÐ\9aога Ñ\9cе Ð´Ð¾Ñ\98деÑ\82е Ð´Ð¾Ð¼Ð°, Ð²Ð°Ñ\88иоÑ\82 GPS-Ñ\83Ñ\80ед Ñ\9cе Ñ\81одÑ\80жи Ñ\82.н. â\80\9eзапиÑ\81ник Ð½Ð° Ñ\82Ñ\80агиâ\80\9c (tracklog) ÐºÐ¾Ñ\98 Ð¸Ð¼Ð° ÐµÐ²Ð¸Ð´ÐµÐ½Ñ\86иÑ\98а Ð·Ð° Ñ\81екаде ÐºÐ°Ð´ÐµÑ\88Ñ\82о Ñ\81Ñ\82е Ð±Ð¸Ð»Ðµ. Ð\9fоÑ\82оа Ð¾Ð²Ð° Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ð³Ð¾ Ð¿Ð¾Ð´Ð¸Ð³Ð½ÐµÑ\82е Ð½Ð° OpenStreetMap.\n\nÐ\9dаÑ\98добÑ\80иоÑ\82 Ð²Ð¸Ð´ Ð½Ð° GPS-Ñ\83Ñ\80ед Ðµ Ð¾Ð½Ð¾Ñ\98 Ñ\88Ñ\82о Ð·Ð°Ð¿Ð¸Ñ\88Ñ\83ва Ñ\87еÑ\81Ñ\82о (на Ñ\81екоÑ\98а Ñ\81екÑ\83нда-две) Ð¸ Ð¸Ð¼Ð° Ð³Ð¾Ð»ÐµÐ¼Ð¾ Ð¿Ð°Ð¼Ñ\82еÑ\9aе. Ð\93олем Ð´ÐµÐ» Ð¾Ð´ Ð½Ð°Ñ\88иÑ\82е ÐºÐ°Ñ\80Ñ\82огÑ\80аÑ\84и ÐºÐ¾Ñ\80иÑ\81Ñ\82аÑ\82 Ñ\80аÑ\87ни Garmin Ð°Ð¿Ð°Ñ\80аÑ\82и, Ð¸Ð»Ð¸ Bluetooth-Ñ\83Ñ\80еди. Ð\9dа Ð½Ð°Ñ\88еÑ\82о Ð²Ð¸ÐºÐ¸ Ñ\9cе Ð½Ð°Ñ\98деÑ\82е Ð¿Ð¾Ð´Ñ\80обни <a href=\"http://wiki.openstreetmap.org/wiki/GPS_Reviews\" target=\"_blank\">анализа Ð½Ð° GPS-Ñ\83Ñ\80еди</a></bodyText>\n\n<column/><headline>Ð\9fодигаÑ\9aе Ð½Ð° Ð¿Ð°Ñ\82екаÑ\82а</headline>\n<bodyText>Сега Ñ\9cе Ñ\82Ñ\80еба Ð´Ð° Ñ\98а Ð¿Ñ\80еÑ\84Ñ\80лиÑ\82е Ñ\82Ñ\80агаÑ\82а Ð¾Ð´ GPS-Ñ\83Ñ\80едоÑ\82. Ð\9cожеби Ñ\83Ñ\80едоÑ\82 Ð¸Ð¼Ð° Ñ\81воÑ\98а Ð¿Ñ\80огÑ\80амÑ\81ка Ð¾Ð¿Ñ\80ема, Ð¸Ð»Ð¸ Ð¿Ð°Ðº Ð¾Ð´ Ð½ÐµÐ³Ð¾ Ð¿Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е ÐºÐ¾Ð¿Ð¸Ñ\80ааÑ\82 Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82еки Ð¿Ñ\80едкÑ\83 USB. Ð\90ко Ð½Ðµ Ð¼Ð¾Ð¶Ðµ, Ð¿Ñ\80обаÑ\98Ñ\82е Ð³Ð¾ <a href=\"http://www.gpsbabel.org/\" target=\"_blank\">GPSBabel</a>. Ð\9aако Ð¸ Ð´Ð° Ðµ, Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82екаÑ\82а Ð²Ð¾ Ñ\81екоÑ\98 Ñ\81лÑ\83Ñ\87аÑ\98 Ñ\82Ñ\80еба Ð´Ð° Ð±Ð¸Ð´Ðµ Ð²Ð¾ GPX Ñ\84оÑ\80маÑ\82.\n\nÐ\9fоÑ\82оа Ð¾Ð´ÐµÑ\82е Ð½Ð° â\80\9eGPS Ñ\82Ñ\80агиâ\80\9c Ð¸ Ð¿Ð¾Ð´Ð¸Ð³Ð½ÐµÑ\82е Ñ\98а Ñ\82Ñ\80агаÑ\82а Ð½Ð° OpenStreetMap. Ð\9dо Ð¾Ð²Ð° Ðµ Ñ\81амо Ð¿Ñ\80виоÑ\82 Ñ\87екоÑ\80 - Ñ\82Ñ\80агаÑ\82а Ñ\81è Ñ\83Ñ\88Ñ\82е Ð½ÐµÐ¼Ð° Ð´Ð° Ñ\81е Ð¿Ð¾Ñ\98ави Ð½Ð° ÐºÐ°Ñ\80Ñ\82аÑ\82а. Ð\9cоÑ\80аÑ\82е Ñ\81амиÑ\82е Ð´Ð° Ð³Ð¸ Ð½Ð°Ñ\86Ñ\80Ñ\82аÑ\82е Ð¸ Ð¸Ð¼ÐµÐ½Ñ\83ваÑ\82е Ñ\83лиÑ\86иÑ\82е, Ñ\81ледеÑ\98Ñ\9cи Ñ\98а Ñ\82Ñ\80агаÑ\82а.</bodyText>\n<headline>Ð\9aоÑ\80иÑ\81Ñ\82еÑ\9aе Ð½Ð° Ñ\82Ñ\80агаÑ\82а</headline>\n<bodyText>Ð\9fÑ\80онаÑ\98деÑ\82е Ñ\98а Ð²Ð°Ñ\88аÑ\82а Ð¿Ð¾Ð´Ð¸Ð³Ð½Ð°Ñ\82а Ñ\82Ñ\80ага Ð²Ð¾ Ñ\81пиÑ\81окоÑ\82 Ð½Ð° â\80\9eGPS Ñ\82Ñ\80агиâ\80\9c Ð¸ ÐºÐ»Ð¸ÐºÐ½ÐµÑ\82е Ð½Ð° â\80\9eÑ\83Ñ\80едиâ\80\9c <i>веднаÑ\88 Ð´Ð¾ Ð½ÐµÐ°</i>. Potlatch Ñ\9cе Ð·Ð°Ð¿Ð¾Ñ\87не Ñ\81о Ð¾Ð²Ð°Ð° Ð²Ñ\87иÑ\82ана Ñ\82Ñ\80ага, Ð¿Ð»Ñ\83Ñ\81 Ð°ÐºÐ¾ Ð¸Ð¼Ð° Ð¿Ð°Ñ\82ни Ñ\82оÑ\87ки. Ð¡ÐµÐ³Ð° Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ñ\86Ñ\80Ñ\82аÑ\82е!\n\n<img src=\"gps\">Ð\9cожеÑ\82е Ð¸ Ð´Ð° ÐºÐ»Ð¸ÐºÐ½ÐµÑ\82е Ð½Ð° Ð¾Ð²Ð° ÐºÐ¾Ð¿Ñ\87е Ð·Ð° Ð´Ð° Ð²Ð¸ Ñ\81е Ð¿Ñ\80икажаÑ\82 GPS Ñ\82Ñ\80агиÑ\82е Ð½Ð° Ñ\81иÑ\82е ÐºÐ¾Ñ\80иÑ\81ниÑ\86и (но Ð½Ðµ Ð¿Ð°Ñ\82ниÑ\82е Ñ\82оÑ\87ки) Ð·Ð° Ñ\82ековниоÑ\82 Ñ\80еон. Ð\94Ñ\80жеÑ\82е Shift Ð·Ð° Ð´Ð° Ñ\81е Ð¿Ñ\80икажаÑ\82 Ñ\81амо Ð²Ð°Ñ\88иÑ\82е Ñ\82Ñ\80аги.</bodyText>\n<column/><headline>Ð\9aоÑ\80иÑ\81Ñ\82еÑ\9aе Ð½Ð° Ñ\81аÑ\82елиÑ\82Ñ\81ки Ñ\81лики</headline>\n<bodyText>Ð\9dе Ð³Ñ\80ижеÑ\82е Ñ\81е Ð°ÐºÐ¾ Ð½ÐµÐ¼Ð°Ñ\82е GPS-Ñ\83Ñ\80ед. Ð\92о Ð½ÐµÐºÐ¾Ð¸ Ð³Ñ\80адови Ð¸Ð¼Ð°Ð¼Ðµ Ñ\81аÑ\82елиÑ\82Ñ\81ки Ñ\84оÑ\82огÑ\80аÑ\84ии Ð²Ñ\80з ÐºÐ¾Ð¸ Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ñ\86Ñ\80Ñ\82аÑ\82е, Ð´Ð¾Ð±Ð¸ÐµÐ½Ð¸ Ñ\81о Ð¿Ð¾Ð´Ð´Ñ\80Ñ\88ка Ð¾Ð´ Yahoo! (благодаÑ\80име!). Ð\98злезеÑ\82е Ð¸ Ð·Ð°Ð¿Ð¸Ñ\88еÑ\82е Ð³Ð¸ Ð¸Ð¼Ð¸Ñ\9aаÑ\82а Ð½Ð° Ñ\83лиÑ\86иÑ\82е, Ð¿Ð° Ð²Ñ\80аÑ\82еÑ\82е Ñ\81е Ð¸ Ð¸Ñ\81Ñ\86Ñ\80Ñ\82аÑ\98Ñ\82е Ð³Ð¸ Ð»Ð¸Ð½Ð¸Ð¸Ñ\82е Ð²Ñ\80з Ð½Ð¸Ð².\n\n<img src='prefs'>Ð\94околкÑ\83 Ð½Ðµ Ð³Ð»ÐµÐ´Ð°Ñ\82е Ñ\81аÑ\82елиÑ\82Ñ\81ки Ñ\81лики, ÐºÐ»Ð¸ÐºÐ½ÐµÑ\82е Ð½Ð° ÐºÐ¾Ð¿Ñ\87еÑ\82о Ð·Ð° Ð¿Ñ\80илагодÑ\83ваÑ\9aа Ð¸ Ð¿Ñ\80овеÑ\80еÑ\82е Ð´Ð°Ð»Ð¸ Ðµ Ð¾Ð´Ð±Ñ\80ано â\80\9eYahoo!â\80\9c Ð\90ко Ñ\81è Ñ\83Ñ\88Ñ\82е Ð½Ðµ Ð³Ð¸ Ð³Ð»ÐµÐ´Ð°Ñ\82е, Ñ\82огаÑ\88 Ð²ÐµÑ\80оÑ\98аÑ\82но Ñ\82акви Ñ\81лики Ñ\81е Ð½ÐµÐ´Ð¾Ñ\81Ñ\82апни Ð·Ð° Ð²Ð°Ñ\88иоÑ\82 Ð³Ñ\80ад, Ð¸Ð»Ð¸ Ð¿Ð°Ðº Ñ\82Ñ\80еба Ð¼Ð°Ð»ÐºÑ\83 Ð´Ð° Ð¾Ð´Ð´Ð°Ð»ÐµÑ\87иÑ\82е.\n\nÐ\9dа Ð¸Ñ\81Ñ\82ово ÐºÐ¾Ð¿Ñ\87е Ð·Ð° Ð¿Ñ\80илагодÑ\83ваÑ\9aа Ð¸Ð¼Ð° Ð¸ Ð´Ñ\80Ñ\83ги Ð¸Ð·Ð±Ð¾Ñ\80и ÐºÐ°ÐºÐ¾ ÐºÐ°Ñ\80Ñ\82и Ð½Ð° Ð\91Ñ\80иÑ\82аниÑ\98а Ñ\81о Ð¸Ñ\81Ñ\82еÑ\87ени Ð¿Ñ\80ава Ð¸ OpenTopoMap. Ð¡Ð¸Ñ\82е Ñ\82ие Ñ\81е Ñ\81пеÑ\86иÑ\98ално Ð¸Ð·Ð±Ñ\80ани Ð±Ð¸Ð´ÐµÑ\98Ñ\9cи Ð½Ð¸ Ðµ Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾ Ð´Ð° Ð³Ð¸ ÐºÐ¾Ñ\80иÑ\81Ñ\82име- Ð½Ðµ ÐºÐ¾Ð¿Ð¸Ñ\80аÑ\98Ñ\82е Ð½Ð¸Ñ\87ии ÐºÐ°Ñ\80Ñ\82и Ð¸ Ð²Ð¾Ð·Ð´Ñ\83Ñ\88ни Ñ\84оÑ\82огÑ\80аÑ\84ии (Ð\97акониÑ\82е Ð·Ð° Ð°Ð²Ñ\82оÑ\80Ñ\81ки Ð¿Ñ\80ава Ñ\81е Ð·Ð° Ð½Ð¸ÐºÐ°Ð´Ðµ.)\n\nÐ\9fонекогаÑ\88 Ñ\81аÑ\82елиÑ\82Ñ\81киÑ\82е Ñ\81лики Ñ\81е Ð¼Ð°Ð»ÐºÑ\83 Ñ\80азмеÑ\81Ñ\82ени Ð¾Ð´ Ñ\84акÑ\82иÑ\87каÑ\82а Ð»Ð¾ÐºÐ°Ñ\86иÑ\98а на патиштата. Ако наидете на ова, држете го Space и влечете ја позадината додека не се порамнат. Секогаш имајте доверба во GPS трагите, а не сателитските слики.</bodytext>\n\n<!--\n========================================================================================================================\nСтраница 4: Цртање\n\n--><page/><headline>Цртање патишта</headline>\n<bodyText>За да нацртате пат почнувајќи од празен простор на картата, само кликнете таму; потоа на секоја точка на патот. Кога сте готови, кликнете два пати или притиснете Enter - потоа кликнете на некое друго место за да го одизберете патот.\n\nЗа да нацртате пат почнувајќи од друг пат, кликнете на патот за да го изберете; неговите точки ќе станат црвени. Држете Shift и кликнете на една од нив за да започнете нов пат од таа точка. (Ако нема црвена точка на крстосницата, направете Shift-клик за да се појави кадешто сакате!)\n\nКликнете на „Зачувај“ (најдолу-десно) кога сте готови. Зачувувајте често, во случај да се јават проблеми со опслужувачот.\n\nНе очекувајте промените веднаш да се појават на главната карта. За ова треба да поминат час-два, а во некои случаи и до една недела.\n</bodyText><column/><headline>Правење крстосници</headline>\n<bodyText>Многу е важно патиштата да имаат заедничка точка („јазол“) кадешто се среќаваат. Ова им служи на корисниците кои планираат пат за да знаат каде да свртат.\n\nPotlatch се грижи за ова доколку внимателно кликнете <i>точно</i> на патот кој го сврзувате. Гледајте ги олеснителните знаци: точките светнуваат сино, курсорот се менува, и кога сте готови, точката на крстосницата има црна контура.</bodyText>\n<headline>Поместување и бришење</headline>\n<bodyText>Ова работи баш како што се би се очекувало. За да избришете точка, одберете ја и притиснете на Delete. За да избришете цел еден пат, притиснете Shift-Delete.\n\nЗа да поместите нешто, само повлечете го. (Ќе треба да кликнете и да подржите малку пред да влечете. Со ова се избегнуваат ненамерни поместувања.)</bodyText>\n<column/><headline>Понапредно цртање</headline>\n<bodyText><img src=\"scissors\">Ако два дела од еден пат имаат различни имиња, ќе треба да ги раздвоите. Кликнете на патот; потоа кликнете во точката кадешто сакате да го раздвоите, и кликнете на ножиците. (Можете да спојувате патишта со Control, или копчето со јаболко на Мекинтош, но не спојувајте два пата со различни имиња или типови.)\n\n<img src=\"tidy\">Кружните текови се многу тешки за цртање. Но за тоа помага самиот Potlatch. Нацртајте го кругот грубо, само внимавајте да ги споите краевите (т.е. да биде круг), и кликнете на „подреди“. (Ова се користи и за исправање на патишта.)</bodyText>\n<headline>Точки од интерес (POI)</headline>\n<bodyText>Првото нешто што го научивте е како да влечете и пуштате точка од интерес. Можете и самите да правите вакви точки со двојно кликнување на картата: ќе се појави зелено кругче. Но како ќе знаеме дали се работи за ресторан, црква или нешто друго? Кликнете на „Означување“ погоре за да дознаете!\n\n<!--\n========================================================================================================================\nСтраница 4: Означување\n\n--><page/><headline>Кој вид на пат е тоа?</headline>\n<bodyText>Штом ќе нацртате пат, треба да назначите што е. Дали е главна магистрала, пешачка патека или река? Како се вика? Има ли некои посебни правила (на пр. „забрането велосипеди“)?\n\nВо OpenStreetMap ова го запишувате со „ознаки“. Ознаката има два дела, и можете да користите колку што сакате ознаки. На пример, можете да додадете i>highway | trunk</i> за да назначите дека ова е главен магистрален пат; <i>highway | residential</i> за пат во населба; or <i>highway | footway</i> за пешачка патека. If bikes were banned, you could then add <i>bicycle | no</i>. Потоа, за да го запишете името, додајте <i>name | Партизански Одреди</i>.\n\nОзнаките на Potlatch се појавуваат најдолу на екранот - кликнете на постоечка улица, и ќе видите каква ознака има. Кликете на знакот „+“ (најдолу-десно) за да додадете нова ознака. Секоја ознака има „x“ со што можете да ја избришете.\n\nМожете да означувате цели патишта; точки на патишта (можеби порта или семафори); и точки од интерес.</bodytext>\n<column/><headline>Користење на зададени ознаки</headline>\n<bodyText>За да ви помогне да започнете, Potlatch ви нуди готови, најпопуларни ознаки.\n\n<img src=\"preset_road\">Одберете го патот, па кликајте низ симболите додека не најдете соодветен. Потоа изберете ја најсоодветната можност од менито.\n\nСо ова се пополнуваат ознаките. Некои ќе останат делумно празни за да можете да впишете (на пример) име на улицата и број</bodyText>\n<headline>Еднонасочни патишта</headline>\n<bodyText>Ви препорачуваме да додадете ознака за еднонасочни улици како <i>oneway | yes</i> - но како да познаете во која насока? Најдолу-лево има стрелка која го означува правецот напатот, од почеток до крај. Кликнете на неа за да ја свртите обратно.</bodyText>\n<column/><headline>Избор на ваши сопствени ознаки</headline>\n<bodyText>Секако, не сте ограничени само на зададените ознаки. Користете го копчето „+“  за да користите какви што сакате ознаки.\n\nМожете да видите какви ознаки користат другите на <a href=\"http://osmdoc.com/en/tags/\" target=\"_blank\">OSMdoc</a>, а имаме и долг список на популарни ознаки на нашето вики наречена<a href=\"http://wiki.openstreetmap.org/wiki/Map_Features\" target=\"_blank\">Елементи</a>. Но тие се <i>само предлози, а не правила</i>. Најслободно измислувајте си свои ознаки или преземајте од други корисници.\n\nБидејќи податоците од OpenStreetMap се користат за изработување на различни карти, секоја карта прикажува свој избор од ознаки.</bodyText>\n<headline>Релации</headline>\n<bodyText>Понекогаш не се доволни само ознаки, па ќе треба да „групирате“ два или повеќе пата. Можеби вртењето од една улица во друга е забрането, или пак 20 патеки заедно сочиннуваат означена велосипедска патека. Ова се прави во напредното мени „релации“. <a href=\"http://wiki.openstreetmap.org/wiki/Relations\" target=\"_blank\">Дознајте повеќе</a> на викито.</bodyText>\n\n<!--\n========================================================================================================================\nСтраница 6: Отстранување неисправности\n\n--><page/><headline>Враќање грешки</headline>\n<bodyText><img src=\"undo\">Ова е копчето за враќање (може и со стискање на Z) - ова ќе го врати последното нешто кое сте го направиле.\n\nМожете да „вратите“ претходно зачувана верзија на еден пат или точка. Одберете ја, па кликнете на нејзиниот ид. бр. (бројот најдолу-лево) - или притиснете на H (за „историја“). Ќе видите список на која се наведува кој ја уредувал и кога. Одберете ја саканата верзија, и стиснете на „Врати“.\n\nДоколку сте избришале пат по грешка и сте зачувале, притиснете U (за да вратите). Ќе се појават сите избришани патишта. Одберете го саканиот пат; отклучете го со кликнување на катанчето; и зачувајте.\n\nМислите дека некој друг корисник направил грешка? Испратете му пријателска порака. Користете ја историјата (H) за да му го изберете името, па кликнете на „Пошта“\n\nКористете го Инспекторот (во менито „Напредно“) за корисни информации за моменталниот пат или точка.\n</bodyText><column/><headline>ЧПП</headline>\n<bodyText><b>Како да ги видам моите патни точки?</b>\nПатните точки се појавуваат само ако кликнете на „уреди“ до името на трагата во „GPS траги“. Податотеката мора да има и патни точки и запис на трагата - опслужувачот не пропушта податотеки кои имаат само патни точки.\n\nПовеќе ЧПП за <a href=\"http://wiki.openstreetmap.org/wiki/Potlatch/FAQs\" target=\"_blank\">Potlatch</a> и <a href=\"http://wiki.openstreetmap.org/wiki/FAQ\" target=\"_blank\">OpenStreetMap</a>.\n</bodyText>\n\n\n<column/><headline>Побрзо работење</headline>\n<bodyText>Што повеќе оддалечувате, тоа повеќе податоци мора да вчита Potlatch. Приближете пред да стиснете на „Уреди“\n\nИсклучете го „Користи курсори „молив“ и „рака““ (во прозорецот за прилагодување) за да добиете максимална брзина.\n\nАко опслужувачот работи бавно, вратете се подоцна. <a href=\"http://wiki.openstreetmap.org/wiki/Platform_Status\" target=\"_blank\">Проверете го викито</a> за да проверите познати проблеми. Некои термини како недела навечер се секогаш оптоварени.\n\nКажете му на Potlatch да ги запамти вашите омилени комплети со ознаки. Одберете пат или точка со тие ознаки, па притиснете на Ctrl, Shift и на број од 1 до 9. Потоа за повторно да ги користите тие ознаки, само притиснете  Shift и тој број. (Ќе се паметат секојпат кога го користите Potlatch на овој сметач.)\n\nПретворете ја вашата GPS трага во пат со тоа што ќе ја пронајдете на списокот „GPS траги“ и ќе кликнете на „уреди“ до неа, а потоа на кутивчето „претвори“. Трагата ќе се заклучи (црвено), затоа не зачувувајте. Најпрвин уредете ја, па кликнете на катанчето (најдолу-десно) за да ја отклучите кога сте спремни да ја зачувате.</bodytext>\n\n<!--\n========================================================================================================================\nСтраница 7: Брза помош\n\n--><page/><headline>Што да кликате</headline>\n<bodyText><b>Влечете ја картата</b> за да се движите наоколу.\n<b>Двоен клик</b> за  да направите нова точка од интерес (POI).\n<b>Кликнете еднап</b> за да започнете нов пат.\n<b>Држете и влечете пат или точка од интерес (POI)</b> за да ги поместите.</bodyText>\n<headline>Кога цртате пат</headline>\n<bodyText><b>Двоен клик</b> или <b>Enter</b> за да завршите со цртање.\n<b>Кликнете</b> на друг пат за да направите крстосница.\n<b>Shift-клик на крајот на друг пат</b> за да споите.</bodyText>\n<headline>Кога ќе изберете пат</headline>\n<bodyText><b>Кликнете на точката</b> за да ја одберете.\n<b>Shift-клик на патот</b> за да вметнете нова точка.\n<b>Shift-клик на точка</b> за оттаму да започнете нов пат.\n<b>Ctrl-клик на друг пат</b> за спојување.</bodyText>\n</bodyText>\n<column/><headline>Тастатурни кратенки</headline>\n<bodyText><textformat tabstops='[25]'>B Додај позадинска изворна ознака\nC Затвори измени\nG Прикажи GPS траги\nH Прикажи историја\nI Прикажи инспектор\nJ сврзи точка за вкрстени патишта\n(+Shift) Unjoin from other ways\nK Заклучи/отклучи го моментално избраното\nL Прикажи моментална географска должина\nM Зголеми уредувачки прозорец\nP Создај паралелен пат\nR Повтори ги ознаките\nS Зачувај (освен ако не е во живо)\nT Подреди во права линија/круг\nU Врати избришано (прикажи избришани патишра)\nX Пресечи пат на две\nZ Врати\n- Отстрани точка само од овој пат\n+ Додај нова ознака\n/ Избор на друг пат со истава точка\n</textformat><textformat tabstops='[50]'>Delete Избриши точка\n  (+Shift) Избриши цел пат\nEnter Заврши со цртање на линијата\nSpace Држи и влечи позадина\nEsc Откажи го ова уредување; превчитај од опслужувачот \n0 Отстрани ги сите ознаки\n1-9 Избор на зададени ознаки\n  (+Shift) Избери запамтени ознаки\n  (+S/Ctrl) Запамти ознаки\n§ или ` Кружи помеѓу групи ознаки\n</textformat>\n</bodyText>"
+  help_html: "<!--\n\n========================================================================================================================\nСÑ\82Ñ\80аниÑ\86а 1: Ð\92овед\n\n--><headline>Ð\94обÑ\80едоÑ\98довÑ\82е Ð²Ð¾ Potlatch</headline>\n<largeText>Potlatch Ðµ Ñ\83Ñ\80едник Ð½Ð° OpenStreetMap ÐºÐ¾Ñ\98 Ðµ Ð»ÐµÑ\81ен Ð·Ð° Ñ\83поÑ\82Ñ\80еба. Ð¦Ñ\80Ñ\82аÑ\98Ñ\82е Ð¿Ð°Ñ\82иÑ\88Ñ\82а, Ð·Ð½Ð°Ð¼ÐµÐ½Ð¸Ñ\82оÑ\81Ñ\82и, Ñ\81помениÑ\86и Ð¸ Ð¿Ñ\80одавниÑ\86и Ð¾Ð´ Ð²Ð°Ñ\88иÑ\82е GPS Ð¿Ð¾Ð´Ð°Ñ\82оÑ\86и, Ñ\81аÑ\82елиÑ\82Ñ\81ки Ñ\81лики Ð¸Ð»Ð¸ Ñ\81Ñ\82аÑ\80и ÐºÐ°Ñ\80Ñ\82и.\n\nÐ\9eвие Ñ\81Ñ\82Ñ\80аниÑ\86и Ð·Ð° Ð¿Ð¾Ð¼Ð¾Ñ\88 Ñ\9cе Ð²Ðµ Ð·Ð°Ð¿Ð¾Ð·Ð½Ð°Ð°Ñ\82 Ñ\81о Ð¾Ñ\81новиÑ\82е Ð½Ð° ÐºÐ¾Ñ\80иÑ\81Ñ\82еÑ\9aе Ð½Ð° Potlatch, Ð¸ Ñ\9cе Ð²Ð¸ Ð¿Ð¾ÐºÐ°Ð¶Ð°Ñ\82 ÐºÐ°Ð´Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ð´Ð¾Ð·Ð½Ð°ÐµÑ\82е Ð¿Ð¾Ð²ÐµÑ\9cе. Ð\9aликнеÑ\82е Ð½Ð° Ð½Ð°Ñ\81ловиÑ\82е Ð¿Ð¾Ð³Ð¾Ñ\80е Ð·Ð° Ð´Ð° Ð¿Ð¾Ñ\87неÑ\82е.\n\nÐ\97а Ð´Ð° Ð¸Ð·Ð»ÐµÐ·ÐµÑ\82е, ÐºÐ»Ð¸ÐºÐ½ÐµÑ\82е Ð±Ð¸Ð»Ð¾ ÐºÐ°Ð´Ðµ Ð²Ð¾Ð½ Ð¿Ñ\80озоÑ\80еÑ\86ов.\n\n</largeText>\n\n<column/><headline>Ð\9aоÑ\80иÑ\81но Ð´Ð° Ñ\81е Ð·Ð½Ð°Ðµ</headline>\n<bodyText>Ð\9dе ÐºÐ¾Ð¿Ð¸Ñ\80аÑ\98Ñ\82е Ð¾Ð´ Ð´Ñ\80Ñ\83ги ÐºÐ°Ñ\80Ñ\82и!\n\nÐ\90ко Ð¸Ð·Ð±ÐµÑ\80еÑ\82е â\80\9eУÑ\80едÑ\83ваÑ\9aе Ð²Ð¾ Ð¶Ð¸Ð²Ð¾â\80\9c, Ñ\81иÑ\82е Ð¿Ñ\80омени ÐºÐ¾Ð¸ Ñ\9cе Ð³Ð¸ Ð½Ð°Ð¿Ñ\80авиÑ\82е Ð¾Ð´Ð°Ñ\82 Ð½Ð° Ð±Ð°Ð·Ð°Ñ\82а Ð´Ð¾Ð´ÐµÐºÐ° Ð³Ð¸ Ñ\86Ñ\80Ñ\82аÑ\82е - Ñ\82.е. <i>веднаÑ\88</i>. Ð\90ко Ð½Ðµ Ñ\81Ñ\82е Ñ\82олкÑ\83 Ñ\81игÑ\83Ñ\80ни Ð²Ð¾ Ð¿Ñ\80омениÑ\82е, Ð¾Ð´Ð±ÐµÑ\80еÑ\82е â\80\9eУÑ\80едÑ\83ваÑ\9aе Ñ\81о Ð·Ð°Ñ\87Ñ\83вÑ\83ваÑ\9aеâ\80\9c, Ð¸ Ñ\82ака Ð¿Ñ\80омениÑ\82е Ñ\9cе Ñ\81е Ð¿Ð¾Ñ\98аваÑ\82 Ð´Ñ\83Ñ\80и ÐºÐ¾Ð³Ð° Ñ\9cе Ñ\81Ñ\82иÑ\81неÑ\82е Ð½Ð° â\80\9eÐ\97аÑ\87Ñ\83ваÑ\98â\80\9c.\n\nСиÑ\82е Ð½Ð°Ð¿Ñ\80авени Ñ\83Ñ\80едÑ\83ваÑ\9aа Ñ\9cе Ñ\81е Ð¿Ð¾ÐºÐ°Ð¶Ð°Ñ\82 Ð¿Ð¾ Ñ\87аÑ\81-два (на Ð½ÐµÐºÐ¾Ð»ÐºÑ\83 Ð¿Ð¾Ñ\81ложени Ñ\80абоÑ\82и Ð¸Ð¼ Ñ\82Ñ\80еба ÐµÐ´Ð½Ð° Ð½ÐµÐ´ÐµÐ»Ð°). Ð\9dа ÐºÐ°Ñ\80Ñ\82аÑ\82а Ð½Ðµ Ðµ Ð¿Ñ\80икажано Ñ\81è - Ñ\82оа Ð±Ð¸ Ð±Ð¸Ð» Ð³Ð¾Ð»ÐµÐ¼ Ð½ÐµÑ\80ед. Ð\91идеÑ\98Ñ\9cи Ð¿Ð¾Ð´Ð°Ñ\82оÑ\86иÑ\82е Ð½Ð° OpenStreetMap Ñ\81е Ð¾Ñ\82воÑ\80ен Ð¸Ð·Ð²Ð¾Ñ\80, Ð´Ñ\80Ñ\83гиÑ\82е ÐºÐ¾Ñ\80иÑ\81ниÑ\86и Ñ\81лободно Ð¿Ñ\80аваÑ\82 ÐºÐ°Ñ\80Ñ\82и Ð½Ð° ÐºÐ¾Ð¸ Ñ\81е Ð¿Ñ\80икажани Ñ\80азлиÑ\87ни Ð°Ñ\81пекÑ\82и - ÐºÐ°ÐºÐ¾ <a href=\"http://www.opencyclemap.org/\" target=\"_blank\">OpenCycleMap (Ð\9eÑ\82воÑ\80ена Ð²ÐµÐ»Ð¾Ñ\81ипедÑ\81ка ÐºÐ°Ñ\80Ñ\82а)</a> Ð¸Ð»Ð¸ <a href=\"http://maps.cloudmade.com/?styleId=999\" target=\"_blank\">Midnight Commander</a>.\n\nÐ\97апомнеÑ\82е Ð´ÐµÐºÐ° Ð¾Ð²Ð° Ðµ <i>и</i> Ñ\83бава ÐºÐ°Ñ\80Ñ\82а (заÑ\82оа Ñ\86Ñ\80Ñ\82аÑ\98Ñ\82е Ñ\83бави ÐºÑ\80иви Ð»Ð¸Ð½Ð¸Ð¸ Ð·Ð° ÐºÑ\80ивиниÑ\82е), Ð½Ð¾ Ð¸ Ð´Ð¸Ñ\98агÑ\80ам (заÑ\82оа Ð¿Ñ\80овеÑ\80Ñ\83ваÑ\98Ñ\82е Ð´ÐµÐºÐ° Ð¿Ð°Ñ\82иÑ\88Ñ\82аÑ\82а Ñ\81е Ñ\81Ñ\80еÑ\9cавааÑ\82 Ð½Ð° ÐºÑ\80Ñ\81Ñ\82оÑ\81ниÑ\86и) .\n\nÐ\94али Ð²Ð¸ Ñ\81поменавме Ð´ÐµÐºÐ° Ð½Ðµ Ñ\81мее Ð´Ð° Ñ\81е ÐºÐ¾Ð¿Ð¸Ñ\80а Ð¾Ð´ Ð´Ñ\80Ñ\83ги ÐºÐ°Ñ\80Ñ\82и?\n</bodyText>\n\n<column/><headline>Ð\94ознаÑ\98Ñ\82е Ð¿Ð¾Ð²ÐµÑ\9cе</headline>\n<bodyText><a href=\"http://wiki.openstreetmap.org/wiki/Potlatch\" target=\"_blank\">Potlatch Ð¿Ñ\80иÑ\80аÑ\87ник</a>\n<a href=\"http://lists.openstreetmap.org/\" target=\"_blank\">Ð\9fоÑ\88Ñ\82енÑ\81ки Ñ\81пиÑ\81оÑ\86и</a>\n<a href=\"http://irc.openstreetmap.org/\" target=\"_blank\">РазговоÑ\80и (помоÑ\88 Ð²Ð¾ Ð¶Ð¸Ð²Ð¾)</a>\n<a href=\"http://forum.openstreetmap.org/\" target=\"_blank\">ФоÑ\80Ñ\83м</a>\n<a href=\"http://wiki.openstreetmap.org/\" target=\"_blank\">Ð\92ики Ð½Ð° Ð·Ð°ÐµÐ´Ð½Ð¸Ñ\86аÑ\82а</a>\n<a href=\"http://trac.openstreetmap.org/browser/applications/editors/potlatch\" target=\"_blank\">Ð\98звоÑ\80ен ÐºÐ¾Ð´ Ð½Ð° Potlatch</a>\n</bodyText>\n<!-- News etc. goes here -->\n\n<!--\n========================================================================================================================\nСÑ\82Ñ\80аниÑ\86а 2: ÐºÐ°ÐºÐ¾ Ð´Ð° Ð¿Ð¾Ñ\87неÑ\82е\n\n--><page/><headline>Ð\9aако Ð´Ð° Ð¿Ð¾Ñ\87неÑ\82е</headline>\n<bodyText>Сега Potlatch Ð²Ð¸ Ðµ Ð¾Ñ\82воÑ\80ен. Ð\9aликнеÑ\82е Ð½Ð° â\80\9eУÑ\80еди Ð¸ Ð·Ð°Ñ\87Ñ\83ваÑ\98â\80\9c Ð·Ð° Ð´Ð° Ð¿Ð¾Ñ\87неÑ\82е\n\nÐ\97наÑ\87и Ñ\81пÑ\80емни Ñ\81Ñ\82е Ð´Ð° Ð½Ð°Ñ\86Ñ\80Ñ\82аÑ\82е ÐºÐ°Ñ\80Ñ\82а. Ð\9dаÑ\98леÑ\81но Ðµ Ð´Ð° Ñ\81е Ð¿Ð¾Ñ\87не Ñ\81о Ð¿Ð¾Ñ\81Ñ\82авеÑ\9aе Ð½Ð° Ñ\82оÑ\87ки Ð¾Ð´ Ð¸Ð½Ñ\82еÑ\80еÑ\81 Ð½Ð° ÐºÐ°Ñ\80Ñ\82аÑ\82а (POI). Ð\9eвие Ð¼Ð¾Ð¶Ð°Ñ\82 Ð´Ð° Ð±Ð¸Ð´Ð°Ñ\82 Ñ\80еÑ\81Ñ\82оÑ\80ани, Ñ\86Ñ\80кви, Ð¶ÐµÐ»ÐµÐ·Ð½Ð¸Ñ\87ки Ñ\81Ñ\82аниÑ\86и...Ñ\81è Ñ\88Ñ\82о Ñ\81акаÑ\82е.</bodytext>\n\n<column/><headline>Ð\92леÑ\87еÑ\9aе Ð¸ Ð¿Ñ\83Ñ\88Ñ\82аÑ\9aе</headline>\n<bodyText>Ð\97а Ð´Ð° Ð²Ð¸ Ð¾Ð»ÐµÑ\81ниме, Ð³Ð¸ Ð¿Ð¾Ñ\81Ñ\82авивме Ð½Ð°Ñ\98Ñ\87еÑ\81Ñ\82иÑ\82е Ð²Ð¸Ð´Ð¾Ð²Ð¸ Ð½Ð° Ñ\82оÑ\87ки Ð¾Ð´ Ð¸Ð½Ñ\82еÑ\80еÑ\81 (POI), Ð½Ð° Ð´Ð½Ð¾Ñ\82о Ð¾Ð´ ÐºÐ°Ñ\80Ñ\82аÑ\82а. Ð\9dа ÐºÐ°Ñ\80Ñ\82аÑ\82а Ñ\81е Ñ\81Ñ\82авааÑ\82 Ñ\81о Ð½Ð¸Ð²Ð½Ð¾ Ð¿Ð¾Ð²Ð»ÐµÐºÑ\83ваÑ\9aе Ð¸ Ð¿Ñ\83Ñ\88Ñ\82аÑ\9aе Ð½Ð° Ñ\81аканоÑ\82о Ð¼ÐµÑ\81Ñ\82о. Ð\98 Ð½Ðµ Ð³Ñ\80ижеÑ\82е Ñ\81е Ð°ÐºÐ¾ Ð½Ðµ Ñ\81Ñ\82е Ð³Ð¾ Ð¿Ð¾Ð³Ð¾Ð´Ð¸Ð»Ðµ Ð¼ÐµÑ\81Ñ\82оÑ\82о Ð¾Ð´ Ð¿Ñ\80в Ð¿Ð°Ñ\82: Ð¼Ð¾Ð¶ÐµÑ\82е Ñ\82оÑ\87киÑ\82е Ð´Ð° Ð¿Ð¾Ð²Ð»ÐµÐºÑ\83ваÑ\82е Ð¿Ð¾Ð²Ñ\82оÑ\80но, Ñ\81è Ð´Ð¾Ð´ÐµÐºÐ° Ð½Ðµ Ñ\98а Ð½Ð°Ð¼ÐµÑ\81Ñ\82иÑ\82е Ñ\81екоÑ\98а Ñ\82оÑ\87ка ÐºÐ°Ð´ÐµÑ\88Ñ\82о Ñ\81акаÑ\82е.\n\nÐ\9aога Ñ\81Ñ\82е Ð³Ð¾Ñ\82ови Ñ\81о Ñ\82оа, Ñ\81Ñ\82авеÑ\82е Ð¼Ñ\83 Ð¸Ð¼Ðµ Ð½Ð° Ñ\80еÑ\81Ñ\82оÑ\80аноÑ\82 (или Ñ\86Ñ\80кваÑ\82а, Ñ\81Ñ\82аниÑ\86аÑ\82а Ð¸Ñ\82н.) Ð\9dа Ð´Ð½Ð¾Ñ\82о Ñ\9cе Ñ\81е Ð¿Ð¾Ñ\98ави Ð¼Ð°Ð»Ð° Ñ\82абела. Ð\95дна Ð¾Ð´ Ñ\81Ñ\82авкиÑ\82е Ñ\9cе Ð±Ð¸Ð´Ðµ â\80\9eимеâ\80\9c, Ð¸ Ð´Ð¾ Ð½ÐµÐ³Ð¾ â\80\9e\82Ñ\83ка Ð²Ð½ÐµÑ\81еÑ\82е Ð¸Ð¼Ðµ)â\80\9c. Ð\9aликнеÑ\82е Ð½Ð° Ñ\82оÑ\98 Ñ\82екÑ\81Ñ\82 Ð¸ Ð²Ð¿Ð¸Ñ\88еÑ\82е Ð³Ð¾ Ð¸Ð¼ÐµÑ\82о.\n\nÐ\9aликнеÑ\82е Ð´Ñ\80Ñ\83где Ð½Ð° ÐºÐ°Ñ\80Ñ\82аÑ\82а Ð·Ð° Ð´Ð° Ð³Ð¾ Ð¾Ð´Ð¸Ð·Ð±ÐµÑ\80еÑ\82е Ð²Ð°Ñ\88аÑ\82а Ñ\82оÑ\87ка Ð¾Ð´ Ð¸Ð½Ñ\82еÑ\80еÑ\81 (POI), Ð¸ Ñ\82ака Ñ\9cе Ñ\81е Ð²Ñ\80аÑ\82и Ð¼Ð°Ð»Ð¸Ð¾Ñ\82 Ñ\88аÑ\80ен Ð¿Ñ\80авоаголник.\n\nÐ\9bеÑ\81но Ðµ, Ð½ÐµÐ»Ð¸? Ð\9aликнеÑ\82е Ð½Ð° â\80\9eÐ\97аÑ\87Ñ\83ваÑ\98â\80\9c (наÑ\98долÑ\83-деÑ\81но) ÐºÐ¾Ð³Ð° Ñ\81Ñ\82е Ð³Ð¾Ñ\82ови.\n</bodyText><column/><headline>Ð\94вижеÑ\9aе Ð¿Ð¾ ÐºÐ°Ñ\80Ñ\82аÑ\82а</headline>\n<bodyText>Ð\97а Ð´Ð° Ð¾Ñ\82идеÑ\82е Ð½Ð° Ð´Ñ\80Ñ\83г Ð´ÐµÐ» Ð¾Ð´ ÐºÐ°Ñ\80Ñ\82аÑ\82а, Ñ\81амо Ð¿Ð¾Ð²Ð»ÐµÑ\87еÑ\82е Ð¿Ñ\80азен Ð¿Ñ\80оÑ\81Ñ\82оÑ\80. Potlatch Ð°Ð²Ñ\82омаÑ\82Ñ\81ки Ñ\9cе Ð²Ñ\87иÑ\82а Ð½Ð¾Ð²Ð¸ Ð¿Ð¾Ð´Ð°Ñ\82оÑ\86и (гледаÑ\98Ñ\82е Ð½Ð°Ñ\98гоÑ\80е-деÑ\81но)\n\nÐ\92и Ñ\80ековме Ð´Ð° â\80\9eУÑ\80едиÑ\82е Ð¸ Ð·Ð°Ñ\87Ñ\83ваÑ\82еâ\80\9c, Ð½Ð¾ Ð¼Ð¾Ð¶ÐµÑ\82е Ð¸ Ð´Ð° ÐºÐ»Ð¸ÐºÐ½ÐµÑ\82е Ð½Ð° â\80\9eУÑ\80едÑ\83ваÑ\9aе Ð²Ð¾ Ð¶Ð¸Ð²Ð¾â\80\9c. Ð\9fод Ð¾Ð²Ð¾Ñ\98 Ñ\80ежим Ð¿Ñ\80омениÑ\82е Ð¾Ð´Ð°Ñ\82 Ð¿Ñ\80аво Ð²Ð¾ Ð±Ð°Ð·Ð°Ñ\82а, Ð¸ Ð·Ð°Ñ\82оа Ð½ÐµÐ¼Ð° ÐºÐ¾Ð¿Ñ\87е â\80\9eÐ\97аÑ\87Ñ\83ваÑ\98â\80\9c. Ð\9eва Ðµ Ð´Ð¾Ð±Ñ\80о Ð·Ð° Ð±Ñ\80зи Ð¿Ñ\80омени Ð¸ <a href=\"http://wiki.openstreetmap.org/wiki/Current_events\" target=\"_blank\">каÑ\80Ñ\82огÑ\80аÑ\84Ñ\81ки Ð°ÐºÑ\86ии</a>.</bodyText>\n\n<headline>Следни Ñ\87екоÑ\80и</headline>\n<bodyText>Ð\97адоволни Ñ\81Ñ\82е Ð¾Ð´ Ð´Ð¾Ñ\81егаÑ\88ноÑ\82о? Ð\9eдлиÑ\87но. Ð\9aликнеÑ\82е Ð½Ð° â\80\9eÐ\98Ñ\81Ñ\82Ñ\80ажÑ\83ваÑ\9aеâ\80\9c Ð¿Ð¾Ð³Ð¾Ñ\80е Ð·Ð° Ð´Ð° Ð´Ð¾Ð·Ð½Ð°ÐµÑ\82е ÐºÐ°ÐºÐ¾ Ð´Ð° Ð±Ð¸Ð´ÐµÑ\82е <i>виÑ\81Ñ\82инÑ\81ки</i> ÐºÐ°Ñ\80Ñ\82огÑ\80аÑ\84!</bodyText>\n\n<!--\n========================================================================================================================\nСÑ\82Ñ\80аниÑ\86а 3: Ð\98Ñ\81Ñ\82Ñ\80ажÑ\83ваÑ\9aе\n\n--><page/><headline>Ð\98Ñ\81Ñ\82Ñ\80ажÑ\83ваÑ\9aе Ñ\81о GPS</headline>\n<bodyText>Ð\98деÑ\98аÑ\82а Ð¿Ð¾Ð·Ð°Ð´Ð¸ OpenStreetMap  Ðµ Ñ\81оздаваÑ\9aе Ð½Ð° ÐºÐ°Ñ\80Ñ\82а Ð±ÐµÐ· Ð¾Ð³Ñ\80аниÑ\87Ñ\83ваÑ\87киÑ\82е Ð°Ð²Ñ\82оÑ\80Ñ\81ки Ð¿Ñ\80ава ÐºÐ¾Ð¸ Ð³Ð¸ Ð¸Ð¼Ð°Ð°Ñ\82 Ð´Ñ\80Ñ\83ги ÐºÐ°Ñ\80Ñ\82и. Ð\9eва Ð·Ð½Ð°Ñ\87и Ð´ÐµÐºÐ° Ð¾Ð²Ð´ÐµÑ\88ниÑ\82е ÐºÐ°Ñ\80Ñ\82и Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ð³Ð¸ ÐºÐ¾Ð¿Ð¸Ñ\80аÑ\82е Ð¾Ð´ Ð½Ð¸ÐºÐ°Ð´Ðµ: Ð¼Ð¾Ñ\80аÑ\82е Ñ\81амиÑ\82е Ð´Ð° Ð³Ð¸ Ð¸Ñ\81Ñ\82Ñ\80ажиÑ\82е Ñ\83лиÑ\86иÑ\82е. Ð\97а Ñ\81Ñ\80еÑ\9cа, Ð¾Ð²Ð° Ðµ Ð¼Ð½Ð¾Ð³Ñ\83 Ð·Ð°Ð±Ð°Ð²Ð½Ð¾!\nÐ\9dаÑ\98добÑ\80о Ðµ Ð´Ð° Ñ\81е Ð·ÐµÐ¼Ðµ Ñ\80аÑ\87ен GPS-Ñ\83Ñ\80ед. Ð\9fÑ\80онаÑ\98деÑ\82е Ð½ÐµÐºÐ¾Ñ\98 Ñ\80егион ÐºÐ¾Ñ\98 Ñ\81è Ñ\83Ñ\88Ñ\82е Ð½Ðµ Ðµ Ð½Ð° ÐºÐ°Ñ\80Ñ\82аÑ\82а. Ð\9fÑ\80оÑ\88еÑ\82аÑ\98Ñ\82е Ð¿Ð¾ Ñ\83лиÑ\86иÑ\82е, Ð¸Ð»Ð¸ Ð¸Ð·Ð²Ð¾Ð·ÐµÑ\82е Ð³Ð¸ Ð½Ð° Ð²ÐµÐ»Ð¾Ñ\81ипед, Ð´Ñ\80жаÑ\98Ñ\9cи Ð³Ð¾ Ñ\83Ñ\80едоÑ\82 Ð²ÐºÐ»Ñ\83Ñ\87ен. Ð\9fо Ð¿Ð°Ñ\82 Ð·Ð°Ð¿Ð¸Ñ\88Ñ\83ваÑ\98Ñ\82е Ð³Ð¸ Ð¸Ð¼Ð¸Ñ\9aаÑ\82а Ð½Ð° Ñ\83лиÑ\86иÑ\82е, Ð¸ Ñ\81еÑ\82о Ð¾Ð½Ð° Ñ\88Ñ\82о Ð²Ðµ Ð¸Ð½Ñ\82еÑ\80еÑ\81иÑ\80а (Ñ\80еÑ\81Ñ\82оÑ\80ани? Ñ\86Ñ\80кви?).\n\nÐ\9aога Ñ\9cе Ð´Ð¾Ñ\98деÑ\82е Ð´Ð¾Ð¼Ð°, Ð²Ð°Ñ\88иоÑ\82 GPS-Ñ\83Ñ\80ед Ñ\9cе Ñ\81одÑ\80жи Ñ\82.н. â\80\9eзапиÑ\81ник Ð½Ð° Ñ\82Ñ\80агиâ\80\9c (tracklog) ÐºÐ¾Ñ\98 Ð¸Ð¼Ð° ÐµÐ²Ð¸Ð´ÐµÐ½Ñ\86иÑ\98а Ð·Ð° Ñ\81екаде ÐºÐ°Ð´ÐµÑ\88Ñ\82о Ñ\81Ñ\82е Ð±Ð¸Ð»Ðµ. Ð\9fоÑ\82оа Ð¾Ð²Ð° Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ð³Ð¾ Ð¿Ð¾Ð´Ð¸Ð³Ð½ÐµÑ\82е Ð½Ð° OpenStreetMap.\n\nÐ\9dаÑ\98добÑ\80иоÑ\82 Ð²Ð¸Ð´ Ð½Ð° GPS-Ñ\83Ñ\80ед Ðµ Ð¾Ð½Ð¾Ñ\98 Ñ\88Ñ\82о Ð·Ð°Ð¿Ð¸Ñ\88Ñ\83ва Ñ\87еÑ\81Ñ\82о (на Ñ\81екоÑ\98а Ñ\81екÑ\83нда-две) Ð¸ Ð¸Ð¼Ð° Ð³Ð¾Ð»ÐµÐ¼Ð¾ Ð¿Ð°Ð¼Ñ\82еÑ\9aе. Ð\93олем Ð´ÐµÐ» Ð¾Ð´ Ð½Ð°Ñ\88иÑ\82е ÐºÐ°Ñ\80Ñ\82огÑ\80аÑ\84и ÐºÐ¾Ñ\80иÑ\81Ñ\82аÑ\82 Ñ\80аÑ\87ни Garmin Ð°Ð¿Ð°Ñ\80аÑ\82и, Ð¸Ð»Ð¸ Bluetooth-Ñ\83Ñ\80еди. Ð\9dа Ð½Ð°Ñ\88еÑ\82о Ð²Ð¸ÐºÐ¸ Ñ\9cе Ð½Ð°Ñ\98деÑ\82е Ð¿Ð¾Ð´Ñ\80обни <a href=\"http://wiki.openstreetmap.org/wiki/GPS_Reviews\" target=\"_blank\">анализа Ð½Ð° GPS-Ñ\83Ñ\80еди</a></bodyText>\n\n<column/><headline>Ð\9fодигаÑ\9aе Ð½Ð° Ð¿Ð°Ñ\82екаÑ\82а</headline>\n<bodyText>Сега Ñ\9cе Ñ\82Ñ\80еба Ð´Ð° Ñ\98а Ð¿Ñ\80еÑ\84Ñ\80лиÑ\82е Ñ\82Ñ\80агаÑ\82а Ð¾Ð´ GPS-Ñ\83Ñ\80едоÑ\82. Ð\9cожеби Ñ\83Ñ\80едоÑ\82 Ð¸Ð¼Ð° Ñ\81воÑ\98а Ð¿Ñ\80огÑ\80амÑ\81ка Ð¾Ð¿Ñ\80ема, Ð¸Ð»Ð¸ Ð¿Ð°Ðº Ð¾Ð´ Ð½ÐµÐ³Ð¾ Ð¿Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е ÐºÐ¾Ð¿Ð¸Ñ\80ааÑ\82 Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82еки Ð¿Ñ\80едкÑ\83 USB. Ð\90ко Ð½Ðµ Ð¼Ð¾Ð¶Ðµ, Ð¿Ñ\80обаÑ\98Ñ\82е Ð³Ð¾ <a href=\"http://www.gpsbabel.org/\" target=\"_blank\">GPSBabel</a>. Ð\9aако Ð¸ Ð´Ð° Ðµ, Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82екаÑ\82а Ð²Ð¾ Ñ\81екоÑ\98 Ñ\81лÑ\83Ñ\87аÑ\98 Ñ\82Ñ\80еба Ð´Ð° Ð±Ð¸Ð´Ðµ Ð²Ð¾ GPX Ñ\84оÑ\80маÑ\82.\n\nÐ\9fоÑ\82оа Ð¾Ð´ÐµÑ\82е Ð½Ð° â\80\9eGPS Ñ\82Ñ\80агиâ\80\9c Ð¸ Ð¿Ð¾Ð´Ð¸Ð³Ð½ÐµÑ\82е Ñ\98а Ñ\82Ñ\80агаÑ\82а Ð½Ð° OpenStreetMap. Ð\9dо Ð¾Ð²Ð° Ðµ Ñ\81амо Ð¿Ñ\80виоÑ\82 Ñ\87екоÑ\80 - Ñ\82Ñ\80агаÑ\82а Ñ\81è Ñ\83Ñ\88Ñ\82е Ð½ÐµÐ¼Ð° Ð´Ð° Ñ\81е Ð¿Ð¾Ñ\98ави Ð½Ð° ÐºÐ°Ñ\80Ñ\82аÑ\82а. Ð\9cоÑ\80аÑ\82е Ñ\81амиÑ\82е Ð´Ð° Ð³Ð¸ Ð½Ð°Ñ\86Ñ\80Ñ\82аÑ\82е Ð¸ Ð¸Ð¼ÐµÐ½Ñ\83ваÑ\82е Ñ\83лиÑ\86иÑ\82е, Ñ\81ледеÑ\98Ñ\9cи Ñ\98а Ñ\82Ñ\80агаÑ\82а.</bodyText>\n<headline>Ð\9aоÑ\80иÑ\81Ñ\82еÑ\9aе Ð½Ð° Ñ\82Ñ\80агаÑ\82а</headline>\n<bodyText>Ð\9fÑ\80онаÑ\98деÑ\82е Ñ\98а Ð²Ð°Ñ\88аÑ\82а Ð¿Ð¾Ð´Ð¸Ð³Ð½Ð°Ñ\82а Ñ\82Ñ\80ага Ð²Ð¾ Ñ\81пиÑ\81окоÑ\82 Ð½Ð° â\80\9eGPS Ñ\82Ñ\80агиâ\80\9c Ð¸ ÐºÐ»Ð¸ÐºÐ½ÐµÑ\82е Ð½Ð° â\80\9eÑ\83Ñ\80едиâ\80\9c <i>веднаÑ\88 Ð´Ð¾ Ð½ÐµÐ°</i>. Potlatch Ñ\9cе Ð·Ð°Ð¿Ð¾Ñ\87не Ñ\81о Ð¾Ð²Ð°Ð° Ð²Ñ\87иÑ\82ана Ñ\82Ñ\80ага, Ð¿Ð»Ñ\83Ñ\81 Ð°ÐºÐ¾ Ð¸Ð¼Ð° Ð¿Ð°Ñ\82ни Ñ\82оÑ\87ки. Ð¡ÐµÐ³Ð° Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ñ\86Ñ\80Ñ\82аÑ\82е!\n\n<img src=\"gps\">Ð\9cожеÑ\82е Ð¸ Ð´Ð° ÐºÐ»Ð¸ÐºÐ½ÐµÑ\82е Ð½Ð° Ð¾Ð²Ð° ÐºÐ¾Ð¿Ñ\87е Ð·Ð° Ð´Ð° Ð²Ð¸ Ñ\81е Ð¿Ñ\80икажаÑ\82 GPS Ñ\82Ñ\80агиÑ\82е Ð½Ð° Ñ\81иÑ\82е ÐºÐ¾Ñ\80иÑ\81ниÑ\86и (но Ð½Ðµ Ð¿Ð°Ñ\82ниÑ\82е Ñ\82оÑ\87ки) Ð·Ð° Ñ\82ековниоÑ\82 Ñ\80еон. Ð\94Ñ\80жеÑ\82е Shift Ð·Ð° Ð´Ð° Ñ\81е Ð¿Ñ\80икажаÑ\82 Ñ\81амо Ð²Ð°Ñ\88иÑ\82е Ñ\82Ñ\80аги.</bodyText>\n<column/><headline>Ð\9aоÑ\80иÑ\81Ñ\82еÑ\9aе Ð½Ð° Ñ\81аÑ\82елиÑ\82Ñ\81ки Ñ\81лики</headline>\n<bodyText>Ð\9dе Ð³Ñ\80ижеÑ\82е Ñ\81е Ð°ÐºÐ¾ Ð½ÐµÐ¼Ð°Ñ\82е GPS-Ñ\83Ñ\80ед. Ð\92о Ð½ÐµÐºÐ¾Ð¸ Ð³Ñ\80адови Ð¸Ð¼Ð°Ð¼Ðµ Ñ\81аÑ\82елиÑ\82Ñ\81ки Ñ\84оÑ\82огÑ\80аÑ\84ии Ð²Ñ\80з ÐºÐ¾Ð¸ Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ñ\86Ñ\80Ñ\82аÑ\82е, Ð´Ð¾Ð±Ð¸ÐµÐ½Ð¸ Ñ\81о Ð¿Ð¾Ð´Ð´Ñ\80Ñ\88ка Ð¾Ð´ Yahoo! (благодаÑ\80име!). Ð\98злезеÑ\82е Ð¸ Ð·Ð°Ð¿Ð¸Ñ\88еÑ\82е Ð³Ð¸ Ð¸Ð¼Ð¸Ñ\9aаÑ\82а Ð½Ð° Ñ\83лиÑ\86иÑ\82е, Ð¿Ð° Ð²Ñ\80аÑ\82еÑ\82е Ñ\81е Ð¸ Ð¸Ñ\81Ñ\86Ñ\80Ñ\82аÑ\98Ñ\82е Ð³Ð¸ Ð»Ð¸Ð½Ð¸Ð¸Ñ\82е Ð²Ñ\80з Ð½Ð¸Ð².\n\n<img src='prefs'>Ð\94околкÑ\83 Ð½Ðµ Ð³Ð»ÐµÐ´Ð°Ñ\82е Ñ\81аÑ\82елиÑ\82Ñ\81ки Ñ\81лики, ÐºÐ»Ð¸ÐºÐ½ÐµÑ\82е Ð½Ð° ÐºÐ¾Ð¿Ñ\87еÑ\82о Ð·Ð° Ð¿Ñ\80илагодÑ\83ваÑ\9aа Ð¸ Ð¿Ñ\80овеÑ\80еÑ\82е Ð´Ð°Ð»Ð¸ Ðµ Ð¾Ð´Ð±Ñ\80ано â\80\9eYahoo!â\80\9c Ð\90ко Ñ\81è Ñ\83Ñ\88Ñ\82е Ð½Ðµ Ð³Ð¸ Ð³Ð»ÐµÐ´Ð°Ñ\82е, Ñ\82огаÑ\88 Ð²ÐµÑ\80оÑ\98аÑ\82но Ñ\82акви Ñ\81лики Ñ\81е Ð½ÐµÐ´Ð¾Ñ\81Ñ\82апни Ð·Ð° Ð²Ð°Ñ\88иоÑ\82 Ð³Ñ\80ад, Ð¸Ð»Ð¸ Ð¿Ð°Ðº Ñ\82Ñ\80еба Ð¼Ð°Ð»ÐºÑ\83 Ð´Ð° Ð¾Ð´Ð´Ð°Ð»ÐµÑ\87иÑ\82е.\n\nÐ\9dа Ð¸Ñ\81Ñ\82ово ÐºÐ¾Ð¿Ñ\87е Ð·Ð° Ð¿Ñ\80илагодÑ\83ваÑ\9aа Ð¸Ð¼Ð° Ð¸ Ð´Ñ\80Ñ\83ги Ð¸Ð·Ð±Ð¾Ñ\80и ÐºÐ°ÐºÐ¾ ÐºÐ°Ñ\80Ñ\82и Ð½Ð° Ð\91Ñ\80иÑ\82аниÑ\98а Ñ\81о Ð¸Ñ\81Ñ\82еÑ\87ени Ð¿Ñ\80ава Ð¸ OpenTopoMap. Ð¡Ð¸Ñ\82е Ñ\82ие Ñ\81е Ñ\81пеÑ\86иÑ\98ално Ð¸Ð·Ð±Ñ\80ани Ð±Ð¸Ð´ÐµÑ\98Ñ\9cи Ð½Ð¸ Ðµ Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾ Ð´Ð° Ð³Ð¸ ÐºÐ¾Ñ\80иÑ\81Ñ\82име- Ð½Ðµ ÐºÐ¾Ð¿Ð¸Ñ\80аÑ\98Ñ\82е Ð½Ð¸Ñ\87ии ÐºÐ°Ñ\80Ñ\82и Ð¸ Ð²Ð¾Ð·Ð´Ñ\83Ñ\88ни Ñ\84оÑ\82огÑ\80аÑ\84ии (Ð\97акониÑ\82е Ð·Ð° Ð°Ð²Ñ\82оÑ\80Ñ\81ки Ð¿Ñ\80ава Ñ\81е Ð·Ð° Ð½Ð¸ÐºÐ°Ð´Ðµ.)\n\nÐ\9fонекогаÑ\88 Ñ\81аÑ\82елиÑ\82Ñ\81киÑ\82е Ñ\81лики Ñ\81е Ð¼Ð°Ð»ÐºÑ\83 Ñ\80азмеÑ\81Ñ\82ени Ð¾Ð´ Ñ\84акÑ\82иÑ\87каÑ\82а Ð¼ÐµÑ\81Ñ\82оположба на патиштата. Ако наидете на ова, држете го Space и влечете ја позадината додека не се порамнат. Секогаш имајте доверба во GPS трагите, а не сателитските слики.</bodytext>\n\n<!--\n========================================================================================================================\nСтраница 4: Цртање\n\n--><page/><headline>Цртање патишта</headline>\n<bodyText>За да нацртате пат почнувајќи од празен простор на картата, само кликнете таму; потоа на секоја точка на патот. Кога сте готови, кликнете два пати или притиснете Enter - потоа кликнете на некое друго место за да го одизберете патот.\n\nЗа да нацртате пат почнувајќи од друг пат, кликнете на патот за да го изберете; неговите точки ќе станат црвени. Држете Shift и кликнете на една од нив за да започнете нов пат од таа точка. (Ако нема црвена точка на крстосницата, направете Shift-клик за да се појави кадешто сакате!)\n\nКликнете на „Зачувај“ (најдолу-десно) кога сте готови. Зачувувајте често, во случај да се јават проблеми со опслужувачот.\n\nНе очекувајте промените веднаш да се појават на главната карта. За ова треба да поминат час-два, а во некои случаи и до една недела.\n</bodyText><column/><headline>Правење крстосници</headline>\n<bodyText>Многу е важно патиштата да имаат заедничка точка („јазол“) кадешто се среќаваат. Ова им служи на корисниците кои планираат пат за да знаат каде да свртат.\n\nPotlatch се грижи за ова доколку внимателно кликнете <i>точно</i> на патот кој го сврзувате. Гледајте ги олеснителните знаци: точките светнуваат сино, курсорот се менува, и кога сте готови, точката на крстосницата има црна контура.</bodyText>\n<headline>Поместување и бришење</headline>\n<bodyText>Ова работи баш како што се би се очекувало. За да избришете точка, одберете ја и притиснете на Delete. За да избришете цел еден пат, притиснете Shift-Delete.\n\nЗа да поместите нешто, само повлечете го. (Ќе треба да кликнете и да подржите малку пред да влечете. Со ова се избегнуваат ненамерни поместувања.)</bodyText>\n<column/><headline>Понапредно цртање</headline>\n<bodyText><img src=\"scissors\">Ако два дела од еден пат имаат различни имиња, ќе треба да ги раздвоите. Кликнете на патот; потоа кликнете во точката кадешто сакате да го раздвоите, и кликнете на ножиците. (Можете да спојувате патишта со Control, или копчето со јаболко на Мекинтош, но не спојувајте два пата со различни имиња или типови.)\n\n<img src=\"tidy\">Кружните текови се многу тешки за цртање. Но за тоа помага самиот Potlatch. Нацртајте го кругот грубо, само внимавајте да ги споите краевите (т.е. да биде круг), и кликнете на „подреди“. (Ова се користи и за исправање на патишта.)</bodyText>\n<headline>Точки од интерес (POI)</headline>\n<bodyText>Првото нешто што го научивте е како да влечете и пуштате точка од интерес. Можете и самите да правите вакви точки со двојно кликнување на картата: ќе се појави зелено кругче. Но како ќе знаеме дали се работи за ресторан, црква или нешто друго? Кликнете на „Означување“ погоре за да дознаете!\n\n<!--\n========================================================================================================================\nСтраница 4: Означување\n\n--><page/><headline>Кој вид на пат е тоа?</headline>\n<bodyText>Штом ќе нацртате пат, треба да назначите што е. Дали е главна магистрала, пешачка патека или река? Како се вика? Има ли некои посебни правила (на пр. „забрането велосипеди“)?\n\nВо OpenStreetMap ова го запишувате со „ознаки“. Ознаката има два дела, и можете да користите колку што сакате ознаки. На пример, можете да додадете i>highway | trunk</i> за да назначите дека ова е главен магистрален пат; <i>highway | residential</i> за пат во населба; or <i>highway | footway</i> за пешачка патека. If bikes were banned, you could then add <i>bicycle | no</i>. Потоа, за да го запишете името, додајте <i>name | Партизански Одреди</i>.\n\nОзнаките на Potlatch се појавуваат најдолу на екранот - кликнете на постоечка улица, и ќе видите каква ознака има. Кликете на знакот „+“ (најдолу-десно) за да додадете нова ознака. Секоја ознака има „x“ со што можете да ја избришете.\n\nМожете да означувате цели патишта; точки на патишта (можеби порта или семафори); и точки од интерес.</bodytext>\n<column/><headline>Користење на зададени ознаки</headline>\n<bodyText>За да ви помогне да започнете, Potlatch ви нуди готови, најпопуларни ознаки.\n\n<img src=\"preset_road\">Одберете го патот, па кликајте низ симболите додека не најдете соодветен. Потоа изберете ја најсоодветната можност од менито.\n\nСо ова се пополнуваат ознаките. Некои ќе останат делумно празни за да можете да впишете (на пример) име на улицата и број</bodyText>\n<headline>Еднонасочни патишта</headline>\n<bodyText>Ви препорачуваме да додадете ознака за еднонасочни улици како <i>oneway | yes</i> - но како да познаете во која насока? Најдолу-лево има стрелка која го означува правецот напатот, од почеток до крај. Кликнете на неа за да ја свртите обратно.</bodyText>\n<column/><headline>Избор на ваши сопствени ознаки</headline>\n<bodyText>Секако, не сте ограничени само на зададените ознаки. Користете го копчето „+“  за да користите какви што сакате ознаки.\n\nМожете да видите какви ознаки користат другите на <a href=\"http://osmdoc.com/en/tags/\" target=\"_blank\">OSMdoc</a>, а имаме и долг список на популарни ознаки на нашето вики наречена<a href=\"http://wiki.openstreetmap.org/wiki/Map_Features\" target=\"_blank\">Елементи</a>. Но тие се <i>само предлози, а не правила</i>. Најслободно измислувајте си свои ознаки или преземајте од други корисници.\n\nБидејќи податоците од OpenStreetMap се користат за изработување на различни карти, секоја карта прикажува свој избор од ознаки.</bodyText>\n<headline>Релации</headline>\n<bodyText>Понекогаш не се доволни само ознаки, па ќе треба да „групирате“ два или повеќе пата. Можеби вртењето од една улица во друга е забрането, или пак 20 патеки заедно сочиннуваат означена велосипедска патека. Ова се прави во напредното мени „релации“. <a href=\"http://wiki.openstreetmap.org/wiki/Relations\" target=\"_blank\">Дознајте повеќе</a> на викито.</bodyText>\n\n<!--\n========================================================================================================================\nСтраница 6: Отстранување неисправности\n\n--><page/><headline>Враќање грешки</headline>\n<bodyText><img src=\"undo\">Ова е копчето за враќање (може и со стискање на Z) - ова ќе го врати последното нешто кое сте го направиле.\n\nМожете да „вратите“ претходно зачувана верзија на еден пат или точка. Одберете ја, па кликнете на нејзиниот ид. бр. (бројот најдолу-лево) - или притиснете на H (за „историја“). Ќе видите список на која се наведува кој ја уредувал и кога. Одберете ја саканата верзија, и стиснете на „Врати“.\n\nДоколку сте избришале пат по грешка и сте зачувале, притиснете U (за да вратите). Ќе се појават сите избришани патишта. Одберете го саканиот пат; отклучете го со кликнување на катанчето; и зачувајте.\n\nМислите дека некој друг корисник направил грешка? Испратете му пријателска порака. Користете ја историјата (H) за да му го изберете името, па кликнете на „Пошта“\n\nКористете го Инспекторот (во менито „Напредно“) за корисни информации за моменталниот пат или точка.\n</bodyText><column/><headline>ЧПП</headline>\n<bodyText><b>Како да ги видам моите патни точки?</b>\nПатните точки се појавуваат само ако кликнете на „уреди“ до името на трагата во „GPS траги“. Податотеката мора да има и патни точки и запис на трагата - опслужувачот не пропушта податотеки кои имаат само патни точки.\n\nПовеќе ЧПП за <a href=\"http://wiki.openstreetmap.org/wiki/Potlatch/FAQs\" target=\"_blank\">Potlatch</a> и <a href=\"http://wiki.openstreetmap.org/wiki/FAQ\" target=\"_blank\">OpenStreetMap</a>.\n</bodyText>\n\n\n<column/><headline>Побрзо работење</headline>\n<bodyText>Што повеќе оддалечувате, тоа повеќе податоци мора да вчита Potlatch. Приближете пред да стиснете на „Уреди“\n\nИсклучете го „Користи курсори „молив“ и „рака““ (во прозорецот за прилагодување) за да добиете максимална брзина.\n\nАко опслужувачот работи бавно, вратете се подоцна. <a href=\"http://wiki.openstreetmap.org/wiki/Platform_Status\" target=\"_blank\">Проверете го викито</a> за да проверите познати проблеми. Некои термини како недела навечер се секогаш оптоварени.\n\nКажете му на Potlatch да ги запамти вашите омилени комплети со ознаки. Одберете пат или точка со тие ознаки, па притиснете на Ctrl, Shift и на број од 1 до 9. Потоа за повторно да ги користите тие ознаки, само притиснете  Shift и тој број. (Ќе се паметат секојпат кога го користите Potlatch на овој сметач.)\n\nПретворете ја вашата GPS трага во пат со тоа што ќе ја пронајдете на списокот „GPS траги“ и ќе кликнете на „уреди“ до неа, а потоа на кутивчето „претвори“. Трагата ќе се заклучи (црвено), затоа не зачувувајте. Најпрвин уредете ја, па кликнете на катанчето (најдолу-десно) за да ја отклучите кога сте спремни да ја зачувате.</bodytext>\n\n<!--\n========================================================================================================================\nСтраница 7: Брза помош\n\n--><page/><headline>Што да кликате</headline>\n<bodyText><b>Влечете ја картата</b> за да се движите наоколу.\n<b>Двоен клик</b> за  да направите нова точка од интерес (POI).\n<b>Кликнете еднап</b> за да започнете нов пат.\n<b>Држете и влечете пат или точка од интерес (POI)</b> за да ги поместите.</bodyText>\n<headline>Кога цртате пат</headline>\n<bodyText><b>Двоен клик</b> или <b>Enter</b> за да завршите со цртање.\n<b>Кликнете</b> на друг пат за да направите крстосница.\n<b>Shift-клик на крајот на друг пат</b> за да споите.</bodyText>\n<headline>Кога ќе изберете пат</headline>\n<bodyText><b>Кликнете на точката</b> за да ја одберете.\n<b>Shift-клик на патот</b> за да вметнете нова точка.\n<b>Shift-клик на точка</b> за оттаму да започнете нов пат.\n<b>Ctrl-клик на друг пат</b> за спојување.</bodyText>\n</bodyText>\n<column/><headline>Тастатурни кратенки</headline>\n<bodyText><textformat tabstops='[25]'>B Додај позадинска изворна ознака\nC Затвори измени\nG Прикажи GPS траги\nH Прикажи историја\nI Прикажи инспектор\nJ сврзи точка за вкрстени патишта\n(+Shift) Unjoin from other ways\nK Заклучи/отклучи го моментално избраното\nL Прикажи моментална географска должина\nM Зголеми уредувачки прозорец\nP Создај паралелен пат\nR Повтори ги ознаките\nS Зачувај (освен ако не е во живо)\nT Подреди во права линија/круг\nU Врати избришано (прикажи избришани патишра)\nX Пресечи пат на две\nZ Врати\n- Отстрани точка само од овој пат\n+ Додај нова ознака\n/ Избор на друг пат со истава точка\n</textformat><textformat tabstops='[50]'>Delete Избриши точка\n  (+Shift) Избриши цел пат\nEnter Заврши со цртање на линијата\nSpace Држи и влечи позадина\nEsc Откажи го ова уредување; превчитај од опслужувачот \n0 Отстрани ги сите ознаки\n1-9 Избор на зададени ознаки\n  (+Shift) Избери запамтени ознаки\n  (+S/Ctrl) Запамти ознаки\n§ или ` Кружи помеѓу групи ознаки\n</textformat>\n</bodyText>"
   hint_drawmode: кликнете за да додадете точка,\nдвоен клик/Ентер\nза да ја завршите линијата
   hint_latlon: "Г.Ш. $1\nГ.Д. $2"
   hint_loading: вчитувам податоци
index b91391f2ad3cbd7b4516fb035c2c50d498ac4e6a..4946784bbcb8a0e86daf174a4e5d22d925b481e7 100644 (file)
@@ -2,6 +2,7 @@
 # Exported from translatewiki.net
 # Export driver: syck
 # Author: BraulioBezerra
+# Author: Giro720
 # Author: Luckas Blade
 # Author: Nighto
 # Author: Rodrigo Avila
@@ -197,7 +198,7 @@ pt-BR:
   prompt_manyways: Esta área contém muitos detalhes e demorará muito para carregar. Você prefere aproximar?
   prompt_microblog: Enviando para $1 ($2 restantes)
   prompt_revertversion: "Reverter para versão anterior:"
-  prompt_savechanges: Salvar mudanças
+  prompt_savechanges: Salvar alterações
   prompt_taggedpoints: Alguns pontos tem etiquetas ou pertencem a uma relação. Quer realmente apagá-los?
   prompt_track: Converta a sua trilha GPS para caminhos (trancados) a serem editados.
   prompt_unlock: Clique para desbloquear
diff --git a/config/potlatch/locales/rue.yml b/config/potlatch/locales/rue.yml
new file mode 100644 (file)
index 0000000..6a123e9
--- /dev/null
@@ -0,0 +1,155 @@
+# Messages for Rusyn (Русиньскый)
+# Exported from translatewiki.net
+# Export driver: syck
+# Author: Gazeb
+rue: 
+  a_poi: $1 обєкту (POI)
+  a_way: $1 лінію
+  action_changeway: зміны в лінії
+  action_createpoi: створїня обєкту (POI)
+  action_insertnode: придаваня  узла до лінії
+  action_mergeways: злучіня двох ліній
+  action_movepoi: пересуваня обєкту (POI)
+  action_moveway: пересуваня лінії
+  action_pointtags: наставлїня таґів на точку
+  action_reverseway: зміна напрямкы лінії
+  action_revertway: навернутя лінії
+  action_waytags: наставлїня таґів на лінію
+  advanced: Росшырене
+  advanced_close: Заперти саду змін
+  advanced_history: Історія лінії
+  advanced_inspector: Іншпектор
+  advanced_maximise: Максімалізовати окно
+  advanced_minimise: Мінімалізовати окно
+  advanced_parallel: Паралелна лінія
+  advanced_undelete: Обновити
+  advice_deletingpoi: Вымазаня обєкту (POI) (Z про зрушіня)
+  advice_deletingway: Вымазаня лінії (Z про зрушіня)
+  advice_revertingway: Навернутя до послїднёй уложеной лінії (Z про назад)
+  advice_toolong: Дуже довге про одомкнутя - просиме роздїльте до куртшых ліній
+  advice_uploadsuccess: Вшыткы дата успішно награты на сервер
+  cancel: Зрушыти
+  closechangeset: Заперти саду змін
+  conflict_poichanged: Потім, як сьте зачали едітованя, хтось змінив точку $1$2.
+  conflict_relchanged: Потім, як сьте зачали едітованя, хтось змінив звязок $1$2.
+  conflict_visitway: Стисните 'ОК', про вказаня лінії.
+  conflict_waychanged: Потім, як сьте зачали едітованя, хтось змінив лінію $1$2.
+  createrelation: Створити новый звязок
+  custom: "Шпеціалный:"
+  delete: Вымазати
+  editinglive: Едітованя нажыво
+  error_microblog_long: "Посыланя до $1 неможне:\nHTTP код: $2\nХыбове повідомлїня: $3\n$1 жыба: $4"
+  error_nopoi: Обєкт (POI) ся не нашов (може сьте посунули мапу?) — не дасть ся вернути назад.
+  error_nosharedpoint: Лінії $1 і $2 в сучасности не мають сполочну точку, также ся не можу вернути назад.
+  heading_drawing: Креслїня
+  heading_introduction: Вступ
+  heading_troubleshooting: Рїшіня проблему
+  help: Поміч
+  hint_drawmode: придайте точку кликнутём\nдвойклик/Enter\nукончіть лінію
+  hint_latlon: "шыр $1\nдов $2"
+  hint_overpoint: над точков ($1)\nкликнутём лінію напоїте
+  hint_pointselected: точка выбрана\n(Shift-ЛК на точці\nзачне нову лінію)
+  hint_saving: уложіня дат
+  inspector: Іншпектор
+  inspector_duplicate: Дуплікат
+  inspector_in_ways: В лініях
+  inspector_latlon: "Шыр $1\nДов $2"
+  inspector_locked: Замкнуто
+  inspector_node_count: ($1 раз)
+  inspector_unsaved: Неуложене
+  inspector_uploading: (награваня)
+  inspector_way_connects_to_principal: Споює з $1 $2 і $3 іншыма $4
+  inspector_way_nodes: $1 узлы
+  loading: Награваня...
+  login_pwd: "Гесло:"
+  login_retry: Ваше мено хоснователя не было розознане, Спробуйте іщі раз.
+  login_title: Не годен войти
+  login_uid: "Мено хоснователя:"
+  mail: Е.пошта
+  more: Іщі
+  "no": Нїт
+  nobackground: Без позадя
+  offset_broadcanal: Набережна шырокого каналу
+  offset_choose: Выбер офсету (м)
+  offset_motorway: Автомаґістрала (D3)
+  offset_narrowcanal: Набережна узкого каналу
+  ok: Най буде
+  openchangeset: Отворям саду змін
+  option_layer_cycle_map: OSM — цікло-мапа
+  option_layer_maplint: OSM — Maplint (хыбы)
+  option_layer_nearmap: "Австралія: NearMap"
+  option_layer_ooc_25k: "В.БРІТАНІЯ істор.: 1:25k"
+  option_layer_ooc_7th: "В.БРІТАНІЯ істор.: 1:7000"
+  option_layer_ooc_npe: "В.БРІТАНІЯ істор.: NPE"
+  option_layer_os_streetview: "В.БРІТАНІЯ: OS StreetView"
+  option_layer_streets_haiti: "Гаїті: назвы уліць"
+  option_layer_surrey_air_survey: "UK: Surrey Air Survey"
+  option_layer_tip: Выберте позадя
+  option_photo: "Фото KML:"
+  option_thinareas: Тонкы лінії про поліґоны
+  option_thinlines: Тонкы лінії у вшыткых мірках мап
+  option_tiger: Вказати незміненый TIGER
+  option_warnings: Вказати плаваючі варованя
+  point: Точка
+  preset_icon_airport: Летїско
+  preset_icon_bar: Бар
+  preset_icon_bus_stop: Автобусова заставка
+  preset_icon_cafe: Кафе
+  preset_icon_cinema: Кіно
+  preset_icon_disaster: Будова на Гаїті
+  preset_icon_fast_food: Швыдка страва
+  preset_icon_ferry_terminal: Паром
+  preset_icon_fire_station: Пожарна станіця
+  preset_icon_hospital: Шпыталь
+  preset_icon_hotel: Готел
+  preset_icon_museum: Музей
+  preset_icon_parking: Паркованя
+  preset_icon_pharmacy: Лїкарня
+  preset_icon_police: Поліція
+  preset_icon_post_box: Поштова схранка
+  preset_icon_pub: Корчма
+  preset_icon_recycling: Кош на смітя
+  preset_icon_restaurant: Рештаврація
+  preset_icon_school: Школа
+  preset_icon_station: Желїзнічна станіця
+  preset_icon_supermarket: Супермаркет
+  preset_icon_taxi: Таксі
+  preset_icon_telephone: Телефон
+  preset_icon_theatre: Театр
+  preset_tip: Выберте з меню  шаблонів теаів, пописанім в $1
+  prompt_addtorelation: Придати $1 до звязку
+  prompt_changesetcomment: "Опиште вашы зміны:"
+  prompt_closechangeset: Заперти саду змін $1
+  prompt_createparallel: Створїня паралелной лінії
+  prompt_editlive: Едітованя нажыво
+  prompt_helpavailable: Новый хоснователь? Поміч найдете вправо долов.
+  prompt_launch: Отворити екстерну URL
+  prompt_manyways: Тота область є дуже подробна і буде довго єй награвати. Преферуєте приближыти єй?
+  prompt_revertversion: "Вернути ся ку скоре уложеній верзії:"
+  prompt_savechanges: Уложыти зміны
+  prompt_taggedpoints: Дакоры точкы на тій лінії мають таґы. Справды змазати?
+  prompt_welcome: Вітайте на OpenStreetMap!
+  retry: Повтор
+  revert: Вернути назад
+  save: Уложыти
+  tags_descriptions: Опис '$1'
+  tags_findatag: Найти таґ
+  tags_findtag: Найти таґ
+  tags_matching: Популарны таґы згодны з "$1"
+  tip_anticlockwise: Проти дразї годіновой ручкы (кликнутём зміните напрямку)
+  tip_clockwise: По дразї годіновой ручкы (кликнутём зміните напрямку)
+  tip_direction: Напрямок лінії — змінити на протилежный
+  tip_options: Можности (выберте собі мапу про позадя)
+  tip_photo: Награти фото
+  tip_repeattag: Наставити таґы передтым выбраной лінії(R)
+  tip_tidy: Вырівнати точкы у лінії (Т)
+  tip_undo: "Назад: $1 (Z)"
+  uploading: Награваня...
+  uploading_deleting_pois: Змазаня (POI)
+  uploading_deleting_ways: Змазаня ліній
+  uploading_poi: Награваня (POI) $1
+  uploading_poi_name: Награваня (POI) $1, $2
+  uploading_way_name: Награваня лінії $1, $2
+  warning: Позір!
+  way: Лінія
+  "yes": Гей
index e2018784dd4162b8d5780001070ce66167106a79..4608fb32c8ed85f9dd44ef211b82743337f48018 100644 (file)
@@ -113,7 +113,6 @@ ActionController::Routing::Routes.draw do |map|
   map.connect '/index.html', :controller => 'site', :action => 'index'
   map.connect '/edit.html', :controller => 'site', :action => 'edit'
   map.connect '/export.html', :controller => 'site', :action => 'export'
-  map.connect '/search.html', :controller => 'way_tag', :action => 'search'
   map.connect '/login.html', :controller => 'user', :action => 'login'
   map.connect '/logout.html', :controller => 'user', :action => 'logout'
   map.connect '/create-account.html', :controller => 'user', :action => 'new'
index 0cb7d28f0abca2687cdedf9dde6724cd3d71cec4..8b6b774e723dc44956aefd80d6bc3ce14eb4015c 100644 (file)
@@ -55,6 +55,7 @@ de:
     man_made: DE:Key:man made
     maxheight: DE:Key:maxheight
     maxspeed: DE:Key:maxspeed
+    maxweight: DE:Key:maxweight
     military: DE:Key:military
     mtb:scale: DE:Key:mtb:scale
     name: DE:Key:name
@@ -71,6 +72,7 @@ de:
     railway: DE:Key:railway
     route: DE:Key:route
     sac_scale: DE:Key:sac scale
+    seamark: DE:Key:seamark
     service: DE:Key:service
     shop: DE:Key:shop
     smoking: DE:Key:smoking
@@ -92,15 +94,19 @@ de:
     amenity=baby_hatch: DE:Tag:amenity=baby hatch
     amenity=bank: DE:Tag:amenity=bank
     amenity=bench: DE:Tag:amenity=bench
+    amenity=bicycle_rental: DE:Tag:amenity=bicycle rental
     amenity=biergarten: DE:Tag:amenity=biergarten
     amenity=bus_station: DE:Tag:amenity=bus station
     amenity=clock: DE:Tag:amenity=clock
     amenity=compressed_air: DE:Tag:amenity=compressed air
     amenity=drinking_water: DE:Tag:amenity=drinking water
+    amenity=emergency_phone: DE:Tag:amenity=emergency phone
     amenity=fuel: DE:Tag:amenity=fuel
     amenity=grit_bin: DE:Tag:amenity=grit bin
     amenity=hospital: DE:Tag:amenity=hospital
+    amenity=hunting_stand: DE:Tag:amenity=hunting stand
     amenity=nightclub: DE:Tag:amenity=nightclub
+    amenity=nursing_home: DE:Tag:amenity=nursing home
     amenity=parking: DE:Tag:amenity=parking
     amenity=pharmacy: DE:Tag:amenity=pharmacy
     amenity=place_of_worship: DE:Tag:amenity=place of worship
@@ -108,6 +114,7 @@ de:
     amenity=pub: DE:Tag:amenity=pub
     amenity=recycling: DE:Tag:amenity=recycling
     amenity=register_office: DE:Tag:amenity=register office
+    amenity=restaurant: DE:Tag:amenity=restaurant
     amenity=school: DE:Tag:amenity=school
     amenity=telephone: DE:Tag:amenity=telephone
     amenity=toilets: DE:Tag:amenity=toilets
@@ -117,6 +124,7 @@ de:
     barrier=lift_gate: DE:Tag:barrier=lift gate
     boundary=water_protection_area: DE:Tag:boundary=water protection area
     club-mate=yes: DE:Tag:club-mate=yes
+    emergency=fire_hydrant: DE:Tag:emergency=fire hydrant
     highway=bus_stop: DE:Tag:highway=bus stop
     highway=crossing: DE:Tag:highway=crossing
     highway=cycleway: DE:Tag:highway=cycleway
@@ -148,14 +156,17 @@ de:
     historic=monastery: DE:Tag:historic=monastery
     junction=roundabout: DE:Tag:junction=roundabout
     landuse=allotments: DE:Tag:landuse=allotments
-    landuse=farm: DE:Tag:landuse=farm
+    landuse=cemetery: DE:Tag:landuse=cemetery
+    landuse=farmland: DE:Tag:landuse=farmland
     landuse=farmyard: DE:Tag:landuse=farmyard
     landuse=forest: DE:Tag:landuse=forest
     landuse=meadow: DE:Tag:landuse=meadow
     landuse=orchard: DE:Tag:landuse=orchard
     landuse=quarry: DE:Tag:landuse=quarry
+    landuse=residential: DE:Tag:landuse=residential
     landuse=village_green: DE:Tag:landuse=village green
     leisure=dog_park: DE:Tag:leisure=dog park
+    leisure=garden: DE:Tag:leisure=garden
     leisure=playground: DE:Tag:leisure=playground
     leisure=slipway: DE:Tag:leisure=slipway
     man_made=crane: DE:Tag:man made=crane
@@ -164,6 +175,7 @@ de:
     man_made=pipeline: DE:Tag:man made=pipeline
     man_made=survey_point: DE:Tag:man made=survey point
     man_made=wastewater_plant: DE:Tag:man made=wastewater plant
+    microbrewery=yes: DE:Tag:microbrewery=yes
     military=bunker: DE:Tag:military=bunker
     natural=stone: DE:Tag:natural=stone
     natural=tree: DE:Tag:natural=tree
@@ -181,6 +193,7 @@ de:
     power=tower: DE:Tag:power=tower
     railway=crossing: DE:Tag:railway=crossing
     railway=halt: DE:Tag:railway=halt
+    railway=monorail: DE:Tag:railway=monorail
     railway=platform: DE:Tag:railway=platform
     railway=station: DE:Tag:railway=station
     railway=tram: DE:Tag:railway=tram
@@ -220,6 +233,7 @@ en:
     atv: Key:atv
     barrier: Key:barrier
     basin: Key:basin
+    beacon: Key:beacon
     bicycle: Key:bicycle
     boat: Key:boat
     border_type: Key:border type
@@ -227,8 +241,10 @@ en:
     bridge: Key:bridge
     building: Key:building
     bunker_type: Key:bunker type
+    buoy: Key:buoy
     capacity: Key:capacity
     cep: Key:cep
+    clothes: Key:clothes
     collection_times: Key:collection times
     comment: Key:comment
     construction: Key:construction
@@ -245,6 +261,7 @@ en:
     designation: Key:designation
     destination: Key:destination
     direction: Key:direction
+    disabled: Key:disabled
     dispensing: Key:dispensing
     disused: Key:disused
     drink: Key:drink
@@ -260,6 +277,7 @@ en:
     fenced: Key:fenced
     fixme: Key:fixme
     flood_prone: Key:flood prone
+    fog_signal: Key:fog signal
     foot: Key:foot
     ford: Key:ford
     fuel:discount: Key:fuel:discount
@@ -276,18 +294,21 @@ en:
     internet_access: Key:internet access
     is_in: Key:is in
     junction: Key:junction
+    landmark: Key:landmark
     landuse: Key:landuse
     lanes: Key:lanes
     layer: Key:layer
     lcn_ref: Key:lcn ref
     leisure: Key:leisure
     length: Key:length
+    light: Key:light
     lit: Key:lit
     lit:perceived: Key:lit:perceived
     lock: Key:lock
     man_made: Key:man made
     managed: Key:managed
     manhole: Key:manhole
+    maxage: Key:maxage
     maxairdraft: Key:maxairdraft
     maxaxleload: Key:maxaxleload
     maxdraught: Key:maxdraught
@@ -301,6 +322,7 @@ en:
     maxweight: Key:maxweight
     maxwidth: Key:maxwidth
     military: Key:military
+    minage: Key:minage
     minspeed: Key:minspeed
     monitoring:glonass: Key:monitoring:glonass
     monitoring:gps: Key:monitoring:gps
@@ -351,6 +373,7 @@ en:
     route: Key:route
     sac_scale: Key:sac scale
     sagns_id: Key:sagns id
+    seabed_surface: Key:seabed surface
     seamark: Key:seamark
     seasonal:snowfall:regaintime: Key:seasonal:snowfall:regaintime
     service: Key:service
@@ -361,12 +384,15 @@ en:
     snowplowing:category: Key:snowplowing:category
     source: Key:source
     sport: Key:sport
+    stars: Key:stars
     start_date: Key:start date
     step_count: Key:step count
     stop: Key:stop
+    sub_sea: Key:sub sea
     sulky: Key:sulky
     surface: Key:surface
     tactile_paving: Key:tactile paving
+    timezone: Key:timezone
     toll: Key:toll
     tourism: Key:tourism
     tracktype: Key:tracktype
@@ -409,6 +435,7 @@ en:
     aeroway=taxiway: Tag:aeroway=taxiway
     aeroway=terminal: Tag:aeroway=terminal
     aeroway=windsock: Tag:aeroway=windsock
+    amenity=architect_office: Tag:amenity=architect office
     amenity=arts_centre: Tag:amenity=arts centre
     amenity=atm: Tag:amenity=atm
     amenity=audiologist: Tag:amenity=audiologist
@@ -420,12 +447,14 @@ en:
     amenity=bicycle_parking: Tag:amenity=bicycle parking
     amenity=bicycle_rental: Tag:amenity=bicycle rental
     amenity=biergarten: Tag:amenity=biergarten
+    amenity=boat_storage: Tag:amenity=boat storage
     amenity=brothel: Tag:amenity=brothel
     amenity=bureau_de_change: Tag:amenity=bureau de change
     amenity=bus_station: Tag:amenity=bus station
     amenity=cafe: Tag:amenity=cafe
     amenity=car_rental: Tag:amenity=car rental
     amenity=car_sharing: Tag:amenity=car sharing
+    amenity=casino: Tag:amenity=casino
     amenity=cinema: Tag:amenity=cinema
     amenity=clock: Tag:amenity=clock
     amenity=coast_guard: Tag:amenity=coast guard
@@ -438,11 +467,10 @@ en:
     amenity=doctors: Tag:amenity=doctors
     amenity=drinking_water: Tag:amenity=drinking water
     amenity=embassy: Tag:amenity=embassy
-    amenity=emergency_phone: Tag:amenity=emergency phone
     amenity=fast_food: Tag:amenity=fast food
     amenity=ferry_terminal: Tag:amenity=ferry terminal
-    amenity=fire_hydrant: Tag:amenity=fire hydrant
     amenity=fire_station: Tag:amenity=fire station
+    amenity=food_court: Tag:amenity=food court
     amenity=fountain: Tag:amenity=fountain
     amenity=fuel: Tag:amenity=fuel
     amenity=grave_yard: Tag:amenity=grave yard
@@ -482,6 +510,7 @@ en:
     amenity=veterinary: Tag:amenity=veterinary
     amenity=waste_basket: Tag:amenity=waste basket
     amenity=waste_disposal: Tag:amenity=waste disposal
+    amenity=waste_transfer_station: Tag:amenity=waste transfer station
     amenity=watering_place: Tag:amenity=watering place
     atm=no: Tag:atm=no
     atm=yes: Tag:atm=yes
@@ -502,6 +531,7 @@ en:
     barrier=sally_port: Tag:barrier=sally port
     barrier=stile: Tag:barrier=stile
     barrier=toll_booth: Tag:barrier=toll booth
+    barrier=turnstile: Tag:barrier=turnstile
     barrier=wall: Tag:barrier=wall
     boundary=administrative: Tag:boundary=administrative
     boundary=civil: Tag:boundary=civil
@@ -515,9 +545,18 @@ en:
     building=parliament: Tag:building=parliament
     bunker_type=munitions: Tag:bunker type=munitions
     bunker_type=pillbox: Tag:bunker type=pillbox
+    clothes=sports: Tag:clothes=sports
     club-mate=yes: Tag:club-mate=yes
     cycleway=bike_box: Tag:cycleway=bike box
     denomination=mormon: Tag:denomination=mormon
+    emergency=ambulance_station: Tag:emergency=ambulance station
+    emergency=fire_extinguisher: Tag:emergency=fire extinguisher
+    emergency=fire_flapper: Tag:emergency=fire flapper
+    emergency=fire_hose: Tag:emergency=fire hose
+    emergency=fire_hydrant: Tag:emergency=fire hydrant
+    emergency=phone: Tag:emergency=phone
+    emergency=ses_station: Tag:emergency=ses station
+    emergency=siren: Tag:emergency=siren
     geological=palaeontological_site: Tag:geological=palaeontological site
     highway=bridleway: Tag:highway=bridleway
     highway=bus_guideway: Tag:highway=bus guideway
@@ -539,14 +578,12 @@ en:
     highway=pedestrian: Tag:highway=pedestrian
     highway=platform: Tag:highway=platform
     highway=primary: Tag:highway=primary
-    highway=primary_link: Tag:highway=primary link
     highway=proposed: Tag:highway=proposed
     highway=raceway: Tag:highway=raceway
     highway=residential: Tag:highway=residential
     highway=rest_area: Tag:highway=rest area
     highway=road: Tag:highway=road
     highway=secondary: Tag:highway=secondary
-    highway=secondary_link: Tag:highway=secondary link
     highway=service: Tag:highway=service
     highway=services: Tag:highway=services
     highway=speed_camera: Tag:highway=speed camera
@@ -558,7 +595,6 @@ en:
     highway=traffic_signals: Tag:highway=traffic signals
     highway=trail: Tag:highway=trail
     highway=trunk: Tag:highway=trunk
-    highway=trunk_link: Tag:highway=trunk link
     highway=turning_circle: Tag:highway=turning circle
     highway=unclassified: Tag:highway=unclassified
     historic=archaeological_site: Tag:historic=archaeological site
@@ -583,6 +619,7 @@ en:
     landuse=commercial: Tag:landuse=commercial
     landuse=construction: Tag:landuse=construction
     landuse=farm: Tag:landuse=farm
+    landuse=farmland: Tag:landuse=farmland
     landuse=farmyard: Tag:landuse=farmyard
     landuse=forest: Tag:landuse=forest
     landuse=garages: Tag:landuse=garages
@@ -606,7 +643,6 @@ en:
     landuse=street: Tag:landuse=street
     landuse=village_green: Tag:landuse=village green
     landuse=vineyard: Tag:landuse=vineyard
-    landuse=wood: Tag:landuse=wood
     leisure=beach_resort: Tag:leisure=beach resort
     leisure=common: Tag:leisure=common
     leisure=dance: Tag:leisure=dance
@@ -619,20 +655,27 @@ en:
     leisure=marina: Tag:leisure=marina
     leisure=miniature_golf: Tag:leisure=miniature golf
     leisure=nature_reserve: Tag:leisure=nature reserve
+    leisure=paddling_pool: Tag:leisure=paddling pool
     leisure=park: Tag:leisure=park
     leisure=picnic_table: Tag:leisure=picnic table
     leisure=pitch: Tag:leisure=pitch
     leisure=playground: Tag:leisure=playground
+    leisure=ski_playground: Tag:leisure=ski playground
     leisure=slipway: Tag:leisure=slipway
     leisure=sports_centre: Tag:leisure=sports centre
     leisure=track: Tag:leisure=track
+    leisure=video_arcade: Tag:leisure=video arcade
     leisure=water_park: Tag:leisure=water park
+    man_made=adit: Tag:man made=adit
+    man_made=archimedes_screw: Tag:man made=archimedes screw
     man_made=beacon: Tag:man made=beacon
+    man_made=chimney: Tag:man made=chimney
     man_made=compass_rose: Tag:man made=compass rose
     man_made=crane: Tag:man made=crane
     man_made=cutline: Tag:man made=cutline
     man_made=dyke: Tag:man made=dyke
-    man_made=flagpole: Tag:man made=flagpole
+    man_made=fish_passage: Tag:man made=fish passage
+    man_made=flare: Tag:man made=flare
     man_made=ground_station: Tag:man made=ground station
     man_made=groyne: Tag:man made=groyne
     man_made=jetty: Tag:man made=jetty
@@ -643,6 +686,7 @@ en:
     man_made=pipeline: Tag:man made=pipeline
     man_made=pumping_rig: Tag:man made=pumping rig
     man_made=reservoir_covered: Tag:man made=reservoir covered
+    man_made=storage_tank: Tag:man made=storage tank
     man_made=surveillance: Tag:man made=surveillance
     man_made=survey_point: Tag:man made=survey point
     man_made=tower: Tag:man made=tower
@@ -651,8 +695,12 @@ en:
     man_made=water_well: Tag:man made=water well
     man_made=water_works: Tag:man made=water works
     man_made=watermill: Tag:man made=watermill
+    man_made=well: Tag:man made=well
+    man_made=wildlife_crossing: Tag:man made=wildlife crossing
     man_made=windmill: Tag:man made=windmill
+    man_made=windpump: Tag:man made=windpump
     man_made=works: Tag:man made=works
+    microbrewery=yes: Tag:microbrewery=yes
     military=airfield: Tag:military=airfield
     military=bunker: Tag:military=bunker
     military=naval_base: Tag:military=naval base
@@ -661,13 +709,15 @@ en:
     natural=cave_entrance: Tag:natural=cave entrance
     natural=cliff: Tag:natural=cliff
     natural=coastline: Tag:natural=coastline
+    natural=dune: Tag:natural=dune
     natural=fell: Tag:natural=fell
     natural=glacier: Tag:natural=glacier
     natural=heath: Tag:natural=heath
     natural=lake: Tag:natural=lake
     natural=land: Tag:natural=land
-    natural=meadow: Tag:natural=meadow
     natural=peak: Tag:natural=peak
+    natural=rock: Tag:natural=rock
+    natural=scree: Tag:natural=scree
     natural=scrub: Tag:natural=scrub
     natural=spring: Tag:natural=spring
     natural=stone: Tag:natural=stone
@@ -687,6 +737,8 @@ en:
     office=newspaper: Tag:office=newspaper
     office=ngo: Tag:office=ngo
     office=quango: Tag:office=quango
+    office=research: Tag:office=research
+    office=telecommunication: Tag:office=telecommunication
     office=travel_agent: Tag:office=travel agent
     pipeline=marker: Tag:pipeline=marker
     pipeline=valve: Tag:pipeline=valve
@@ -751,8 +803,10 @@ en:
     service=yard: Tag:service=yard
     shop=SpotColor: Tag:shop=SpotColor
     shop=alcohol: Tag:shop=alcohol
+    shop=art: Tag:shop=art
     shop=bakery: Tag:shop=bakery
     shop=beauty: Tag:shop=beauty
+    shop=bed: Tag:shop=bed
     shop=beverages: Tag:shop=beverages
     shop=bicycle: Tag:shop=bicycle
     shop=books: Tag:shop=books
@@ -764,18 +818,26 @@ en:
     shop=charity: Tag:shop=charity
     shop=chemist: Tag:shop=chemist
     shop=clothes: Tag:shop=clothes
+    shop=communication: Tag:shop=communication
     shop=computer: Tag:shop=computer
     shop=confectionery: Tag:shop=confectionery
     shop=convenience: Tag:shop=convenience
+    shop=copyshop: Tag:shop=copyshop
+    shop=curtain: Tag:shop=curtain
+    shop=deli: Tag:shop=deli
     shop=department_store: Tag:shop=department store
+    shop=dive: Tag:shop=dive
     shop=doityourself: Tag:shop=doityourself
     shop=dry_cleaning: Tag:shop=dry cleaning
     shop=electronics: Tag:shop=electronics
-    shop=fabrics: Tag:shop=fabrics
+    shop=erotic: Tag:shop=erotic
+    shop=fabric: Tag:shop=fabric
     shop=farm: Tag:shop=farm
     shop=florist: Tag:shop=florist
     shop=food: Tag:shop=food
+    shop=frame: Tag:shop=frame
     shop=funeral_directors: Tag:shop=funeral directors
+    shop=furnace: Tag:shop=furnace
     shop=furniture: Tag:shop=furniture
     shop=garden_centre: Tag:shop=garden centre
     shop=general: Tag:shop=general
@@ -783,8 +845,10 @@ en:
     shop=glaziery: Tag:shop=glaziery
     shop=greengrocer: Tag:shop=greengrocer
     shop=hairdresser: Tag:shop=hairdresser
+    shop=hardware: Tag:shop=hardware
     shop=hearing_aids: Tag:shop=hearing aids
     shop=hifi: Tag:shop=hifi
+    shop=houseware: Tag:shop=houseware
     shop=ice_cream: Tag:shop=ice cream
     shop=jewelry: Tag:shop=jewelry
     shop=kiosk: Tag:shop=kiosk
@@ -792,14 +856,18 @@ en:
     shop=locksmith: Tag:shop=locksmith
     shop=mall: Tag:shop=mall
     shop=massage: Tag:shop=massage
+    shop=mobile_phone: Tag:shop=mobile phone
     shop=money_lender: Tag:shop=money lender
     shop=motorcycle: Tag:shop=motorcycle
     shop=motorcycle_repair: Tag:shop=motorcycle repair
+    shop=musical_instrument: Tag:shop=musical instrument
     shop=newsagent: Tag:shop=newsagent
     shop=optician: Tag:shop=optician
     shop=organic: Tag:shop=organic
     shop=outdoor: Tag:shop=outdoor
+    shop=paint: Tag:shop=paint
     shop=pawnbroker: Tag:shop=pawnbroker
+    shop=pet: Tag:shop=pet
     shop=seafood: Tag:shop=seafood
     shop=second_hand: Tag:shop=second hand
     shop=shoes: Tag:shop=shoes
@@ -807,8 +875,10 @@ en:
     shop=stationery: Tag:shop=stationery
     shop=supermarket: Tag:shop=supermarket
     shop=systembolaget: Tag:shop=systembolaget
+    shop=tattoo: Tag:shop=tattoo
     shop=toys: Tag:shop=toys
-    shop=travel_agency: Tag:shop=travel agency
+    shop=trade: Tag:shop=trade
+    shop=vacuum_cleaner: Tag:shop=vacuum cleaner
     shop=variety_store: Tag:shop=variety store
     shop=video: Tag:shop=video
     source:ele=barometric: Tag:source:ele=barometric
@@ -818,16 +888,61 @@ en:
       1:25000 map (2007)
     source=Isle_of_Man_Government_aerial_imagery_(2001): Tag:source=Isle of Man Government
       aerial imagery (2001)
+    sport=10pin: Tag:sport=10pin
     sport=9pin: Tag:sport=9pin
+    sport=american_football: Tag:sport=american football
+    sport=archery: Tag:sport=archery
+    sport=athletics: Tag:sport=athletics
     sport=australian_football: Tag:sport=australian football
+    sport=badminton: Tag:sport=badminton
+    sport=baseball: Tag:sport=baseball
+    sport=basketball: Tag:sport=basketball
+    sport=beachvolleyball: Tag:sport=beachvolleyball
     sport=boules: Tag:sport=boules
+    sport=bowls: Tag:sport=bowls
+    sport=canadian_football: Tag:sport=canadian football
+    sport=canoe: Tag:sport=canoe
+    sport=chess: Tag:sport=chess
+    sport=climbing: Tag:sport=climbing
+    sport=cricket: Tag:sport=cricket
+    sport=cricket_nets: Tag:sport=cricket nets
+    sport=croquet: Tag:sport=croquet
+    sport=cycling: Tag:sport=cycling
     sport=diving: Tag:sport=diving
+    sport=dog_racing: Tag:sport=dog racing
+    sport=equestrian: Tag:sport=equestrian
+    sport=gaelic_football: Tag:sport=gaelic football
+    sport=gaelic_games: Tag:sport=gaelic games
+    sport=golf: Tag:sport=golf
+    sport=gymnastics: Tag:sport=gymnastics
+    sport=hockey: Tag:sport=hockey
+    sport=horse_racing: Tag:sport=horse racing
+    sport=horseshoes: Tag:sport=horseshoes
+    sport=ice_stock: Tag:sport=ice stock
+    sport=korfball: Tag:sport=korfball
+    sport=motor: Tag:sport=motor
+    sport=multi: Tag:sport=multi
     sport=orienteering: Tag:sport=orienteering
+    sport=paddle_tennis: Tag:sport=paddle tennis
+    sport=paragliding: Tag:sport=paragliding
+    sport=pelota: Tag:sport=pelota
+    sport=racquet: Tag:sport=racquet
     sport=rowing: Tag:sport=rowing
+    sport=rugby_league: Tag:sport=rugby league
+    sport=rugby_union: Tag:sport=rugby union
     sport=shooting: Tag:sport=shooting
+    sport=skateboard: Tag:sport=skateboard
+    sport=skating: Tag:sport=skating
+    sport=skiing: Tag:sport=skiing
     sport=soccer: Tag:sport=soccer
+    sport=surfing: Tag:sport=surfing
+    sport=swimming: Tag:sport=swimming
+    sport=table_tennis: Tag:sport=table tennis
+    sport=team_handball: Tag:sport=team handball
+    sport=tennis: Tag:sport=tennis
     sport=toboggan: Tag:sport=toboggan
     sport=volleyball: Tag:sport=volleyball
+    sport=water_ski: Tag:sport=water ski
     sub_sea=reef: Tag:sub sea=reef
     tourism=alpine_hut: Tag:tourism=alpine hut
     tourism=aquarium: Tag:tourism=aquarium
@@ -846,6 +961,7 @@ en:
     tourism=theme_park: Tag:tourism=theme park
     tourism=viewpoint: Tag:tourism=viewpoint
     tourism=zoo: Tag:tourism=zoo
+    tunnel=culvert: Tag:tunnel=culvert
     type=site: Tag:type=site
     vending=bicycle_tube: Tag:vending=bicycle tube
     waterway=boatyard: Tag:waterway=boatyard
@@ -857,6 +973,7 @@ en:
     waterway=lock_gate: Tag:waterway=lock gate
     waterway=river: Tag:waterway=river
     waterway=riverbank: Tag:waterway=riverbank
+    waterway=seaway: Tag:waterway=seaway
     waterway=stream: Tag:waterway=stream
     waterway=turning_point: Tag:waterway=turning point
     waterway=water_point: Tag:waterway=water point
@@ -868,6 +985,7 @@ es:
     amenity=bar: ES:Tag:amenity=bar
     amenity=recycling: ES:Tag:amenity=recycling
     highway=bus_stop: ES:Tag:highway=bus stop
+    railway=level_crossing: ES:Tag:railway=level crossing
 et:
   key:
     highway: Et:Key:highway
@@ -890,6 +1008,7 @@ fi:
     natural: Fi:Key:natural
     note: Fi:Key:note
     operator: Fi:Key:operator
+    parking:lane:both: Fi:Key:parking:lane:both
     shop: Fi:Key:shop
     surface: Fi:Key:surface
     tracktype: Fi:Key:tracktype
@@ -964,37 +1083,54 @@ fr:
     highway: FR:Key:highway
     landuse: FR:Key:landuse
     lanes: FR:Key:lanes
+    leisure: FR:Key:leisure
+    man_made: FR:Key:man made
     maxweight: FR:Key:maxweight
     name: FR:Key:name
+    natural: FR:Key:natural
     noname: FR:Key:noname
     opening_hours: FR:Key:opening hours
+    operator: FR:Key:operator
+    parking: FR:Key:parking
     place: FR:Key:place
     power: FR:Key:power
     sac_scale: FR:Key:sac scale
     shop: FR:Key:shop
     smoothness: FR:Key:smoothness
+    sport: FR:Key:sport
+    surface: FR:Key:surface
+    tracktype: FR:Key:tracktype
     waterway: FR:Key:waterway
   tag:
     aeroway=runway: FR:Tag:aeroway=runway
     amenity=bicycle_parking: FR:Tag:amenity=bicycle parking
     amenity=bicycle_rental: FR:Tag:amenity=bicycle rental
+    amenity=community_centre: FR:Tag:amenity=community centre
     amenity=fire_station: FR:Tag:amenity=fire station
+    amenity=library: FR:Tag:amenity=library
     amenity=pharmacy: FR:Tag:amenity=pharmacy
     amenity=recycling: FR:Tag:amenity=recycling
+    amenity=telephone: FR:Tag:amenity=telephone
     amenity=townhall: FR:Tag:amenity=townhall
     barrier=bollard: FR:Tag:barrier=bollard
     barrier=gate: FR:Tag:barrier=gate
     cycleway=bike_box: FR:Tag:cycleway=bike box
+    highway=bus_guideway: FR:Tag:highway=bus guideway
     highway=bus_stop: FR:Tag:highway=bus stop
     highway=crossing: FR:Tag:highway=crossing
     highway=cycleway: FR:Tag:highway=cycleway
+    highway=give_way: FR:Tag:highway=give way
     highway=motorway: FR:Tag:highway=motorway
     highway=motorway_link: FR:Tag:highway=motorway link
+    highway=track: FR:Tag:highway=track
     landuse=farmyard: FR:Tag:landuse=farmyard
     landuse=forest: FR:Tag:landuse=forest
     leisure=playground: FR:Tag:leisure=playground
+    man_made=cutline: FR:Tag:man made=cutline
+    man_made=surveillance: FR:Tag:man made=surveillance
     man_made=water_works: FR:Tag:man made=water works
     natural=tree: FR:Tag:natural=tree
+    natural=water: FR:Tag:natural=water
     place=city: FR:Tag:place=city
     place=hamlet: FR:Tag:place=hamlet
     place=locality: FR:Tag:place=locality
@@ -1007,12 +1143,15 @@ fr:
     railway=subway_entrance: FR:Tag:railway=subway entrance
     shop=bakery: FR:Tag:shop=bakery
     shop=supermarket: FR:Tag:shop=supermarket
+    waterway=river: FR:Tag:waterway=river
     waterway=riverbank: FR:Tag:waterway=riverbank
     waterway=stream: FR:Tag:waterway=stream
     waterway=weir: FR:Tag:waterway=weir
 hr:
   key:
     tracktype: Hr:Key:tracktype
+  tag:
+    amenity=atm: Hr:Tag:amenity=atm
 hu:
   key:
     aeroway: HU:Key:aeroway
@@ -1037,11 +1176,14 @@ it:
     geological: IT:Key:geological
     highway: IT:Key:highway
     historic: IT:Key:historic
+    incline: IT:Key:incline
     junction: IT:Key:junction
     landuse: IT:Key:landuse
     leisure: IT:Key:leisure
     lock: IT:Key:lock
     man_made: IT:Key:man made
+    maxheight: IT:Key:maxheight
+    maxwidth: IT:Key:maxwidth
     military: IT:Key:military
     mooring: IT:Key:mooring
     name: IT:Key:name
@@ -1068,12 +1210,15 @@ it:
     type: IT:Key:type
     waterway: IT:Key:waterway
     wheelchair: IT:Key:wheelchair
+    width: IT:Key:width
   tag:
     amenity=bicycle_rental: IT:Tag:amenity=bicycle rental
     amenity=college: IT:Tag:amenity=college
+    amenity=fountain: IT:Tag:amenity=fountain
     amenity=fuel: IT:Tag:amenity=fuel
     amenity=hospital: IT:Tag:amenity=hospital
     amenity=kindergarten: IT:Tag:amenity=kindergarten
+    amenity=parking: IT:Tag:amenity=parking
     amenity=place_of_worship: IT:Tag:amenity=place of worship
     amenity=police: IT:Tag:amenity=police
     amenity=post_office: IT:Tag:amenity=post office
@@ -1087,6 +1232,7 @@ it:
     highway=mini_roundabout: IT:Tag:highway=mini roundabout
     highway=motorway: IT:Tag:highway=motorway
     highway=motorway_link: IT:Tag:highway=motorway link
+    highway=pedestrian: IT:Tag:highway=pedestrian
     highway=primary: IT:Tag:highway=primary
     highway=primary_link: IT:Tag:highway=primary link
     highway=trunk: IT:Tag:highway=trunk
@@ -1096,9 +1242,14 @@ it:
     landuse=construction: IT:Tag:landuse=construction
     leisure=beach_resort: IT:Tag:leisure=beach resort
     leisure=dog_park: IT:Tag:leisure=dog park
+    leisure=marina: IT:Tag:leisure=marina
+    railway=level_crossing: IT:Tag:railway=level crossing
     shop=butcher: IT:Tag:shop=butcher
     shop=car: IT:Tag:shop=car
+    shop=clothes: IT:Tag:shop=clothes
     shop=florist: IT:Tag:shop=florist
+    shop=newsagent: IT:Tag:shop=newsagent
+    tourism=artwork: IT:Tag:tourism=artwork
 ja:
   key:
     abutters: JA:Key:abutters
@@ -1122,6 +1273,7 @@ ja:
     information: JA:Key:information
     internet_access: JA:Key:internet access
     landuse: JA:Key:landuse
+    lanes: JA:Key:lanes
     leisure: JA:Key:leisure
     man_made: JA:Key:man made
     military: JA:Key:military
@@ -1150,6 +1302,7 @@ ja:
     amenity=baby_hatch: JA:Tag:amenity=baby hatch
     amenity=bus_station: JA:Tag:amenity=bus station
     amenity=cafe: JA:Tag:amenity=cafe
+    amenity=crematorium: JA:Tag:amenity=crematorium
     amenity=drinking_water: JA:Tag:amenity=drinking water
     amenity=fast_food: JA:Tag:amenity=fast food
     amenity=fire_station: JA:Tag:amenity=fire station
@@ -1184,10 +1337,13 @@ ja:
     railway=station: JA:Tag:railway=station
     shop=doityourself: JA:Tag:shop=doityourself
     shop=garden_centre: JA:Tag:shop=garden centre
+    shop=gift: JA:Tag:shop=gift
     shop=motorcycle: JA:Tag:shop=motorcycle
     shop=outdoor: JA:Tag:shop=outdoor
+    tourism=hostel: JA:Tag:tourism=hostel
     tourism=hotel: JA:Tag:tourism=hotel
     tourism=information: JA:Tag:tourism=information
+    tourism=viewpoint: JA:Tag:tourism=viewpoint
     waterway=riverbank: JA:Tag:waterway=riverbank
     waterway=water_point: JA:Tag:waterway=water point
 nl:
@@ -1200,13 +1356,18 @@ nl:
     zoo=petting_zoo: NL:Tag:zoo=petting zoo
 no:
   key:
+    amenity: No:Key:amenity
+    boundary: No:Key:boundary
     fenced: No:Key:fenced
+    maxheight:legal: No:Key:maxheight:legal
     maxheight:marine: No:Key:maxheight:marine
+    maxheight:physical: No:Key:maxheight:physical
   tag:
     amenity=bank: No:Tag:amenity=bank
     amenity=marketplace: No:Tag:amenity=marketplace
     amenity=pharmacy: No:Tag:amenity=pharmacy
     amenity=place_of_worship: No:Tag:amenity=place of worship
+    boundary=maritime: No:Tag:boundary=maritime
 pl:
   key:
     height: Pl:Key:height
@@ -1316,10 +1477,12 @@ ru:
     aeroway: RU:Key:aeroway
     amenity: RU:Key:amenity
     area: RU:Key:area
+    barrier: RU:Key:barrier
     bicycle: RU:Key:bicycle
     boat: RU:Key:boat
     border_type: RU:Key:border type
     boundary: RU:Key:boundary
+    bridge: RU:Key:bridge
     building: RU:Key:building
     bunker_type: RU:Key:bunker type
     capacity: RU:Key:capacity
@@ -1372,6 +1535,7 @@ ru:
     place: RU:Key:place
     population: RU:Key:population
     power: RU:Key:power
+    power_source: RU:Key:power source
     railway: RU:Key:railway
     ref: RU:Key:ref
     religion: RU:Key:religion
@@ -1426,7 +1590,9 @@ ru:
     amenity=waste_basket: RU:Tag:amenity=waste basket
     amenity=waste_disposal: RU:Tag:amenity=waste disposal
     atm=yes: RU:Tag:atm=yes
+    barrier=fence: RU:Tag:barrier=fence
     barrier=lift_gate: RU:Tag:barrier=lift gate
+    barrier=toll_booth: RU:Tag:barrier=toll booth
     building=entrance: RU:Tag:building=entrance
     highway=bridleway: RU:Tag:highway=bridleway
     highway=bus_stop: RU:Tag:highway=bus stop
@@ -1473,6 +1639,7 @@ ru:
     landuse=industrial: RU:Tag:landuse=industrial
     landuse=meadow: RU:Tag:landuse=meadow
     landuse=military: RU:Tag:landuse=military
+    landuse=peat_cutting: RU:Tag:landuse=peat cutting
     landuse=railway: RU:Tag:landuse=railway
     landuse=reservoir: RU:Tag:landuse=reservoir
     landuse=residential: RU:Tag:landuse=residential
@@ -1482,6 +1649,7 @@ ru:
     man_made=cutline: RU:Tag:man made=cutline
     man_made=lighthouse: RU:Tag:man made=lighthouse
     man_made=pier: RU:Tag:man made=pier
+    natural=beach: RU:Tag:natural=beach
     natural=fell: RU:Tag:natural=fell
     natural=spring: RU:Tag:natural=spring
     natural=tree: RU:Tag:natural=tree
@@ -1493,7 +1661,9 @@ ru:
     place=island: RU:Tag:place=island
     place=town: RU:Tag:place=town
     place=village: RU:Tag:place=village
+    power=generator: RU:Tag:power=generator
     power=line: RU:Tag:power=line
+    power=station: RU:Tag:power=station
     power=sub_station: RU:Tag:power=sub station
     power=tower: RU:Tag:power=tower
     railway=crossing: RU:Tag:railway=crossing
@@ -1527,6 +1697,8 @@ ru:
     waterway=stream: RU:Tag:waterway=stream
     waterway=weir: RU:Tag:waterway=weir
 sv:
+  key:
+    access: Sv:Key:access
   tag:
     amenity=place_of_worship: Sv:Tag:amenity=place of worship
 tr:
@@ -1553,7 +1725,5 @@ uk:
     highway=tertiary: Uk:Tag:highway=tertiary
     highway=trunk: Uk:Tag:highway=trunk
     highway=trunk_link: Uk:Tag:highway=trunk link
-zh-hans:
-  key:
-    place: Zh-hans:Key:place
+    highway=unclassified: Uk:Tag:highway=unclassified
 
diff --git a/db/migrate/20100910084426_add_callback_to_oauth_tokens.rb b/db/migrate/20100910084426_add_callback_to_oauth_tokens.rb
new file mode 100644 (file)
index 0000000..179b80f
--- /dev/null
@@ -0,0 +1,11 @@
+class AddCallbackToOauthTokens < ActiveRecord::Migration
+  def self.up
+    add_column :oauth_tokens, :callback_url, :string
+    add_column :oauth_tokens, :verifier, :string, :limit => 20
+  end
+
+  def self.down
+    remove_column :oauth_tokens, :callback_url
+    remove_column :oauth_tokens, :verifier
+  end
+end
index fe7a99241521fe909ed9b9744969aa5a873883d7..3ff15e8f55b874b9394ee7314816a62f1510718d 100644 (file)
@@ -2,8 +2,8 @@
 
   OpenLayers.js -- OpenLayers Map Viewer Library
 
-  Copyright 2005-2008 MetaCarta, Inc., released under the Clear BSD license.
-  Please see http://svn.openlayers.org/trunk/openlayers/license.txt
+  Copyright 2005-2010 OpenLayers Contributors, released under the Clear BSD
+  license. Please see http://svn.openlayers.org/trunk/openlayers/license.txt
   for the full text of the license.
 
   Includes compressed code under the following licenses:
@@ -92,9 +92,9 @@
  */
 var OpenLayers={singleFile:true};(function(){var singleFile=(typeof OpenLayers=="object"&&OpenLayers.singleFile);var scriptLocation;window.OpenLayers={_scriptName:(!singleFile)?"lib/OpenLayers.js":"OpenLayers.js",_getScriptLocation:function(){if(scriptLocation!=undefined){return scriptLocation;}
 scriptLocation="";var isOL=new RegExp("(^|(.*?\\/))("+OpenLayers._scriptName+")(\\?|$)");var scripts=document.getElementsByTagName('script');for(var i=0,len=scripts.length;i<len;i++){var src=scripts[i].getAttribute('src');if(src){var match=src.match(isOL);if(match){scriptLocation=match[1];break;}}}
-return scriptLocation;}};if(!singleFile){var jsfiles=new Array("OpenLayers/Util.js","OpenLayers/BaseTypes.js","OpenLayers/BaseTypes/Class.js","OpenLayers/BaseTypes/Bounds.js","OpenLayers/BaseTypes/Element.js","OpenLayers/BaseTypes/LonLat.js","OpenLayers/BaseTypes/Pixel.js","OpenLayers/BaseTypes/Size.js","OpenLayers/Console.js","OpenLayers/Tween.js","Rico/Corner.js","Rico/Color.js","OpenLayers/Ajax.js","OpenLayers/Events.js","OpenLayers/Request.js","OpenLayers/Request/XMLHttpRequest.js","OpenLayers/Projection.js","OpenLayers/Map.js","OpenLayers/Layer.js","OpenLayers/Icon.js","OpenLayers/Marker.js","OpenLayers/Marker/Box.js","OpenLayers/Popup.js","OpenLayers/Tile.js","OpenLayers/Tile/Image.js","OpenLayers/Tile/Image/IFrame.js","OpenLayers/Tile/WFS.js","OpenLayers/Layer/Image.js","OpenLayers/Layer/SphericalMercator.js","OpenLayers/Layer/EventPane.js","OpenLayers/Layer/FixedZoomLevels.js","OpenLayers/Layer/Google.js","OpenLayers/Layer/VirtualEarth.js","OpenLayers/Layer/Yahoo.js","OpenLayers/Layer/HTTPRequest.js","OpenLayers/Layer/Grid.js","OpenLayers/Layer/MapGuide.js","OpenLayers/Layer/MapServer.js","OpenLayers/Layer/MapServer/Untiled.js","OpenLayers/Layer/KaMap.js","OpenLayers/Layer/KaMapCache.js","OpenLayers/Layer/MultiMap.js","OpenLayers/Layer/Markers.js","OpenLayers/Layer/Text.js","OpenLayers/Layer/WorldWind.js","OpenLayers/Layer/ArcGIS93Rest.js","OpenLayers/Layer/WMS.js","OpenLayers/Layer/WMS/Untiled.js","OpenLayers/Layer/WMS/Post.js","OpenLayers/Layer/ArcIMS.js","OpenLayers/Layer/GeoRSS.js","OpenLayers/Layer/Boxes.js","OpenLayers/Layer/XYZ.js","OpenLayers/Layer/TMS.js","OpenLayers/Layer/TileCache.js","OpenLayers/Layer/Zoomify.js","OpenLayers/Popup/Anchored.js","OpenLayers/Popup/AnchoredBubble.js","OpenLayers/Popup/Framed.js","OpenLayers/Popup/FramedCloud.js","OpenLayers/Feature.js","OpenLayers/Feature/Vector.js","OpenLayers/Feature/WFS.js","OpenLayers/Handler.js","OpenLayers/Handler/Click.js","OpenLayers/Handler/Hover.js","OpenLayers/Handler/Point.js","OpenLayers/Handler/Path.js","OpenLayers/Handler/Polygon.js","OpenLayers/Handler/Feature.js","OpenLayers/Handler/Drag.js","OpenLayers/Handler/RegularPolygon.js","OpenLayers/Handler/Box.js","OpenLayers/Handler/MouseWheel.js","OpenLayers/Handler/Keyboard.js","OpenLayers/Control.js","OpenLayers/Control/Attribution.js","OpenLayers/Control/Button.js","OpenLayers/Control/ZoomBox.js","OpenLayers/Control/ZoomToMaxExtent.js","OpenLayers/Control/DragPan.js","OpenLayers/Control/Navigation.js","OpenLayers/Control/MouseDefaults.js","OpenLayers/Control/MousePosition.js","OpenLayers/Control/OverviewMap.js","OpenLayers/Control/KeyboardDefaults.js","OpenLayers/Control/PanZoom.js","OpenLayers/Control/PanZoomBar.js","OpenLayers/Control/ArgParser.js","OpenLayers/Control/Permalink.js","OpenLayers/Control/Scale.js","OpenLayers/Control/ScaleLine.js","OpenLayers/Control/Snapping.js","OpenLayers/Control/Split.js","OpenLayers/Control/LayerSwitcher.js","OpenLayers/Control/DrawFeature.js","OpenLayers/Control/DragFeature.js","OpenLayers/Control/ModifyFeature.js","OpenLayers/Control/Panel.js","OpenLayers/Control/SelectFeature.js","OpenLayers/Control/NavigationHistory.js","OpenLayers/Control/Measure.js","OpenLayers/Control/WMSGetFeatureInfo.js","OpenLayers/Control/Graticule.js","OpenLayers/Control/TransformFeature.js","OpenLayers/Geometry.js","OpenLayers/Geometry/Rectangle.js","OpenLayers/Geometry/Collection.js","OpenLayers/Geometry/Point.js","OpenLayers/Geometry/MultiPoint.js","OpenLayers/Geometry/Curve.js","OpenLayers/Geometry/LineString.js","OpenLayers/Geometry/LinearRing.js","OpenLayers/Geometry/Polygon.js","OpenLayers/Geometry/MultiLineString.js","OpenLayers/Geometry/MultiPolygon.js","OpenLayers/Geometry/Surface.js","OpenLayers/Renderer.js","OpenLayers/Renderer/Elements.js","OpenLayers/Renderer/SVG.js","OpenLayers/Renderer/Canvas.js","OpenLayers/Renderer/VML.js","OpenLayers/Layer/Vector.js","OpenLayers/Layer/Vector/RootContainer.js","OpenLayers/Strategy.js","OpenLayers/Strategy/Fixed.js","OpenLayers/Strategy/Cluster.js","OpenLayers/Strategy/Paging.js","OpenLayers/Strategy/BBOX.js","OpenLayers/Strategy/Save.js","OpenLayers/Strategy/Refresh.js","OpenLayers/Filter.js","OpenLayers/Filter/FeatureId.js","OpenLayers/Filter/Logical.js","OpenLayers/Filter/Comparison.js","OpenLayers/Filter/Spatial.js","OpenLayers/Protocol.js","OpenLayers/Protocol/HTTP.js","OpenLayers/Protocol/SQL.js","OpenLayers/Protocol/SQL/Gears.js","OpenLayers/Protocol/WFS.js","OpenLayers/Protocol/WFS/v1.js","OpenLayers/Protocol/WFS/v1_0_0.js","OpenLayers/Protocol/WFS/v1_1_0.js","OpenLayers/Protocol/SOS.js","OpenLayers/Protocol/SOS/v1_0_0.js","OpenLayers/Layer/PointTrack.js","OpenLayers/Layer/GML.js","OpenLayers/Style.js","OpenLayers/StyleMap.js","OpenLayers/Rule.js","OpenLayers/Format.js","OpenLayers/Format/XML.js","OpenLayers/Format/ArcXML.js","OpenLayers/Format/ArcXML/Features.js","OpenLayers/Format/GML.js","OpenLayers/Format/GML/Base.js","OpenLayers/Format/GML/v2.js","OpenLayers/Format/GML/v3.js","OpenLayers/Format/Atom.js","OpenLayers/Format/KML.js","OpenLayers/Format/GeoRSS.js","OpenLayers/Format/WFS.js","OpenLayers/Format/WFSCapabilities.js","OpenLayers/Format/WFSCapabilities/v1.js","OpenLayers/Format/WFSCapabilities/v1_0_0.js","OpenLayers/Format/WFSCapabilities/v1_1_0.js","OpenLayers/Format/WFSDescribeFeatureType.js","OpenLayers/Format/WMSDescribeLayer.js","OpenLayers/Format/WMSDescribeLayer/v1_1.js","OpenLayers/Format/WKT.js","OpenLayers/Format/OSM.js","OpenLayers/Format/GPX.js","OpenLayers/Format/Filter.js","OpenLayers/Format/Filter/v1.js","OpenLayers/Format/Filter/v1_0_0.js","OpenLayers/Format/Filter/v1_1_0.js","OpenLayers/Format/SLD.js","OpenLayers/Format/SLD/v1.js","OpenLayers/Format/SLD/v1_0_0.js","OpenLayers/Format/CSWGetDomain.js","OpenLayers/Format/CSWGetDomain/v2_0_2.js","OpenLayers/Format/CSWGetRecords.js","OpenLayers/Format/CSWGetRecords/v2_0_2.js","OpenLayers/Format/WFST.js","OpenLayers/Format/WFST/v1.js","OpenLayers/Format/WFST/v1_0_0.js","OpenLayers/Format/WFST/v1_1_0.js","OpenLayers/Format/Text.js","OpenLayers/Format/JSON.js","OpenLayers/Format/GeoJSON.js","OpenLayers/Format/WMC.js","OpenLayers/Format/WMC/v1.js","OpenLayers/Format/WMC/v1_0_0.js","OpenLayers/Format/WMC/v1_1_0.js","OpenLayers/Format/WMSCapabilities.js","OpenLayers/Format/WMSCapabilities/v1.js","OpenLayers/Format/WMSCapabilities/v1_1.js","OpenLayers/Format/WMSCapabilities/v1_1_0.js","OpenLayers/Format/WMSCapabilities/v1_1_1.js","OpenLayers/Format/WMSCapabilities/v1_3.js","OpenLayers/Format/WMSCapabilities/v1_3_0.js","OpenLayers/Format/WMSGetFeatureInfo.js","OpenLayers/Format/OWSCommon/v1_1_0.js","OpenLayers/Format/SOSCapabilities.js","OpenLayers/Format/SOSCapabilities/v1_0_0.js","OpenLayers/Format/SOSGetObservation.js","OpenLayers/Format/SOSGetFeatureOfInterest.js","OpenLayers/Layer/WFS.js","OpenLayers/Control/GetFeature.js","OpenLayers/Control/MouseToolbar.js","OpenLayers/Control/NavToolbar.js","OpenLayers/Control/PanPanel.js","OpenLayers/Control/Pan.js","OpenLayers/Control/ZoomIn.js","OpenLayers/Control/ZoomOut.js","OpenLayers/Control/ZoomPanel.js","OpenLayers/Control/EditingToolbar.js","OpenLayers/Lang.js","OpenLayers/Lang/en.js");var agent=navigator.userAgent;var docWrite=(agent.match("MSIE")||agent.match("Safari"));if(docWrite){var allScriptTags=new Array(jsfiles.length);}
+return scriptLocation;}};if(!singleFile){var jsfiles=new Array("OpenLayers/Util.js","OpenLayers/BaseTypes.js","OpenLayers/BaseTypes/Class.js","OpenLayers/BaseTypes/Bounds.js","OpenLayers/BaseTypes/Element.js","OpenLayers/BaseTypes/LonLat.js","OpenLayers/BaseTypes/Pixel.js","OpenLayers/BaseTypes/Size.js","OpenLayers/Console.js","OpenLayers/Tween.js","Rico/Corner.js","Rico/Color.js","OpenLayers/Ajax.js","OpenLayers/Events.js","OpenLayers/Request.js","OpenLayers/Request/XMLHttpRequest.js","OpenLayers/Projection.js","OpenLayers/Map.js","OpenLayers/Layer.js","OpenLayers/Icon.js","OpenLayers/Marker.js","OpenLayers/Marker/Box.js","OpenLayers/Popup.js","OpenLayers/Tile.js","OpenLayers/Tile/Image.js","OpenLayers/Tile/Image/IFrame.js","OpenLayers/Tile/WFS.js","OpenLayers/Layer/Image.js","OpenLayers/Layer/SphericalMercator.js","OpenLayers/Layer/EventPane.js","OpenLayers/Layer/FixedZoomLevels.js","OpenLayers/Layer/Google.js","OpenLayers/Layer/Google/v3.js","OpenLayers/Layer/VirtualEarth.js","OpenLayers/Layer/Yahoo.js","OpenLayers/Layer/HTTPRequest.js","OpenLayers/Layer/Grid.js","OpenLayers/Layer/MapGuide.js","OpenLayers/Layer/MapServer.js","OpenLayers/Layer/MapServer/Untiled.js","OpenLayers/Layer/KaMap.js","OpenLayers/Layer/KaMapCache.js","OpenLayers/Layer/MultiMap.js","OpenLayers/Layer/Markers.js","OpenLayers/Layer/Text.js","OpenLayers/Layer/WorldWind.js","OpenLayers/Layer/ArcGIS93Rest.js","OpenLayers/Layer/WMS.js","OpenLayers/Layer/WMS/Untiled.js","OpenLayers/Layer/WMS/Post.js","OpenLayers/Layer/WMTS.js","OpenLayers/Layer/ArcIMS.js","OpenLayers/Layer/GeoRSS.js","OpenLayers/Layer/Boxes.js","OpenLayers/Layer/XYZ.js","OpenLayers/Layer/TMS.js","OpenLayers/Layer/TileCache.js","OpenLayers/Layer/Zoomify.js","OpenLayers/Popup/Anchored.js","OpenLayers/Popup/AnchoredBubble.js","OpenLayers/Popup/Framed.js","OpenLayers/Popup/FramedCloud.js","OpenLayers/Feature.js","OpenLayers/Feature/Vector.js","OpenLayers/Feature/WFS.js","OpenLayers/Handler.js","OpenLayers/Handler/Click.js","OpenLayers/Handler/Hover.js","OpenLayers/Handler/Point.js","OpenLayers/Handler/Path.js","OpenLayers/Handler/Polygon.js","OpenLayers/Handler/Feature.js","OpenLayers/Handler/Drag.js","OpenLayers/Handler/RegularPolygon.js","OpenLayers/Handler/Box.js","OpenLayers/Handler/MouseWheel.js","OpenLayers/Handler/Keyboard.js","OpenLayers/Control.js","OpenLayers/Control/Attribution.js","OpenLayers/Control/Button.js","OpenLayers/Control/ZoomBox.js","OpenLayers/Control/ZoomToMaxExtent.js","OpenLayers/Control/DragPan.js","OpenLayers/Control/Navigation.js","OpenLayers/Control/MouseDefaults.js","OpenLayers/Control/MousePosition.js","OpenLayers/Control/OverviewMap.js","OpenLayers/Control/KeyboardDefaults.js","OpenLayers/Control/PanZoom.js","OpenLayers/Control/PanZoomBar.js","OpenLayers/Control/ArgParser.js","OpenLayers/Control/Permalink.js","OpenLayers/Control/Scale.js","OpenLayers/Control/ScaleLine.js","OpenLayers/Control/Snapping.js","OpenLayers/Control/Split.js","OpenLayers/Control/LayerSwitcher.js","OpenLayers/Control/DrawFeature.js","OpenLayers/Control/DragFeature.js","OpenLayers/Control/ModifyFeature.js","OpenLayers/Control/Panel.js","OpenLayers/Control/SelectFeature.js","OpenLayers/Control/NavigationHistory.js","OpenLayers/Control/Measure.js","OpenLayers/Control/WMSGetFeatureInfo.js","OpenLayers/Control/WMTSGetFeatureInfo.js","OpenLayers/Control/Graticule.js","OpenLayers/Control/TransformFeature.js","OpenLayers/Control/SLDSelect.js","OpenLayers/Geometry.js","OpenLayers/Geometry/Rectangle.js","OpenLayers/Geometry/Collection.js","OpenLayers/Geometry/Point.js","OpenLayers/Geometry/MultiPoint.js","OpenLayers/Geometry/Curve.js","OpenLayers/Geometry/LineString.js","OpenLayers/Geometry/LinearRing.js","OpenLayers/Geometry/Polygon.js","OpenLayers/Geometry/MultiLineString.js","OpenLayers/Geometry/MultiPolygon.js","OpenLayers/Geometry/Surface.js","OpenLayers/Renderer.js","OpenLayers/Renderer/Elements.js","OpenLayers/Renderer/SVG.js","OpenLayers/Renderer/Canvas.js","OpenLayers/Renderer/VML.js","OpenLayers/Layer/Vector.js","OpenLayers/Layer/Vector/RootContainer.js","OpenLayers/Strategy.js","OpenLayers/Strategy/Filter.js","OpenLayers/Strategy/Fixed.js","OpenLayers/Strategy/Cluster.js","OpenLayers/Strategy/Paging.js","OpenLayers/Strategy/BBOX.js","OpenLayers/Strategy/Save.js","OpenLayers/Strategy/Refresh.js","OpenLayers/Filter.js","OpenLayers/Filter/FeatureId.js","OpenLayers/Filter/Logical.js","OpenLayers/Filter/Comparison.js","OpenLayers/Filter/Spatial.js","OpenLayers/Protocol.js","OpenLayers/Protocol/HTTP.js","OpenLayers/Protocol/SQL.js","OpenLayers/Protocol/SQL/Gears.js","OpenLayers/Protocol/WFS.js","OpenLayers/Protocol/WFS/v1.js","OpenLayers/Protocol/WFS/v1_0_0.js","OpenLayers/Protocol/WFS/v1_1_0.js","OpenLayers/Protocol/SOS.js","OpenLayers/Protocol/SOS/v1_0_0.js","OpenLayers/Layer/PointTrack.js","OpenLayers/Layer/GML.js","OpenLayers/Style.js","OpenLayers/Style2.js","OpenLayers/StyleMap.js","OpenLayers/Rule.js","OpenLayers/Format.js","OpenLayers/Format/XML.js","OpenLayers/Format/Context.js","OpenLayers/Format/ArcXML.js","OpenLayers/Format/ArcXML/Features.js","OpenLayers/Format/GML.js","OpenLayers/Format/GML/Base.js","OpenLayers/Format/GML/v2.js","OpenLayers/Format/GML/v3.js","OpenLayers/Format/Atom.js","OpenLayers/Format/KML.js","OpenLayers/Format/GeoRSS.js","OpenLayers/Format/WFS.js","OpenLayers/Format/WFSCapabilities.js","OpenLayers/Format/WFSCapabilities/v1.js","OpenLayers/Format/WFSCapabilities/v1_0_0.js","OpenLayers/Format/WFSCapabilities/v1_1_0.js","OpenLayers/Format/WFSDescribeFeatureType.js","OpenLayers/Format/WMSDescribeLayer.js","OpenLayers/Format/WMSDescribeLayer/v1_1.js","OpenLayers/Format/WKT.js","OpenLayers/Format/OSM.js","OpenLayers/Format/GPX.js","OpenLayers/Format/Filter.js","OpenLayers/Format/Filter/v1.js","OpenLayers/Format/Filter/v1_0_0.js","OpenLayers/Format/Filter/v1_1_0.js","OpenLayers/Format/SLD.js","OpenLayers/Format/SLD/v1.js","OpenLayers/Format/SLD/v1_0_0.js","OpenLayers/Format/OWSCommon/v1.js","OpenLayers/Format/OWSCommon/v1_0_0.js","OpenLayers/Format/OWSCommon/v1_1_0.js","OpenLayers/Format/CSWGetDomain.js","OpenLayers/Format/CSWGetDomain/v2_0_2.js","OpenLayers/Format/CSWGetRecords.js","OpenLayers/Format/CSWGetRecords/v2_0_2.js","OpenLayers/Format/WFST.js","OpenLayers/Format/WFST/v1.js","OpenLayers/Format/WFST/v1_0_0.js","OpenLayers/Format/WFST/v1_1_0.js","OpenLayers/Format/Text.js","OpenLayers/Format/JSON.js","OpenLayers/Format/GeoJSON.js","OpenLayers/Format/WMC.js","OpenLayers/Format/WMC/v1.js","OpenLayers/Format/WMC/v1_0_0.js","OpenLayers/Format/WMC/v1_1_0.js","OpenLayers/Format/WMSCapabilities.js","OpenLayers/Format/WMSCapabilities/v1.js","OpenLayers/Format/WMSCapabilities/v1_1.js","OpenLayers/Format/WMSCapabilities/v1_1_0.js","OpenLayers/Format/WMSCapabilities/v1_1_1.js","OpenLayers/Format/WMSCapabilities/v1_3.js","OpenLayers/Format/WMSCapabilities/v1_3_0.js","OpenLayers/Format/WMSGetFeatureInfo.js","OpenLayers/Format/SOSCapabilities.js","OpenLayers/Format/SOSCapabilities/v1_0_0.js","OpenLayers/Format/SOSGetObservation.js","OpenLayers/Format/SOSGetFeatureOfInterest.js","OpenLayers/Format/OWSContext.js","OpenLayers/Format/OWSContext/v0_3_1.js","OpenLayers/Format/WMTSCapabilities.js","OpenLayers/Format/WMTSCapabilities/v1_0_0.js","OpenLayers/Layer/WFS.js","OpenLayers/Control/GetFeature.js","OpenLayers/Control/MouseToolbar.js","OpenLayers/Control/NavToolbar.js","OpenLayers/Control/PanPanel.js","OpenLayers/Control/Pan.js","OpenLayers/Control/ZoomIn.js","OpenLayers/Control/ZoomOut.js","OpenLayers/Control/ZoomPanel.js","OpenLayers/Control/EditingToolbar.js","OpenLayers/Symbolizer.js","OpenLayers/Symbolizer/Point.js","OpenLayers/Symbolizer/Line.js","OpenLayers/Symbolizer/Polygon.js","OpenLayers/Symbolizer/Text.js","OpenLayers/Symbolizer/Raster.js","OpenLayers/Lang.js","OpenLayers/Lang/en.js");var agent=navigator.userAgent;var docWrite=(agent.match("MSIE")||agent.match("Safari"));if(docWrite){var allScriptTags=new Array(jsfiles.length);}
 var host=OpenLayers._getScriptLocation()+"lib/";for(var i=0,len=jsfiles.length;i<len;i++){if(docWrite){allScriptTags[i]="<script src='"+host+jsfiles[i]+"'></script>";}else{var s=document.createElement("script");s.src=host+jsfiles[i];var h=document.getElementsByTagName("head").length?document.getElementsByTagName("head")[0]:document.body;h.appendChild(s);}}
-if(docWrite){document.write(allScriptTags.join(""));}}})();OpenLayers.VERSION_NUMBER="OpenLayers 2.9.1 -- $Revision: 10129 $";OpenLayers.String={startsWith:function(str,sub){return(str.indexOf(sub)==0);},contains:function(str,sub){return(str.indexOf(sub)!=-1);},trim:function(str){return str.replace(/^\s\s*/,'').replace(/\s\s*$/,'');},camelize:function(str){var oStringList=str.split('-');var camelizedString=oStringList[0];for(var i=1,len=oStringList.length;i<len;i++){var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}
+if(docWrite){document.write(allScriptTags.join(""));}}})();OpenLayers.VERSION_NUMBER="OpenLayers 2.10 -- $Revision: 10721 $";OpenLayers.String={startsWith:function(str,sub){return(str.indexOf(sub)==0);},contains:function(str,sub){return(str.indexOf(sub)!=-1);},trim:function(str){return str.replace(/^\s\s*/,'').replace(/\s\s*$/,'');},camelize:function(str){var oStringList=str.split('-');var camelizedString=oStringList[0];for(var i=1,len=oStringList.length;i<len;i++){var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}
 return camelizedString;},format:function(template,context,args){if(!context){context=window;}
 var replacer=function(str,match){var replacement;var subs=match.split(/\.+/);for(var i=0;i<subs.length;i++){if(i==0){replacement=context;}
 replacement=replacement[subs[i]];}
@@ -114,8 +114,18 @@ OpenLayers.Function={bind:function(func,object){var args=Array.prototype.slice.a
 if(!Function.prototype.bindAsEventListener){Function.prototype.bindAsEventListener=function(object){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Function.bindAsEventListener'}));return OpenLayers.Function.bindAsEventListener(this,object);};}
 OpenLayers.Array={filter:function(array,callback,caller){var selected=[];if(Array.prototype.filter){selected=array.filter(callback,caller);}else{var len=array.length;if(typeof callback!="function"){throw new TypeError();}
 for(var i=0;i<len;i++){if(i in array){var val=array[i];if(callback.call(caller,val,i,array)){selected.push(val);}}}}
-return selected;}};OpenLayers.Class=function(){var Class=function(){if(arguments&&arguments[0]!=OpenLayers.Class.isPrototype){this.initialize.apply(this,arguments);}};var extended={};var parent,initialize;for(var i=0,len=arguments.length;i<len;++i){if(typeof arguments[i]=="function"){if(i==0&&len>1){initialize=arguments[i].prototype.initialize;arguments[i].prototype.initialize=function(){};extended=new arguments[i];if(initialize===undefined){delete arguments[i].prototype.initialize;}else{arguments[i].prototype.initialize=initialize;}}
-parent=arguments[i].prototype;}else{parent=arguments[i];}
+return selected;}};OpenLayers.Date={toISOString:(function(){if("toISOString"in Date.prototype){return function(date){return date.toISOString();}}else{function pad(num,len){var str=num+"";while(str.length<len){str="0"+str;}
+return str;}
+return function(date){var str;if(isNaN(date.getTime())){str="Invalid Date";}else{str=date.getUTCFullYear()+"-"+
+pad(date.getUTCMonth()+1,2)+"-"+
+pad(date.getUTCDate(),2)+"T"+
+pad(date.getUTCHours(),2)+":"+
+pad(date.getUTCMinutes(),2)+":"+
+pad(date.getUTCSeconds(),2)+"."+
+pad(date.getUTCMilliseconds(),3)+"Z";}
+return str;}}})(),parse:function(str){var date;var elapsed=Date.parse(str);if(!isNaN(elapsed)){date=new Date(elapsed);}else{var match=str.match(/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{1,2}):(\d{2}):(\d{2}(?:\.\d+)?)(Z|(?:[+-]\d{1,2}(?::(\d{2}))?)))?$/);var date;if(match&&(match[1]||match[7])){var year=parseInt(match[1],10)||0;var month=(parseInt(match[2],10)-1)||0;var day=parseInt(match[3],10)||1;date=new Date(Date.UTC(year,month,day));var type=match[7];if(type){var hours=parseInt(match[4],10);var minutes=parseInt(match[5],10);var secFrac=parseFloat(match[6]);var seconds=secFrac|0;var milliseconds=Math.round(1000*(secFrac-seconds));date.setUTCHours(hours,minutes,seconds,milliseconds);if(type!=="Z"){var hoursOffset=parseInt(type,10);var minutesOffset=parseInt(match[8])||0;var offset=-1000*(60*(hoursOffset*60)+minutesOffset*60);date=new Date(date.getTime()+offset);}}}else{date=new Date("invalid");}}
+return date;}};OpenLayers.Class=function(){var Class=function(){if(arguments&&arguments[0]!=OpenLayers.Class.isPrototype){this.initialize.apply(this,arguments);}};var extended={};var parent,initialize,Type;for(var i=0,len=arguments.length;i<len;++i){Type=arguments[i];if(typeof Type=="function"){if(i==0&&len>1){initialize=Type.prototype.initialize;Type.prototype.initialize=function(){};extended=new Type();if(initialize===undefined){delete Type.prototype.initialize;}else{Type.prototype.initialize=initialize;}}
+parent=Type.prototype;}else{parent=Type;}
 OpenLayers.Util.extend(extended,parent);}
 Class.prototype=extended;return Class;};OpenLayers.Class.isPrototype=function(){};OpenLayers.Class.create=function(){return function(){if(arguments&&arguments[0]!=OpenLayers.Class.isPrototype){this.initialize.apply(this,arguments);}};};OpenLayers.Class.inherit=function(){var superClass=arguments[0];var proto=new superClass(OpenLayers.Class.isPrototype);for(var i=1,len=arguments.length;i<len;i++){if(typeof arguments[i]=="function"){var mixin=arguments[i];arguments[i]=new mixin(OpenLayers.Class.isPrototype);}
 OpenLayers.Util.extend(proto,arguments[i]);}
@@ -168,12 +178,14 @@ else if(result[index].childNodes.length==1){return result[index].firstChild.node
 if(!val){val=node.firstChild.nodeValue;}},function(){val=node.textContent;});return val;};OpenLayers.Util.mouseLeft=function(evt,div){var target=(evt.relatedTarget)?evt.relatedTarget:evt.toElement;while(target!=div&&target!=null){target=target.parentNode;}
 return(target!=div);};OpenLayers.Util.DEFAULT_PRECISION=14;OpenLayers.Util.toFloat=function(number,precision){if(precision==null){precision=OpenLayers.Util.DEFAULT_PRECISION;}
 var number;if(precision==0){number=parseFloat(number);}else{number=parseFloat(parseFloat(number).toPrecision(precision));}
-return number;};OpenLayers.Util.rad=function(x){return x*Math.PI/180;};OpenLayers.Util.distVincenty=function(p1,p2){var a=6378137,b=6356752.3142,f=1/298.257223563;var L=OpenLayers.Util.rad(p2.lon-p1.lon);var U1=Math.atan((1-f)*Math.tan(OpenLayers.Util.rad(p1.lat)));var U2=Math.atan((1-f)*Math.tan(OpenLayers.Util.rad(p2.lat)));var sinU1=Math.sin(U1),cosU1=Math.cos(U1);var sinU2=Math.sin(U2),cosU2=Math.cos(U2);var lambda=L,lambdaP=2*Math.PI;var iterLimit=20;while(Math.abs(lambda-lambdaP)>1e-12&&--iterLimit>0){var sinLambda=Math.sin(lambda),cosLambda=Math.cos(lambda);var sinSigma=Math.sqrt((cosU2*sinLambda)*(cosU2*sinLambda)+
+return number;};OpenLayers.Util.rad=function(x){return x*Math.PI/180;};OpenLayers.Util.deg=function(x){return x*180/Math.PI;};OpenLayers.Util.VincentyConstants={a:6378137,b:6356752.3142,f:1/298.257223563};OpenLayers.Util.distVincenty=function(p1,p2){var ct=OpenLayers.Util.VincentyConstants;var a=ct.a,b=ct.b,f=ct.f;var L=OpenLayers.Util.rad(p2.lon-p1.lon);var U1=Math.atan((1-f)*Math.tan(OpenLayers.Util.rad(p1.lat)));var U2=Math.atan((1-f)*Math.tan(OpenLayers.Util.rad(p2.lat)));var sinU1=Math.sin(U1),cosU1=Math.cos(U1);var sinU2=Math.sin(U2),cosU2=Math.cos(U2);var lambda=L,lambdaP=2*Math.PI;var iterLimit=20;while(Math.abs(lambda-lambdaP)>1e-12&&--iterLimit>0){var sinLambda=Math.sin(lambda),cosLambda=Math.cos(lambda);var sinSigma=Math.sqrt((cosU2*sinLambda)*(cosU2*sinLambda)+
 (cosU1*sinU2-sinU1*cosU2*cosLambda)*(cosU1*sinU2-sinU1*cosU2*cosLambda));if(sinSigma==0){return 0;}
 var cosSigma=sinU1*sinU2+cosU1*cosU2*cosLambda;var sigma=Math.atan2(sinSigma,cosSigma);var alpha=Math.asin(cosU1*cosU2*sinLambda/sinSigma);var cosSqAlpha=Math.cos(alpha)*Math.cos(alpha);var cos2SigmaM=cosSigma-2*sinU1*sinU2/cosSqAlpha;var C=f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha));lambdaP=lambda;lambda=L+(1-C)*f*Math.sin(alpha)*(sigma+C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)));}
 if(iterLimit==0){return NaN;}
 var uSq=cosSqAlpha*(a*a-b*b)/(b*b);var A=1+uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));var B=uSq/1024*(256+uSq*(-128+uSq*(74-47*uSq)));var deltaSigma=B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)-
-B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));var s=b*A*(sigma-deltaSigma);var d=s.toFixed(3)/1000;return d;};OpenLayers.Util.getParameters=function(url){url=url||window.location.href;var paramsString="";if(OpenLayers.String.contains(url,'?')){var start=url.indexOf('?')+1;var end=OpenLayers.String.contains(url,"#")?url.indexOf('#'):url.length;paramsString=url.substring(start,end);}
+B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));var s=b*A*(sigma-deltaSigma);var d=s.toFixed(3)/1000;return d;};OpenLayers.Util.destinationVincenty=function(lonlat,brng,dist){var u=OpenLayers.Util;var ct=u.VincentyConstants;var a=ct.a,b=ct.b,f=ct.f;var lon1=lonlat.lon;var lat1=lonlat.lat;var s=dist;var alpha1=u.rad(brng);var sinAlpha1=Math.sin(alpha1);var cosAlpha1=Math.cos(alpha1);var tanU1=(1-f)*Math.tan(u.rad(lat1));var cosU1=1/Math.sqrt((1+tanU1*tanU1)),sinU1=tanU1*cosU1;var sigma1=Math.atan2(tanU1,cosAlpha1);var sinAlpha=cosU1*sinAlpha1;var cosSqAlpha=1-sinAlpha*sinAlpha;var uSq=cosSqAlpha*(a*a-b*b)/(b*b);var A=1+uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));var B=uSq/1024*(256+uSq*(-128+uSq*(74-47*uSq)));var sigma=s/(b*A),sigmaP=2*Math.PI;while(Math.abs(sigma-sigmaP)>1e-12){var cos2SigmaM=Math.cos(2*sigma1+sigma);var sinSigma=Math.sin(sigma);var cosSigma=Math.cos(sigma);var deltaSigma=B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)-
+B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));sigmaP=sigma;sigma=s/(b*A)+deltaSigma;}
+var tmp=sinU1*sinSigma-cosU1*cosSigma*cosAlpha1;var lat2=Math.atan2(sinU1*cosSigma+cosU1*sinSigma*cosAlpha1,(1-f)*Math.sqrt(sinAlpha*sinAlpha+tmp*tmp));var lambda=Math.atan2(sinSigma*sinAlpha1,cosU1*cosSigma-sinU1*sinSigma*cosAlpha1);var C=f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha));var L=lambda-(1-C)*f*sinAlpha*(sigma+C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)));var revAz=Math.atan2(sinAlpha,-tmp);return new OpenLayers.LonLat(lon1+u.deg(L),u.deg(lat2));};OpenLayers.Util.getParameters=function(url){url=url||window.location.href;var paramsString="";if(OpenLayers.String.contains(url,'?')){var start=url.indexOf('?')+1;var end=OpenLayers.String.contains(url,"#")?url.indexOf('#'):url.length;paramsString=url.substring(start,end);}
 var parameters={};var pairs=paramsString.split(/[&;]/);for(var i=0,len=pairs.length;i<len;++i){var keyValue=pairs[i].split('=');if(keyValue[0]){var key=decodeURIComponent(keyValue[0]);var value=keyValue[1]||'';value=decodeURIComponent(value.replace(/\+/g," ")).split(",");if(value.length==1){value=value[0];}
 parameters[key]=value;}}
 return parameters;};OpenLayers.Util.getArgs=function(url){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Util.getParameters'}));return OpenLayers.Util.getParameters(url);};OpenLayers.Util.lastSeqID=0;OpenLayers.Util.createUniqueID=function(prefix){if(prefix==null){prefix="id_";}
@@ -205,7 +217,7 @@ container.removeChild(content);containerElement.removeChild(container);return ne
 return scrollbarWidth;};OpenLayers.Util.getFormattedLonLat=function(coordinate,axis,dmsOption){if(!dmsOption){dmsOption='dms';}
 var abscoordinate=Math.abs(coordinate)
 var coordinatedegrees=Math.floor(abscoordinate);var coordinateminutes=(abscoordinate-coordinatedegrees)/(1/60);var tempcoordinateminutes=coordinateminutes;coordinateminutes=Math.floor(coordinateminutes);var coordinateseconds=(tempcoordinateminutes-coordinateminutes)/(1/60);coordinateseconds=Math.round(coordinateseconds*10);coordinateseconds/=10;if(coordinatedegrees<10){coordinatedegrees="0"+coordinatedegrees;}
-var str=coordinatedegrees+" ";if(dmsOption.indexOf('dm')>=0){if(coordinateminutes<10){coordinateminutes="0"+coordinateminutes;}
+var str=coordinatedegrees+"\u00B0";if(dmsOption.indexOf('dm')>=0){if(coordinateminutes<10){coordinateminutes="0"+coordinateminutes;}
 str+=coordinateminutes+"'";if(dmsOption.indexOf('dms')>=0){if(coordinateseconds<10){coordinateseconds="0"+coordinateseconds;}
 str+=coordinateseconds+'"';}}
 if(axis=="lon"){str+=coordinate<0?OpenLayers.i18n("W"):OpenLayers.i18n("E");}else{str+=coordinate<0?OpenLayers.i18n("S"):OpenLayers.i18n("N");}
@@ -231,7 +243,7 @@ else if(whichSide=="right"){el.style.borderRightWidth=borderSize+"px";el.style.b
 else{el.style.borderLeftWidth=borderSize+"px";el.style.borderRightWidth=borderSize+"px";}
 if(this.options.border!=false){el.style.borderLeftWidth=borderSize+"px";el.style.borderRightWidth=borderSize+"px";}},_marginSize:function(n){if(this._isTransparent()){return 0;}
 var marginSizes=[5,3,2,1];var blendedMarginSizes=[3,2,1,0];var compactMarginSizes=[2,1];var smBlendedMarginSizes=[1,0];if(this.options.compact&&this.options.blend){return smBlendedMarginSizes[n];}else if(this.options.compact){return compactMarginSizes[n];}else if(this.options.blend){return blendedMarginSizes[n];}else{return marginSizes[n];}},_borderSize:function(n){var transparentBorderSizes=[5,3,2,1];var blendedBorderSizes=[2,1,1,1];var compactBorderSizes=[1,0];var actualBorderSizes=[0,2,0,0];if(this.options.compact&&(this.options.blend||this._isTransparent())){return 1;}else if(this.options.compact){return compactBorderSizes[n];}else if(this.options.blend){return blendedBorderSizes[n];}else if(this.options.border){return actualBorderSizes[n];}else if(this._isTransparent()){return transparentBorderSizes[n];}
-return 0;},_hasString:function(str){for(var i=1;i<arguments.length;i++)if(str.indexOf(arguments[i])>=0){return true;}return false;},_blend:function(c1,c2){var cc1=OpenLayers.Rico.Color.createFromHex(c1);cc1.blend(OpenLayers.Rico.Color.createFromHex(c2));return cc1;},_background:function(el){try{return OpenLayers.Rico.Color.createColorFromBackground(el).asHex();}catch(err){return"#ffffff";}},_isTransparent:function(){return this.options.color=="transparent";},_isTopRounded:function(){return this._hasString(this.options.corners,"all","top","tl","tr");},_isBottomRounded:function(){return this._hasString(this.options.corners,"all","bottom","bl","br");},_hasSingleTextChild:function(el){return el.childNodes.length==1&&el.childNodes[0].nodeType==3;}};OpenLayers.Element={visible:function(element){return OpenLayers.Util.getElement(element).style.display!='none';},toggle:function(){for(var i=0,len=arguments.length;i<len;i++){var element=OpenLayers.Util.getElement(arguments[i]);var display=OpenLayers.Element.visible(element)?'hide':'show';OpenLayers.Element[display](element);}},hide:function(){for(var i=0,len=arguments.length;i<len;i++){var element=OpenLayers.Util.getElement(arguments[i]);element.style.display='none';}},show:function(){for(var i=0,len=arguments.length;i<len;i++){var element=OpenLayers.Util.getElement(arguments[i]);element.style.display='';}},remove:function(element){element=OpenLayers.Util.getElement(element);element.parentNode.removeChild(element);},getHeight:function(element){element=OpenLayers.Util.getElement(element);return element.offsetHeight;},getDimensions:function(element){element=OpenLayers.Util.getElement(element);if(OpenLayers.Element.getStyle(element,'display')!='none'){return{width:element.offsetWidth,height:element.offsetHeight};}
+return 0;},_hasString:function(str){for(var i=1;i<arguments.length;i++)if(str.indexOf(arguments[i])>=0){return true;}return false;},_blend:function(c1,c2){var cc1=OpenLayers.Rico.Color.createFromHex(c1);cc1.blend(OpenLayers.Rico.Color.createFromHex(c2));return cc1;},_background:function(el){try{return OpenLayers.Rico.Color.createColorFromBackground(el).asHex();}catch(err){return"#ffffff";}},_isTransparent:function(){return this.options.color=="transparent";},_isTopRounded:function(){return this._hasString(this.options.corners,"all","top","tl","tr");},_isBottomRounded:function(){return this._hasString(this.options.corners,"all","bottom","bl","br");},_hasSingleTextChild:function(el){return el.childNodes.length==1&&el.childNodes[0].nodeType==3;}};OpenLayers.Element={visible:function(element){return OpenLayers.Util.getElement(element).style.display!='none';},toggle:function(){for(var i=0,len=arguments.length;i<len;i++){var element=OpenLayers.Util.getElement(arguments[i]);var display=OpenLayers.Element.visible(element)?'hide':'show';OpenLayers.Element[display](element);}},hide:function(){for(var i=0,len=arguments.length;i<len;i++){var element=OpenLayers.Util.getElement(arguments[i]);if(element){element.style.display='none';}}},show:function(){for(var i=0,len=arguments.length;i<len;i++){var element=OpenLayers.Util.getElement(arguments[i]);if(element){element.style.display='';}}},remove:function(element){element=OpenLayers.Util.getElement(element);element.parentNode.removeChild(element);},getHeight:function(element){element=OpenLayers.Util.getElement(element);return element.offsetHeight;},getDimensions:function(element){element=OpenLayers.Util.getElement(element);if(OpenLayers.Element.getStyle(element,'display')!='none'){return{width:element.offsetWidth,height:element.offsetHeight};}
 var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},hasClass:function(element,name){var names=element.className;return(!!names&&new RegExp("(^|\\s)"+name+"(\\s|$)").test(names));},addClass:function(element,name){if(!OpenLayers.Element.hasClass(element,name)){element.className+=(element.className?" ":"")+name;}
 return element;},removeClass:function(element,name){var names=element.className;if(names){element.className=OpenLayers.String.trim(names.replace(new RegExp("(^|\\s+)"+name+"(\\s+|$)")," "));}
 return element;},toggleClass:function(element,name){if(OpenLayers.Element.hasClass(element,name)){OpenLayers.Element.removeClass(element,name);}else{OpenLayers.Element.addClass(element,name);}
@@ -286,7 +298,9 @@ if(feature.geometry){var bounds=feature.geometry.getBounds();if(bounds){if(!boun
 var rendered=this.drawGeometry(feature.geometry,style,feature.id);if(style.display!="none"&&style.label&&rendered!==false){var location=feature.geometry.getCentroid();if(style.labelXOffset||style.labelYOffset){xOffset=isNaN(style.labelXOffset)?0:style.labelXOffset;yOffset=isNaN(style.labelYOffset)?0:style.labelYOffset;var res=this.getResolution();location.move(xOffset*res,yOffset*res);}
 this.drawText(feature.id,style,location);}else{this.removeText(feature.id);}
 return rendered;}}},drawGeometry:function(geometry,style,featureId){},drawText:function(featureId,style,location){},removeText:function(featureId){},clear:function(){},getFeatureIdFromEvent:function(evt){},eraseFeatures:function(features){if(!(features instanceof Array)){features=[features];}
-for(var i=0,len=features.length;i<len;++i){this.eraseGeometry(features[i].geometry);this.removeText(features[i].id);}},eraseGeometry:function(geometry){},moveRoot:function(renderer){},getRenderLayerId:function(){return this.container.id;},CLASS_NAME:"OpenLayers.Renderer"});OpenLayers.Bounds=OpenLayers.Class({left:null,bottom:null,right:null,top:null,centerLonLat:null,initialize:function(left,bottom,right,top){if(left!=null){this.left=OpenLayers.Util.toFloat(left);}
+for(var i=0,len=features.length;i<len;++i){var feature=features[i];this.eraseGeometry(feature.geometry,feature.id);this.removeText(feature.id);}},eraseGeometry:function(geometry,featureId){},moveRoot:function(renderer){},getRenderLayerId:function(){return this.container.id;},applyDefaultSymbolizer:function(symbolizer){var result=OpenLayers.Util.extend({},OpenLayers.Renderer.defaultSymbolizer);if(symbolizer.stroke===false){delete result.strokeWidth;delete result.strokeColor;}
+if(symbolizer.fill===false){delete result.fillColor;}
+OpenLayers.Util.extend(result,symbolizer);return result;},CLASS_NAME:"OpenLayers.Renderer"});OpenLayers.Renderer.defaultSymbolizer={fillColor:"#000000",strokeColor:"#000000",strokeWidth:2,fillOpacity:1,strokeOpacity:1,pointRadius:0};OpenLayers.Symbolizer=OpenLayers.Class({zIndex:0,initialize:function(config){OpenLayers.Util.extend(this,config);},clone:function(){var Type=eval(this.CLASS_NAME);return new Type(OpenLayers.Util.extend({},this));},CLASS_NAME:"OpenLayers.Symbolizer"});OpenLayers.Bounds=OpenLayers.Class({left:null,bottom:null,right:null,top:null,centerLonLat:null,initialize:function(left,bottom,right,top){if(left!=null){this.left=OpenLayers.Util.toFloat(left);}
 if(bottom!=null){this.bottom=OpenLayers.Util.toFloat(bottom);}
 if(right!=null){this.right=OpenLayers.Util.toFloat(right);}
 if(top!=null){this.top=OpenLayers.Util.toFloat(top);}},clone:function(){return new OpenLayers.Bounds(this.left,this.bottom,this.right,this.top);},equals:function(bounds){var equals=false;if(bounds!=null){equals=((this.left==bounds.left)&&(this.right==bounds.right)&&(this.top==bounds.top)&&(this.bottom==bounds.bottom));}
@@ -310,10 +324,10 @@ if(inclusive==null){inclusive=true;}
 var bottomLeft=this.contains(bounds.left,bounds.bottom,inclusive);var bottomRight=this.contains(bounds.right,bounds.bottom,inclusive);var topLeft=this.contains(bounds.left,bounds.top,inclusive);var topRight=this.contains(bounds.right,bounds.top,inclusive);return(partial)?(bottomLeft||bottomRight||topLeft||topRight):(bottomLeft&&bottomRight&&topLeft&&topRight);},determineQuadrant:function(lonlat){var quadrant="";var center=this.getCenterLonLat();quadrant+=(lonlat.lat<center.lat)?"b":"t";quadrant+=(lonlat.lon<center.lon)?"l":"r";return quadrant;},transform:function(source,dest){this.centerLonLat=null;var ll=OpenLayers.Projection.transform({'x':this.left,'y':this.bottom},source,dest);var lr=OpenLayers.Projection.transform({'x':this.right,'y':this.bottom},source,dest);var ul=OpenLayers.Projection.transform({'x':this.left,'y':this.top},source,dest);var ur=OpenLayers.Projection.transform({'x':this.right,'y':this.top},source,dest);this.left=Math.min(ll.x,ul.x);this.bottom=Math.min(ll.y,lr.y);this.right=Math.max(lr.x,ur.x);this.top=Math.max(ul.y,ur.y);return this;},wrapDateLine:function(maxExtent,options){options=options||{};var leftTolerance=options.leftTolerance||0;var rightTolerance=options.rightTolerance||0;var newBounds=this.clone();if(maxExtent){while(newBounds.left<maxExtent.left&&(newBounds.right-rightTolerance)<=maxExtent.left){newBounds=newBounds.add(maxExtent.getWidth(),0);}
 while((newBounds.left+leftTolerance)>=maxExtent.right&&newBounds.right>maxExtent.right){newBounds=newBounds.add(-maxExtent.getWidth(),0);}}
 return newBounds;},CLASS_NAME:"OpenLayers.Bounds"});OpenLayers.Bounds.fromString=function(str){var bounds=str.split(",");return OpenLayers.Bounds.fromArray(bounds);};OpenLayers.Bounds.fromArray=function(bbox){return new OpenLayers.Bounds(parseFloat(bbox[0]),parseFloat(bbox[1]),parseFloat(bbox[2]),parseFloat(bbox[3]));};OpenLayers.Bounds.fromSize=function(size){return new OpenLayers.Bounds(0,size.h,size.w,0);};OpenLayers.Bounds.oppositeQuadrant=function(quadrant){var opp="";opp+=(quadrant.charAt(0)=='t')?'b':'t';opp+=(quadrant.charAt(1)=='l')?'r':'l';return opp;};OpenLayers.LonLat=OpenLayers.Class({lon:0.0,lat:0.0,initialize:function(lon,lat){this.lon=OpenLayers.Util.toFloat(lon);this.lat=OpenLayers.Util.toFloat(lat);},toString:function(){return("lon="+this.lon+",lat="+this.lat);},toShortString:function(){return(this.lon+", "+this.lat);},clone:function(){return new OpenLayers.LonLat(this.lon,this.lat);},add:function(lon,lat){if((lon==null)||(lat==null)){var msg=OpenLayers.i18n("lonlatAddError");OpenLayers.Console.error(msg);return null;}
-return new OpenLayers.LonLat(this.lon+lon,this.lat+lat);},equals:function(ll){var equals=false;if(ll!=null){equals=((this.lon==ll.lon&&this.lat==ll.lat)||(isNaN(this.lon)&&isNaN(this.lat)&&isNaN(ll.lon)&&isNaN(ll.lat)));}
+return new OpenLayers.LonLat(this.lon+OpenLayers.Util.toFloat(lon),this.lat+OpenLayers.Util.toFloat(lat));},equals:function(ll){var equals=false;if(ll!=null){equals=((this.lon==ll.lon&&this.lat==ll.lat)||(isNaN(this.lon)&&isNaN(this.lat)&&isNaN(ll.lon)&&isNaN(ll.lat)));}
 return equals;},transform:function(source,dest){var point=OpenLayers.Projection.transform({'x':this.lon,'y':this.lat},source,dest);this.lon=point.x;this.lat=point.y;return this;},wrapDateLine:function(maxExtent){var newLonLat=this.clone();if(maxExtent){while(newLonLat.lon<maxExtent.left){newLonLat.lon+=maxExtent.getWidth();}
 while(newLonLat.lon>maxExtent.right){newLonLat.lon-=maxExtent.getWidth();}}
-return newLonLat;},CLASS_NAME:"OpenLayers.LonLat"});OpenLayers.LonLat.fromString=function(str){var pair=str.split(",");return new OpenLayers.LonLat(parseFloat(pair[0]),parseFloat(pair[1]));};OpenLayers.Pixel=OpenLayers.Class({x:0.0,y:0.0,initialize:function(x,y){this.x=parseFloat(x);this.y=parseFloat(y);},toString:function(){return("x="+this.x+",y="+this.y);},clone:function(){return new OpenLayers.Pixel(this.x,this.y);},equals:function(px){var equals=false;if(px!=null){equals=((this.x==px.x&&this.y==px.y)||(isNaN(this.x)&&isNaN(this.y)&&isNaN(px.x)&&isNaN(px.y)));}
+return newLonLat;},CLASS_NAME:"OpenLayers.LonLat"});OpenLayers.LonLat.fromString=function(str){var pair=str.split(",");return new OpenLayers.LonLat(pair[0],pair[1]);};OpenLayers.Pixel=OpenLayers.Class({x:0.0,y:0.0,initialize:function(x,y){this.x=parseFloat(x);this.y=parseFloat(y);},toString:function(){return("x="+this.x+",y="+this.y);},clone:function(){return new OpenLayers.Pixel(this.x,this.y);},equals:function(px){var equals=false;if(px!=null){equals=((this.x==px.x&&this.y==px.y)||(isNaN(this.x)&&isNaN(this.y)&&isNaN(px.x)&&isNaN(px.y)));}
 return equals;},add:function(x,y){if((x==null)||(y==null)){var msg=OpenLayers.i18n("pixelAddError");OpenLayers.Console.error(msg);return null;}
 return new OpenLayers.Pixel(this.x+x,this.y+y);},offset:function(px){var newPx=this.clone();if(px){newPx=this.add(px.x,px.y);}
 return newPx;},CLASS_NAME:"OpenLayers.Pixel"});OpenLayers.Control=OpenLayers.Class({id:null,map:null,div:null,type:null,allowSelection:false,displayClass:"",title:"",autoActivate:false,active:null,handler:null,eventListeners:null,events:null,EVENT_TYPES:["activate","deactivate"],initialize:function(options){this.displayClass=this.CLASS_NAME.replace("OpenLayers.","ol").replace(/\./g,"");OpenLayers.Util.extend(this,options);this.events=new OpenLayers.Events(this,null,this.EVENT_TYPES);if(this.eventListeners instanceof Object){this.events.on(this.eventListeners);}
@@ -338,56 +352,54 @@ if(parts[1]){var testLang=parts[0]+'-'+parts[1].toUpperCase();if(typeof OpenLaye
 if(!lang){OpenLayers.Console.warn('Failed to find OpenLayers.Lang.'+parts.join("-")+' dictionary, falling back to default language');lang=OpenLayers.Lang.defaultCode;}
 OpenLayers.Lang.code=lang;},translate:function(key,context){var dictionary=OpenLayers.Lang[OpenLayers.Lang.getCode()];var message=dictionary[key];if(!message){message=key;}
 if(context){message=OpenLayers.String.format(message,context);}
-return message;}};OpenLayers.i18n=OpenLayers.Lang.translate;OpenLayers.Popup.Anchored=OpenLayers.Class(OpenLayers.Popup,{relativePosition:null,keepInMap:true,anchor:null,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){var newArguments=[id,lonlat,contentSize,contentHTML,closeBox,closeBoxCallback];OpenLayers.Popup.prototype.initialize.apply(this,newArguments);this.anchor=(anchor!=null)?anchor:{size:new OpenLayers.Size(0,0),offset:new OpenLayers.Pixel(0,0)};},destroy:function(){this.anchor=null;this.relativePosition=null;OpenLayers.Popup.prototype.destroy.apply(this,arguments);},show:function(){this.updatePosition();OpenLayers.Popup.prototype.show.apply(this,arguments);},moveTo:function(px){var oldRelativePosition=this.relativePosition;this.relativePosition=this.calculateRelativePosition(px);var newPx=this.calculateNewPx(px);var newArguments=new Array(newPx);OpenLayers.Popup.prototype.moveTo.apply(this,newArguments);if(this.relativePosition!=oldRelativePosition){this.updateRelativePosition();}},setSize:function(contentSize){OpenLayers.Popup.prototype.setSize.apply(this,arguments);if((this.lonlat)&&(this.map)){var px=this.map.getLayerPxFromLonLat(this.lonlat);this.moveTo(px);}},calculateRelativePosition:function(px){var lonlat=this.map.getLonLatFromLayerPx(px);var extent=this.map.getExtent();var quadrant=extent.determineQuadrant(lonlat);return OpenLayers.Bounds.oppositeQuadrant(quadrant);},updateRelativePosition:function(){},calculateNewPx:function(px){var newPx=px.offset(this.anchor.offset);var size=this.size||this.contentSize;var top=(this.relativePosition.charAt(0)=='t');newPx.y+=(top)?-size.h:this.anchor.size.h;var left=(this.relativePosition.charAt(1)=='l');newPx.x+=(left)?-size.w:this.anchor.size.w;return newPx;},CLASS_NAME:"OpenLayers.Popup.Anchored"});OpenLayers.Renderer.Canvas=OpenLayers.Class(OpenLayers.Renderer,{canvas:null,features:null,geometryMap:null,initialize:function(containerID){OpenLayers.Renderer.prototype.initialize.apply(this,arguments);this.root=document.createElement("canvas");this.container.appendChild(this.root);this.canvas=this.root.getContext("2d");this.features={};this.geometryMap={};},eraseGeometry:function(geometry){this.eraseFeatures(this.features[this.geometryMap[geometry.id]][0]);},supported:function(){var canvas=document.createElement("canvas");return!!canvas.getContext;},setExtent:function(extent){this.extent=extent.clone();this.resolution=null;this.redraw();},setSize:function(size){this.size=size.clone();this.root.style.width=size.w+"px";this.root.style.height=size.h+"px";this.root.width=size.w;this.root.height=size.h;this.resolution=null;},drawFeature:function(feature,style){if(style==null){style=feature.style;}
-style=OpenLayers.Util.extend({'fillColor':'#000000','strokeColor':'#000000','strokeWidth':2,'fillOpacity':1,'strokeOpacity':1},style);this.features[feature.id]=[feature,style];if(feature.geometry){this.geometryMap[feature.geometry.id]=feature.id;}
-this.redraw();},drawGeometry:function(geometry,style){var className=geometry.CLASS_NAME;if((className=="OpenLayers.Geometry.Collection")||(className=="OpenLayers.Geometry.MultiPoint")||(className=="OpenLayers.Geometry.MultiLineString")||(className=="OpenLayers.Geometry.MultiPolygon")){for(var i=0;i<geometry.components.length;i++){this.drawGeometry(geometry.components[i],style);}
-return;};switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":this.drawPoint(geometry,style);break;case"OpenLayers.Geometry.LineString":this.drawLineString(geometry,style);break;case"OpenLayers.Geometry.LinearRing":this.drawLinearRing(geometry,style);break;case"OpenLayers.Geometry.Polygon":this.drawPolygon(geometry,style);break;default:break;}},drawExternalGraphic:function(pt,style){var img=new Image();img.src=style.externalGraphic;if(style.graphicTitle){img.title=style.graphicTitle;}
-var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);var opacity=style.graphicOpacity||style.fillOpacity;var context={img:img,x:(pt[0]+xOffset),y:(pt[1]+yOffset),width:width,height:height,canvas:this.canvas};img.onload=OpenLayers.Function.bind(function(){this.canvas.drawImage(this.img,this.x,this.y,this.width,this.height);},context);},setCanvasStyle:function(type,style){if(type=="fill"){this.canvas.globalAlpha=style['fillOpacity'];this.canvas.fillStyle=style['fillColor'];}else if(type=="stroke"){this.canvas.globalAlpha=style['strokeOpacity'];this.canvas.strokeStyle=style['strokeColor'];this.canvas.lineWidth=style['strokeWidth'];}else{this.canvas.globalAlpha=0;this.canvas.lineWidth=1;}},drawPoint:function(geometry,style){if(style.graphic!==false){var pt=this.getLocalXY(geometry);if(style.externalGraphic){this.drawExternalGraphic(pt,style);}else{if(style.fill!==false){this.setCanvasStyle("fill",style);this.canvas.beginPath();this.canvas.arc(pt[0],pt[1],style.pointRadius,0,Math.PI*2,true);this.canvas.fill();}
+return message;}};OpenLayers.i18n=OpenLayers.Lang.translate;OpenLayers.Popup.Anchored=OpenLayers.Class(OpenLayers.Popup,{relativePosition:null,keepInMap:true,anchor:null,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){var newArguments=[id,lonlat,contentSize,contentHTML,closeBox,closeBoxCallback];OpenLayers.Popup.prototype.initialize.apply(this,newArguments);this.anchor=(anchor!=null)?anchor:{size:new OpenLayers.Size(0,0),offset:new OpenLayers.Pixel(0,0)};},destroy:function(){this.anchor=null;this.relativePosition=null;OpenLayers.Popup.prototype.destroy.apply(this,arguments);},show:function(){this.updatePosition();OpenLayers.Popup.prototype.show.apply(this,arguments);},moveTo:function(px){var oldRelativePosition=this.relativePosition;this.relativePosition=this.calculateRelativePosition(px);var newPx=this.calculateNewPx(px);var newArguments=new Array(newPx);OpenLayers.Popup.prototype.moveTo.apply(this,newArguments);if(this.relativePosition!=oldRelativePosition){this.updateRelativePosition();}},setSize:function(contentSize){OpenLayers.Popup.prototype.setSize.apply(this,arguments);if((this.lonlat)&&(this.map)){var px=this.map.getLayerPxFromLonLat(this.lonlat);this.moveTo(px);}},calculateRelativePosition:function(px){var lonlat=this.map.getLonLatFromLayerPx(px);var extent=this.map.getExtent();var quadrant=extent.determineQuadrant(lonlat);return OpenLayers.Bounds.oppositeQuadrant(quadrant);},updateRelativePosition:function(){},calculateNewPx:function(px){var newPx=px.offset(this.anchor.offset);var size=this.size||this.contentSize;var top=(this.relativePosition.charAt(0)=='t');newPx.y+=(top)?-(size.h+this.anchor.size.h):this.anchor.size.h;var left=(this.relativePosition.charAt(1)=='l');newPx.x+=(left)?-(size.w+this.anchor.size.w):this.anchor.size.w;return newPx;},CLASS_NAME:"OpenLayers.Popup.Anchored"});OpenLayers.Renderer.Canvas=OpenLayers.Class(OpenLayers.Renderer,{canvas:null,features:null,initialize:function(containerID){OpenLayers.Renderer.prototype.initialize.apply(this,arguments);this.root=document.createElement("canvas");this.container.appendChild(this.root);this.canvas=this.root.getContext("2d");this.features={};},eraseGeometry:function(geometry,featureId){this.eraseFeatures(this.features[featureId][0]);},supported:function(){var canvas=document.createElement("canvas");return!!canvas.getContext;},setExtent:function(extent){this.extent=extent.clone();this.resolution=null;this.redraw();},setSize:function(size){this.size=size.clone();this.root.style.width=size.w+"px";this.root.style.height=size.h+"px";this.root.width=size.w;this.root.height=size.h;this.resolution=null;},drawFeature:function(feature,style){style=style||feature.style;style=this.applyDefaultSymbolizer(style);this.features[feature.id]=[feature,style];this.redraw();},drawGeometry:function(geometry,style){var className=geometry.CLASS_NAME;if((className=="OpenLayers.Geometry.Collection")||(className=="OpenLayers.Geometry.MultiPoint")||(className=="OpenLayers.Geometry.MultiLineString")||(className=="OpenLayers.Geometry.MultiPolygon")){for(var i=0;i<geometry.components.length;i++){this.drawGeometry(geometry.components[i],style);}
+return;}
+switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":this.drawPoint(geometry,style);break;case"OpenLayers.Geometry.LineString":this.drawLineString(geometry,style);break;case"OpenLayers.Geometry.LinearRing":this.drawLinearRing(geometry,style);break;case"OpenLayers.Geometry.Polygon":this.drawPolygon(geometry,style);break;default:break;}},drawExternalGraphic:function(pt,style){var img=new Image();if(style.graphicTitle){img.title=style.graphicTitle;}
+var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);var context={img:img,x:(pt[0]+xOffset),y:(pt[1]+yOffset),width:width,height:height,opacity:style.graphicOpacity||style.fillOpacity,canvas:this.canvas};img.onload=OpenLayers.Function.bind(function(){this.canvas.globalAlpha=this.opacity;this.canvas.drawImage(this.img,this.x,this.y,this.width,this.height);},context);img.src=style.externalGraphic;},setCanvasStyle:function(type,style){if(type=="fill"){this.canvas.globalAlpha=style['fillOpacity'];this.canvas.fillStyle=style['fillColor'];}else if(type=="stroke"){this.canvas.globalAlpha=style['strokeOpacity'];this.canvas.strokeStyle=style['strokeColor'];this.canvas.lineWidth=style['strokeWidth'];}else{this.canvas.globalAlpha=0;this.canvas.lineWidth=1;}},drawPoint:function(geometry,style){if(style.graphic!==false){var pt=this.getLocalXY(geometry);if(style.externalGraphic){this.drawExternalGraphic(pt,style);}else{if(style.fill!==false){this.setCanvasStyle("fill",style);this.canvas.beginPath();this.canvas.arc(pt[0],pt[1],style.pointRadius,0,Math.PI*2,true);this.canvas.fill();}
 if(style.stroke!==false){this.setCanvasStyle("stroke",style);this.canvas.beginPath();this.canvas.arc(pt[0],pt[1],style.pointRadius,0,Math.PI*2,true);this.canvas.stroke();this.setCanvasStyle("reset");}}}},drawLineString:function(geometry,style){if(style.stroke!==false){this.setCanvasStyle("stroke",style);this.canvas.beginPath();var start=this.getLocalXY(geometry.components[0]);this.canvas.moveTo(start[0],start[1]);for(var i=1;i<geometry.components.length;i++){var pt=this.getLocalXY(geometry.components[i]);this.canvas.lineTo(pt[0],pt[1]);}
 this.canvas.stroke();}
 this.setCanvasStyle("reset");},drawLinearRing:function(geometry,style){if(style.fill!==false){this.setCanvasStyle("fill",style);this.canvas.beginPath();var start=this.getLocalXY(geometry.components[0]);this.canvas.moveTo(start[0],start[1]);for(var i=1;i<geometry.components.length-1;i++){var pt=this.getLocalXY(geometry.components[i]);this.canvas.lineTo(pt[0],pt[1]);}
 this.canvas.fill();}
-if(style.stroke!==false){var oldWidth=this.canvas.lineWidth;this.setCanvasStyle("stroke",style);this.canvas.beginPath();var start=this.getLocalXY(geometry.components[0]);this.canvas.moveTo(start[0],start[1]);for(var i=1;i<geometry.components.length;i++){var pt=this.getLocalXY(geometry.components[i]);this.canvas.lineTo(pt[0],pt[1]);}
+if(style.stroke!==false){this.setCanvasStyle("stroke",style);this.canvas.beginPath();var start=this.getLocalXY(geometry.components[0]);this.canvas.moveTo(start[0],start[1]);for(var i=1;i<geometry.components.length;i++){var pt=this.getLocalXY(geometry.components[i]);this.canvas.lineTo(pt[0],pt[1]);}
 this.canvas.stroke();}
 this.setCanvasStyle("reset");},drawPolygon:function(geometry,style){this.drawLinearRing(geometry.components[0],style);for(var i=1;i<geometry.components.length;i++){this.drawLinearRing(geometry.components[i],{fillOpacity:0,strokeWidth:0,strokeOpacity:0,strokeColor:'#000000',fillColor:'#000000'});}},drawText:function(location,style){style=OpenLayers.Util.extend({fontColor:"#000000",labelAlign:"cm"},style);var pt=this.getLocalXY(location);this.setCanvasStyle("reset");this.canvas.fillStyle=style.fontColor;this.canvas.globalAlpha=style.fontOpacity||1.0;var fontStyle=style.fontWeight+" "+style.fontSize+" "+style.fontFamily;if(this.canvas.fillText){var labelAlign=OpenLayers.Renderer.Canvas.LABEL_ALIGN[style.labelAlign[0]]||"center";this.canvas.font=fontStyle;this.canvas.textAlign=labelAlign;this.canvas.fillText(style.label,pt[0],pt[1]);}else if(this.canvas.mozDrawText){this.canvas.mozTextStyle=fontStyle;var len=this.canvas.mozMeasureText(style.label);switch(style.labelAlign[0]){case"l":break;case"r":pt[0]-=len;break;case"c":default:pt[0]-=len/2;}
 this.canvas.translate(pt[0],pt[1]);this.canvas.mozDrawText(style.label);this.canvas.translate(-1*pt[0],-1*pt[1]);}
-this.setCanvasStyle("reset");},getLocalXY:function(point){var resolution=this.getResolution();var extent=this.extent;var x=(point.x/resolution+(-extent.left/resolution));var y=((extent.top/resolution)-point.y/resolution);return[x,y];},clear:function(){this.canvas.clearRect(0,0,this.root.width,this.root.height);},getFeatureIdFromEvent:function(evt){var loc=this.map.getLonLatFromPixel(evt.xy);var resolution=this.getResolution();var bounds=new OpenLayers.Bounds(loc.lon-resolution*5,loc.lat-resolution*5,loc.lon+resolution*5,loc.lat+resolution*5);var geom=bounds.toGeometry();for(var feat in this.features){if(!this.features.hasOwnProperty(feat)){continue;}
+this.setCanvasStyle("reset");},getLocalXY:function(point){var resolution=this.getResolution();var extent=this.extent;var x=(point.x/resolution+(-extent.left/resolution));var y=((extent.top/resolution)-point.y/resolution);return[x,y];},clear:function(){this.canvas.clearRect(0,0,this.root.width,this.root.height);this.features={};},getFeatureIdFromEvent:function(evt){var loc=this.map.getLonLatFromPixel(evt.xy);var resolution=this.getResolution();var bounds=new OpenLayers.Bounds(loc.lon-resolution*5,loc.lat-resolution*5,loc.lon+resolution*5,loc.lat+resolution*5);var geom=bounds.toGeometry();for(var feat in this.features){if(!this.features.hasOwnProperty(feat)){continue;}
 if(this.features[feat][0].geometry.intersects(geom)){return feat;}}
 return null;},eraseFeatures:function(features){if(!(features instanceof Array)){features=[features];}
 for(var i=0;i<features.length;++i){delete this.features[features[i].id];}
-this.redraw();},redraw:function(){if(!this.locked){this.clear();var labelMap=[];var feature,style;for(var id in this.features){if(!this.features.hasOwnProperty(id)){continue;}
+this.redraw();},redraw:function(){if(!this.locked){this.canvas.clearRect(0,0,this.root.width,this.root.height);var labelMap=[];var feature,style;for(var id in this.features){if(!this.features.hasOwnProperty(id)){continue;}
 feature=this.features[id][0];style=this.features[id][1];if(!feature.geometry){continue;}
 this.drawGeometry(feature.geometry,style);if(style.label){labelMap.push([feature,style]);}}
-var item;for(var i=0;len=labelMap.length,i<len;++i){item=labelMap[i];this.drawText(item[0].geometry.getCentroid(),item[1]);}}},CLASS_NAME:"OpenLayers.Renderer.Canvas"});OpenLayers.Renderer.Canvas.LABEL_ALIGN={"l":"left","r":"right"};OpenLayers.ElementsIndexer=OpenLayers.Class({maxZIndex:null,order:null,indices:null,compare:null,initialize:function(yOrdering){this.compare=yOrdering?OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_Y_ORDER:OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_DRAWING_ORDER;this.order=[];this.indices={};this.maxZIndex=0;},insert:function(newNode){if(this.exists(newNode)){this.remove(newNode);}
+var item;for(var i=0,len=labelMap.length;i<len;++i){item=labelMap[i];this.drawText(item[0].geometry.getCentroid(),item[1]);}}},CLASS_NAME:"OpenLayers.Renderer.Canvas"});OpenLayers.Renderer.Canvas.LABEL_ALIGN={"l":"left","r":"right"};OpenLayers.ElementsIndexer=OpenLayers.Class({maxZIndex:null,order:null,indices:null,compare:null,initialize:function(yOrdering){this.compare=yOrdering?OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_Y_ORDER:OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_DRAWING_ORDER;this.order=[];this.indices={};this.maxZIndex=0;},insert:function(newNode){if(this.exists(newNode)){this.remove(newNode);}
 var nodeId=newNode.id;this.determineZIndex(newNode);var leftIndex=-1;var rightIndex=this.order.length;var middle;while(rightIndex-leftIndex>1){middle=parseInt((leftIndex+rightIndex)/2);var placement=this.compare(this,newNode,OpenLayers.Util.getElement(this.order[middle]));if(placement>0){leftIndex=middle;}else{rightIndex=middle;}}
 this.order.splice(rightIndex,0,nodeId);this.indices[nodeId]=this.getZIndex(newNode);return this.getNextElement(rightIndex);},remove:function(node){var nodeId=node.id;var arrayIndex=OpenLayers.Util.indexOf(this.order,nodeId);if(arrayIndex>=0){this.order.splice(arrayIndex,1);delete this.indices[nodeId];if(this.order.length>0){var lastId=this.order[this.order.length-1];this.maxZIndex=this.indices[lastId];}else{this.maxZIndex=0;}}},clear:function(){this.order=[];this.indices={};this.maxZIndex=0;},exists:function(node){return(this.indices[node.id]!=null);},getZIndex:function(node){return node._style.graphicZIndex;},determineZIndex:function(node){var zIndex=node._style.graphicZIndex;if(zIndex==null){zIndex=this.maxZIndex;node._style.graphicZIndex=zIndex;}else if(zIndex>this.maxZIndex){this.maxZIndex=zIndex;}},getNextElement:function(index){var nextIndex=index+1;if(nextIndex<this.order.length){var nextElement=OpenLayers.Util.getElement(this.order[nextIndex]);if(nextElement==undefined){nextElement=this.getNextElement(nextIndex);}
 return nextElement;}else{return null;}},CLASS_NAME:"OpenLayers.ElementsIndexer"});OpenLayers.ElementsIndexer.IndexingMethods={Z_ORDER:function(indexer,newNode,nextNode){var newZIndex=indexer.getZIndex(newNode);var returnVal=0;if(nextNode){var nextZIndex=indexer.getZIndex(nextNode);returnVal=newZIndex-nextZIndex;}
 return returnVal;},Z_ORDER_DRAWING_ORDER:function(indexer,newNode,nextNode){var returnVal=OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(indexer,newNode,nextNode);if(nextNode&&returnVal==0){returnVal=1;}
 return returnVal;},Z_ORDER_Y_ORDER:function(indexer,newNode,nextNode){var returnVal=OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(indexer,newNode,nextNode);if(nextNode&&returnVal===0){var result=nextNode._boundsBottom-newNode._boundsBottom;returnVal=(result===0)?1:result;}
-return returnVal;}};OpenLayers.Renderer.Elements=OpenLayers.Class(OpenLayers.Renderer,{rendererRoot:null,root:null,vectorRoot:null,textRoot:null,xmlns:null,indexer:null,BACKGROUND_ID_SUFFIX:"_background",LABEL_ID_SUFFIX:"_label",minimumSymbolizer:{strokeLinecap:"round",strokeOpacity:1,strokeDashstyle:"solid",fillOpacity:1,pointRadius:0},initialize:function(containerID,options){OpenLayers.Renderer.prototype.initialize.apply(this,arguments);this.rendererRoot=this.createRenderRoot();this.root=this.createRoot("_root");this.vectorRoot=this.createRoot("_vroot");this.textRoot=this.createRoot("_troot");this.root.appendChild(this.vectorRoot);this.root.appendChild(this.textRoot);this.rendererRoot.appendChild(this.root);this.container.appendChild(this.rendererRoot);if(options&&(options.zIndexing||options.yOrdering)){this.indexer=new OpenLayers.ElementsIndexer(options.yOrdering);}},destroy:function(){this.clear();this.rendererRoot=null;this.root=null;this.xmlns=null;OpenLayers.Renderer.prototype.destroy.apply(this,arguments);},clear:function(){if(this.vectorRoot){while(this.vectorRoot.childNodes.length>0){this.vectorRoot.removeChild(this.vectorRoot.firstChild);}}
-if(this.textRoot){while(this.textRoot.childNodes.length>0){this.textRoot.removeChild(this.textRoot.firstChild);}}
+return returnVal;}};OpenLayers.Renderer.Elements=OpenLayers.Class(OpenLayers.Renderer,{rendererRoot:null,root:null,vectorRoot:null,textRoot:null,xmlns:null,indexer:null,BACKGROUND_ID_SUFFIX:"_background",LABEL_ID_SUFFIX:"_label",initialize:function(containerID,options){OpenLayers.Renderer.prototype.initialize.apply(this,arguments);this.rendererRoot=this.createRenderRoot();this.root=this.createRoot("_root");this.vectorRoot=this.createRoot("_vroot");this.textRoot=this.createRoot("_troot");this.root.appendChild(this.vectorRoot);this.root.appendChild(this.textRoot);this.rendererRoot.appendChild(this.root);this.container.appendChild(this.rendererRoot);if(options&&(options.zIndexing||options.yOrdering)){this.indexer=new OpenLayers.ElementsIndexer(options.yOrdering);}},destroy:function(){this.clear();this.rendererRoot=null;this.root=null;this.xmlns=null;OpenLayers.Renderer.prototype.destroy.apply(this,arguments);},clear:function(){var child;var root=this.vectorRoot;if(root){while(child=root.firstChild){root.removeChild(child);}}
+root=this.textRoot;if(root){while(child=root.firstChild){root.removeChild(child);}}
 if(this.indexer){this.indexer.clear();}},getNodeType:function(geometry,style){},drawGeometry:function(geometry,style,featureId){var className=geometry.CLASS_NAME;var rendered=true;if((className=="OpenLayers.Geometry.Collection")||(className=="OpenLayers.Geometry.MultiPoint")||(className=="OpenLayers.Geometry.MultiLineString")||(className=="OpenLayers.Geometry.MultiPolygon")){for(var i=0,len=geometry.components.length;i<len;i++){rendered=this.drawGeometry(geometry.components[i],style,featureId)&&rendered;}
 return rendered;};rendered=false;if(style.display!="none"){if(style.backgroundGraphic){this.redrawBackgroundNode(geometry.id,geometry,style,featureId);}
 rendered=this.redrawNode(geometry.id,geometry,style,featureId);}
 if(rendered==false){var node=document.getElementById(geometry.id);if(node){if(node._style.backgroundGraphic){node.parentNode.removeChild(document.getElementById(geometry.id+this.BACKGROUND_ID_SUFFIX));}
 node.parentNode.removeChild(node);}}
-return rendered;},redrawNode:function(id,geometry,style,featureId){var node=this.nodeFactory(id,this.getNodeType(geometry,style));node._featureId=featureId;node._boundsBottom=geometry.getBounds().bottom;node._geometryClass=geometry.CLASS_NAME;node._style=style;var drawResult=this.drawGeometryNode(node,geometry,style);if(drawResult===false){return false;}
+return rendered;},redrawNode:function(id,geometry,style,featureId){style=this.applyDefaultSymbolizer(style);var node=this.nodeFactory(id,this.getNodeType(geometry,style));node._featureId=featureId;node._boundsBottom=geometry.getBounds().bottom;node._geometryClass=geometry.CLASS_NAME;node._style=style;var drawResult=this.drawGeometryNode(node,geometry,style);if(drawResult===false){return false;}
 node=drawResult.node;if(this.indexer){var insert=this.indexer.insert(node);if(insert){this.vectorRoot.insertBefore(node,insert);}else{this.vectorRoot.appendChild(node);}}else{if(node.parentNode!==this.vectorRoot){this.vectorRoot.appendChild(node);}}
-this.postDraw(node);return drawResult.complete;},redrawBackgroundNode:function(id,geometry,style,featureId){var backgroundStyle=OpenLayers.Util.extend({},style);backgroundStyle.externalGraphic=backgroundStyle.backgroundGraphic;backgroundStyle.graphicXOffset=backgroundStyle.backgroundXOffset;backgroundStyle.graphicYOffset=backgroundStyle.backgroundYOffset;backgroundStyle.graphicZIndex=backgroundStyle.backgroundGraphicZIndex;backgroundStyle.graphicWidth=backgroundStyle.backgroundWidth||backgroundStyle.graphicWidth;backgroundStyle.graphicHeight=backgroundStyle.backgroundHeight||backgroundStyle.graphicHeight;backgroundStyle.backgroundGraphic=null;backgroundStyle.backgroundXOffset=null;backgroundStyle.backgroundYOffset=null;backgroundStyle.backgroundGraphicZIndex=null;return this.redrawNode(id+this.BACKGROUND_ID_SUFFIX,geometry,backgroundStyle,null);},drawGeometryNode:function(node,geometry,style){style=style||node._style;OpenLayers.Util.applyDefaults(style,this.minimumSymbolizer);var options={'isFilled':style.fill===undefined?true:style.fill,'isStroked':style.stroke===undefined?!!style.strokeWidth:style.stroke};var drawn;switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":if(style.graphic===false){options.isFilled=false;options.isStroked=false;}
+this.postDraw(node);return drawResult.complete;},redrawBackgroundNode:function(id,geometry,style,featureId){var backgroundStyle=OpenLayers.Util.extend({},style);backgroundStyle.externalGraphic=backgroundStyle.backgroundGraphic;backgroundStyle.graphicXOffset=backgroundStyle.backgroundXOffset;backgroundStyle.graphicYOffset=backgroundStyle.backgroundYOffset;backgroundStyle.graphicZIndex=backgroundStyle.backgroundGraphicZIndex;backgroundStyle.graphicWidth=backgroundStyle.backgroundWidth||backgroundStyle.graphicWidth;backgroundStyle.graphicHeight=backgroundStyle.backgroundHeight||backgroundStyle.graphicHeight;backgroundStyle.backgroundGraphic=null;backgroundStyle.backgroundXOffset=null;backgroundStyle.backgroundYOffset=null;backgroundStyle.backgroundGraphicZIndex=null;return this.redrawNode(id+this.BACKGROUND_ID_SUFFIX,geometry,backgroundStyle,null);},drawGeometryNode:function(node,geometry,style){style=style||node._style;var options={'isFilled':style.fill===undefined?true:style.fill,'isStroked':style.stroke===undefined?!!style.strokeWidth:style.stroke};var drawn;switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":if(style.graphic===false){options.isFilled=false;options.isStroked=false;}
 drawn=this.drawPoint(node,geometry);break;case"OpenLayers.Geometry.LineString":options.isFilled=false;drawn=this.drawLineString(node,geometry);break;case"OpenLayers.Geometry.LinearRing":drawn=this.drawLinearRing(node,geometry);break;case"OpenLayers.Geometry.Polygon":drawn=this.drawPolygon(node,geometry);break;case"OpenLayers.Geometry.Surface":drawn=this.drawSurface(node,geometry);break;case"OpenLayers.Geometry.Rectangle":drawn=this.drawRectangle(node,geometry);break;default:break;}
-node._options=options;if(drawn!=false){return{node:this.setStyle(node,style,options,geometry),complete:drawn};}else{return false;}},postDraw:function(node){},drawPoint:function(node,geometry){},drawLineString:function(node,geometry){},drawLinearRing:function(node,geometry){},drawPolygon:function(node,geometry){},drawRectangle:function(node,geometry){},drawCircle:function(node,geometry){},drawSurface:function(node,geometry){},removeText:function(featureId){var label=document.getElementById(featureId+this.LABEL_ID_SUFFIX);if(label){this.textRoot.removeChild(label);}},getFeatureIdFromEvent:function(evt){var target=evt.target;var useElement=target&&target.correspondingUseElement;var node=useElement?useElement:(target||evt.srcElement);var featureId=node._featureId;return featureId;},eraseGeometry:function(geometry){if((geometry.CLASS_NAME=="OpenLayers.Geometry.MultiPoint")||(geometry.CLASS_NAME=="OpenLayers.Geometry.MultiLineString")||(geometry.CLASS_NAME=="OpenLayers.Geometry.MultiPolygon")||(geometry.CLASS_NAME=="OpenLayers.Geometry.Collection")){for(var i=0,len=geometry.components.length;i<len;i++){this.eraseGeometry(geometry.components[i]);}}else{var element=OpenLayers.Util.getElement(geometry.id);if(element&&element.parentNode){if(element.geometry){element.geometry.destroy();element.geometry=null;}
+node._options=options;if(drawn!=false){return{node:this.setStyle(node,style,options,geometry),complete:drawn};}else{return false;}},postDraw:function(node){},drawPoint:function(node,geometry){},drawLineString:function(node,geometry){},drawLinearRing:function(node,geometry){},drawPolygon:function(node,geometry){},drawRectangle:function(node,geometry){},drawCircle:function(node,geometry){},drawSurface:function(node,geometry){},removeText:function(featureId){var label=document.getElementById(featureId+this.LABEL_ID_SUFFIX);if(label){this.textRoot.removeChild(label);}},getFeatureIdFromEvent:function(evt){var target=evt.target;var useElement=target&&target.correspondingUseElement;var node=useElement?useElement:(target||evt.srcElement);var featureId=node._featureId;return featureId;},eraseGeometry:function(geometry,featureId){if((geometry.CLASS_NAME=="OpenLayers.Geometry.MultiPoint")||(geometry.CLASS_NAME=="OpenLayers.Geometry.MultiLineString")||(geometry.CLASS_NAME=="OpenLayers.Geometry.MultiPolygon")||(geometry.CLASS_NAME=="OpenLayers.Geometry.Collection")){for(var i=0,len=geometry.components.length;i<len;i++){this.eraseGeometry(geometry.components[i],featureId);}}else{var element=OpenLayers.Util.getElement(geometry.id);if(element&&element.parentNode){if(element.geometry){element.geometry.destroy();element.geometry=null;}
 element.parentNode.removeChild(element);if(this.indexer){this.indexer.remove(element);}
 if(element._style.backgroundGraphic){var backgroundId=geometry.id+this.BACKGROUND_ID_SUFFIX;var bElem=OpenLayers.Util.getElement(backgroundId);if(bElem&&bElem.parentNode){bElem.parentNode.removeChild(bElem);}}}}},nodeFactory:function(id,type){var node=OpenLayers.Util.getElement(id);if(node){if(!this.nodeTypeCompare(node,type)){node.parentNode.removeChild(node);node=this.nodeFactory(id,type);}}else{node=this.createNode(type,id);}
 return node;},nodeTypeCompare:function(node,type){},createNode:function(type,id){},moveRoot:function(renderer){var root=this.root;if(renderer.root.parentNode==this.rendererRoot){root=renderer.root;}
-root.parentNode.removeChild(root);renderer.rendererRoot.appendChild(root);},getRenderLayerId:function(){return this.root.parentNode.parentNode.id;},isComplexSymbol:function(graphicName){return(graphicName!="circle")&&!!graphicName;},CLASS_NAME:"OpenLayers.Renderer.Elements"});OpenLayers.Renderer.symbol={"star":[350,75,379,161,469,161,397,215,423,301,350,250,277,301,303,215,231,161,321,161,350,75],"cross":[4,0,6,0,6,4,10,4,10,6,6,6,6,10,4,10,4,6,0,6,0,4,4,4,4,0],"x":[0,0,25,0,50,35,75,0,100,0,65,50,100,100,75,100,50,65,25,100,0,100,35,50,0,0],"square":[0,0,0,1,1,1,1,0,0,0],"triangle":[0,10,10,10,5,0,0,10]};OpenLayers.Tween=OpenLayers.Class({INTERVAL:10,easing:null,begin:null,finish:null,duration:null,callbacks:null,time:null,interval:null,playing:false,initialize:function(easing){this.easing=(easing)?easing:OpenLayers.Easing.Expo.easeOut;},start:function(begin,finish,duration,options){this.playing=true;this.begin=begin;this.finish=finish;this.duration=duration;this.callbacks=options.callbacks;this.time=0;if(this.interval){window.clearInterval(this.interval);this.interval=null;}
+root.parentNode.removeChild(root);renderer.rendererRoot.appendChild(root);},getRenderLayerId:function(){return this.root.parentNode.parentNode.id;},isComplexSymbol:function(graphicName){return(graphicName!="circle")&&!!graphicName;},CLASS_NAME:"OpenLayers.Renderer.Elements"});OpenLayers.Renderer.symbol={"star":[350,75,379,161,469,161,397,215,423,301,350,250,277,301,303,215,231,161,321,161,350,75],"cross":[4,0,6,0,6,4,10,4,10,6,6,6,6,10,4,10,4,6,0,6,0,4,4,4,4,0],"x":[0,0,25,0,50,35,75,0,100,0,65,50,100,100,75,100,50,65,25,100,0,100,35,50,0,0],"square":[0,0,0,1,1,1,1,0,0,0],"triangle":[0,10,10,10,5,0,0,10]};OpenLayers.Symbolizer.Line=OpenLayers.Class(OpenLayers.Symbolizer,{strokeColor:null,strokeOpacity:null,strokeWidth:null,strokeLinecap:null,strokeDashstyle:null,initialize:function(config){OpenLayers.Symbolizer.prototype.initialize.apply(this,arguments);},CLASS_NAME:"OpenLayers.Symbolizer.Line"});OpenLayers.Symbolizer.Point=OpenLayers.Class(OpenLayers.Symbolizer,{strokeColor:null,strokeOpacity:null,strokeWidth:null,strokeLinecap:null,strokeDashstyle:null,fillColor:null,fillOpacity:null,pointRadius:null,externalGraphic:null,graphicWidth:null,graphicHeight:null,graphicOpacity:null,graphicXOffset:null,graphicYOffset:null,rotation:null,graphicName:null,initialize:function(config){OpenLayers.Symbolizer.prototype.initialize.apply(this,arguments);},CLASS_NAME:"OpenLayers.Symbolizer.Point"});OpenLayers.Symbolizer.Polygon=OpenLayers.Class(OpenLayers.Symbolizer,{strokeColor:null,strokeOpacity:null,strokeWidth:null,strokeLinecap:null,strokeDashstyle:null,fillColor:null,fillOpacity:null,initialize:function(config){OpenLayers.Symbolizer.prototype.initialize.apply(this,arguments);},CLASS_NAME:"OpenLayers.Symbolizer.Polygon"});OpenLayers.Symbolizer.Raster=OpenLayers.Class(OpenLayers.Symbolizer,{initialize:function(config){OpenLayers.Symbolizer.prototype.initialize.apply(this,arguments);},CLASS_NAME:"OpenLayers.Symbolizer.Raster"});OpenLayers.Symbolizer.Text=OpenLayers.Class(OpenLayers.Symbolizer,{label:null,fontFamily:null,fontSize:null,fontWeight:null,fontStyle:null,initialize:function(config){OpenLayers.Symbolizer.prototype.initialize.apply(this,arguments);},CLASS_NAME:"OpenLayers.Symbolizer.Text"});OpenLayers.Tween=OpenLayers.Class({INTERVAL:10,easing:null,begin:null,finish:null,duration:null,callbacks:null,time:null,interval:null,playing:false,initialize:function(easing){this.easing=(easing)?easing:OpenLayers.Easing.Expo.easeOut;},start:function(begin,finish,duration,options){this.playing=true;this.begin=begin;this.finish=finish;this.duration=duration;this.callbacks=options.callbacks;this.time=0;if(this.interval){window.clearInterval(this.interval);this.interval=null;}
 if(this.callbacks&&this.callbacks.start){this.callbacks.start.call(this,this.begin);}
 this.interval=window.setInterval(OpenLayers.Function.bind(this.play,this),this.INTERVAL);},stop:function(){if(!this.playing){return;}
 if(this.callbacks&&this.callbacks.done){this.callbacks.done.call(this,this.finish);}
 window.clearInterval(this.interval);this.interval=null;this.playing=false;},play:function(){var value={};for(var i in this.begin){var b=this.begin[i];var f=this.finish[i];if(b==null||f==null||isNaN(b)||isNaN(f)){OpenLayers.Console.error('invalid value for Tween');}
 var c=f-b;value[i]=this.easing.apply(this,[this.time,b,c,this.duration]);}
 this.time++;if(this.callbacks&&this.callbacks.eachStep){this.callbacks.eachStep.call(this,value);}
-if(this.time>this.duration){if(this.callbacks&&this.callbacks.done){this.callbacks.done.call(this,this.finish);this.playing=false;}
-window.clearInterval(this.interval);this.interval=null;}},CLASS_NAME:"OpenLayers.Tween"});OpenLayers.Easing={CLASS_NAME:"OpenLayers.Easing"};OpenLayers.Easing.Linear={easeIn:function(t,b,c,d){return c*t/d+b;},easeOut:function(t,b,c,d){return c*t/d+b;},easeInOut:function(t,b,c,d){return c*t/d+b;},CLASS_NAME:"OpenLayers.Easing.Linear"};OpenLayers.Easing.Expo={easeIn:function(t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOut:function(t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOut:function(t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},CLASS_NAME:"OpenLayers.Easing.Expo"};OpenLayers.Easing.Quad={easeIn:function(t,b,c,d){return c*(t/=d)*t+b;},easeOut:function(t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOut:function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},CLASS_NAME:"OpenLayers.Easing.Quad"};OpenLayers.Control.ArgParser=OpenLayers.Class(OpenLayers.Control,{center:null,zoom:null,layers:null,displayProjection:null,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,arguments);},setMap:function(map){OpenLayers.Control.prototype.setMap.apply(this,arguments);for(var i=0,len=this.map.controls.length;i<len;i++){var control=this.map.controls[i];if((control!=this)&&(control.CLASS_NAME=="OpenLayers.Control.ArgParser")){if(control.displayProjection!=this.displayProjection){this.displayProjection=control.displayProjection;}
+if(this.time>this.duration){this.stop();}},CLASS_NAME:"OpenLayers.Tween"});OpenLayers.Easing={CLASS_NAME:"OpenLayers.Easing"};OpenLayers.Easing.Linear={easeIn:function(t,b,c,d){return c*t/d+b;},easeOut:function(t,b,c,d){return c*t/d+b;},easeInOut:function(t,b,c,d){return c*t/d+b;},CLASS_NAME:"OpenLayers.Easing.Linear"};OpenLayers.Easing.Expo={easeIn:function(t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOut:function(t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOut:function(t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},CLASS_NAME:"OpenLayers.Easing.Expo"};OpenLayers.Easing.Quad={easeIn:function(t,b,c,d){return c*(t/=d)*t+b;},easeOut:function(t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOut:function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},CLASS_NAME:"OpenLayers.Easing.Quad"};OpenLayers.Control.ArgParser=OpenLayers.Class(OpenLayers.Control,{center:null,zoom:null,layers:null,displayProjection:null,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,arguments);},setMap:function(map){OpenLayers.Control.prototype.setMap.apply(this,arguments);for(var i=0,len=this.map.controls.length;i<len;i++){var control=this.map.controls[i];if((control!=this)&&(control.CLASS_NAME=="OpenLayers.Control.ArgParser")){if(control.displayProjection!=this.displayProjection){this.displayProjection=control.displayProjection;}
 break;}}
 if(i==this.map.controls.length){var args=OpenLayers.Util.getParameters();if(args.layers){this.layers=args.layers;this.map.events.register('addlayer',this,this.configureLayers);this.configureLayers();}
 if(args.lat&&args.lon){this.center=new OpenLayers.LonLat(parseFloat(args.lon),parseFloat(args.lat));if(args.zoom){this.zoom=parseInt(args.zoom);}
@@ -415,11 +427,10 @@ OpenLayers.Event.stop(evt);},CLASS_NAME:"OpenLayers.Control.PanZoom"});OpenLayer
 this.eBottom=document.createElement("div");this.eBottom.className=this.displayClass+"Bottom";this.div.appendChild(this.eBottom);if((this.bottomOutUnits=="")||(this.bottomInUnits=="")){this.eBottom.style.visibility="hidden";}else{this.eBottom.style.visibility="visible";}}
 this.map.events.register('moveend',this,this.update);this.update();return this.div;},getBarLen:function(maxLen){var digits=parseInt(Math.log(maxLen)/Math.log(10));var pow10=Math.pow(10,digits);var firstChar=parseInt(maxLen/pow10);var barLen;if(firstChar>5){barLen=5;}else if(firstChar>2){barLen=2;}else{barLen=1;}
 return barLen*pow10;},update:function(){var res=this.map.getResolution();if(!res){return;}
-var curMapUnits=this.map.getUnits();var inches=OpenLayers.INCHES_PER_UNIT;var maxSizeData=this.maxWidth*res*inches[curMapUnits];var geodesicRatio=1;if(this.geodesic===true){var maxSizeGeodesic=this.getGeodesicLength(this.maxWidth);var maxSizeKilometers=maxSizeData/inches["km"];geodesicRatio=maxSizeGeodesic/maxSizeKilometers;maxSizeData*=geodesicRatio;}
+var curMapUnits=this.map.getUnits();var inches=OpenLayers.INCHES_PER_UNIT;var maxSizeData=this.maxWidth*res*inches[curMapUnits];var geodesicRatio=1;if(this.geodesic===true){var maxSizeGeodesic=(this.map.getGeodesicPixelSize().w||0.000001)*this.maxWidth;var maxSizeKilometers=maxSizeData/inches["km"];geodesicRatio=maxSizeGeodesic/maxSizeKilometers;maxSizeData*=geodesicRatio;}
 var topUnits;var bottomUnits;if(maxSizeData>100000){topUnits=this.topOutUnits;bottomUnits=this.bottomOutUnits;}else{topUnits=this.topInUnits;bottomUnits=this.bottomInUnits;}
 var topMax=maxSizeData/inches[topUnits];var bottomMax=maxSizeData/inches[bottomUnits];var topRounded=this.getBarLen(topMax);var bottomRounded=this.getBarLen(bottomMax);topMax=topRounded/inches[curMapUnits]*inches[topUnits];bottomMax=bottomRounded/inches[curMapUnits]*inches[bottomUnits];var topPx=topMax/res/geodesicRatio;var bottomPx=bottomMax/res/geodesicRatio;if(this.eBottom.style.visibility=="visible"){this.eBottom.style.width=Math.round(bottomPx)+"px";this.eBottom.innerHTML=bottomRounded+" "+bottomUnits;}
-if(this.eTop.style.visibility=="visible"){this.eTop.style.width=Math.round(topPx)+"px";this.eTop.innerHTML=topRounded+" "+topUnits;}},getGeodesicLength:function(pixels){var map=this.map;var centerPx=map.getPixelFromLonLat(map.getCenter());var bottom=map.getLonLatFromPixel(centerPx.add(0,-pixels/2));var top=map.getLonLatFromPixel(centerPx.add(0,pixels/2));var source=map.getProjectionObject();var dest=new OpenLayers.Projection("EPSG:4326");if(!source.equals(dest)){bottom.transform(source,dest);top.transform(source,dest);}
-return OpenLayers.Util.distVincenty(bottom,top);},CLASS_NAME:"OpenLayers.Control.ScaleLine"});OpenLayers.Event={observers:false,KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(event){return event.target||event.srcElement;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},isRightClick:function(event){return(((event.which)&&(event.which==3))||((event.button)&&(event.button==2)));},stop:function(event,allowDefault){if(!allowDefault){if(event.preventDefault){event.preventDefault();}else{event.returnValue=false;}}
+if(this.eTop.style.visibility=="visible"){this.eTop.style.width=Math.round(topPx)+"px";this.eTop.innerHTML=topRounded+" "+topUnits;}},CLASS_NAME:"OpenLayers.Control.ScaleLine"});OpenLayers.Event={observers:false,KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(event){return event.target||event.srcElement;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},isRightClick:function(event){return(((event.which)&&(event.which==3))||((event.button)&&(event.button==2)));},stop:function(event,allowDefault){if(!allowDefault){if(event.preventDefault){event.preventDefault();}else{event.returnValue=false;}}
 if(event.stopPropagation){event.stopPropagation();}else{event.cancelBubble=true;}},findElement:function(event,tagName){var element=OpenLayers.Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase()))){element=element.parentNode;}
 return element;},observe:function(elementParam,name,observer,useCapture){var element=OpenLayers.Util.getElement(elementParam);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent)){name='keydown';}
 if(!this.observers){this.observers={};}
@@ -452,7 +463,7 @@ if(!this.element.lefttop){this.element.lefttop=[(document.documentElement.client
 if(!this.element.offsets){this.element.offsets=OpenLayers.Util.pagePosition(this.element);this.element.offsets[0]+=this.element.scrolls[0];this.element.offsets[1]+=this.element.scrolls[1];}
 return new OpenLayers.Pixel((evt.clientX+this.element.scrolls[0])-this.element.offsets[0]
 -this.element.lefttop[0],(evt.clientY+this.element.scrolls[1])-this.element.offsets[1]
--this.element.lefttop[1]);},CLASS_NAME:"OpenLayers.Events"});OpenLayers.Format=OpenLayers.Class({options:null,externalProjection:null,internalProjection:null,data:null,keepData:false,initialize:function(options){OpenLayers.Util.extend(this,options);this.options=options;},destroy:function(){},read:function(data){OpenLayers.Console.userError(OpenLayers.i18n("readNotImplemented"));},write:function(object){OpenLayers.Console.userError(OpenLayers.i18n("writeNotImplemented"));},CLASS_NAME:"OpenLayers.Format"});OpenLayers.Lang["ar"]=OpenLayers.Util.applyDefaults({'permalink':"وصلة دائمة",'baseLayer':"الطبقة الاساسية",'readNotImplemented':"القراءة غير محققة.",'writeNotImplemented':"الكتابة غير محققة",'errorLoadingGML':"خطأ عند تحميل الملف جي ام ال ${url}",'scale':"النسبة = 1 : ${scaleDenom}",'W':"غ",'E':"شر",'N':"شم",'S':"ج"});OpenLayers.Lang["be-tarask"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Неапрацаваны вынік запыту ${statusText}",'permalink':"Сталая спасылка",'overlays':"Слаі",'baseLayer':"Базавы слой",'sameProjection':"Аглядная мапа працуе толькі калі яна мае тую ж праекцыю, што і асноўная мапа",'readNotImplemented':"Функцыянальнасьць чытаньня ня створаная.",'writeNotImplemented':"Функцыянальнасьць запісу ня створаная.",'noFID':"Немагчыма абнавіць магчымасьць, для якога не існуе FID.",'errorLoadingGML':"Памылка загрузкі файла GML ${url}",'browserNotSupported':"Ваш браўзэр не падтрымлівае вэктарную графіку. У цяперашні момант падтрымліваюцца: ${renderers}",'componentShouldBe':"addFeatures : кампанэнт павінен быць ${geomType}",'getFeatureError':"getFeatureFromEvent выкліканы для слоя бяз рэндэру. Звычайна гэта азначае, што Вы зьнішчылі слой, але пакінулі зьвязаны зь ім апрацоўшчык.",'minZoomLevelError':"Уласьцівасьць minZoomLevel прызначана толькі для выкарыстаньня са слаямі вытворнымі ад FixedZoomLevels. Тое, што  гэты wfs-слой правяраецца на minZoomLevel — рэха прошлага. Але мы ня можам выдаліць гэтую магчымасьць, таму што ад яе залежаць некаторыя заснаваныя на OL дастасаваньні. Тым ня менш, праверка minZoomLevel будзе выдаленая ў вэрсіі 3.0. Калі ласка, выкарыстоўваеце замест яе ўстаноўкі мінімальнага/максымальнага памераў, як апісана тут: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-транзакцыя: ПОСЬПЕХ ${response}",'commitFailed':"WFS-транзакцыя: ПАМЫЛКА ${response}",'googleWarning':"Не атрымалася загрузіць слой Google. \x3cbr\x3e\x3cbr\x3eКаб пазбавіцца гэтага паведамленьня, выберыце новы базавы слой у сьпісе ў верхнім правым куце.\x3cbr\x3e\x3cbr\x3e Хутчэй за ўсё, прычына ў тым, што скрыпт бібліятэкі Google Maps ня быў уключаныя альбо не ўтрымлівае слушны API-ключ для Вашага сайта.\x3cbr\x3e\x3cbr\x3eРаспрацоўшчыкам: Для таго, каб даведацца як зрабіць так, каб усё працавала, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eнацісьніце тут\x3c/a\x3e",'getLayerWarning':"Немагчыма загрузіць слой ${layerType}.\x3cbr\x3e\x3cbr\x3eКаб пазбавіцца гэтага паведамленьня, выберыце новы базавы слой у сьпісе ў верхнім правым куце.\x3cbr\x3e\x3cbr\x3eХутчэй за ўсё, прычына ў тым, што скрыпт бібліятэкі ${layerLib} ня быў слушна ўключаны.\x3cbr\x3e\x3cbr\x3eРаспрацоўшчыкам: Для таго, каб даведацца як зрабіць так, каб усё працавала, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eнацісьніце тут\x3c/a\x3e",'scale':"Маштаб = 1 : ${scaleDenom}",'W':"З",'E':"У",'N':"Пн",'S':"Пд",'layerAlreadyAdded':"Вы паспрабавалі дадаць слой ${layerName} на мапу, але ён ужо дададзены",'reprojectDeprecated':"Вы выкарыстоўваеце ўстаноўку \'reproject\' для слоя ${layerName}. Гэтая ўстаноўка зьяўляецца састарэлай: яна выкарыстоўвалася для падтрымкі паказу зьвестак на камэрцыйных базавых мапах, але гэта функцыя цяпер рэалізаваная ў убудаванай падтрымцы сфэрычнай праекцыі Мэркатара. Дадатковая інфармацыя ёсьць на http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Гэты мэтад састарэлы і будзе выдалены ў вэрсіі 3.0. Калі ласка, замест яго выкарыстоўвайце ${newMethod}.",'boundsAddError':"Вам неабходна падаць абодва значэньні x і y для функцыі складаньня.",'lonlatAddError':"Вам неабходна падаць абодва значэньні lon і lat для функцыі складаньня.",'pixelAddError':"Вам неабходна падаць абодва значэньні x і y для функцыі складаньня.",'unsupportedGeometryType':"Тып геамэтрыі не падтрымліваецца: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: верагодна элемэнт з ідэнтыфікатарам ${elemId} займае няслушнае месца.",'filterEvaluateNotImplemented':"evaluate не рэалізаваны для гэтага тыпу фільтру."});OpenLayers.Lang["bg"]=OpenLayers.Util.applyDefaults({'permalink':"Постоянна препратка",'baseLayer':"Основен слой",'errorLoadingGML':"Грешка при зареждане на GML файл ${url}",'scale':"Мащаб = 1 : ${scaleDenom}",'layerAlreadyAdded':"Опитахте да добавите слой ${layerName} в картата, но той вече е добавен",'methodDeprecated':"Този метод е остарял и ще бъде премахват в 3.0. Вместо него използвайте ${newMethod}."});OpenLayers.Lang["br"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Distro evel reked anveret ${statusText}",'permalink':"Peurliamm",'overlays':"Gwiskadoù",'baseLayer':"Gwiskad diazez",'sameProjection':"Ne\'z ar gartenn lec\'hiañ en-dro nemet pa vez heñvel ar banndres anezhi ha hini ar gartenn bennañ",'readNotImplemented':"N\'eo ket emplementet al lenn.",'writeNotImplemented':"N\'eo ket emplementet ar skrivañ.",'noFID':"N\'haller ket hizivaat un elfenn ma n\'eus ket a niverenn-anaout (FID) eviti.",'errorLoadingGML':"Fazi e-ser kargañ ar restr GML ${url}",'browserNotSupported':"N\'eo ket skoret an daskor vektorel gant ho merdeer. Setu aze an daskorerioù skoret evit ar poent :\n${renderers}",'componentShouldBe':"addFeatures : bez\' e tlefe ar parzh besañ eus ar seurt ${geomType}",'getFeatureError':"Galvet eo bet getFeatureFromEvent called war ur gwiskad hep daskorer. Kement-se a dalvez ez eus bet freuzet ur gwiskad hag hoc\'h eus miret un embreger bennak stag outañ.",'minZoomLevelError':"Ne zleer implijout ar perzh minZoomLevel nemet evit gwiskadoù FixedZoomLevels-descendent. Ar fed ma wiria ar gwiskad WHS-se hag-eñ ez eus eus minZoomLevel zo un aspadenn gozh. Koulskoude n\'omp ket evit e ziverkañ kuit da derriñ arloadoù diazezet war OL a c\'hallfe bezañ stag outañ. Setu perak eo dispredet -- Lamet kuit e vo ar gwiriañ minZoomLevel a-is er stumm 3.0. Ober gant an arventennoù bihanañ/brasañ evel deskrivet amañ e plas : http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Treuzgread WFS : MAT EO ${response}",'commitFailed':"Treuzgread WFS Transaction: C\'HWITET ${response}",'googleWarning':"N\'eus ket bet gallet kargañ ar gwiskad Google ent reizh.\x3cbr\x3e\x3cbr\x3eEvit en em zizober eus ar c\'hemenn-mañ, dibabit ur BaseLayer nevez en diuzer gwiskadoù er c\'horn dehoù el laez.\x3cbr\x3e\x3cbr\x3eSur a-walc\'h eo peogwir n\'eo ket bet ensoc\'het levraoueg Google Maps pe neuze ne glot ket an alc\'hwez API gant ho lec\'hienn.\x3cbr\x3e\x3cbr\x3eDiorroerien : Evit reizhañ an dra-se, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eclick here\x3c/a\x3e",'getLayerWarning':"N\'haller ket kargañ ar gwiskad ${layerType} ent reizh.\x3cbr\x3e\x3cbr\x3eEvit en em zizober eus ar c\'hemenn-mañ, dibabit ur BaseLayer nevez en diuzer gwiskadoù er c\'horn dehoù el laez.\x3cbr\x3e\x3cbr\x3eSur a-walc\'h eo peogwir n\'eo ket bet ensoc\'het mat al levraoueg ${layerLib}.\x3cbr\x3e\x3cbr\x3eDiorroerien : Evit gouzout penaos reizhañ an dra-se, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclick here\x3c/a\x3e",'scale':"Skeul = 1 : ${scaleDenom}",'W':"K",'E':"R",'N':"N",'S':"S",'layerAlreadyAdded':"Klasket hoc\'h eus ouzhpennañ ar gwiskad : ${layerName} d\'ar gartenn, met ouzhpennet e oa bet c\'hoazh",'reprojectDeprecated':"Emaoc\'h oc\'h implijout an dibarzh \'reproject\' war ar gwiskad ${layerName}. Dispredet eo an dibarzh-mañ : bet eo hag e talveze da ziskwel roadennoù war-c\'horre kartennoù diazez kenwerzhel, un dra hag a c\'haller ober bremañ gant an arc\'hwel dre skor banndres boullek Mercator. Muioc\'h a ditouroù a c\'haller da gaout war http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Dispredet eo an daore-se ha tennet e vo kuit eus ar stumm 3.0. Grit gant ${newMethod} e plas.",'boundsAddError':"Rekis eo tremen an div dalvoudenn x ha y d\'an arc\'hwel add.",'lonlatAddError':"Rekis eo tremen an div dalvoudenn hedred ha ledred d\'an arc\'hwel add.",'pixelAddError':"Rekis eo tremen an div dalvoudenn x ha y d\'an arc\'hwel add.",'unsupportedGeometryType':"Seurt mentoniezh anskoret : ${geomType}",'pagePositionFailed':"C\'hwitet eo OpenLayers.Util.pagePosition : marteze emañ lec\'hiet fall an elfenn id ${elemId}.",'filterEvaluateNotImplemented':"N\'eo ket bet emplementet ar priziañ evit seurt siloù c\'hoazh."});OpenLayers.Lang.ca={'unhandledRequest':"Resposta a petició no gestionada ${statusText}",'permalink':"Enllaç permanent",'overlays':"Capes addicionals",'baseLayer':"Capa Base",'sameProjection':"El mapa de referència només funciona si té la mateixa projecció que el mapa principal",'readNotImplemented':"Lectura no implementada.",'writeNotImplemented':"Escriptura no implementada.",'noFID':"No es pot actualitzar un element per al que no existeix FID.",'errorLoadingGML':"Error caregant el fitxer GML ${url}",'browserNotSupported':"El seu navegador no suporta renderització vectorial. Els renderitzadors suportats actualmente són:\n${renderers}",'componentShouldBe':"addFeatures : el component ha de ser de tipus ${geomType}",'getFeatureError':"getFeatureFromEvent ha estat cridat a una capa sense renderizador. Això normalment vol dir que "+"s'ha eliminat una capa, però no el handler associat a ella.",'minZoomLevelError':"La propietat minZoomLevel s'ha d'utilitzar només "+"amb les capes que tenen FixedZoomLevels. El fet que "+"una capa wfs comprovi minZoomLevel és una reliquia del "+"passat. No podem, però, eliminar-la sense trencar "+"les aplicacions d'OpenLayers que en puguin dependre. "+"Així doncs estem fent-la obsoleta -- la comprovació "+"minZoomLevel s'eliminarà a la versió 3.0. Feu servir "+"els paràmetres min/max resolution en substitució, tal com es descriu aquí: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacció WFS: CORRECTA ${response}",'commitFailed':"Transacció WFS: HA FALLAT ${response}",'googleWarning':"La capa Google no s'ha pogut carregar correctament.<br><br>"+"Per evitar aquest missatge, sel·leccioneu una nova Capa Base "+"al gestor de capes de la cantonada superior dreta.<br><br>"+"Probablement això és degut a que l'script de la biblioteca de "+"Google Maps no ha estat inclòs a la vostra pàgina, o no "+"conté la clau de l'API correcta per a la vostra adreça.<br><br>"+"Desenvolupadors: Per obtenir consells sobre com fer anar això, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>féu clic aquí</a>",'getLayerWarning':"Per evitar aquest missatge, sel·leccioneu una nova Capa Base "+"al gestor de capes de la cantonada superior dreta.<br><br>"+"Probablement això és degut a que l'script de la biblioteca "+"${layerLib} "+"no ha estat inclòs a la vostra pàgina.<br><br>"+"Desenvolupadors: Per obtenir consells sobre com fer anar això, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>féu clic aquí</a>",'scale':"Escala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Heu intentat afegir la capa: ${layerName} al mapa, pero ja ha estat afegida anteriorment",'reprojectDeprecated':"Esteu fent servir l'opció 'reproject' a la capa "+"${layerName}. Aquesta opció és obsoleta: el seu ús fou concebut "+"per suportar la visualització de dades sobre mapes base comercials, "+"però aquesta funcionalitat s'hauria d'assolir ara mitjançant el suport "+"de la projecció Spherical Mercator. Més informació disponible a "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Aquest mètode és obsolet i s'eliminará a la versió 3.0. "+"Si us plau feu servir em mètode alternatiu ${newMethod}.",'boundsAddError':"Ha de proporcionar els valors x i y a la funció add.",'lonlatAddError':"Ha de proporcionar els valors lon i lat a la funció add.",'pixelAddError':"Ha de proporcionar els valors x i y a la funció add.",'unsupportedGeometryType':"Tipus de geometria no suportada: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition ha fallat: l'element amb id ${elemId} pot estar fora de lloc.",'filterEvaluateNotImplemented':"evaluate no està implementat per aquest tipus de filtre.",'end':''};OpenLayers.Lang["cs-CZ"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Nezpracovaná návratová hodnota ${statusText}",'permalink':"Trvalý odkaz",'overlays':"Překryvné vrstvy",'baseLayer':"Podkladové vrstvy",'sameProjection':"Přehledka pracuje správně pouze tehdy, pokud je ve stejné projekci jako hlavní mapa",'readNotImplemented':"Read není implementováno.",'writeNotImplemented':"Write není implementováno.",'noFID':"Nelze aktualizovat prvek, pro který neexistuje FID.",'errorLoadingGML':"Chyba při načítání souboru GML ${url}",'browserNotSupported':"Váš prohlížeč nepodporuje vykreslování vektorů. Momentálně podporované nástroje jsou::\n${renderers}",'componentShouldBe':"addFeatures : komponenta by měla být ${geomType}",'getFeatureError':"getFeatureFromEvent bylo zavoláno na vrstvě, která nemá vykreslovač. To obyčejně znamená, že jste odstranil vrstvu, ale ne rutinu s ní asociovanou.",'minZoomLevelError':"Vlastnost minZoomLevel by se měla používat pouze s potomky FixedZoomLevels vrstvami. To znamená, že vrstva wfs kontroluje, zda-li minZoomLevel není zbytek z minulosti.Nelze to ovšem vyjmout bez možnosti, že bychom rozbili aplikace postavené na OL, které by na tom mohly záviset. Proto tuto vlastnost nedoporučujeme používat --  kontrola minZoomLevel bude odstraněna ve verzi 3.0. Použijte prosím raději nastavení min/max podle příkaldu popsaného na: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: ÚSPĚCH ${response}",'commitFailed':"WFS Transaction: CHYBA ${response}",'googleWarning':"Nepodařilo se správně načíst vrstvu Google.\x3cbr\x3e\x3cbr\x3eAbyste se zbavili této zprávy, zvolte jinou základní vrstvu v přepínači vrstev.\x3cbr\x3e\x3cbr\x3eTo se většinou stává, pokud nebyl načten skript, nebo neobsahuje správný klíč pro API pro tuto stránku.\x3cbr\x3e\x3cbr\x3eVývojáři: Pro pomoc, aby tohle fungovalo , \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eklikněte sem\x3c/a\x3e",'getLayerWarning':"The ${layerType} Layer was unable to load correctly.\x3cbr\x3e\x3cbr\x3eTo get rid of this message, select a new BaseLayer in the layer switcher in the upper-right corner.\x3cbr\x3e\x3cbr\x3eMost likely, this is because the ${layerLib} library script was either not correctly included.\x3cbr\x3e\x3cbr\x3eDevelopers: For help getting this working correctly, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclick here\x3c/a\x3e",'scale':"Měřítko = 1 : ${scaleDenom}",'layerAlreadyAdded':"Pokusili jste se přidat vrstvu: ${layerName} do mapy, ale tato vrstva je již v mapě přítomna.",'reprojectDeprecated':"Použil jste volbu \'reproject\' ve vrstvě ${layerName}. Tato volba není doporučená: byla zde proto, aby bylo možno zobrazovat data z okomerčních serverů, ale tato funkce je nyní zajištěna pomocí podpory Spherical Mercator. Více informací naleznete na http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Tato metoda je zavržená a bude ve verzi 3.0 odstraněna. Prosím, použijte raději ${newMethod}.",'boundsAddError':"Pro přídavnou funkci musíte zadat obě souřadnice x a y.",'lonlatAddError':"Pro přídavnou funkci musíte zadat obě souřadnice lon a lat.",'pixelAddError':"Pro přídavnou funkci musíte zadat obě souřadnice x a y.",'unsupportedGeometryType':"Nepodporovaný typ geometrie: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition selhalo: element s  id ${elemId} je asi umístěn chybně."});OpenLayers.Lang['da-DK']={'unhandledRequest':"En ikke håndteret forespørgsel returnerede ${statusText}",'permalink':"Permalink",'overlays':"Kortlag",'baseLayer':"Baggrundslag",'sameProjection':"Oversigtskortet fungerer kun når det har samme projektion som hovedkortet",'readNotImplemented':"Læsning er ikke implementeret.",'writeNotImplemented':"Skrivning er ikke implementeret.",'noFID':"Kan ikke opdateret en feature (et objekt) der ikke har et FID.",'errorLoadingGML':"Fejlede under indlæsning af GML fil ${url}",'browserNotSupported':"Din browser understøtter ikke vektor visning. Følgende vektor visninger understøttes:\n${renderers}",'componentShouldBe':"addFeatures : komponenten skal være en ${geomType}",'getFeatureError':"getFeatureFromEvent blev kaldt på et lag uden en visning. Dette betyder som regel at du "+"har destrueret et lag, men ikke de håndteringer der var tilknyttet.",'minZoomLevelError':"Egenskaben minZoomLevel er kun beregnet til brug "+"med FixedZoomLevels. At dette WFS lag kontrollerer "+"minZoomLevel egenskaben, er et levn fra en tidligere "+"version. Vi kan desværre ikke fjerne dette uden at risikere "+"at ødelægge eksisterende OL baserede programmer der "+" benytter denne funktionalitet. "+"Egenskaben bør derfor ikke anvendes, og minZoomLevel "+"kontrollen herunder vil blive fjernet i version 3.0. "+"Benyt istedet min/max opløsnings indstillingerne, som "+"er beskrevet her: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS transaktion: LYKKEDES ${response}",'commitFailed':"WFS transaktion: MISLYKKEDES ${response}",'googleWarning':"Google laget kunne ikke indlæses.<br><br>"+"For at fjerne denne besked, vælg et nyt bagrundskort i "+"lagskifteren i øverste højre hjørne.<br><br>"+"Fejlen skyldes formentlig at Google Maps bibliotekts "+"scriptet ikke er inkluderet, eller ikke indeholder den "+"korrkte API nøgle for dit site.<br><br>"+"Udviklere: For hjælp til at få dette til at fungere, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>klik her</a>",'getLayerWarning':"${layerType}-laget kunne ikke indlæses.<br><br>"+"For at fjerne denne besked, vælg et nyt bagrundskort i "+"lagskifteren i øverste højre hjørne.<br><br>"+"Fejlen skyldes formentlig at ${layerLib} bibliotekts "+"scriptet ikke er inkluderet.<br><br>"+"Udviklere: For hjælp til at få dette til at fungere, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>klik her</a>",'scale':"Målforhold = 1 : ${scaleDenom}",'layerAlreadyAdded':"Du har forsøgt at tilføje laget: ${layerName} til kortet, men det er allerede tilføjet",'reprojectDeprecated':"Du anvender indstillingen 'reproject' på laget ${layerName}."+"Denne indstilling bør ikke længere anvendes. Den var beregnet "+"til at vise data ovenpå kommercielle grundkort, men den funktionalitet "+"bør nu opnås ved at anvende Spherical Mercator understøttelsen. "+"Mere information er tilgængelig her: "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Denne funktion bør ikke længere anvendes, og vil blive fjernet i version 3.0. "+"Anvend venligst funktionen ${newMethod} istedet.",'boundsAddError':"Du skal angive både x og y værdier i kaldet til add funktionen.",'lonlatAddError':"Du skal angive både lon og lat værdier i kaldet til add funktionen.",'pixelAddError':"Du skal angive både x og y værdier i kaldet til add funktionen.",'unsupportedGeometryType':"Geometri typen: ${geomType} er ikke understøttet.",'pagePositionFailed':"OpenLayers.Util.pagePosition fejlede: elementet med id ${elemId} er måske placeret forkert.",'filterEvaluateNotImplemented':"evaluering er ikke implementeret for denne filter type."};OpenLayers.Lang["de"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Unbehandelte Anfragerückmeldung ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Grundkarte",'sameProjection':"Die Übersichtskarte funktioniert nur, wenn sie dieselbe Projektion wie die Hauptkarte verwendet",'readNotImplemented':"Lesen nicht implementiert.",'writeNotImplemented':"Schreiben nicht implementiert.",'noFID':"Ein Feature, für das keine FID existiert, kann nicht aktualisiert werden.",'errorLoadingGML':"Fehler beim Laden der GML-Datei ${url}",'browserNotSupported':"Ihr Browser unterstützt keine Vektordarstellung. Aktuell unterstützte Renderer:\n${renderers}",'componentShouldBe':"addFeatures: Komponente muss vom Typ ${geomType} sein",'getFeatureError':"getFeatureFromEvent wurde vom einem Layer ohne Renderer aufgerufen. Dies bedeutet normalerweise, dass ein Layer entfernt wurde, aber nicht Handler, die auf ihn verweisen.",'minZoomLevelError':"Die \x3ccode\x3eminZoomLevel\x3c/code\x3e-Eigenschaft ist nur für die Verwendung mit \x3ccode\x3eFixedZoomLevels\x3c/code\x3e-untergeordneten Layers vorgesehen. Das dieser \x3ctt\x3ewfs\x3c/tt\x3e-Layer die \x3ccode\x3eminZoomLevel\x3c/code\x3e-Eigenschaft überprüft ist ein Relikt der Vergangenheit. Wir können diese Überprüfung nicht entfernen, ohne das OL basierende Applikationen nicht mehr funktionieren. Daher markieren wir es als veraltet - die \x3ccode\x3eminZoomLevel\x3c/code\x3e-Überprüfung wird in Version 3.0 entfernt werden. Bitte verwenden Sie stattdessen die Min-/Max-Lösung, wie sie unter http://trac.openlayers.org/wiki/SettingZoomLevels beschrieben ist.",'commitSuccess':"WFS-Transaktion: Erfolgreich ${response}",'commitFailed':"WFS-Transaktion: Fehlgeschlagen ${response}",'googleWarning':"Der Google-Layer konnte nicht korrekt geladen werden.\x3cbr\x3e\x3cbr\x3eUm diese Meldung nicht mehr zu erhalten, wählen Sie einen anderen Hintergrundlayer aus dem LayerSwitcher in der rechten oberen Ecke.\x3cbr\x3e\x3cbr\x3eSehr wahrscheinlich tritt dieser Fehler auf, weil das Skript der Google-Maps-Bibliothek nicht eingebunden wurde oder keinen gültigen API-Schlüssel für Ihre URL enthält.\x3cbr\x3e\x3cbr\x3eEntwickler: Besuche \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3edas Wiki\x3c/a\x3e für Hilfe zum korrekten Einbinden des Google-Layers",'getLayerWarning':"Der ${layerType}-Layer konnte nicht korrekt geladen werden.\x3cbr\x3e\x3cbr\x3eUm diese Meldung nicht mehr zu erhalten, wählen Sie einen anderen Hintergrundlayer aus dem LayerSwitcher in der rechten oberen Ecke.\x3cbr\x3e\x3cbr\x3eSehr wahrscheinlich tritt dieser Fehler auf, weil das Skript der \'${layerLib}\'-Bibliothek nicht eingebunden wurde.\x3cbr\x3e\x3cbr\x3eEntwickler: Besuche \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3edas Wiki\x3c/a\x3e für Hilfe zum korrekten Einbinden von Layern",'scale':"Maßstab = 1 : ${scaleDenom}",'W':"W",'E':"O",'N':"N",'S':"S",'layerAlreadyAdded':"Sie versuchen den Layer „${layerName}“ zur Karte hinzuzufügen, er wurde aber bereits hinzugefügt",'reprojectDeprecated':"Sie verwenden die „Reproject“-Option des Layers ${layerName}. Diese Option ist veraltet: Sie wurde entwickelt um die Anzeige von Daten auf kommerziellen Basiskarten zu unterstützen, aber diese Funktion sollte jetzt durch Unterstützung der „Spherical Mercator“ erreicht werden. Weitere Informationen sind unter http://trac.openlayers.org/wiki/SphericalMercator verfügbar.",'methodDeprecated':"Die Methode ist veraltet und wird in 3.0 entfernt. Bitte verwende stattdessen ${newMethod}.",'boundsAddError':"Beide Werte (x und y) müssen der add-Funktion übergeben werden.",'lonlatAddError':"Beide Werte (lon und lat) müssen der add-Funktion übergeben werden.",'pixelAddError':"Beide Werte (x und y) müssen der add-Funktion übergeben werden.",'unsupportedGeometryType':"Nicht unterstützter Geometrie-Typ: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fehlgeschlagen: Element mit Id ${elemId} möglicherweise falsch platziert.",'filterEvaluateNotImplemented':"„evaluate“ ist für diesen Filter-Typ nicht implementiert."});OpenLayers.Lang["el"]=OpenLayers.Util.applyDefaults({'scale':"Κλίμακα ~ 1 : ${scaleDenom}"});OpenLayers.Lang.en={'unhandledRequest':"Unhandled request return ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Base Layer",'sameProjection':"The overview map only works when it is in the same projection as the main map",'readNotImplemented':"Read not implemented.",'writeNotImplemented':"Write not implemented.",'noFID':"Can't update a feature for which there is no FID.",'errorLoadingGML':"Error in loading GML file ${url}",'browserNotSupported':"Your browser does not support vector rendering. Currently supported renderers are:\n${renderers}",'componentShouldBe':"addFeatures : component should be an ${geomType}",'getFeatureError':"getFeatureFromEvent called on layer with no renderer. This usually means you "+"destroyed a layer, but not some handler which is associated with it.",'minZoomLevelError':"The minZoomLevel property is only intended for use "+"with the FixedZoomLevels-descendent layers. That this "+"wfs layer checks for minZoomLevel is a relic of the"+"past. We cannot, however, remove it without possibly "+"breaking OL based applications that may depend on it."+" Therefore we are deprecating it -- the minZoomLevel "+"check below will be removed at 3.0. Please instead "+"use min/max resolution setting as described here: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: SUCCESS ${response}",'commitFailed':"WFS Transaction: FAILED ${response}",'googleWarning':"The Google Layer was unable to load correctly.<br><br>"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.<br><br>"+"Most likely, this is because the Google Maps library "+"script was either not included, or does not contain the "+"correct API key for your site.<br><br>"+"Developers: For help getting this working correctly, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>click here</a>",'getLayerWarning':"The ${layerType} Layer was unable to load correctly.<br><br>"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.<br><br>"+"Most likely, this is because the ${layerLib} library "+"script was not correctly included.<br><br>"+"Developers: For help getting this working correctly, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>click here</a>",'scale':"Scale = 1 : ${scaleDenom}",'W':'W','E':'E','N':'N','S':'S','layerAlreadyAdded':"You tried to add the layer: ${layerName} to the map, but it has already been added",'reprojectDeprecated':"You are using the 'reproject' option "+"on the ${layerName} layer. This option is deprecated: "+"its use was designed to support displaying data over commercial "+"basemaps, but that functionality should now be achieved by using "+"Spherical Mercator support. More information is available from "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"This method has been deprecated and will be removed in 3.0. "+"Please use ${newMethod} instead.",'boundsAddError':"You must pass both x and y values to the add function.",'lonlatAddError':"You must pass both lon and lat values to the add function.",'pixelAddError':"You must pass both x and y values to the add function.",'unsupportedGeometryType':"Unsupported geometry type: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: element with id ${elemId} may be misplaced.",'end':'','filterEvaluateNotImplemented':"evaluate is not implemented for this filter type."};OpenLayers.Lang.es={'unhandledRequest':"Respuesta a petición no gestionada ${statusText}",'permalink':"Enlace permanente",'overlays':"Capas superpuestas",'baseLayer':"Capa Base",'sameProjection':"El mini mapa sólo funciona si está en la misma proyección que el mapa principal",'readNotImplemented':"Lectura no implementada.",'writeNotImplemented':"Escritura no implementada.",'noFID':"No se puede actualizar un elemento para el que no existe FID.",'errorLoadingGML':"Error cargando el fichero GML ${url}",'browserNotSupported':"Su navegador no soporta renderización vectorial. Los renderizadores soportados actualmente son:\n${renderers}",'componentShouldBe':"addFeatures : el componente debe ser del tipo ${geomType}",'getFeatureError':"getFeatureFromEvent llamado en una capa sin renderizador. Esto normalmente quiere decir que "+"se ha destruido una capa, pero no el manejador asociado a ella.",'minZoomLevelError':"La propiedad minZoomLevel debe sólo utilizarse "+"con las capas que tienen FixedZoomLevels. El hecho de que "+"una capa wfs compruebe minZoomLevel is una reliquia del "+"pasado. Sin embargo, no podemos eliminarla sin discontinuar "+"probablemente las aplicaciones OL que puedan depender de ello. "+"Así pues estamos haciéndolo obsoleto --la comprobación "+"minZoomLevel se eliminará en la versión 3.0. Utilice el ajuste "+"de resolution min/max en su lugar, tal como se describe aquí: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacción WFS: ÉXITO ${response}",'commitFailed':"Transacción WFS: FALLÓ ${response}",'googleWarning':"La capa Google no pudo ser cargada correctamente.<br><br>"+"Para evitar este mensaje, seleccione una nueva Capa Base "+"en el selector de capas en la esquina superior derecha.<br><br>"+"Probablemente, esto se debe a que el script de la biblioteca de "+"Google Maps no fue correctamente incluido en su página, o no "+"contiene la clave del API correcta para su sitio.<br><br>"+"Desarrolladores: Para ayudar a hacer funcionar esto correctamente, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>haga clic aquí</a>",'getLayerWarning':"La capa ${layerType} no pudo ser cargada correctamente.<br><br>"+"Para evitar este mensaje, seleccione una nueva Capa Base "+"en el selector de capas en la esquina superior derecha.<br><br>"+"Probablemente, esto se debe a que el script de "+"la biblioteca ${layerLib} "+"no fue correctamente incluido en su página.<br><br>"+"Desarrolladores: Para ayudar a hacer funcionar esto correctamente, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>haga clic aquí</a>",'scale':"Escala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Intentó añadir la capa: ${layerName} al mapa, pero ya había sido añadida previamente",'reprojectDeprecated':"Está usando la opción 'reproject' en la capa "+"${layerName}. Esta opción está obsoleta: su uso fue diseñado "+"para soportar la visualización de datos sobre mapas base comerciales, "+"pero esa funcionalidad debería conseguirse ahora mediante el soporte "+"de la proyección Spherical Mercator. Más información disponible en "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Este método está obsoleto y se eliminará en la versión 3.0. "+"Por favor utilice el método ${newMethod} en su lugar.",'boundsAddError':"Debe proporcionar los valores x e y a la función add.",'lonlatAddError':"Debe proporcionar los valores lon y lat a la función add.",'pixelAddError':"Debe proporcionar los valores x e y a la función add.",'unsupportedGeometryType':"Tipo de geometría no soportada: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition falló: el elemento con id ${elemId} puede haberse colocado de manera errónea.",'filterEvaluateNotImplemented':"evaluate no está implementado para este tipo de filtro.",'end':''};OpenLayers.Lang["fi"]=OpenLayers.Util.applyDefaults({'permalink':"Ikilinkki",'overlays':"Kerrokset",'baseLayer':"Peruskerros",'sameProjection':"Yleiskuvakarttaa voi käyttää vain, kun sillä on sama projektio kuin pääkartalla.",'W':"L",'E':"I",'N':"P",'S':"E"});OpenLayers.Lang["fr"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Requête non gérée, retournant ${statusText}",'permalink':"Permalien",'overlays':"Calques",'baseLayer':"Calque de base",'sameProjection':"La carte de situation ne fonctionne que lorsque sa projection est la même que celle de la carte principale",'readNotImplemented':"Lecture non implémentée.",'writeNotImplemented':"Ecriture non implémentée.",'noFID':"Impossible de mettre à jour un objet sans identifiant (fid).",'errorLoadingGML':"Erreur au chargement du fichier GML ${url}",'browserNotSupported':"Votre navigateur ne supporte pas le rendu vectoriel. Les renderers actuellement supportés sont : \n${renderers}",'componentShouldBe':"addFeatures : le composant devrait être de type ${geomType}",'getFeatureError':"getFeatureFromEvent a été appelé sur un calque sans renderer. Cela signifie généralement que vous avez détruit cette couche, mais que vous avez conservé un handler qui lui était associé.",'minZoomLevelError':"La propriété minZoomLevel doit seulement être utilisée pour des couches FixedZoomLevels-descendent. Le fait que cette couche WFS vérifie la présence de minZoomLevel est une relique du passé. Nous ne pouvons toutefois la supprimer sans casser des applications qui pourraient en dépendre. C\'est pourquoi nous la déprécions -- la vérification du minZoomLevel sera supprimée en version 3.0. A la place, merci d\'utiliser les paramètres de résolutions min/max tel que décrit sur : http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transaction WFS : SUCCES ${response}",'commitFailed':"Transaction WFS : ECHEC ${response}",'googleWarning':"La couche Google n\'a pas été en mesure de se charger correctement.\x3cbr\x3e\x3cbr\x3ePour supprimer ce message, choisissez une nouvelle BaseLayer dans le sélecteur de couche en haut à droite.\x3cbr\x3e\x3cbr\x3eCela est possiblement causé par la non-inclusion de la librairie Google Maps, ou alors parce que la clé de l\'API ne correspond pas à votre site.\x3cbr\x3e\x3cbr\x3eDéveloppeurs : pour savoir comment corriger ceci, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3ecliquez ici\x3c/a\x3e",'getLayerWarning':"La couche ${layerType} n\'est pas en mesure de se charger correctement.\x3cbr\x3e\x3cbr\x3ePour supprimer ce message, choisissez une nouvelle BaseLayer dans le sélecteur de couche en haut à droite.\x3cbr\x3e\x3cbr\x3eCela est possiblement causé par la non-inclusion de la librairie ${layerLib}.\x3cbr\x3e\x3cbr\x3eDéveloppeurs : pour savoir comment corriger ceci, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3ecliquez ici\x3c/a\x3e",'scale':"Echelle ~ 1 : ${scaleDenom}",'W':"O",'E':"E",'N':"N",'S':"S",'layerAlreadyAdded':"Vous avez essayé d\'ajouter à la carte le calque : ${layerName}, mais il est déjà présent",'reprojectDeprecated':"Vous utilisez l\'option \'reproject\' sur la couche ${layerName}. Cette option est dépréciée : Son usage permettait d\'afficher des données au dessus de couches raster commerciales.Cette fonctionalité est maintenant supportée en utilisant le support de la projection Mercator Sphérique. Plus d\'information est disponible sur http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Cette méthode est dépréciée, et sera supprimée à la version 3.0. Merci d\'utiliser ${newMethod} à la place.",'boundsAddError':"Vous devez passer les deux valeurs x et y à la fonction add.",'lonlatAddError':"Vous devez passer les deux valeurs lon et lat à la fonction add.",'pixelAddError':"Vous devez passer les deux valeurs x et y à la fonction add.",'unsupportedGeometryType':"Type de géométrie non supporté : ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition a échoué: l\'élément d\'id ${elemId} pourrait être mal positionné.",'filterEvaluateNotImplemented':"évaluer n\'a pas encore été implémenté pour ce type de filtre."});OpenLayers.Lang["fur"]=OpenLayers.Util.applyDefaults({'permalink':"Leam Permanent",'overlays':"Livei parsore",'baseLayer':"Livel di base",'browserNotSupported':"Il to sgarfadôr nol supuarte la renderizazion vetoriâl. Al moment a son supuartâts:\n${renderers}",'scale':"Scjale = 1 : ${scaleDenom}",'W':"O",'E':"E",'N':"N",'S':"S"});OpenLayers.Lang["gl"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Solicitude non xerada; a resposta foi: ${statusText}",'permalink':"Ligazón permanente",'overlays':"Capas superpostas",'baseLayer':"Capa base",'sameProjection':"A vista xeral do mapa só funciona cando está na mesma proxección có mapa principal",'readNotImplemented':"Lectura non implementada.",'writeNotImplemented':"Escritura non implementada.",'noFID':"Non se pode actualizar a funcionalidade para a que non hai FID.",'errorLoadingGML':"Erro ao cargar o ficheiro GML $(url)",'browserNotSupported':"O seu navegador non soporta a renderización de vectores. Os renderizadores soportados actualmente son:\n${renderers}",'componentShouldBe':"addFeatures: o compoñente debera ser de tipo ${geomType}",'getFeatureError':"getFeatureFromEvent ten sido chamado a unha capa sen renderizador. Isto normalmente significa que destruíu unha capa, mais non o executador que está asociado con ela.",'minZoomLevelError':"A propiedade minZoomLevel é só para uso conxuntamente coas capas FixedZoomLevels-descendent. O feito de que esa capa wfs verifique o minZoomLevel é unha reliquia do pasado. Non podemos, con todo, eliminala sen a posibilidade de non romper as aplicacións baseadas en OL que poidan depender dela. Por iso a estamos deixando obsoleta (a comprobación minZoomLevel de embaixo será eliminada na versión 3.0). Por favor, no canto diso use o axuste de resolución mín/máx tal e como está descrito aquí: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacción WFS: ÉXITO ${response}",'commitFailed':"Transacción WFS: FALLIDA ${response}",'googleWarning':"A capa do Google non puido cargarse correctamente.\x3cbr\x3e\x3cbr\x3ePara evitar esta mensaxe, escolla unha nova capa base no seleccionador de capas na marxe superior dereita.\x3cbr\x3e\x3cbr\x3eProbablemente, isto acontece porque a escritura da libraría do Google Maps ou ben non foi incluída ou ben non contén a clave API correcta para o seu sitio.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: para axudar a facer funcionar isto correctamente, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3epremede aquí\x3c/a\x3e",'getLayerWarning':"A capa ${layerType} foi incapaz de cargarse correctamente.\x3cbr\x3e\x3cbr\x3ePara evitar esta mensaxe, escolla unha nova capa base no seleccionador de capas na marxe superior dereita.\x3cbr\x3e\x3cbr\x3eProbablemente, isto acontece porque a escritura da libraría ${layerLib} non foi ben incluída.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: para axudar a facer funcionar isto correctamente, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3epremede aquí\x3c/a\x3e",'scale':"Escala = 1 : ${scaleDenom}",'W':"O",'E':"L",'N':"N",'S':"S",'layerAlreadyAdded':"Intentou engadir a capa: ${layerName} ao mapa, pero xa fora engadida",'reprojectDeprecated':"Está usando a opción \"reproject\" na capa ${layerName}. Esta opción está obsoleta: o seu uso foi deseñado para a visualización de datos sobre mapas base comerciais, pero esta funcionalidade debera agora ser obtida utilizando a proxección Spherical Mercator. Hai dispoñible máis información en http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Este método está obsoleto e será eliminado na versión 3.0. Por favor, no canto deste use ${newMethod}.",'boundsAddError':"Debe achegar os valores x e y á función add.",'lonlatAddError':"Debe achegar tanto o valor lon coma o lat á función add.",'pixelAddError':"Debe achegar os valores x e y á función add.",'unsupportedGeometryType':"Tipo xeométrico non soportado: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fallou: o elemento con id ${elemId} pode non estar na súa posición.",'filterEvaluateNotImplemented':"avaliar non está implementado para este tipo de filtro."});OpenLayers.Lang["gsw"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Nit behandleti Aafrogsruckmäldig ${statusText}",'permalink':"Permalink",'overlays':"Iberlagerige",'baseLayer':"Grundcharte",'sameProjection':"D Ibersichts-Charte funktioniert nume, wänn si di glych Projäktion brucht wie d Hauptcharte",'readNotImplemented':"Läse nit implementiert.",'writeNotImplemented':"Schrybe nit implementiert.",'noFID':"E Feature, wu s kei FID derfir git, cha nit aktualisiert wäre.",'errorLoadingGML':"Fähler bim Lade vu dr GML-Datei ${url}",'browserNotSupported':"Dyy Browser unterstitzt kei Vektordarstellig. Aktuäll unterstitzti Renderer:\n${renderers}",'componentShouldBe':"addFeatures : Komponänt sott dr Typ ${geomType} syy",'getFeatureError':"getFeatureFromEvent isch uf eme Layer ohni Renderer ufgruefe wore. Des heisst normalerwys, ass Du e Layer kaputt gmacht hesch, aber nit dr Handler, wu derzue ghert.",'minZoomLevelError':"D minZoomLevel-Eigeschaft isch nume dänk fir d Layer, wu vu dr FixedZoomLevels abstamme. Ass dää wfs-Layer minZoomLevel prieft, scih e Relikt us dr Vergangeheit. Mir chenne s aber nit ändere ohni OL_basierti Aawändige villicht kaputt gehn, wu dervu abhänge.  Us däm Grund het die Funktion d Eigeschaft \'deprecated\' iberchuu. D minZoomLevel-Priefig unte wird in dr Version 3.0 usegnuu. Bitte verwänd statt däm e min/max-Uflesig wie s do bschriben isch: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-Transaktion: ERFOLGRYCH ${response}",'commitFailed':"WFS-Transaktion: FÄHLGSCHLAA ${response}",'googleWarning':"Dr Google-Layer het nit korräkt chenne glade wäre.\x3cbr\x3e\x3cbr\x3eGo die Mäldig nimi z kriege, wehl e andere Hintergrundlayer us em LayerSwitcher im rächte obere Ecke.\x3cbr\x3e\x3cbr\x3eDää Fähler git s seli hyfig, wel s Skript vu dr Google-Maps-Bibliothek nit yybunde woren isch oder wel s kei giltige API-Schlissel fir Dyy URL din het.\x3cbr\x3e\x3cbr\x3eEntwickler: Fir Hilf zum korräkte Yybinde vum Google-Layer \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3edoo drucke\x3c/a\x3e",'getLayerWarning':"Dr ${layerType}-Layer het nit korräkt chenne glade wäre.\x3cbr\x3e\x3cbr\x3eGo die Mäldig nimi z kriege, wehl e andere Hintergrundlayer us em LayerSwitcher im rächte obere Ecke.\x3cbr\x3e\x3cbr\x3eDää Fähler git s seli hyfig, wel s Skript vu dr \'${layerLib}\'-Bibliothek nit yybunde woren isch oder wel s kei giltige API-Schlissel fir Dyy URL din het.\x3cbr\x3e\x3cbr\x3eEntwickler: Fir Hilf zum korräkte Yybinde vu Layer \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3edoo drucke\x3c/a\x3e",'scale':"Maßstab = 1 : ${scaleDenom}",'W':"W",'E':"O",'N':"N",'S':"S",'layerAlreadyAdded':"Du hesch versuecht dää Layer in d Charte yyzfiege: ${layerName}, aber är isch schoi yygfiegt",'reprojectDeprecated':"Du bruchsch d \'reproject\'-Option bim ${layerName}-Layer. Die Option isch nimi giltig: si isch aagleit wore go   Date iber kommerziälli Grundcharte lege, aber des sott mer jetz mache mit dr Unterstitzig vu Spherical Mercator. Meh Informatione git s uf http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Die Methode isch veraltet un wird us dr Version 3.0 usegnuu. Bitte verwäbnd statt däm ${newMethod}.",'boundsAddError':"Du muesch e x-Wärt un e y-Wärt yygee bi dr Zuefieg-Funktion",'lonlatAddError':"Du meusch e Lengi- un e Breiti-Grad yygee bi dr Zuefieg-Funktion.",'pixelAddError':"Du muesch x- un y-Wärt aagee bi dr Zuefieg-Funktion.",'unsupportedGeometryType':"Nit unterstitze Geometrii-Typ: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fählgschlaa: Elemänt mit ID ${elemId} isch villicht falsch gsetzt.",'filterEvaluateNotImplemented':"evaluiere isch nit implemäntiert in däm Filtertyp."});OpenLayers.Lang["hr"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Nepodržani zahtjev ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Osnovna karta",'sameProjection':"Pregledna karta radi jedino kao je u istoj projekciji kao i glava karta",'readNotImplemented':"Čitanje nije implementirano.",'writeNotImplemented':"Pisanje nije implementirano.",'noFID':"Ne mogu ažurirati značajku za koju ne postoji FID.",'errorLoadingGML':"Greška u učitavanju GML datoteke ${url}",'browserNotSupported':"Vaš preglednik ne podržava vektorsko renderiranje. Trenutno podržani rendereri su: ${renderers}",'componentShouldBe':"addFeatures : komponenta bi trebala biti ${geomType}",'getFeatureError':"getFeatureFromEvent je pozvao Layer bez renderera. Ovo obično znači da ste uništiili Layer, a ne neki Handler koji je povezan s njim.",'commitSuccess':"WFS Transakcija: USPJEŠNA ${response}",'commitFailed':"WFS Transakcija: NEUSPJEŠNA ${response}",'scale':"Mjerilo = 1 : ${scaleDenom}",'layerAlreadyAdded':"Pokušali ste dodati layer:  ${layerName} na kartu, ali je već dodan",'methodDeprecated':"Ova metoda nije odobrena i biti će maknuta u 3.0. Koristite ${newMethod}.",'boundsAddError':"Morate dati obje vrijednosti ,  x i y  da bi dodali funkciju.",'lonlatAddError':"Morate dati obje vrijednosti , (lon i lat) da bi dodali funkciju.",'pixelAddError':"Morate dati obje vrijednosti ,  x i y  da bi dodali funkciju.",'unsupportedGeometryType':"Nepodržani tip geometrije: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition nije uspjelo: element sa id ${elemId} može biti krivo smješten."});OpenLayers.Lang["hsb"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Wotmołwa njewobdźěłaneho naprašowanja ${statusText}",'permalink':"Trajny wotkaz",'overlays':"Naworštowanja",'baseLayer':"Zakładna runina",'sameProjection':"Přehladowa karta jenož funguje, hdyž je w samsnej projekciji kaž hłowna karta",'readNotImplemented':"Čitanje njeimplementowane.",'writeNotImplemented':"Pisanje njeimplementowane.",'noFID':"Funkcija, za kotruž FID njeje, njeda so aktualizować.",'errorLoadingGML':"Zmylk při začitowanju dataje ${url}",'browserNotSupported':"Twój wobhladowak wektorowe rysowanje njepodpěruje. Tuchwilu podpěrowane rysowaki su:\n${renderers}",'componentShouldBe':"addFeatures: komponenta měła ${geomType} być",'getFeatureError':"getFeatureFromEvent bu na woršće bjez rysowak zawołany. To zwjetša woznamjenja, zo sy worštu zničił, ale nic wobdźěłak, kotryž je z njej zwjazany.",'minZoomLevelError':"Kajkosć minZoomLevel je jenož za wužiwanje z worštami myslena, kotrež wot FixedZoomLevels pochadźeja. Zo tuta woršta wfs za minZoomLevel přepruwuje, je relikt zańdźenosće. Njemóžemy wšak ju wotstronić, bjeztoho zo aplikacije, kotrež na OpenLayers bazěruja a snano tutu kajkosć wužiwaja, hižo njefunguja. Tohodla smy ju jako zestarjenu woznamjenili -- přepruwowanje za minZoomLevel budu so we wersiji 3.0 wotstronjeć. Prošu wužij město toho nastajenje min/max, kaž je tu wopisane: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-Transakcija: WUSPĚŠNA ${response}",'commitFailed':"WFS-Transakcija: NJEPORADŹENA ${response}",'googleWarning':"Woršta Google njemóžeše so korektnje začitać.\x3cbr\x3e\x3cbr\x3eZo by tutu zdźělenku wotbył, wubjer nowy BaseLayer z wuběra worštow horjeka naprawo.\x3cbr\x3e\x3cbr\x3eNajskerje so to stawa, dokelž skript biblioteki Google Maps pak njebu zapřijaty pak njewobsahuje korektny kluč API za twoje sydło.\x3cbr\x3e\x3cbr\x3eWuwiwarjo: Za pomoc ke korektnemu fungowanju worštow\n\x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3etu kliknyć\x3c/a\x3e",'getLayerWarning':"Woršta ${layerType} njemóžeše so korektnje začitać.\x3cbr\x3e\x3cbr\x3eZo by tutu zdźělenku wotbył, wubjer nowy BaseLayer z wuběra worštow horjeka naprawo.\x3cbr\x3e\x3cbr\x3eNajskerje so to stawa, dokelž skript biblioteki ${layerLib} njebu korektnje zapřijaty.\x3cbr\x3e\x3cbr\x3eWuwiwarjo: Za pomoc ke korektnemu fungowanju worštow\n\x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3etu kliknyć\x3c/a\x3e",'scale':"Měritko = 1 : ${scaleDenom}",'W':"Z",'E':"W",'N':"S",'S':"J",'layerAlreadyAdded':"Sy spytał runinu ${layerName} karće dodać, ale je so hižo dodała",'reprojectDeprecated':"Wužiwaš opciju \"reproject\" wořšty ${layerName}. Tuta opcija je zestarjena: jeje wužiwanje bě myslene, zo by zwobraznjenje datow nad komercielnymi bazowymi kartami podpěrało, ale funkcionalnosć měła so nětko z pomocu Sperical Mercator docpěć. Dalše informacije steja na http://trac.openlayers.org/wiki/SphericalMercator k dispoziciji.",'methodDeprecated':"Tuta metoda je so njeschwaliła a budźe so w 3.0 wotstronjeć. Prošu wužij ${newMethod} město toho.",'boundsAddError':"Dyrbiš hódnotu x kaž tež y funkciji \"add\" přepodać.",'lonlatAddError':"Dyrbiš hódnotu lon kaž tež lat funkciji \"add\" přepodać.",'pixelAddError':"Dyrbiš hódnotu x kaž tež y funkciji \"add\" přepodać.",'unsupportedGeometryType':"Njepodpěrowany geometrijowy typ: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition je so njeporadźił: element z id ${elemId} bu snano wopak zaměstnjeny.",'filterEvaluateNotImplemented':"wuhódnoćenje njeje za tutón filtrowy typ implementowany."});OpenLayers.Lang["hu"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Nem kezelt kérés visszatérése ${statusText}",'permalink':"Permalink",'overlays':"Rávetítések",'baseLayer':"Alapréteg",'sameProjection':"Az áttekintő térkép csak abban az esetben működik, ha ugyanazon a vetületen van, mint a fő térkép.",'readNotImplemented':"Olvasás nincs végrehajtva.",'writeNotImplemented':"Írás nincs végrehajtva.",'noFID':"Nem frissíthető olyan jellemző, amely nem rendelkezik FID-del.",'errorLoadingGML':"Hiba GML-fájl betöltésekor ${url}",'browserNotSupported':"A böngészője nem támogatja a vektoros renderelést. A jelenleg támogatott renderelők:\n${renderers}",'componentShouldBe':"addFeatures : az összetevőnek ilyen típusúnak kell lennie: ${geomType}",'getFeatureError':"getFeatureFromEvent réteget hívott meg renderelő nélkül. Ez rendszerint azt jelenti, hogy megsemmisített egy fóliát, de néhány ahhoz társított kezelőt nem.",'minZoomLevelError':"A minZoomLevel tulajdonságot csak a következővel való használatra szánták: FixedZoomLevels-leszármazott fóliák. Ez azt jelenti, hogy a minZoomLevel wfs fólia jelölőnégyzetei már a múlté. Mi azonban nem távolíthatjuk el annak a veszélye nélkül, hogy az esetlegesen ettől függő OL alapú alkalmazásokat tönkretennénk. Ezért ezt érvénytelenítjük -- a minZoomLevel az alul levő jelölőnégyzet a 3.0-s verzióból el lesz távolítva. Kérjük, helyette használja a  min/max felbontás beállítást, amelyről az alábbi helyen talál leírást: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS tranzakció: SIKERES ${response}",'commitFailed':"WFS tranzakció: SIKERTELEN ${response}",'googleWarning':"A Google fólia betöltése sikertelen.\x3cbr\x3e\x3cbr\x3eAhhoz, hogy ez az üzenet eltűnjön, válasszon egy új BaseLayer fóliát a jobb felső sarokban található fóliakapcsoló segítségével.\x3cbr\x3e\x3cbr\x3eNagy valószínűséggel ez azért van, mert a Google Maps könyvtár parancsfájlja nem található, vagy nem tartalmazza az Ön oldalához tartozó megfelelő API-kulcsot.\x3cbr\x3e\x3cbr\x3eFejlesztőknek: A helyes működtetésre vonatkozó segítség az alábbi helyen érhető el, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3ekattintson ide\x3c/a\x3e",'getLayerWarning':"A(z) ${layerType} fólia nem töltődött be helyesen.\x3cbr\x3e\x3cbr\x3eAhhoz, hogy ez az üzenet eltűnjön, válasszon egy új BaseLayer fóliát a jobb felső sarokban található fóliakapcsoló segítségével.\x3cbr\x3e\x3cbr\x3eNagy valószínűséggel ez azért van, mert a(z) ${layerLib} könyvtár parancsfájlja helytelen.\x3cbr\x3e\x3cbr\x3eFejlesztőknek: A helyes működtetésre vonatkozó segítség az alábbi helyen érhető el, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3ekattintson ide\x3c/a\x3e",'scale':"Lépték = 1 : ${scaleDenom}",'W':"Ny",'E':"K",'N':"É",'S':"D",'layerAlreadyAdded':"Megpróbálta hozzáadni a(z) ${layerName} fóliát a térképhez, de az már hozzá van adva",'reprojectDeprecated':"Ön a \'reproject\' beállítást használja a(z) ${layerName} fólián. Ez a beállítás érvénytelen: használata az üzleti alaptérképek fölötti adatok megjelenítésének támogatására szolgált, de ezt a funkció ezentúl a Gömbi Mercator használatával érhető el. További információ az alábbi helyen érhető el: http://trac.openlayers.org/wiki/SphericalMercator",'methodDeprecated':"Ez a módszer érvénytelenítve lett és a 3.0-s verzióból el lesz távolítva. Használja a(z) ${newMethod} módszert helyette.",'boundsAddError':"Az x és y értékeknek egyaránt meg kell felelnie, hogy a funkciót hozzáadhassa.",'lonlatAddError':"A hossz. és szél. értékeknek egyaránt meg kell felelnie, hogy a funkciót hozzáadhassa.",'pixelAddError':"Az x és y értékeknek egyaránt meg kell felelnie, hogy a funkciót hozzáadhassa.",'unsupportedGeometryType':"Nem támogatott geometriatípus: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition sikertelen: lehetséges, hogy a(z) ${elemId} azonosítójú elem téves helyre került.",'filterEvaluateNotImplemented':"ennél a szűrőtípusnál kiértékelés nem hajtódik végre."});OpenLayers.Lang["ia"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Le responsa a un requesta non esseva maneate: ${statusText}",'permalink':"Permaligamine",'overlays':"Superpositiones",'baseLayer':"Strato de base",'sameProjection':"Le mini-carta functiona solmente si illo es in le mesme projection que le carta principal",'readNotImplemented':"Lectura non implementate.",'writeNotImplemented':"Scriptura non implementate.",'noFID':"Non pote actualisar un elemento sin FID.",'errorLoadingGML':"Error al cargamento del file GML ${url}",'browserNotSupported':"Tu navigator non supporta le rendition de vectores. Le renditores actualmente supportate es:\n${renderers}",'componentShouldBe':"addFeatures: le componente debe esser del typo ${geomType}",'getFeatureError':"getFeatureFromEvent ha essite appellate in un strato sin renditor. Isto significa generalmente que tu ha destruite un strato, ma lassava un gestor associate con illo.",'minZoomLevelError':"Le proprietate minZoomLevel es solmente pro uso con le stratos descendente de FixedZoomLevels. Le facto que iste strato WFS verifica minZoomLevel es un reliquia del passato. Nonobstante, si nos lo remove immediatemente, nos pote rumper applicationes a base de OL que depende de illo. Ergo nos lo declara obsolete; le verification de minZoomLevel in basso essera removite in version 3.0. Per favor usa in su loco le configuration de resolutiones min/max como describite a: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transaction WFS: SUCCESSO ${response}",'commitFailed':"Transaction WFS: FALLEVA ${response}",'googleWarning':"Le strato Google non poteva esser cargate correctemente.\x3cbr\x3e\x3cbr\x3ePro disfacer te de iste message, selige un nove BaseLayer in le selector de strato in alto a dextra.\x3cbr\x3e\x3cbr\x3eMulto probabilemente, isto es proque le script del libreria de Google Maps non esseva includite o non contine le clave API correcte pro tu sito.\x3cbr\x3e\x3cbr\x3eDisveloppatores: Pro adjuta de corriger isto, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eclicca hic\x3c/a",'getLayerWarning':"Le strato ${layerType} non poteva esser cargate correctemente.\x3cbr\x3e\x3cbr\x3ePro disfacer te de iste message, selige un nove BaseLayer in le selector de strato in alto a dextra.\x3cbr\x3e\x3cbr\x3eMulto probabilemente, isto es proque le script del libreria de ${layerLib} non esseva correctemente includite.\x3cbr\x3e\x3cbr\x3eDisveloppatores: Pro adjuta de corriger isto, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclicca hic\x3c/a\x3e",'scale':"Scala = 1 : ${scaleDenom}",'W':"W",'E':"E",'N':"N",'S':"S",'layerAlreadyAdded':"Tu tentava adder le strato: ${layerName} al carta, ma illo es ja presente",'reprojectDeprecated':"Tu usa le option \'reproject\' in le strato ${layerName} layer. Iste option es obsolescente: illo esseva pro poter monstrar datos super cartas de base commercial, ma iste functionalitate pote ora esser attingite con le uso de Spherical Mercator. Ulterior information es disponibile a http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Iste methodo ha essite declarate obsolescente e essera removite in version 3.0. Per favor usa ${newMethod} in su loco.",'boundsAddError':"Tu debe passar le duo valores x e y al function add.",'lonlatAddError':"Tu debe passar le duo valores lon e lat al function add.",'pixelAddError':"Tu debe passar le duo valores x e y al function add.",'unsupportedGeometryType':"Typo de geometria non supportate: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition falleva: le elemento con id ${elemId} pote esser mal placiate.",'filterEvaluateNotImplemented':"\"evaluate\" non es implementate pro iste typo de filtro."});OpenLayers.Lang["is"]=OpenLayers.Util.applyDefaults({'permalink':"Varanlegur tengill",'overlays':"Þekjur",'baseLayer':"Grunnlag",'sameProjection':"Yfirlitskortið virkar aðeins ef það er í sömu vörpun og aðalkortið",'readNotImplemented':"Skrifun er óútfærð.",'writeNotImplemented':"Lestur er óútfærður.",'errorLoadingGML':"Villa kom upp við að hlaða inn GML skránni ${url}",'scale':"Skali = 1 : ${scaleDenom}",'layerAlreadyAdded':"Þú reyndir að bæta laginu ${layerName} á kortið en það er þegar búið að bæta því við",'methodDeprecated':"Þetta fall hefur verið úrelt og verður fjarlægt í 3.0. Notaðu ${newMethod} í staðin."});OpenLayers.Lang.it={'unhandledRequest':"Codice di ritorno della richiesta ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Livello base",'sameProjection':"La mini mappa funziona solamente se ha la stessa proiezione della mappa principale",'readNotImplemented':"Lettura non implementata.",'writeNotImplemented':"Scrittura non implementata.",'noFID':"Impossibile aggiornare un elemento grafico che non abbia il FID.",'errorLoadingGML':"Errore nel caricamento del file GML ${url}",'browserNotSupported':"Il tuo browser non supporta il rendering vettoriale. I renderizzatore attualemnte supportati sono:\n${renderers}",'componentShouldBe':"addFeatures : il componente dovrebbe essere di tipo ${geomType}",'getFeatureError':"getFeatureFromEvent chiamata su di un livello senza renderizzatore. Ciò significa che "+"il livello è stato cancellato, ma non i gestori associati ad esso.",'minZoomLevelError':"La proprietà minZoomLevel è da utilizzare solamente "+"con livelli che abbiano FixedZoomLevels. Il fatto che "+"questo livello wfs controlli la proprietà minZoomLevel è "+"un retaggio del passato. Non possiamo comunque rimuoverla "+"senza rompere le vecchie applicazioni che dipendono su di essa."+"Quindi siamo costretti a deprecarla -- minZoomLevel "+"e sarà rimossa dalla vesione 3.0. Si prega di utilizzare i "+"settaggi di risoluzione min/max come descritto qui: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transazione WFS: SUCCESS ${response}",'commitFailed':"Transazione WFS: FAILED ${response}",'googleWarning':"Il livello Google non è riuscito a caricare correttamente.<br><br>"+"Per evitare questo messaggio, seleziona un nuovo BaseLayer "+"nel selettore di livelli nell'angolo in alto a destra.<br><br>"+"Più precisamente, ciò accade perchè la libreria Google Maps "+"non è stata inclusa nella pagina, oppure non contiene la "+"corretta API key per il tuo sito.<br><br>"+"Sviluppatori: Per aiuto su come farlo funzionare correttamente, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>clicca qui</a>",'getLayerWarning':"Il livello ${layerType} non è riuscito a caricare correttamente.<br><br>"+"Per evitare questo messaggio, seleziona un nuovo BaseLayer "+"nel selettore di livelli nell'angolo in alto a destra.<br><br>"+"Più precisamente, ciò accade perchè la libreria ${layerLib} "+"non è stata inclusa nella pagina.<br><br>"+"Sviluppatori: Per aiuto su come farlo funzionare correttamente, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>clicca qui</a>",'scale':"Scala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Stai cercando di aggiungere il livello: ${layerName} alla mappa, ma tale livello è già stato aggiunto.",'reprojectDeprecated':"Stai utilizzando l'opzione 'reproject' sul livello ${layerName}. "+"Questa opzione è deprecata: il suo utilizzo è stato introdotto per"+"supportare il disegno dei dati sopra mappe commerciali, ma tale "+"funzionalità dovrebbe essere ottenuta tramite l'utilizzo della proiezione "+"Spherical Mercator. Per maggiori informazioni consultare qui "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Questo metodo è stato deprecato e sarà rimosso dalla versione 3.0. "+"Si prega di utilizzare il metodo ${newMethod} in alternativa.",'boundsAddError':"Devi specificare i valori di x e y alla funzione add.",'lonlatAddError':"Devi specificare i valori di lon e lat alla funzione add.",'pixelAddError':"Devi specificare i valori di x e y alla funzione add.",'unsupportedGeometryType':"Tipo di geometria non supportata: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fallita: l'elemento con id ${elemId} è posizionato in modo errato.",'end':''};OpenLayers.Lang["ja"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"未処理の要求は ${statusText} を返します",'permalink':"パーマリンク",'overlays':"オーバーレイ",'baseLayer':"基底レイヤー",'sameProjection':"概観地図はメインの地図と同じ投影法をとる場合のみ機能します",'readNotImplemented':"読み込みは実装されていません。",'writeNotImplemented':"書き込みは実装されていません。",'noFID':"FID のない地物は更新できません。",'errorLoadingGML':"GML ファイル ${url} の読み込みエラー",'browserNotSupported':"あなたのブラウザはベクターグラフィックスの描写に対応していません。現時点で対応しているソフトウェアは以下のものです。\n${renderers}",'componentShouldBe':"addFeatures: 要素は ${geomType} であるべきです",'getFeatureError':"getFeatureFromEvent がレンダラーのないレイヤーから呼ばれました。通常、これはあなたがレイヤーを、それに関連づけられたいくつかのハンドラを除いて、破壊してしまったことを意味します。",'minZoomLevelError':"minZoomLevel プロパティは FixedZoomLevels を継承するレイヤーでの使用のみを想定しています。この minZoomLevel に対する WFS レイヤーの検査は歴史的なものです。しかしながら、この検査を除去するとそれに依存する OpenLayers ベースのアプリケーションを破壊してしまう可能性があります。よって廃止が予定されており、この minZoomLevel 検査はバージョン3.0で除去されます。代わりに、http://trac.openlayers.org/wiki/SettingZoomLevels で解説されている、最小および最大解像度設定を使用してください。",'commitSuccess':"WFS トランザクション: 成功 ${response}",'commitFailed':"WFS トランザクション: 失敗 ${response}",'googleWarning':"Google レイヤーが正しく読み込みを行えませんでした。\x3cbr\x3e\x3cbr\x3eこのメッセージを消すには、右上の隅にあるレイヤー切り替え部分で新しい基底レイヤーを選んでください。\x3cbr\x3e\x3cbr\x3eおそらく、これは Google マップ用ライブラリのスクリプトが組み込まれていないか、あなたのサイトに対応する正しい API キーが設定されていないためです。\x3cbr\x3e\x3cbr\x3e開発者の方へ: 正しい動作をさせるために\x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eこちらのウィキ\x3c/a\x3eを参照してください。",'getLayerWarning':"${layerType} レイヤーが正しく読み込みを行えませんでした。\x3cbr\x3e\x3cbr\x3eこのメッセージを消すには、右上の隅にあるレイヤー切り替え部分で新しい基底レイヤーを選んでください。\x3cbr\x3e\x3cbr\x3eおそらく、これは ${layerLib} ライブラリのスクリプトが正しく組み込まれていないためです。\x3cbr\x3e\x3cbr\x3e開発者の方へ: 正しい動作をさせるために\x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eこちらのウィキ\x3c/a\x3eを参照してください。",'scale':"縮尺 = 1 : ${scaleDenom}",'W':"西",'E':"東",'N':"北",'S':"南",'layerAlreadyAdded':"あなたは「${layerName}」を地図に追加しようと試みましたが、そのレイヤーは既に追加されています",'reprojectDeprecated':"あなたは「${layerName}」レイヤーで reproject オプションを使っています。このオプションは商用の基底地図上に情報を表示する目的で設計されましたが、現在ではその機能は Spherical Mercator サポートを利用して実現されており、このオプションの使用は非推奨です。追加の情報は http://trac.openlayers.org/wiki/SphericalMercator で入手できます。",'methodDeprecated':"このメソッドは廃止が予定されており、バージョン3.0で除去されます。代わりに ${newMethod} を使用してください。",'boundsAddError':"x と y 両方の値を add 関数に渡さなければなりません。",'lonlatAddError':"lon と lat 両方の値を add 関数に渡さなければなりません。",'pixelAddError':"x と y の値両方を add 関数に渡さなければなりません。",'unsupportedGeometryType':"未対応の形状型: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition が失敗しました: id ${elemId} をもつ要素が誤った位置にある可能性があります。",'filterEvaluateNotImplemented':"このフィルター型について evaluate は実装されていません。"});OpenLayers.Lang["km"]=OpenLayers.Util.applyDefaults({'permalink':"តំណភ្ជាប់អចិន្ត្រៃយ៍",'baseLayer':"ស្រទាប់បាត​",'errorLoadingGML':"កំហុសកំឡុងពេលផ្ទុកឯកសារ GML ${url}",'scale':"មាត្រដ្ឋាន = ១ ៖ ${scaleDenom}"});OpenLayers.Lang["ksh"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Met dä Antwoot op en Aanfrooch ham_mer nix aanjefange: ${statusText}",'permalink':"Lengk op Duuer",'overlays':"Drövver jelaat",'baseLayer':"Jrund-Nivoh",'sameProjection':"De Övverseeschs_Kaat deiht et bloß, wann se de sälve Projäxjuhn bruche deiht, wi de Houp_Kaat",'readNotImplemented':"„\x3ccode lang=\"en\"\x3eread\x3c/code\x3e“ is em Projramm nit fürjesinn.",'writeNotImplemented':"„\x3ccode lang=\"en\"\x3ewrite\x3c/code\x3e“ is em Projramm nit fürjesinn.",'noFID':"En Saach, woh kein \x3ci lang=\"en\"\x3eFID\x3c/i\x3e för doh es, löht sesch nit ändere.",'errorLoadingGML':"Fähler beim \x3ci lang=\"en\"\x3eGML\x3c/i\x3e-Datei-Laade vun \x3ccode\x3e${url}\x3c/code\x3e",'browserNotSupported':"Dinge Brauser kann kein Väktore ußjävve. De Zoote Ußjaabe, di em Momang jon, sen:\n${renderers}",'componentShouldBe':"\x3ccode lang=\"en\"\x3eaddFeatures\x3c/code\x3e: dä Aandeil sullt vun dä Zoot „\x3ccode lang=\"en\"\x3e${geomType}\x3c/code\x3e“ sin.",'getFeatureError':"\x3ccode lang=\"en\"\x3egetFeatureFromEvent\x3c/code\x3e es vun enem Nivoh opjeroofe woode, woh et kei Projramm zom Ußjävve jit. Dat bedügg för jewöhnlesch, dat De e Nivoh kapott jemaat häs, ävver nit e Projramm för domet ömzejonn, wat domet verbonge es.",'minZoomLevelError':"De Eijeschaff „\x3ccode lang=\"en\"\x3eminZoomLevel\x3c/code\x3e“ es bloß doför jedaach, dat mer se met dä Nivvohß bruch, di vun \x3ccode lang=\"en\"\x3eFixedZoomLevels\x3c/code\x3e affhange don. Dat dat \x3ci lang=\"en\"\x3eWFS\x3c/i\x3e-Nivvoh övverhoup de Eijeschaff „\x3ccode lang=\"en\"\x3eminZoomLevel\x3c/code\x3e“ pröhfe deiht, es noch övveresch vun fröhjer. Mer künne dat ävver jez nit fott lohße, oohne dat mer Jevaa loufe, dat Aanwendunge vun OpenLayers nit mieh loufe, di sesch doh velleijsch noch drop am verlohße sin. Dröm sare mer, dat mer et nit mieh han welle, un de „\x3ccode lang=\"en\"\x3eminZoomLevel\x3c/code\x3e“-Eijeschaff weed hee vun de Version 3.0 af nit mieh jeprööf wäde. Nemm doför de Enstellung för de hühßte un de kleinßte Oplöhsung, esu wi et en http://trac.openlayers.org/wiki/SettingZoomLevels opjeschrevve es.",'commitSuccess':"Dä \x3ci lang=\"en\"\x3eWFS\x3c/i\x3e-Vörjang es joot jeloufe: ${response}",'commitFailed':"Dä \x3ci lang=\"en\"\x3eWFS\x3c/i\x3e-Vörjang es scheif jejange: ${response}",'googleWarning':"Dat Nivvoh \x3ccode lang=\"en\"\x3eGoogle\x3c/code\x3e kunnt nit reschtesch jelaade wääde.\x3cbr /\x3e\x3cbr /\x3eÖm hee di Nohreesch loß ze krijje, donn en ander Jrund-Nivvoh ußsöhke, rähß bovve en de Äk.\x3cbr /\x3e\x3cbr /\x3eWascheinlesch es dat wiel dat \x3ci lang=\"en\"\x3eGoogle-Maps\x3c/i\x3e-Skrepp entweeder nit reschtesch enjebonge wood, udder nit dä reschtejje \x3ci lang=\"en\"\x3eAPI\x3c/i\x3e-Schlößel för Ding Web-ßait scheke deiht.\x3cbr /\x3e\x3cbr /\x3eFör Projrammierer jidd_et Hölp do_drövver, \x3ca href=\"http://trac.openlayers.org/wiki/Google\" target=\"_blank\"\x3ewi mer dat aan et Loufe brengk\x3c/a\x3e.",'getLayerWarning':"Dat Nivvoh \x3ccode\x3e${layerType}\x3c/code\x3e kunnt nit reschtesch jelaade wääde.\x3cbr /\x3e\x3cbr /\x3eÖm hee di Nohreesch loß ze krijje, donn en ander Jrund-Nivvoh ußsöhkre, rähß bovve en de Äk.\x3cbr /\x3e\x3cbr /\x3eWascheinlesch es dat, wiel dat Skrepp \x3ccode\x3e${layerLib}\x3c/code\x3e nit reschtesch enjebonge wood.\x3cbr /\x3e\x3cbr /\x3eFör Projrammierer jidd_Et Hölp do_drövver, \x3ca href=\"http://trac.openlayers.org/wiki/${layerLib}\" target=\"_blank\"\x3ewi mer dat aan et Loufe brengk\x3c/a\x3e.",'scale':"Mohßshtaab = 1 : ${scaleDenom}",'W':"W",'E':"O",'N':"N",'S':"S",'layerAlreadyAdded':"Do häß versöhk, dat Nivvoh \x3ccode\x3e${layerName}\x3c/code\x3e en di Kaat eren ze bränge, et wohr ävver ald do dren.",'reprojectDeprecated':"Do bruchs de Ußwahl \x3ccode\x3ereproject\x3c/code\x3e op däm Nivvoh \x3ccode\x3e${layerName}\x3c/code\x3e. Di Ußwahl es nit mieh jähn jesinn. Se wohr doför jedaach, öm Date op jeschääfsmäßesch eruß jejovve Kaate bovve drop ze moole, wat ävver enzwesche besser met dä Öngershtözung för de ßfääresche Mäkaator Beldscher jeiht. Doh kanns De mieh drövver fenge op dä Sigg: http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Hee di Metood es nim_mih aktoäll un et weed se en dä Version 3.0 nit mieh jävve. Nemm \x3ccode\x3e${newMethod}\x3c/code\x3e doföör.",'boundsAddError':"Do moß beeds vun de \x3ccode\x3ex\x3c/code\x3e un \x3ccode\x3ey\x3c/code\x3e Wääte aan de Fungkßjohn \x3ccode\x3eadd\x3c/code\x3e jävve.",'lonlatAddError':"Do moß beeds \x3ccode\x3elon\x3c/code\x3e un \x3ccode\x3elat\x3c/code\x3e aan de Fungkßjohn \x3ccode\x3eadd\x3c/code\x3e jävve.",'pixelAddError':"Do moß beeds \x3ccode\x3ex\x3c/code\x3e un \x3ccode\x3ey\x3c/code\x3e aan de Fungkßjohn \x3ccode\x3eadd\x3c/code\x3e jävve.",'unsupportedGeometryType':"De Zoot Jommetrii dom_mer nit ongershtöze: \x3ccode\x3e${geomType}\x3c/code\x3e",'pagePositionFailed':"\x3ccode lang=\"en\"\x3eOpenLayers.Util.pagePosition\x3c/code\x3e es donevve jejange: dat Denge met dä Kännong \x3ccode\x3e${elemId}\x3c/code\x3e künnt am verkeehte Plaz sin.",'filterEvaluateNotImplemented':"„\x3ccode lang=\"en\"\x3eevaluate\x3c/code\x3e“ es för di Zoot Fellter nit enjereschdt."});OpenLayers.Lang["nb"]={'unhandledRequest':"Ubehandlet forespørsel returnerte ${statusText}",'permalink':"Kobling til denne siden",'overlays':"Kartlag",'baseLayer':"Bakgrunnskart",'sameProjection':"Oversiktskartet fungerer bare når det har samme projeksjon som hovedkartet",'readNotImplemented':"Lesing er ikke implementert.",'writeNotImplemented':"Skriving er ikke implementert.",'noFID':"Kan ikke oppdatere et feature (et objekt) som ikke har FID.",'errorLoadingGML':"Feil under lasting av GML-fil ${url}",'browserNotSupported':"Din nettleser støtter ikke vektortegning. Tegnemetodene som støttes er:\n${renderers}",'componentShouldBe':"addFeatures : komponenten må være en ${geomType}",'getFeatureError':"getFeatureFromEvent har blitt kjørt mot et lag uten noen tegnemetode. Dette betyr som regel at du "+"fjernet et lag uten å fjerne alle håndterere tilknyttet laget.",'minZoomLevelError':"Egenskapen minZoomLevel er kun ment til bruk på lag "+"basert på FixedZoomLevels. At dette wfs-laget sjekker "+"minZoomLevel er en etterlevning fra tidligere versjoner. Det kan dog ikke "+"tas bort uten å risikere at OL-baserte applikasjoner "+"slutter å virke, så det er merket som foreldet: "+"minZoomLevel i sjekken nedenfor vil fjernes i 3.0. "+"Vennligst bruk innstillingene for min/maks oppløsning "+"som er beskrevet her: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-transaksjon: LYKTES ${response}",'commitFailed':"WFS-transaksjon: MISLYKTES ${response}",'googleWarning':"Google-laget kunne ikke lastes.<br><br>"+"Bytt til et annet bakgrunnslag i lagvelgeren i "+"øvre høyre hjørne for å slippe denne meldingen.<br><br>"+"Sannsynligvis forårsakes feilen av at Google Maps-biblioteket "+"ikke er riktig inkludert på nettsiden, eller at det ikke er "+"angitt riktig API-nøkkel for nettstedet.<br><br>"+"Utviklere: For hjelp til å få dette til å virke se "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>her</a>.",'getLayerWarning':"${layerType}-laget kunne ikke lastes.<br><br>"+"Bytt til et annet bakgrunnslag i lagvelgeren i "+"øvre høyre hjørne for å slippe denne meldingen.<br><br>"+"Sannsynligvis forårsakes feilen av at "+"${layerLib}-biblioteket ikke var riktig inkludert "+"på nettsiden.<br><br>"+"Utviklere: For hjelp til å få dette til å virke se "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>her</a>.",'scale':"<strong>Skala</strong> 1 : ${scaleDenom}",'layerAlreadyAdded':"Du forsøkte å legge til laget ${layerName} på kartet, men det er allerede lagt til",'reprojectDeprecated':"Du bruker innstillingen 'reproject' på laget ${layerName}. "+"Denne innstillingen er foreldet, den var ment for å støtte "+"visning av kartdata over kommersielle bakgrunnskart, men det "+"bør nå gjøres med støtten for Spherical Mercator. Mer informasjon "+"finnes på http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Denne metoden er markert som foreldet og vil bli fjernet i 3.0. "+"Vennligst bruk ${newMethod} i stedet.",'boundsAddError':"Du må gi både x- og y-verdier til funksjonen add.",'lonlatAddError':"Du må gi både lon- og lat-verdier til funksjonen add.",'pixelAddError':"Du må gi både x- og y-verdier til funksjonen add.",'unsupportedGeometryType':"Geometritypen ${geomType} er ikke støttet",'pagePositionFailed':"OpenLayers.Util.pagePosition feilet: elementet med id ${elemId} kan være feilplassert.",'end':''};OpenLayers.Lang["no"]=OpenLayers.Lang["nb"];OpenLayers.Lang["nds"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Unbehannelt Trüchmellels för de Anfraag ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Achtergrundkoort",'sameProjection':"De Översichtskoort geiht blot, wenn de sülve Projekschoon as bi de Hööftkoort bruukt warrt",'readNotImplemented':"Lesen is nich inricht.",'writeNotImplemented':"Schrieven is nich inricht.",'noFID':"En Feature, dat keen FID hett, kann nich aktuell maakt warrn.",'errorLoadingGML':"Fehler bi’t Laden vun de GML-Datei ${url}",'browserNotSupported':"Dien Browser ünnerstütt keen Vektorbiller. Ünnerstütt Renderers:\n${renderers}",'componentShouldBe':"addFeatures : Kumponent schull man den Typ ${geomType} hebben",'getFeatureError':"getFeatureFromEvent is von en Laag ahn Render opropen worrn. Dat bedüüdt normalerwies, dat en Laag wegmaakt worrn is, aver nich de Handler, de dor op verwiest.",'commitSuccess':"WFS-Transakschoon: hett klappt ${response}",'commitFailed':"WFS-Transakschoon: hett nich klappt ${response}",'scale':"Skaal = 1 : ${scaleDenom}",'layerAlreadyAdded':"Du versöchst de Laag „${layerName}“ to de Koort totofögen, man de is al toföögt",'methodDeprecated':"Disse Methood is oold un schall dat in 3.0 nich mehr geven. Bruuk dor man beter ${newMethod} för.",'boundsAddError':"De Weert x un y, de mööt all beid an de add-Funkschoon övergeven warrn.",'lonlatAddError':"De Weert lon un lat, de mööt all beid an de add-Funkschoon övergeven warrn.",'pixelAddError':"De Weert x un y, de mööt all beid an de add-Funkschoon övergeven warrn.",'unsupportedGeometryType':"Nich ünnerstütt Geometrie-Typ: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition güng nich: Element mit de Id ${elemId} is villicht an’n verkehrten Platz."});OpenLayers.Lang["nl"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Het verzoek is niet afgehandeld met de volgende melding: ${statusText}",'permalink':"Permanente verwijzing",'overlays':"Overlays",'baseLayer':"Achtergrondkaart",'sameProjection':"De overzichtskaart werkt alleen als de projectie gelijk is aan de projectie van de hoofdkaart",'readNotImplemented':"Lezen is niet geïmplementeerd.",'writeNotImplemented':"Schrijven is niet geïmplementeerd.",'noFID':"Een optie die geen FID heeft kan niet bijgewerkt worden.",'errorLoadingGML':"Er is een fout opgetreden bij het laden van het GML bestand van ${url}",'browserNotSupported':"Uw browser ondersteunt het weergeven van vectoren niet.\nMomenteel ondersteunde weergavemogelijkheden:\n${renderers}",'componentShouldBe':"addFeatures : component moet van het type ${geomType} zijn",'getFeatureError':"getFeatureFromEvent is aangeroepen op een laag zonder rederer.\nDit betekent meestal dat u een laag hebt verwijderd, maar niet een handler die ermee geassocieerd was.",'minZoomLevelError':"De eigenschap minZoomLevel is alleen bedoeld voor gebruik lagen met die afstammen van FixedZoomLevels-lagen.\nDat deze WFS-laag minZoomLevel controleert, is een overblijfsel uit het verleden.\nWe kunnen deze controle echter niet verwijderen zonder op OL gebaseerde applicaties die hervan afhankelijk zijn stuk te maken.\nDaarom heeft deze functionaliteit de eigenschap \'deprecated\' gekregen - de minZoomLevel wordt verwijderd in versie 3.0.\nGebruik in plaats van deze functie de mogelijkheid om min/max voor resolutie in te stellen zoals op de volgende pagina wordt beschreven:\nhttp://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-transactie: succesvol ${response}",'commitFailed':"WFS-transactie: mislukt ${response}",'googleWarning':"De Google-Layer kon niet correct geladen worden.\x3cbr /\x3e\x3cbr /\x3e\nOm deze melding niet meer te krijgen, moet u een andere achtergrondkaart kiezen in de laagwisselaar in de rechterbovenhoek.\x3cbr /\x3e\x3cbr /\x3e\nDit komt waarschijnlijk doordat de bibliotheek ${layerLib} niet correct ingevoegd is.\x3cbr /\x3e\x3cbr /\x3e\nOntwikkelaars: \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eklik hier\x3c/a\x3e om dit werkend te krijgen.",'getLayerWarning':"De laag ${layerType} kon niet goed geladen worden.\x3cbr /\x3e\x3cbr /\x3e\nOm deze melding niet meer te krijgen, moet u een andere achtergrondkaart kiezen in de laagwisselaar in de rechterbovenhoek.\x3cbr /\x3e\x3cbr /\x3e\nDit komt waarschijnlijk doordat de bibliotheek ${layerLib} niet correct is ingevoegd.\x3cbr /\x3e\x3cbr /\x3e\nOntwikkelaars: \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eklik hier\x3c/a\x3e om dit werkend te krijgen.",'scale':"Schaal = 1 : ${scaleDenom}",'W':"W",'E':"O",'N':"N",'S':"Z",'layerAlreadyAdded':"U hebt geprobeerd om de laag  ${layerName} aan de kaart toe te voegen, maar deze is al toegevoegd",'reprojectDeprecated':"U gebruikt de optie \'reproject\' op de laag ${layerName}.\nDeze optie is vervallen: deze optie was ontwikkeld om gegevens over commerciële basiskaarten weer te geven, maar deze functionaliteit wordt nu bereikt door ondersteuning van Spherical Mercator.\nMeer informatie is beschikbaar op http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Deze methode is verouderd en wordt verwijderd in versie 3.0.\nGebruik ${newMethod}.",'boundsAddError':"U moet zowel de x- als de y-waarde doorgeven aan de toevoegfunctie.",'lonlatAddError':"U moet zowel de lengte- als de breedtewaarde doorgeven aan de toevoegfunctie.",'pixelAddError':"U moet zowel de x- als de y-waarde doorgeven aan de toevoegfunctie.",'unsupportedGeometryType':"Dit geometrietype wordt niet ondersteund: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition is mislukt: het element met id ${elemId} is wellicht onjuist geplaatst.",'filterEvaluateNotImplemented':"evalueren is niet geïmplementeerd voor dit filtertype."});OpenLayers.Lang["nn"]=OpenLayers.Util.applyDefaults({'scale':"Skala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Du freista å leggja til laget «${layerName}» på kartet, men det har alt vorte lagt til.",'boundsAddError':"Du er nøydd til å gje både ein x- og ein y-verdi til «add»-funksjonen.",'lonlatAddError':"Du er nøydd til å gje både lon- og lat-verdiar til «add»-funksjonen.",'pixelAddError':"Du er nøydd til å gje både ein x- og ein y-verdi til «add»-funksjonen."});OpenLayers.Lang["pt-br"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"A requisição retornou um erro não tratado: ${statusText}",'permalink':"Link para essa página",'overlays':"Camadas de Sobreposição",'baseLayer':"Camada Base",'sameProjection':"O mapa de referência só funciona quando ele está na mesma projeção do mapa principal",'readNotImplemented':"Leitura não implementada.",'writeNotImplemented':"Escrita não implementada.",'noFID':"Não é possível atualizar uma feição que não tenha um FID.",'errorLoadingGML':"Erro ao carregar o arquivo GML ${url}",'browserNotSupported':"Seu navegador não suporta renderização de vetores. Os renderizadores suportados atualmente são:\n${renderers}",'componentShouldBe':"addFeatures: o componente deve ser do tipo ${geomType}",'getFeatureError':"getFeatureFromEvent foi executado mas nenhum renderizador foi encontrado. Isso pode indicar que você destruiu uma camana, mas não o handler associado a ela.",'minZoomLevelError':"A propriedade minZoomLevel é de uso restrito das camadas descendentes de FixedZoomLevels. A verificação dessa propriedade pelas camadas wfs é um resíduo do passado. Não podemos, entretanto não é possível removê-la sem possívelmente quebrar o funcionamento de aplicações OL que possuem depência com ela. Portanto estamos tornando seu uso obsoleto -- a verificação desse atributo será removida na versão 3.0. Ao invés, use as opções de resolução min/max como descrito em: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transação WFS : SUCESSO ${response}",'commitFailed':"Transação WFS : ERRO ${response}",'googleWarning':"Não foi possível carregar a camada Google corretamente.\x3cbr\x3e\x3cbr\x3ePara se livrar dessa mensagem, selecione uma nova Camada Base, na ferramenta de alternação de camadas localização do canto superior direito.\x3cbr\x3e\x3cbr\x3eMuito provavelmente, isso foi causado porque o script da biblioteca do Google Maps não foi incluído, ou porque ele não contém a chave correta da API para o seu site.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: Para obter ajuda em solucionar esse problema \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3ecliquem aqui\x3c/a\x3e",'getLayerWarning':"Não foi possível carregar a camada ${layerType} corretamente.\x3cbr\x3e\x3cbr\x3ePara se livrar dessa mensagem, selecione uma nova Camada Base, na ferramenta de alternação de camadas localização do canto superior direito.\x3cbr\x3e\x3cbr\x3eMuito provavelmente, isso foi causado porque o script da biblioteca ${layerLib} não foi incluído corretamente.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: Para obter ajuda em solucionar esse problema \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3ecliquem aqui\x3c/a\x3e",'scale':"Escala = 1 : ${scaleDenom}",'W':"O",'E':"L",'N':"N",'S':"S",'layerAlreadyAdded':"Você tentou adicionar a camada: ${layerName} ao mapa, mas ela já foi adicionada",'reprojectDeprecated':"Você está usando a opção \'reproject\' na camada ${layerName}. Essa opção está obsoleta: seu uso foi projetado para suportar a visualização de dados sobre bases de mapas comerciais, entretanto essa funcionalidade deve agora ser alcançada usando o suporte à projeção Mercator. Mais informação está disponível em: http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Esse método está obsoleto e será removido na versão 3.0. Ao invés, por favor use ${newMethod}.",'boundsAddError':"Você deve informar ambos os valores x e y para a função add.",'lonlatAddError':"Você deve informar ambos os valores lon e lat para a função add.",'pixelAddError':"Você deve informar ambos os valores x e y para a função add.",'unsupportedGeometryType':"Tipo geométrico não suportado: ${geomType}.",'pagePositionFailed':"OpenLayers.Util.pagePosition falhou: o elemento de id ${elemId} deve estar fora do lugar.",'filterEvaluateNotImplemented':"evaluete não está implementado para este tipo de filtro."});OpenLayers.Lang["pt"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Servidor devolveu erro não contemplado ${statusText}",'permalink':"Ligação permanente",'overlays':"Sobreposições",'baseLayer':"Camada Base",'sameProjection':"O mapa panorâmico só funciona quando está na mesma projeção que o mapa principal",'readNotImplemented':"Leitura não implementada.",'writeNotImplemented':"Escrita não implementada.",'noFID':"Não é possível atualizar um elemento para a qual não há FID.",'errorLoadingGML':"Erro ao carregar ficheiro GML ${url}",'browserNotSupported':"O seu navegador não suporta renderização vetorial. Actualmente os renderizadores suportados são:\n${renderers}",'componentShouldBe':"addFeatures: componente deve ser um(a) ${geomType}",'getFeatureError':"getFeatureFromEvent foi chamado numa camada sem renderizador. Isto normalmente significa que destruiu uma camada, mas não um manipulador \'\'(handler)\'\' que lhe está associado.",'minZoomLevelError':"A propriedade minZoomLevel só deve ser usada com as camadas descendentes da FixedZoomLevels. A verificação da propriedade por esta camada wfs é uma relíquia do passado. No entanto, não podemos removê-la sem correr o risco de afectar aplicações OL que dependam dela. Portanto, estamos a torná-la obsoleta -- a verificação minZoomLevel será removida na versão 3.0. Em vez dela, por favor, use as opções de resolução min/max descritas aqui: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacção WFS: SUCESSO ${response}",'commitFailed':"Transacção WFS: FALHOU ${response}",'googleWarning':"A Camada Google não foi correctamente carregada.\x3cbr\x3e\x3cbr\x3ePara deixar de receber esta mensagem, seleccione uma nova Camada-Base no \'\'switcher\'\' de camadas no canto superior direito.\x3cbr\x3e\x3cbr\x3eProvavelmente, isto acontece porque o \'\'script\'\' da biblioteca do Google Maps não foi incluído ou não contém a chave API correcta para o seu sítio.\x3cbr\x3e\x3cbr\x3eProgramadores: Para ajuda sobre como solucionar o problema \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eclique aqui\x3c/a\x3e .",'getLayerWarning':"A camada ${layerType} não foi correctamente carregada.\x3cbr\x3e\x3cbr\x3ePara desactivar esta mensagem, seleccione uma nova Camada-Base no \'\'switcher\'\' de camadas no canto superior direito.\x3cbr\x3e\x3cbr\x3eProvavelmente, isto acontece porque o \'\'script\'\' da biblioteca ${layerLib} não foi incluído correctamente.\x3cbr\x3e\x3cbr\x3eProgramadores: Para ajuda sobre como solucionar o problema \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclique aqui\x3c/a\x3e .",'scale':"Escala = 1 : ${scaleDenom}",'W':"O",'E':"E",'N':"N",'S':"S",'layerAlreadyAdded':"Você tentou adicionar a camada: ${layerName} ao mapa, mas ela já tinha sido adicionada antes",'reprojectDeprecated':"Está usando a opção \'reproject\' na camada ${layerName}. Esta opção é obsoleta: foi concebida para permitir a apresentação de dados sobre mapas-base comerciais, mas esta funcionalidade é agora suportada pelo Mercator Esférico. Mais informação está disponível em http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Este método foi declarado obsoleto e será removido na versão 3.0. Por favor, use ${newMethod} em vez disso.",'boundsAddError':"Você deve passar tanto o valor x como o y à função de adição.",'lonlatAddError':"Você deve passar tanto o valor lon como o lat à função de adição.",'pixelAddError':"Você deve passar tanto o valor x como o y à função de adição.",'unsupportedGeometryType':"Tipo de geometria não suportado: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition falhou: o elemento com o id ${elemId} poderá estar mal-posicionado.",'filterEvaluateNotImplemented':"avaliar não está implementado para este tipo de filtro."});OpenLayers.Lang["ru"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Необработанный запрос вернул ${statusText}",'permalink':"Постоянная ссылка",'overlays':"Слои",'baseLayer':"Основной слой",'sameProjection':"Обзорная карта работает только тогда, когда имеет ту же проекцию, что и основная",'readNotImplemented':"Чтение не реализовано.",'writeNotImplemented':"Запись не реализована.",'noFID':"Невозможно обновить объект, для которого нет FID.",'errorLoadingGML':"Ошибка при загрузке файла GML ${url}",'browserNotSupported':"Ваш браузер не поддерживает векторную графику. На данный момент поддерживаются:\n${renderers}",'componentShouldBe':"addFeatures: компонент должен быть ${geomType}",'getFeatureError':"getFeatureFromEvent вызван для слоя без рендерера. Обычно это говорит о том, что вы уничтожили слой, но оставили связанный с ним обработчик.",'minZoomLevelError':"Свойство minZoomLevel предназначено только для использования со слоями, являющимися потомками FixedZoomLevels. То, что этот WFS-слой проверяется на minZoomLevel — реликт прошлого. Однако мы не можем удалить эту функцию, так как, возможно, от неё зависят некоторые основанные на OpenLayers приложения. Функция объявлена устаревшей — проверка minZoomLevel будет удалена в 3.0. Пожалуйста, используйте вместо неё настройку мин/макс разрешения, описанную здесь: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Транзакция WFS: УСПЕШНО ${response}",'commitFailed':"Транзакция WFS: ОШИБКА ${response}",'googleWarning':"Слой Google не удалось нормально загрузить.\x3cbr\x3e\x3cbr\x3eЧтобы избавиться от этого сообщения, выбите другой основной слой в переключателе в правом верхнем углу.\x3cbr\x3e\x3cbr\x3eСкорее всего, причина в том, что библиотека Google Maps не была включена или не содержит корректного API-ключа для вашего сайта.\x3cbr\x3e\x3cbr\x3eРазработчикам: чтобы узнать, как сделать, чтобы всё заработало, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eщёлкните тут\x3c/a\x3e",'getLayerWarning':"Слой ${layerType} не удалось нормально загрузить. \x3cbr\x3e\x3cbr\x3eЧтобы избавиться от этого сообщения, выбите другой основной слой в переключателе в правом верхнем углу.\x3cbr\x3e\x3cbr\x3eСкорее всего, причина в том, что библиотека ${layerLib} не была включена или была включена некорректно.\x3cbr\x3e\x3cbr\x3eРазработчикам: чтобы узнать, как сделать, чтобы всё заработало, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eщёлкните тут\x3c/a\x3e",'scale':"Масштаб = 1 : ${scaleDenom}",'W':"З",'E':"В",'N':"С",'S':"Ю",'layerAlreadyAdded':"Вы попытались добавить слой «${layerName}» на карту, но он уже был добавлен",'reprojectDeprecated':"Вы используете опцию \'reproject\' для слоя ${layerName}. Эта опция является устаревшей: ее использование предполагалось для поддержки показа данных поверх коммерческих базовых карт, но теперь этот функционал несёт встроенная поддержка сферической проекции Меркатора. Больше сведений доступно на http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Этот метод считается устаревшим и будет удалён в версии 3.0. Пожалуйста, пользуйтесь ${newMethod}.",'boundsAddError':"Функции add надо передавать оба значения, x и y.",'lonlatAddError':"Функции add надо передавать оба значения, lon и lat.",'pixelAddError':"Функции add надо передавать оба значения, x и y.",'unsupportedGeometryType':"Неподдерживаемый тип геометрии: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: элемент с id ${elemId} может находиться не в нужном месте.",'filterEvaluateNotImplemented':"evaluate не реализовано для фильтра данного типа."});OpenLayers.Lang["sk"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Neobslúžené požiadavky vracajú ${statusText}",'permalink':"Trvalý odkaz",'overlays':"Prekrytia",'baseLayer':"Základná vrstva",'sameProjection':"Prehľadová mapka funguje iba vtedy, keď je v rovnakej projekcii ako hlavná mapa",'readNotImplemented':"Čítanie nie je implementované.",'writeNotImplemented':"Zápis nie je implementovaný.",'noFID':"Nie je možné aktualizovať vlastnosť, pre ktorú neexistuje FID.",'errorLoadingGML':"Chyba pri načítaní súboru GML ${url}",'browserNotSupported':"Váš prehliadač nepodporuje vykresľovanie vektorov. Momentálne podporované vykresľovače sú:\n${renderers}",'componentShouldBe':"addFeatures: komponent by mal byť ${geomType}",'getFeatureError':"getFeatureFromEvent bola zavolaná na vrstve bez vykresľovača. To zvyčajne znamená, že ste odstránili vrstvu, ale nie niektorú z obslúh, ktorá je s ňou asociovaná.",'minZoomLevelError':"Vlastnosť minZoomLevel je určený iba na použitie s vrstvami odvodenými od FixedZoomLevels. To, že táto wfs vrstva kontroluje minZoomLevel je pozostatok z minulosti. Nemôžeme ho však odstrániť, aby sme sa vyhli možnému porušeniu aplikácií založených na Open Layers, ktoré na tomto môže závisieť. Preto ho označujeme ako zavrhovaný - dolu uvedená kontrola minZoomLevel bude odstránená vo verzii 3.0. Použite prosím namiesto toho kontrolu min./max. rozlíšenia podľa tu uvedeného popisu: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transakcia WFS: ÚSPEŠNÁ ${response}",'commitFailed':"Transakcia WFS: ZLYHALA ${response}",'googleWarning':"Vrstvu Google nebolo možné správne načítať.\x3cbr\x3e\x3cbr\x3eAby ste sa tejto správy zbavili vyberte novú BaseLayer v prepínači vrstiev v pravom hornom rohu.\x3cbr\x3e\x3cbr\x3eToto sa stalo pravdepodobne preto, že skript knižnice Google Maps buď nebol načítaný alebo neobsahuje správny kľúč API pre vašu lokalitu.\x3cbr\x3e\x3cbr\x3eVývojári: Tu môžete získať \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3epomoc so sfunkčnením\x3c/a\x3e",'getLayerWarning':"Vrstvu ${layerType} nebolo možné správne načítať.\x3cbr\x3e\x3cbr\x3eAby ste sa tejto správy zbavili vyberte novú BaseLayer v prepínači vrstiev v pravom hornom rohu.\x3cbr\x3e\x3cbr\x3eToto sa stalo pravdepodobne preto, že skript knižnice ${layerType} buď nebol načítaný alebo neobsahuje správny kľúč API pre vašu lokalitu.\x3cbr\x3e\x3cbr\x3eVývojári: Tu môžete získať \x3ca href=\'http://trac.openlayers.org/wiki/${layerType}\' target=\'_blank\'\x3epomoc so sfunkčnením\x3c/a\x3e",'scale':"Mierka = 1 : ${scaleDenom}",'layerAlreadyAdded':"Pokúsili ste sa do mapy pridať vrstvu ${layerName}, ale tá už bola pridaná",'reprojectDeprecated':"Používate voľby „reproject“ vrstvy ${layerType}. Táto voľba je zzavrhovaná: jej použitie bolo navrhnuté na podporu zobrazovania údajov nad komerčnými základovými mapami, ale túto funkcionalitu je teraz možné dosiahnuť pomocou Spherical Mercator. Ďalšie informácie získate na stránke http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Táto metóda je zavrhovaná a bude odstránená vo verzii 3.0. Použite prosím namiesto nej metódu ${newMethod}.",'boundsAddError':"Sčítacej funkcii musíte dať hodnoty x aj y.",'lonlatAddError':"Sčítacej funkcii musíte dať hodnoty lon (zem. dĺžka) aj lat (zem. šírka).",'pixelAddError':"Sčítacej funkcii musíte dať hodnoty x aj y.",'unsupportedGeometryType':"Nepodporovaný typ geometrie: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition zlyhalo: prvok s id ${elemId} môže byť zle umiestnený.",'filterEvaluateNotImplemented':"evaluate nie je implementovaný pre tento typ filtra"});OpenLayers.Lang["sv"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Ej hanterad fråga retur ${statusText}",'permalink':"Permalänk",'overlays':"Kartlager",'baseLayer':"Bakgrundskarta",'sameProjection':"Översiktskartan fungerar endast när den har samma projektion som huvudkartan",'readNotImplemented':"Läsning ej implementerad.",'writeNotImplemented':"Skrivning ej implementerad.",'noFID':"Kan ej uppdatera feature (objekt) för vilket FID saknas.",'errorLoadingGML':"Fel i laddning av GML-fil ${url}",'browserNotSupported':"Din webbläsare stöder inte vektorvisning. För närvarande stöds följande visning:\n${renderers}",'componentShouldBe':"addFeatures : komponenten skall vara en ${geomType}",'getFeatureError':"getFeatureFromEvent anropad för lager utan utritning. Detta betyder oftast att man raderat ett lager, men inte en hanterare som är knuten till lagret.",'minZoomLevelError':"Egenskapen minZoomLevel är endast avsedd att användas med lager med FixedZoomLevels. Att detta WFS-lager kontrollerar minZoomLevel är en relik från äldre versioner. Vi kan dock inte ta bort det utan att riskera att OL-baserade tillämpningar som använder detta slutar fungera. Därför är det satt som deprecated, minZoomLevel kommer att tas bort i version 3.0. Använd i stället inställning av min/max resolution som beskrivs här: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-transaktion: LYCKADES ${response}",'commitFailed':"WFS-transaktion: MISSLYCKADES ${response}",'googleWarning':"Google-lagret kunde inte laddas korrekt.\x3cbr\x3e\x3cbr\x3eFör att slippa detta meddelande, välj en annan bakgrundskarta i lagerväljaren i övre högra hörnet.\x3cbr\x3e\x3cbr\x3eSannolikt beror felet på att Google Maps-biblioteket inte är inkluderat på webbsidan eller på att sidan inte anger korrekt API-nyckel för webbplatsen.\x3cbr\x3e\x3cbr\x3eUtvecklare: hjälp för att åtgärda detta, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eklicka här\x3c/a\x3e.",'getLayerWarning':"${layerType}-lagret kunde inte laddas korrekt.\x3cbr\x3e\x3cbr\x3eFör att slippa detta meddelande, välj en annan bakgrundskarta i lagerväljaren i övre högra hörnet.\x3cbr\x3e\x3cbr\x3eSannolikt beror felet på att ${layerLib}-biblioteket inte är inkluderat på webbsidan.\x3cbr\x3e\x3cbr\x3eUtvecklare: hjälp för att åtgärda detta, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eklicka här\x3c/a\x3e.",'scale':"\x3cstrong\x3eSkala\x3c/strong\x3e 1 : ${scaleDenom}",'layerAlreadyAdded':"Du försökte lägga till lagret: ${layerName} på kartan, men det har lagts till tidigare",'reprojectDeprecated':"Du använder inställningen \'reproject\' på lagret ${layerName}. Denna inställning markerad som deprecated: den var avsedd att användas för att stödja visning av kartdata på kommersiella bakgrundskartor, men nu bör man i stället använda Spherical Mercator-stöd för den funktionaliteten. Mer information finns på http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Denna metod är markerad som deprecated och kommer att tas bort i 3.0. Använd ${newMethod} i stället.",'boundsAddError':"Du måste skicka både x- och y-värde till funktionen add.",'lonlatAddError':"Du måste skicka både lon- och lat-värde till funktionen add.",'pixelAddError':"Du måste skicka både x- och y-värde till funktionen add.",'unsupportedGeometryType':"Stöd saknas för geometritypen: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition misslyckades: elementet med id ${elemId} kan placeras fel.",'filterEvaluateNotImplemented':"evaluering har ej implementerats för denna typ av filter."});OpenLayers.Lang["te"]=OpenLayers.Util.applyDefaults({'permalink':"స్థిరలింకు",'W':"ప",'E':"తూ",'N':"ఉ",'S':"ద"});OpenLayers.Lang["vi"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Không xử lý được phản hồi ${statusText} cho yêu cầu",'permalink':"Liên kết thường trực",'overlays':"Lấp bản đồ",'baseLayer':"Lớp nền",'sameProjection':"Bản đồ toàn cảnh chỉ hoạt động khi cùng phép chiếu với bản đồ chính",'readNotImplemented':"Chưa hỗ trợ chức năng đọc.",'writeNotImplemented':"Chưa hỗ trợ chức năng viết.",'noFID':"Không thể cập nhật tính năng thiếu FID.",'errorLoadingGML':"Lỗi tải tập tin GML tại ${url}",'browserNotSupported':"Trình duyệt của bạn không hỗ trợ chức năng vẽ bằng vectơ. Hiện hỗ trợ các bộ kết xuất:\n${renderers}",'componentShouldBe':"addFeatures: bộ phận cần phải là ${geomType}",'getFeatureError':"getFeatureFromEvent được gọi từ lớp không có bộ kết xuất. Thường thì có lẽ lớp bị xóa nhưng một phần xử lý của nó vẫn còn.",'minZoomLevelError':"Chỉ nên sử dụng thuộc tính minZoomLevel với các lớp FixedZoomLevels-descendent. Việc lớp wfs này tìm cho minZoomLevel là di tích còn lại từ xưa. Tuy nhiên, nếu chúng tôi dời nó thì sẽ vỡ các chương trình OpenLayers mà dựa trên nó. Bởi vậy chúng tôi phản đối sử dụng nó\x26nbsp;– bước tìm cho minZoomLevel sẽ được dời vào phiên bản 3.0. Xin sử dụng thiết lập độ phân tích tối thiểu / tối đa thay thế, theo hướng dẫn này: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Giao dịch WFS: THÀNH CÔNG ${response}",'commitFailed':"Giao dịch WFS: THẤT BẠI ${response}",'googleWarning':"Không thể tải lớp Google đúng đắn.\x3cbr\x3e\x3cbr\x3eĐể tránh thông báo này lần sau, hãy chọn BaseLayer mới dùng điều khiển chọn lớp ở góc trên phải.\x3cbr\x3e\x3cbr\x3eChắc script thư viện Google Maps hoặc không được bao gồm hoặc không chứa khóa API hợp với website của bạn.\x3cbr\x3e\x3cbr\x3e\x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eTrợ giúp về tính năng này\x3c/a\x3e cho người phát triển.",'getLayerWarning':"Không thể tải lớp ${layerType} đúng đắn.\x3cbr\x3e\x3cbr\x3eĐể tránh thông báo này lần sau, hãy chọn BaseLayer mới dùng điều khiển chọn lớp ở góc trên phải.\x3cbr\x3e\x3cbr\x3eChắc script thư viện ${layerLib} không được bao gồm đúng kiểu.\x3cbr\x3e\x3cbr\x3e\x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eTrợ giúp về tính năng này\x3c/a\x3e cho người phát triển.",'scale':"Tỷ lệ = 1 : ${scaleDenom}",'W':"T",'E':"Đ",'N':"B",'S':"N",'layerAlreadyAdded':"Bạn muốn thêm lớp ${layerName} vào bản đồ, nhưng lớp này đã được thêm",'reprojectDeprecated':"Bạn đang áp dụng chế độ “reproject” vào lớp ${layerName}. Chế độ này đã bị phản đối: nó có mục đích hỗ trợ lấp dữ liệu trên các nền bản đồ thương mại; nên thực hiện hiệu ứng đó dùng tính năng Mercator Hình cầu. Có sẵn thêm chi tiết tại http://trac.openlayers.org/wiki/SphericalMercator .",'methodDeprecated':"Phương thức này đã bị phản đối và sẽ bị dời vào phiên bản 3.0. Xin hãy sử dụng ${newMethod} thay thế.",'boundsAddError':"Cần phải cho cả giá trị x và y vào hàm add.",'lonlatAddError':"Cần phải cho cả giá trị lon và lat vào hàm add.",'pixelAddError':"Cần phải cho cả giá trị x và y vào hàm add.",'unsupportedGeometryType':"Không hỗ trợ kiểu địa lý: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition bị thất bại: nguyên tố với ID ${elemId} có thể ở chỗ sai.",'filterEvaluateNotImplemented':"chưa hỗ trợ evaluate cho loại bộ lọc này."});OpenLayers.Lang["zh-CN"]={'unhandledRequest':"未处理的请求,返回值为 ${statusText}",'permalink':"永久链接",'overlays':"叠加层",'baseLayer':"基础图层",'sameProjection':"鹰眼地图只有在和主地图使用相同的投影的时候才能正常共工作",'readNotImplemented':"读取功能没有实现。",'writeNotImplemented':"写入功能没有实现。",'noFID':"无法更新feature,缺少FID。",'errorLoadingGML':"加载GML文件 ${url} 出现错误。",'browserNotSupported':"你使用的浏览器不支持矢量渲染。当前支持的渲染方式包括:\n${renderers}",'componentShouldBe':"addFeatures : 组件类型应该是 ${geomType}",'getFeatureError':"getFeatureFromEvent方法在一个没有渲染器的图层上被调用。 这通常意味着您"+"销毁了一个图层,但并未销毁其关联的handler。",'minZoomLevelError':"minZoomLevel属性仅适合用于"+"使用了固定缩放级别的图层。这个 "+"wfs 图层检查 minZoomLevel 是过去遗留下来的。"+"然而,我们不能移除它,"+"而破坏依赖于它的基于OL的应用程序。"+"因此,我们废除了它 -- minZoomLevel "+"将会在3.0中被移除。请改用 "+"min/max resolution 设置,参考:"+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: 成功。 ${response}",'commitFailed':"WFS Transaction: 失败。 ${response}",'googleWarning':"Google图层不能正确加载。<br><br>"+"要消除这个信息,请在右上角的"+"图层控制面板中选择其他的基础图层。<br><br>"+"这种情况很可能是没有正确的包含Google地图脚本库,"+"或者是没有包含在你的站点上"+"使用的正确的Google Maps API密匙。<br><br>"+"开发者:获取使其正确工作的帮助信息,"+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>点击这里</a>",'getLayerWarning':"${layerType} 图层不能正确加载。<br><br>"+"要消除这个信息,请在右上角的"+"图层控制面板中选择其他的基础图层。<br><br>"+"这种情况很可能是没有正确的包含"+"${layerLib} 脚本库。<br><br>"+"开发者:获取使其正确工作的帮助信息,"+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>点击这里</a>",'scale':"比例尺 = 1 : ${scaleDenom}",'layerAlreadyAdded':"你尝试添加图层: ${layerName} 到地图中,但是它之前就已经被添加。",'reprojectDeprecated':"你正在使用 ${layerName} 图层上的'reproject'选项。"+"这个选项已经不再使用:"+"它是被设计用来支持显示商业的地图数据,"+"不过现在该功能可以通过使用Spherical Mercator来实现。"+"更多信息可以参阅"+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"该方法已经不再被支持,并且将在3.0中被移除。"+"请使用 ${newMethod} 方法来替代。",'boundsAddError':"您必须传递 x 和 y 两个参数值到 add 方法。",'lonlatAddError':"您必须传递 lon 和 lat 两个参数值到 add 方法。",'pixelAddError':"您必须传递 x and y 两个参数值到 add 方法。",'unsupportedGeometryType':"不支持的几何体类型: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition 失败:id 为 ${elemId} 的元素可能被错置。",'end':''};OpenLayers.Lang["zh-TW"]={'unhandledRequest':"未處理的請求,傳回值為 ${statusText}。",'permalink':"永久連結",'overlays':"額外圖層",'baseLayer':"基礎圖層",'sameProjection':"地圖縮覽(OverviewMap)只能在跟主地圖相同投影時起作用。",'readNotImplemented':"沒有實作讀取的功能。",'writeNotImplemented':"沒有實作寫入的功能。",'noFID':"因為沒有 FID 所以無法更新 feature。",'errorLoadingGML':"讀取GML檔案 ${url} 錯誤。",'browserNotSupported':"您的瀏覽器未支援向量渲染. 目前支援的渲染方式是:\n${renderers}",'componentShouldBe':"addFeatures : 元件應該為 ${geomType}",'getFeatureError':"getFeatureFromEvent 在一個沒有被渲染的圖層裡被呼叫。這通常意味著您 "+"摧毀了一個圖層,但並未摧毀相關的handler。",'minZoomLevelError':"minZoomLevel 屬性僅適合用在 "+"FixedZoomLevels-descendent 類型的圖層. 這個"+"wfs layer 的 minZoomLevel 是過去所遺留下來的,"+"然而我們不能移除它而不讓它將"+"過去的程式相容性給破壞掉。"+"因此我們將會迴避使用它 -- minZoomLevel "+"會在3.0被移除,請改"+"用在這邊描述的 min/max resolution 設定: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: 成功 ${response}",'commitFailed':"WFS Transaction: 失敗 ${response}",'googleWarning':"The Google Layer 圖層無法被正確的載入。<br><br>"+"要迴避這個訊息, 請在右上角的圖層改變器裡,"+"選一個新的基礎圖層。<br><br>"+"很有可能是因為 Google Maps 的函式庫"+"腳本沒有被正確的置入,或沒有包含 "+"您網站上正確的 API key <br><br>"+"開發者: 要幫助這個行為正確完成,"+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>請按這裡</a>",'getLayerWarning':"${layerType} 圖層無法被正確的載入。<br><br>"+"要迴避這個訊息, 請在右上角的圖層改變器裡,"+"選一個新的基礎圖層。<br><br>"+"很有可能是因為 ${layerLib} 的函式庫"+"腳本沒有被正確的置入。<br><br>"+"開發者: 要幫助這個行為正確完成,"+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>請按這裡</a>",'scale':"Scale = 1 : ${scaleDenom}",'layerAlreadyAdded':"你試著新增圖層: ${layerName} 到地圖上,但圖層之前就已經被新增了。",'reprojectDeprecated':"你正使用 'reproject' 這個選項 "+"在 ${layerName} 層。這個選項已經不再使用:"+"它的使用原本是設計用來支援在商業地圖上秀出資料,"+"但這個功能已經被"+"Spherical Mercator所取代。更多的資訊可以在 "+"http://trac.openlayers.org/wiki/SphericalMercator 找到。",'methodDeprecated':"這個方法已經不再使用且在3.0將會被移除,"+"請使用 ${newMethod} 來代替。",'boundsAddError':"您必須傳入 x 跟 y 兩者的值進 add 函數。",'lonlatAddError':"您必須傳入 lon 跟 lat 兩者的值進 add 函數。",'pixelAddError':"您必須傳入 x 跟 y 兩者的值進 add 函數。",'unsupportedGeometryType':"未支援的幾何型別: ${geomType}。",'pagePositionFailed':"OpenLayers.Util.pagePosition 失敗: id ${elemId} 的 element 可能被錯置。",'end':''};OpenLayers.Popup.AnchoredBubble=OpenLayers.Class(OpenLayers.Popup.Anchored,{rounded:false,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){this.padding=new OpenLayers.Bounds(0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE,0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE);OpenLayers.Popup.Anchored.prototype.initialize.apply(this,arguments);},draw:function(px){OpenLayers.Popup.Anchored.prototype.draw.apply(this,arguments);this.setContentHTML();this.setBackgroundColor();this.setOpacity();return this.div;},updateRelativePosition:function(){this.setRicoCorners();},setSize:function(contentSize){OpenLayers.Popup.Anchored.prototype.setSize.apply(this,arguments);this.setRicoCorners();},setBackgroundColor:function(color){if(color!=undefined){this.backgroundColor=color;}
+-this.element.lefttop[1]);},CLASS_NAME:"OpenLayers.Events"});OpenLayers.Format=OpenLayers.Class({options:null,externalProjection:null,internalProjection:null,data:null,keepData:false,initialize:function(options){OpenLayers.Util.extend(this,options);this.options=options;},destroy:function(){},read:function(data){OpenLayers.Console.userError(OpenLayers.i18n("readNotImplemented"));},write:function(object){OpenLayers.Console.userError(OpenLayers.i18n("writeNotImplemented"));},CLASS_NAME:"OpenLayers.Format"});OpenLayers.Lang["ar"]=OpenLayers.Util.applyDefaults({'permalink':"وصلة دائمة",'baseLayer':"الطبقة الاساسية",'readNotImplemented':"القراءة غير محققة.",'writeNotImplemented':"الكتابة غير محققة",'errorLoadingGML':"خطأ عند تحميل الملف جي ام ال ${url}",'scale':"النسبة = 1 : ${scaleDenom}",'W':"غ",'E':"شر",'N':"شم",'S':"ج"});OpenLayers.Lang["be-tarask"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Неапрацаваны вынік запыту ${statusText}",'permalink':"Сталая спасылка",'overlays':"Слаі",'baseLayer':"Базавы слой",'sameProjection':"Аглядная мапа працуе толькі калі яна мае тую ж праекцыю, што і асноўная мапа",'readNotImplemented':"Функцыянальнасьць чытаньня ня створаная.",'writeNotImplemented':"Функцыянальнасьць запісу ня створаная.",'noFID':"Немагчыма абнавіць магчымасьць, для якога не існуе FID.",'errorLoadingGML':"Памылка загрузкі файла GML ${url}",'browserNotSupported':"Ваш браўзэр не падтрымлівае вэктарную графіку. У цяперашні момант падтрымліваюцца: ${renderers}",'componentShouldBe':"addFeatures : кампанэнт павінен быць ${geomType}",'getFeatureError':"getFeatureFromEvent выкліканы для слоя бяз рэндэру. Звычайна гэта азначае, што Вы зьнішчылі слой, але пакінулі зьвязаны зь ім апрацоўшчык.",'minZoomLevelError':"Уласьцівасьць minZoomLevel прызначана толькі для выкарыстаньня са слаямі вытворнымі ад FixedZoomLevels. Тое, што  гэты wfs-слой правяраецца на minZoomLevel — рэха прошлага. Але мы ня можам выдаліць гэтую магчымасьць, таму што ад яе залежаць некаторыя заснаваныя на OL дастасаваньні. Тым ня менш, праверка minZoomLevel будзе выдаленая ў вэрсіі 3.0. Калі ласка, выкарыстоўваеце замест яе ўстаноўкі мінімальнага/максымальнага памераў, як апісана тут: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-транзакцыя: ПОСЬПЕХ ${response}",'commitFailed':"WFS-транзакцыя: ПАМЫЛКА ${response}",'googleWarning':"Не атрымалася загрузіць слой Google. \x3cbr\x3e\x3cbr\x3eКаб пазбавіцца гэтага паведамленьня, выберыце новы базавы слой у сьпісе ў верхнім правым куце.\x3cbr\x3e\x3cbr\x3e Хутчэй за ўсё, прычына ў тым, што скрыпт бібліятэкі Google Maps ня быў уключаныя альбо не ўтрымлівае слушны API-ключ для Вашага сайта.\x3cbr\x3e\x3cbr\x3eРаспрацоўшчыкам: Для таго, каб даведацца як зрабіць так, каб усё працавала, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eнацісьніце тут\x3c/a\x3e",'getLayerWarning':"Немагчыма загрузіць слой ${layerType}.\x3cbr\x3e\x3cbr\x3eКаб пазбавіцца гэтага паведамленьня, выберыце новы базавы слой у сьпісе ў верхнім правым куце.\x3cbr\x3e\x3cbr\x3eХутчэй за ўсё, прычына ў тым, што скрыпт бібліятэкі ${layerLib} ня быў слушна ўключаны.\x3cbr\x3e\x3cbr\x3eРаспрацоўшчыкам: Для таго, каб даведацца як зрабіць так, каб усё працавала, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eнацісьніце тут\x3c/a\x3e",'scale':"Маштаб = 1 : ${scaleDenom}",'W':"З",'E':"У",'N':"Пн",'S':"Пд",'layerAlreadyAdded':"Вы паспрабавалі дадаць слой ${layerName} на мапу, але ён ужо дададзены",'reprojectDeprecated':"Вы выкарыстоўваеце ўстаноўку \'reproject\' для слоя ${layerName}. Гэтая ўстаноўка зьяўляецца састарэлай: яна выкарыстоўвалася для падтрымкі паказу зьвестак на камэрцыйных базавых мапах, але гэта функцыя цяпер рэалізаваная ў убудаванай падтрымцы сфэрычнай праекцыі Мэркатара. Дадатковая інфармацыя ёсьць на http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Гэты мэтад састарэлы і будзе выдалены ў вэрсіі 3.0. Калі ласка, замест яго выкарыстоўвайце ${newMethod}.",'boundsAddError':"Вам неабходна падаць абодва значэньні x і y для функцыі складаньня.",'lonlatAddError':"Вам неабходна падаць абодва значэньні lon і lat для функцыі складаньня.",'pixelAddError':"Вам неабходна падаць абодва значэньні x і y для функцыі складаньня.",'unsupportedGeometryType':"Тып геамэтрыі не падтрымліваецца: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: верагодна элемэнт з ідэнтыфікатарам ${elemId} займае няслушнае месца.",'filterEvaluateNotImplemented':"evaluate не рэалізаваны для гэтага тыпу фільтру."});OpenLayers.Lang["bg"]=OpenLayers.Util.applyDefaults({'permalink':"Постоянна препратка",'baseLayer':"Основен слой",'errorLoadingGML':"Грешка при зареждане на GML файл ${url}",'scale':"Мащаб = 1 : ${scaleDenom}",'layerAlreadyAdded':"Опитахте да добавите слой ${layerName} в картата, но той вече е добавен",'methodDeprecated':"Този метод е остарял и ще бъде премахват в 3.0. Вместо него използвайте ${newMethod}."});OpenLayers.Lang["br"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Distro evel reked anveret ${statusText}",'permalink':"Peurliamm",'overlays':"Gwiskadoù",'baseLayer':"Gwiskad diazez",'sameProjection':"Ne\'z ar gartenn lec\'hiañ en-dro nemet pa vez heñvel ar banndres anezhi ha hini ar gartenn bennañ",'readNotImplemented':"N\'eo ket emplementet al lenn.",'writeNotImplemented':"N\'eo ket emplementet ar skrivañ.",'noFID':"N\'haller ket hizivaat un elfenn ma n\'eus ket a niverenn-anaout (FID) eviti.",'errorLoadingGML':"Fazi e-ser kargañ ar restr GML ${url}",'browserNotSupported':"N\'eo ket skoret an daskor vektorel gant ho merdeer. Setu aze an daskorerioù skoret evit ar poent :\n${renderers}",'componentShouldBe':"addFeatures : bez\' e tlefe ar parzh besañ eus ar seurt ${geomType}",'getFeatureError':"Galvet eo bet getFeatureFromEvent called war ur gwiskad hep daskorer. Kement-se a dalvez ez eus bet freuzet ur gwiskad hag hoc\'h eus miret un embreger bennak stag outañ.",'minZoomLevelError':"Ne zleer implijout ar perzh minZoomLevel nemet evit gwiskadoù FixedZoomLevels-descendent. Ar fed ma wiria ar gwiskad WHS-se hag-eñ ez eus eus minZoomLevel zo un aspadenn gozh. Koulskoude n\'omp ket evit e ziverkañ kuit da derriñ arloadoù diazezet war OL a c\'hallfe bezañ stag outañ. Setu perak eo dispredet -- Lamet kuit e vo ar gwiriañ minZoomLevel a-is er stumm 3.0. Ober gant an arventennoù bihanañ/brasañ evel deskrivet amañ e plas : http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Treuzgread WFS : MAT EO ${response}",'commitFailed':"Treuzgread WFS Transaction: C\'HWITET ${response}",'googleWarning':"N\'eus ket bet gallet kargañ ar gwiskad Google ent reizh.\x3cbr\x3e\x3cbr\x3eEvit en em zizober eus ar c\'hemenn-mañ, dibabit ur BaseLayer nevez en diuzer gwiskadoù er c\'horn dehoù el laez.\x3cbr\x3e\x3cbr\x3eSur a-walc\'h eo peogwir n\'eo ket bet ensoc\'het levraoueg Google Maps pe neuze ne glot ket an alc\'hwez API gant ho lec\'hienn.\x3cbr\x3e\x3cbr\x3eDiorroerien : Evit reizhañ an dra-se, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eclick here\x3c/a\x3e",'getLayerWarning':"N\'haller ket kargañ ar gwiskad ${layerType} ent reizh.\x3cbr\x3e\x3cbr\x3eEvit en em zizober eus ar c\'hemenn-mañ, dibabit ur BaseLayer nevez en diuzer gwiskadoù er c\'horn dehoù el laez.\x3cbr\x3e\x3cbr\x3eSur a-walc\'h eo peogwir n\'eo ket bet ensoc\'het mat al levraoueg ${layerLib}.\x3cbr\x3e\x3cbr\x3eDiorroerien : Evit gouzout penaos reizhañ an dra-se, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclick here\x3c/a\x3e",'scale':"Skeul = 1 : ${scaleDenom}",'W':"K",'E':"R",'N':"N",'S':"S",'layerAlreadyAdded':"Klasket hoc\'h eus ouzhpennañ ar gwiskad : ${layerName} d\'ar gartenn, met ouzhpennet e oa bet c\'hoazh",'reprojectDeprecated':"Emaoc\'h oc\'h implijout an dibarzh \'reproject\' war ar gwiskad ${layerName}. Dispredet eo an dibarzh-mañ : bet eo hag e talveze da ziskwel roadennoù war-c\'horre kartennoù diazez kenwerzhel, un dra hag a c\'haller ober bremañ gant an arc\'hwel dre skor banndres boullek Mercator. Muioc\'h a ditouroù a c\'haller da gaout war http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Dispredet eo an daore-se ha tennet e vo kuit eus ar stumm 3.0. Grit gant ${newMethod} e plas.",'boundsAddError':"Rekis eo tremen an div dalvoudenn x ha y d\'an arc\'hwel add.",'lonlatAddError':"Rekis eo tremen an div dalvoudenn hedred ha ledred d\'an arc\'hwel add.",'pixelAddError':"Rekis eo tremen an div dalvoudenn x ha y d\'an arc\'hwel add.",'unsupportedGeometryType':"Seurt mentoniezh anskoret : ${geomType}",'pagePositionFailed':"C\'hwitet eo OpenLayers.Util.pagePosition : marteze emañ lec\'hiet fall an elfenn id ${elemId}.",'filterEvaluateNotImplemented':"N\'eo ket bet emplementet ar priziañ evit seurt siloù c\'hoazh."});OpenLayers.Lang.ca={'unhandledRequest':"Resposta a petició no gestionada ${statusText}",'permalink':"Enllaç permanent",'overlays':"Capes addicionals",'baseLayer':"Capa Base",'sameProjection':"El mapa de referència només funciona si té la mateixa projecció que el mapa principal",'readNotImplemented':"Lectura no implementada.",'writeNotImplemented':"Escriptura no implementada.",'noFID':"No es pot actualitzar un element per al que no existeix FID.",'errorLoadingGML':"Error carregant el fitxer GML ${url}",'browserNotSupported':"El seu navegador no suporta renderització vectorial. Els renderitzadors suportats actualment són:\n${renderers}",'componentShouldBe':"addFeatures : el component ha de ser de tipus ${geomType}",'getFeatureError':"getFeatureFromEvent ha estat cridat des d'una capa sense renderizador. Això normalment vol dir que "+"s'ha eliminat una capa, però no el handler associat a ella.",'minZoomLevelError':"La propietat minZoomLevel s'ha d'utilitzar només "+"amb les capes que tenen FixedZoomLevels. El fet que "+"una capa wfs comprovi minZoomLevel és una relíquia del "+"passat. No podem, però, eliminar-la sense trencar "+"les aplicacions d'OpenLayers que en puguin dependre. "+"Així doncs estem fent-la obsoleta -- la comprovació "+"minZoomLevel s'eliminarà a la versió 3.0. Feu servir "+"els paràmetres min/max resolution en substitució, tal com es descriu aquí: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacció WFS: CORRECTA ${response}",'commitFailed':"Transacció WFS: HA FALLAT ${response}",'googleWarning':"La capa Google no s'ha pogut carregar correctament.<br><br>"+"Per evitar aquest missatge, seleccioneu una nova Capa Base "+"al gestor de capes de la cantonada superior dreta.<br><br>"+"Probablement això és degut a que l'script de la biblioteca de "+"Google Maps no ha estat inclòs a la vostra pàgina, o no "+"conté la clau de l'API correcta per a la vostra adreça.<br><br>"+"Desenvolupadors: Per obtenir consells sobre com fer anar això, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>féu clic aquí</a>",'getLayerWarning':"Per evitar aquest missatge, seleccioneu una nova Capa Base "+"al gestor de capes de la cantonada superior dreta.<br><br>"+"Probablement això és degut a que l'script de la biblioteca "+"${layerLib} "+"no ha estat inclòs a la vostra pàgina.<br><br>"+"Desenvolupadors: Per obtenir consells sobre com fer anar això, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>féu clic aquí</a>",'scale':"Escala = 1 : ${scaleDenom}",'W':'O','E':'E','N':'N','S':'S','graticule':'Retícula','layerAlreadyAdded':"Heu intentat afegir la capa: ${layerName} al mapa, però ja ha estat afegida anteriorment",'reprojectDeprecated':"Esteu fent servir l'opció 'reproject' a la capa "+"${layerName}. Aquesta opció és obsoleta: el seu ús fou concebut "+"per suportar la visualització de dades sobre mapes base comercials, "+"però ara aquesta funcionalitat s'hauria d'assolir mitjançant el suport "+"de la projecció Spherical Mercator. Més informació disponible a "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Aquest mètode és obsolet i s'eliminarà a la versió 3.0. "+"Si us plau feu servir em mètode alternatiu ${newMethod}.",'boundsAddError':"Ha de proporcionar els valors x i y a la funció add.",'lonlatAddError':"Ha de proporcionar els valors lon i lat a la funció add.",'pixelAddError':"Ha de proporcionar els valors x i y a la funció add.",'unsupportedGeometryType':"Tipus de geometria no suportada: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition ha fallat: l'element amb id ${elemId} pot estar fora de lloc.",'filterEvaluateNotImplemented':"evaluate no està implementat per aquest tipus de filtre.",'end':''};OpenLayers.Lang["cs-CZ"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Nezpracovaná návratová hodnota ${statusText}",'permalink':"Trvalý odkaz",'overlays':"Překryvné vrstvy",'baseLayer':"Podkladové vrstvy",'sameProjection':"Přehledka pracuje správně pouze tehdy, pokud je ve stejné projekci jako hlavní mapa",'readNotImplemented':"Read není implementováno.",'writeNotImplemented':"Write není implementováno.",'noFID':"Nelze aktualizovat prvek, pro který neexistuje FID.",'errorLoadingGML':"Chyba při načítání souboru GML ${url}",'browserNotSupported':"Váš prohlížeč nepodporuje vykreslování vektorů. Momentálně podporované nástroje jsou::\n${renderers}",'componentShouldBe':"addFeatures : komponenta by měla být ${geomType}",'getFeatureError':"getFeatureFromEvent bylo zavoláno na vrstvě, která nemá vykreslovač. To obyčejně znamená, že jste odstranil vrstvu, ale ne rutinu s ní asociovanou.",'minZoomLevelError':"Vlastnost minZoomLevel by se měla používat pouze s potomky FixedZoomLevels vrstvami. To znamená, že vrstva wfs kontroluje, zda-li minZoomLevel není zbytek z minulosti.Nelze to ovšem vyjmout bez možnosti, že bychom rozbili aplikace postavené na OL, které by na tom mohly záviset. Proto tuto vlastnost nedoporučujeme používat --  kontrola minZoomLevel bude odstraněna ve verzi 3.0. Použijte prosím raději nastavení min/max podle příkaldu popsaného na: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: ÚSPĚCH ${response}",'commitFailed':"WFS Transaction: CHYBA ${response}",'googleWarning':"Nepodařilo se správně načíst vrstvu Google.\x3cbr\x3e\x3cbr\x3eAbyste se zbavili této zprávy, zvolte jinou základní vrstvu v přepínači vrstev.\x3cbr\x3e\x3cbr\x3eTo se většinou stává, pokud nebyl načten skript, nebo neobsahuje správný klíč pro API pro tuto stránku.\x3cbr\x3e\x3cbr\x3eVývojáři: Pro pomoc, aby tohle fungovalo , \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eklikněte sem\x3c/a\x3e",'getLayerWarning':"The ${layerType} Layer was unable to load correctly.\x3cbr\x3e\x3cbr\x3eTo get rid of this message, select a new BaseLayer in the layer switcher in the upper-right corner.\x3cbr\x3e\x3cbr\x3eMost likely, this is because the ${layerLib} library script was either not correctly included.\x3cbr\x3e\x3cbr\x3eDevelopers: For help getting this working correctly, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclick here\x3c/a\x3e",'scale':"Měřítko = 1 : ${scaleDenom}",'layerAlreadyAdded':"Pokusili jste se přidat vrstvu: ${layerName} do mapy, ale tato vrstva je již v mapě přítomna.",'reprojectDeprecated':"Použil jste volbu \'reproject\' ve vrstvě ${layerName}. Tato volba není doporučená: byla zde proto, aby bylo možno zobrazovat data z okomerčních serverů, ale tato funkce je nyní zajištěna pomocí podpory Spherical Mercator. Více informací naleznete na http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Tato metoda je zavržená a bude ve verzi 3.0 odstraněna. Prosím, použijte raději ${newMethod}.",'boundsAddError':"Pro přídavnou funkci musíte zadat obě souřadnice x a y.",'lonlatAddError':"Pro přídavnou funkci musíte zadat obě souřadnice lon a lat.",'pixelAddError':"Pro přídavnou funkci musíte zadat obě souřadnice x a y.",'unsupportedGeometryType':"Nepodporovaný typ geometrie: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition selhalo: element s  id ${elemId} je asi umístěn chybně."});OpenLayers.Lang['da-DK']={'unhandledRequest':"En ikke håndteret forespørgsel returnerede ${statusText}",'permalink':"Permalink",'overlays':"Kortlag",'baseLayer':"Baggrundslag",'sameProjection':"Oversigtskortet fungerer kun når det har samme projektion som hovedkortet",'readNotImplemented':"Læsning er ikke implementeret.",'writeNotImplemented':"Skrivning er ikke implementeret.",'noFID':"Kan ikke opdateret en feature (et objekt) der ikke har et FID.",'errorLoadingGML':"Fejlede under indlæsning af GML fil ${url}",'browserNotSupported':"Din browser understøtter ikke vektor visning. Følgende vektor visninger understøttes:\n${renderers}",'componentShouldBe':"addFeatures : komponenten skal være en ${geomType}",'getFeatureError':"getFeatureFromEvent blev kaldt på et lag uden en visning. Dette betyder som regel at du "+"har destrueret et lag, men ikke de håndteringer der var tilknyttet.",'minZoomLevelError':"Egenskaben minZoomLevel er kun beregnet til brug "+"med FixedZoomLevels. At dette WFS lag kontrollerer "+"minZoomLevel egenskaben, er et levn fra en tidligere "+"version. Vi kan desværre ikke fjerne dette uden at risikere "+"at ødelægge eksisterende OL baserede programmer der "+" benytter denne funktionalitet. "+"Egenskaben bør derfor ikke anvendes, og minZoomLevel "+"kontrollen herunder vil blive fjernet i version 3.0. "+"Benyt istedet min/max opløsnings indstillingerne, som "+"er beskrevet her: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS transaktion: LYKKEDES ${response}",'commitFailed':"WFS transaktion: MISLYKKEDES ${response}",'googleWarning':"Google laget kunne ikke indlæses.<br><br>"+"For at fjerne denne besked, vælg et nyt bagrundskort i "+"lagskifteren i øverste højre hjørne.<br><br>"+"Fejlen skyldes formentlig at Google Maps bibliotekts "+"scriptet ikke er inkluderet, eller ikke indeholder den "+"korrkte API nøgle for dit site.<br><br>"+"Udviklere: For hjælp til at få dette til at fungere, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>klik her</a>",'getLayerWarning':"${layerType}-laget kunne ikke indlæses.<br><br>"+"For at fjerne denne besked, vælg et nyt bagrundskort i "+"lagskifteren i øverste højre hjørne.<br><br>"+"Fejlen skyldes formentlig at ${layerLib} bibliotekts "+"scriptet ikke er inkluderet.<br><br>"+"Udviklere: For hjælp til at få dette til at fungere, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>klik her</a>",'scale':"Målforhold = 1 : ${scaleDenom}",'layerAlreadyAdded':"Du har forsøgt at tilføje laget: ${layerName} til kortet, men det er allerede tilføjet",'reprojectDeprecated':"Du anvender indstillingen 'reproject' på laget ${layerName}."+"Denne indstilling bør ikke længere anvendes. Den var beregnet "+"til at vise data ovenpå kommercielle grundkort, men den funktionalitet "+"bør nu opnås ved at anvende Spherical Mercator understøttelsen. "+"Mere information er tilgængelig her: "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Denne funktion bør ikke længere anvendes, og vil blive fjernet i version 3.0. "+"Anvend venligst funktionen ${newMethod} istedet.",'boundsAddError':"Du skal angive både x og y værdier i kaldet til add funktionen.",'lonlatAddError':"Du skal angive både lon og lat værdier i kaldet til add funktionen.",'pixelAddError':"Du skal angive både x og y værdier i kaldet til add funktionen.",'unsupportedGeometryType':"Geometri typen: ${geomType} er ikke understøttet.",'pagePositionFailed':"OpenLayers.Util.pagePosition fejlede: elementet med id ${elemId} er måske placeret forkert.",'filterEvaluateNotImplemented':"evaluering er ikke implementeret for denne filter type."};OpenLayers.Lang["de"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Unbehandelte Anfragerückmeldung ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Grundkarte",'sameProjection':"Die Übersichtskarte funktioniert nur, wenn sie dieselbe Projektion wie die Hauptkarte verwendet",'readNotImplemented':"Lesen nicht implementiert.",'writeNotImplemented':"Schreiben nicht implementiert.",'noFID':"Ein Feature, für das keine FID existiert, kann nicht aktualisiert werden.",'errorLoadingGML':"Fehler beim Laden der GML-Datei ${url}",'browserNotSupported':"Ihr Browser unterstützt keine Vektordarstellung. Aktuell unterstützte Renderer:\n${renderers}",'componentShouldBe':"addFeatures: Komponente muss vom Typ ${geomType} sein",'getFeatureError':"getFeatureFromEvent wurde vom einem Layer ohne Renderer aufgerufen. Dies bedeutet normalerweise, dass ein Layer entfernt wurde, aber nicht Handler, die auf ihn verweisen.",'minZoomLevelError':"Die \x3ccode\x3eminZoomLevel\x3c/code\x3e-Eigenschaft ist nur für die Verwendung mit \x3ccode\x3eFixedZoomLevels\x3c/code\x3e-untergeordneten Layers vorgesehen. Das dieser \x3ctt\x3ewfs\x3c/tt\x3e-Layer die \x3ccode\x3eminZoomLevel\x3c/code\x3e-Eigenschaft überprüft ist ein Relikt der Vergangenheit. Wir können diese Überprüfung nicht entfernen, ohne das OL basierende Applikationen nicht mehr funktionieren. Daher markieren wir es als veraltet - die \x3ccode\x3eminZoomLevel\x3c/code\x3e-Überprüfung wird in Version 3.0 entfernt werden. Bitte verwenden Sie stattdessen die Min-/Max-Lösung, wie sie unter http://trac.openlayers.org/wiki/SettingZoomLevels beschrieben ist.",'commitSuccess':"WFS-Transaktion: Erfolgreich ${response}",'commitFailed':"WFS-Transaktion: Fehlgeschlagen ${response}",'googleWarning':"Der Google-Layer konnte nicht korrekt geladen werden.\x3cbr\x3e\x3cbr\x3eUm diese Meldung nicht mehr zu erhalten, wählen Sie einen anderen Hintergrundlayer aus dem LayerSwitcher in der rechten oberen Ecke.\x3cbr\x3e\x3cbr\x3eSehr wahrscheinlich tritt dieser Fehler auf, weil das Skript der Google-Maps-Bibliothek nicht eingebunden wurde oder keinen gültigen API-Schlüssel für Ihre URL enthält.\x3cbr\x3e\x3cbr\x3eEntwickler: Besuche \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3edas Wiki\x3c/a\x3e für Hilfe zum korrekten Einbinden des Google-Layers",'getLayerWarning':"Der ${layerType}-Layer konnte nicht korrekt geladen werden.\x3cbr\x3e\x3cbr\x3eUm diese Meldung nicht mehr zu erhalten, wählen Sie einen anderen Hintergrundlayer aus dem LayerSwitcher in der rechten oberen Ecke.\x3cbr\x3e\x3cbr\x3eSehr wahrscheinlich tritt dieser Fehler auf, weil das Skript der \'${layerLib}\'-Bibliothek nicht eingebunden wurde.\x3cbr\x3e\x3cbr\x3eEntwickler: Besuche \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3edas Wiki\x3c/a\x3e für Hilfe zum korrekten Einbinden von Layern",'scale':"Maßstab = 1 : ${scaleDenom}",'W':"W",'E':"O",'N':"N",'S':"S",'layerAlreadyAdded':"Sie versuchen den Layer „${layerName}“ zur Karte hinzuzufügen, er wurde aber bereits hinzugefügt",'reprojectDeprecated':"Sie verwenden die „Reproject“-Option des Layers ${layerName}. Diese Option ist veraltet: Sie wurde entwickelt um die Anzeige von Daten auf kommerziellen Basiskarten zu unterstützen, aber diese Funktion sollte jetzt durch Unterstützung der „Spherical Mercator“ erreicht werden. Weitere Informationen sind unter http://trac.openlayers.org/wiki/SphericalMercator verfügbar.",'methodDeprecated':"Die Methode ist veraltet und wird in 3.0 entfernt. Bitte verwende stattdessen ${newMethod}.",'boundsAddError':"Beide Werte (x und y) müssen der add-Funktion übergeben werden.",'lonlatAddError':"Beide Werte (lon und lat) müssen der add-Funktion übergeben werden.",'pixelAddError':"Beide Werte (x und y) müssen der add-Funktion übergeben werden.",'unsupportedGeometryType':"Nicht unterstützter Geometrie-Typ: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fehlgeschlagen: Element mit Id ${elemId} möglicherweise falsch platziert.",'filterEvaluateNotImplemented':"„evaluate“ ist für diesen Filter-Typ nicht implementiert."});OpenLayers.Lang["el"]=OpenLayers.Util.applyDefaults({'scale':"Κλίμακα ~ 1 : ${scaleDenom}"});OpenLayers.Lang.en={'unhandledRequest':"Unhandled request return ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Base Layer",'sameProjection':"The overview map only works when it is in the same projection as the main map",'readNotImplemented':"Read not implemented.",'writeNotImplemented':"Write not implemented.",'noFID':"Can't update a feature for which there is no FID.",'errorLoadingGML':"Error in loading GML file ${url}",'browserNotSupported':"Your browser does not support vector rendering. Currently supported renderers are:\n${renderers}",'componentShouldBe':"addFeatures : component should be an ${geomType}",'getFeatureError':"getFeatureFromEvent called on layer with no renderer. This usually means you "+"destroyed a layer, but not some handler which is associated with it.",'minZoomLevelError':"The minZoomLevel property is only intended for use "+"with the FixedZoomLevels-descendent layers. That this "+"wfs layer checks for minZoomLevel is a relic of the"+"past. We cannot, however, remove it without possibly "+"breaking OL based applications that may depend on it."+" Therefore we are deprecating it -- the minZoomLevel "+"check below will be removed at 3.0. Please instead "+"use min/max resolution setting as described here: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: SUCCESS ${response}",'commitFailed':"WFS Transaction: FAILED ${response}",'googleWarning':"The Google Layer was unable to load correctly.<br><br>"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.<br><br>"+"Most likely, this is because the Google Maps library "+"script was either not included, or does not contain the "+"correct API key for your site.<br><br>"+"Developers: For help getting this working correctly, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>click here</a>",'getLayerWarning':"The ${layerType} Layer was unable to load correctly.<br><br>"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.<br><br>"+"Most likely, this is because the ${layerLib} library "+"script was not correctly included.<br><br>"+"Developers: For help getting this working correctly, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>click here</a>",'scale':"Scale = 1 : ${scaleDenom}",'W':'W','E':'E','N':'N','S':'S','graticule':'Graticule','layerAlreadyAdded':"You tried to add the layer: ${layerName} to the map, but it has already been added",'reprojectDeprecated':"You are using the 'reproject' option "+"on the ${layerName} layer. This option is deprecated: "+"its use was designed to support displaying data over commercial "+"basemaps, but that functionality should now be achieved by using "+"Spherical Mercator support. More information is available from "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"This method has been deprecated and will be removed in 3.0. "+"Please use ${newMethod} instead.",'boundsAddError':"You must pass both x and y values to the add function.",'lonlatAddError':"You must pass both lon and lat values to the add function.",'pixelAddError':"You must pass both x and y values to the add function.",'unsupportedGeometryType':"Unsupported geometry type: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: element with id ${elemId} may be misplaced.",'filterEvaluateNotImplemented':"evaluate is not implemented for this filter type.",'end':''};OpenLayers.Lang.es={'unhandledRequest':"Respuesta a petición no gestionada ${statusText}",'permalink':"Enlace permanente",'overlays':"Capas superpuestas",'baseLayer':"Capa Base",'sameProjection':"El mapa de vista general sólo funciona si está en la misma proyección que el mapa principal",'readNotImplemented':"Lectura no implementada.",'writeNotImplemented':"Escritura no implementada.",'noFID':"No se puede actualizar un elemento para el que no existe FID.",'errorLoadingGML':"Error cargando el fichero GML ${url}",'browserNotSupported':"Su navegador no soporta renderización vectorial. Los renderizadores soportados actualmente son:\n${renderers}",'componentShouldBe':"addFeatures : el componente debe ser del tipo ${geomType}",'getFeatureError':"getFeatureFromEvent se ha llamado desde una capa sin renderizador. Esto normalmente quiere decir que "+"se ha destruido una capa, pero no el manejador asociado a ella.",'minZoomLevelError':"La propiedad minZoomLevel debe sólo utilizarse "+"con las capas que tienen FixedZoomLevels. El hecho de que "+"una capa wfs compruebe minZoomLevel es una reliquia del "+"pasado. Sin embargo, no podemos eliminarla sin discontinuar "+"probablemente las aplicaciones OL que puedan depender de ello. "+"Así pues estamos haciéndolo obsoleto --la comprobación "+"minZoomLevel se eliminará en la versión 3.0. Utilice el ajuste "+"de resolution min/max en su lugar, tal como se describe aquí: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacción WFS: ÉXITO ${response}",'commitFailed':"Transacción WFS: FALLÓ ${response}",'googleWarning':"La capa Google no pudo ser cargada correctamente.<br><br>"+"Para evitar este mensaje, seleccione una nueva Capa Base "+"en el selector de capas en la esquina superior derecha.<br><br>"+"Probablemente, esto se debe a que el script de la biblioteca de "+"Google Maps no fue correctamente incluido en su página, o no "+"contiene la clave del API correcta para su sitio.<br><br>"+"Desarrolladores: Para ayudar a hacer funcionar esto correctamente, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>haga clic aquí</a>",'getLayerWarning':"La capa ${layerType} no pudo ser cargada correctamente.<br><br>"+"Para evitar este mensaje, seleccione una nueva Capa Base "+"en el selector de capas en la esquina superior derecha.<br><br>"+"Probablemente, esto se debe a que el script de "+"la biblioteca ${layerLib} "+"no fue correctamente incluido en su página.<br><br>"+"Desarrolladores: Para ayudar a hacer funcionar esto correctamente, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>haga clic aquí</a>",'scale':"Escala = 1 : ${scaleDenom}",'W':'O','E':'E','N':'N','S':'S','graticule':'Retícula','layerAlreadyAdded':"Intentó añadir la capa: ${layerName} al mapa, pero ya había sido añadida previamente",'reprojectDeprecated':"Está usando la opción 'reproject' en la capa "+"${layerName}. Esta opción es obsoleta: su uso fue diseñado "+"para soportar la visualización de datos sobre mapas base comerciales, "+"pero ahora esa funcionalidad debería conseguirse mediante el soporte "+"de la proyección Spherical Mercator. Más información disponible en "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Este método es obsoleto y se eliminará en la versión 3.0. "+"Por favor utilice el método ${newMethod} en su lugar.",'boundsAddError':"Debe proporcionar los valores x e y a la función add.",'lonlatAddError':"Debe proporcionar los valores lon y lat a la función add.",'pixelAddError':"Debe proporcionar los valores x e y a la función add.",'unsupportedGeometryType':"Tipo de geometría no soportada: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition falló: el elemento con id ${elemId} puede haberse colocado de manera errónea.",'filterEvaluateNotImplemented':"evaluate no está implementado para este tipo de filtro.",'end':''};OpenLayers.Lang["fi"]=OpenLayers.Util.applyDefaults({'permalink':"Ikilinkki",'overlays':"Kerrokset",'baseLayer':"Peruskerros",'sameProjection':"Yleiskuvakarttaa voi käyttää vain, kun sillä on sama projektio kuin pääkartalla.",'W':"L",'E':"I",'N':"P",'S':"E"});OpenLayers.Lang["fr"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Requête non gérée, retournant ${statusText}",'permalink':"Permalien",'overlays':"Calques",'baseLayer':"Calque de base",'sameProjection':"La carte de situation ne fonctionne que lorsque sa projection est la même que celle de la carte principale",'readNotImplemented':"Lecture non implémentée.",'writeNotImplemented':"Ecriture non implémentée.",'noFID':"Impossible de mettre à jour un objet sans identifiant (fid).",'errorLoadingGML':"Erreur au chargement du fichier GML ${url}",'browserNotSupported':"Votre navigateur ne supporte pas le rendu vectoriel. Les renderers actuellement supportés sont : \n${renderers}",'componentShouldBe':"addFeatures : le composant devrait être de type ${geomType}",'getFeatureError':"getFeatureFromEvent a été appelé sur un calque sans renderer. Cela signifie généralement que vous avez détruit cette couche, mais que vous avez conservé un handler qui lui était associé.",'minZoomLevelError':"La propriété minZoomLevel doit seulement être utilisée pour des couches FixedZoomLevels-descendent. Le fait que cette couche WFS vérifie la présence de minZoomLevel est une relique du passé. Nous ne pouvons toutefois la supprimer sans casser des applications qui pourraient en dépendre. C\'est pourquoi nous la déprécions -- la vérification du minZoomLevel sera supprimée en version 3.0. A la place, merci d\'utiliser les paramètres de résolutions min/max tel que décrit sur : http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transaction WFS : SUCCES ${response}",'commitFailed':"Transaction WFS : ECHEC ${response}",'googleWarning':"La couche Google n\'a pas été en mesure de se charger correctement.\x3cbr\x3e\x3cbr\x3ePour supprimer ce message, choisissez une nouvelle BaseLayer dans le sélecteur de couche en haut à droite.\x3cbr\x3e\x3cbr\x3eCela est possiblement causé par la non-inclusion de la librairie Google Maps, ou alors parce que la clé de l\'API ne correspond pas à votre site.\x3cbr\x3e\x3cbr\x3eDéveloppeurs : pour savoir comment corriger ceci, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3ecliquez ici\x3c/a\x3e",'getLayerWarning':"La couche ${layerType} n\'est pas en mesure de se charger correctement.\x3cbr\x3e\x3cbr\x3ePour supprimer ce message, choisissez une nouvelle BaseLayer dans le sélecteur de couche en haut à droite.\x3cbr\x3e\x3cbr\x3eCela est possiblement causé par la non-inclusion de la librairie ${layerLib}.\x3cbr\x3e\x3cbr\x3eDéveloppeurs : pour savoir comment corriger ceci, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3ecliquez ici\x3c/a\x3e",'scale':"Echelle ~ 1 : ${scaleDenom}",'W':"O",'E':"E",'N':"N",'S':"S",'layerAlreadyAdded':"Vous avez essayé d\'ajouter à la carte le calque : ${layerName}, mais il est déjà présent",'reprojectDeprecated':"Vous utilisez l\'option \'reproject\' sur la couche ${layerName}. Cette option est dépréciée : Son usage permettait d\'afficher des données au dessus de couches raster commerciales.Cette fonctionalité est maintenant supportée en utilisant le support de la projection Mercator Sphérique. Plus d\'information est disponible sur http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Cette méthode est dépréciée, et sera supprimée à la version 3.0. Merci d\'utiliser ${newMethod} à la place.",'boundsAddError':"Vous devez passer les deux valeurs x et y à la fonction add.",'lonlatAddError':"Vous devez passer les deux valeurs lon et lat à la fonction add.",'pixelAddError':"Vous devez passer les deux valeurs x et y à la fonction add.",'unsupportedGeometryType':"Type de géométrie non supporté : ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition a échoué: l\'élément d\'id ${elemId} pourrait être mal positionné.",'filterEvaluateNotImplemented':"évaluer n\'a pas encore été implémenté pour ce type de filtre."});OpenLayers.Lang["fur"]=OpenLayers.Util.applyDefaults({'permalink':"Leam Permanent",'overlays':"Livei parsore",'baseLayer':"Livel di base",'browserNotSupported':"Il to sgarfadôr nol supuarte la renderizazion vetoriâl. Al moment a son supuartâts:\n${renderers}",'scale':"Scjale = 1 : ${scaleDenom}",'W':"O",'E':"E",'N':"N",'S':"S"});OpenLayers.Lang["gl"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Solicitude non xerada; a resposta foi: ${statusText}",'permalink':"Ligazón permanente",'overlays':"Capas superpostas",'baseLayer':"Capa base",'sameProjection':"A vista xeral do mapa só funciona cando está na mesma proxección có mapa principal",'readNotImplemented':"Lectura non implementada.",'writeNotImplemented':"Escritura non implementada.",'noFID':"Non se pode actualizar a funcionalidade para a que non hai FID.",'errorLoadingGML':"Erro ao cargar o ficheiro GML ${url}",'browserNotSupported':"O seu navegador non soporta a renderización de vectores. Os renderizadores soportados actualmente son:\n${renderers}",'componentShouldBe':"addFeatures: o compoñente debera ser de tipo ${geomType}",'getFeatureError':"getFeatureFromEvent ten sido chamado a unha capa sen renderizador. Isto normalmente significa que destruíu unha capa, mais non o executador que está asociado con ela.",'minZoomLevelError':"A propiedade minZoomLevel é só para uso conxuntamente coas capas FixedZoomLevels-descendent. O feito de que esa capa wfs verifique o minZoomLevel é unha reliquia do pasado. Non podemos, con todo, eliminala sen a posibilidade de non romper as aplicacións baseadas en OL que poidan depender dela. Por iso a estamos deixando obsoleta (a comprobación minZoomLevel de embaixo será eliminada na versión 3.0). Por favor, no canto diso use o axuste de resolución mín/máx tal e como está descrito aquí: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacción WFS: ÉXITO ${response}",'commitFailed':"Transacción WFS: FALLIDA ${response}",'googleWarning':"A capa do Google non puido cargarse correctamente.\x3cbr\x3e\x3cbr\x3ePara evitar esta mensaxe, escolla unha nova capa base no seleccionador de capas na marxe superior dereita.\x3cbr\x3e\x3cbr\x3eProbablemente, isto acontece porque a escritura da libraría do Google Maps ou ben non foi incluída ou ben non contén a clave API correcta para o seu sitio.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: para axudar a facer funcionar isto correctamente, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3epremede aquí\x3c/a\x3e",'getLayerWarning':"A capa ${layerType} foi incapaz de cargarse correctamente.\x3cbr\x3e\x3cbr\x3ePara evitar esta mensaxe, escolla unha nova capa base no seleccionador de capas na marxe superior dereita.\x3cbr\x3e\x3cbr\x3eProbablemente, isto acontece porque a escritura da libraría ${layerLib} non foi ben incluída.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: para axudar a facer funcionar isto correctamente, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3epremede aquí\x3c/a\x3e",'scale':"Escala = 1 : ${scaleDenom}",'W':"O",'E':"L",'N':"N",'S':"S",'layerAlreadyAdded':"Intentou engadir a capa: ${layerName} ao mapa, pero xa fora engadida",'reprojectDeprecated':"Está usando a opción \"reproject\" na capa ${layerName}. Esta opción está obsoleta: o seu uso foi deseñado para a visualización de datos sobre mapas base comerciais, pero esta funcionalidade debera agora ser obtida utilizando a proxección Spherical Mercator. Hai dispoñible máis información en http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Este método está obsoleto e será eliminado na versión 3.0. Por favor, no canto deste use ${newMethod}.",'boundsAddError':"Debe achegar os valores x e y á función add.",'lonlatAddError':"Debe achegar tanto o valor lon coma o lat á función add.",'pixelAddError':"Debe achegar os valores x e y á función add.",'unsupportedGeometryType':"Tipo xeométrico non soportado: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fallou: o elemento con id ${elemId} pode non estar na súa posición.",'filterEvaluateNotImplemented':"avaliar non está implementado para este tipo de filtro."});OpenLayers.Lang["gsw"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Nit behandleti Aafrogsruckmäldig ${statusText}",'permalink':"Permalink",'overlays':"Iberlagerige",'baseLayer':"Grundcharte",'sameProjection':"D Ibersichts-Charte funktioniert nume, wänn si di glych Projäktion brucht wie d Hauptcharte",'readNotImplemented':"Läse nit implementiert.",'writeNotImplemented':"Schrybe nit implementiert.",'noFID':"E Feature, wu s kei FID derfir git, cha nit aktualisiert wäre.",'errorLoadingGML':"Fähler bim Lade vu dr GML-Datei ${url}",'browserNotSupported':"Dyy Browser unterstitzt kei Vektordarstellig. Aktuäll unterstitzti Renderer:\n${renderers}",'componentShouldBe':"addFeatures : Komponänt sott dr Typ ${geomType} syy",'getFeatureError':"getFeatureFromEvent isch uf eme Layer ohni Renderer ufgruefe wore. Des heisst normalerwys, ass Du e Layer kaputt gmacht hesch, aber nit dr Handler, wu derzue ghert.",'minZoomLevelError':"D minZoomLevel-Eigeschaft isch nume dänk fir d Layer, wu vu dr FixedZoomLevels abstamme. Ass dää wfs-Layer minZoomLevel prieft, scih e Relikt us dr Vergangeheit. Mir chenne s aber nit ändere ohni OL_basierti Aawändige villicht kaputt gehn, wu dervu abhänge.  Us däm Grund het die Funktion d Eigeschaft \'deprecated\' iberchuu. D minZoomLevel-Priefig unte wird in dr Version 3.0 usegnuu. Bitte verwänd statt däm e min/max-Uflesig wie s do bschriben isch: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-Transaktion: ERFOLGRYCH ${response}",'commitFailed':"WFS-Transaktion: FÄHLGSCHLAA ${response}",'googleWarning':"Dr Google-Layer het nit korräkt chenne glade wäre.\x3cbr\x3e\x3cbr\x3eGo die Mäldig nimi z kriege, wehl e andere Hintergrundlayer us em LayerSwitcher im rächte obere Ecke.\x3cbr\x3e\x3cbr\x3eDää Fähler git s seli hyfig, wel s Skript vu dr Google-Maps-Bibliothek nit yybunde woren isch oder wel s kei giltige API-Schlissel fir Dyy URL din het.\x3cbr\x3e\x3cbr\x3eEntwickler: Fir Hilf zum korräkte Yybinde vum Google-Layer \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3edoo drucke\x3c/a\x3e",'getLayerWarning':"Dr ${layerType}-Layer het nit korräkt chenne glade wäre.\x3cbr\x3e\x3cbr\x3eGo die Mäldig nimi z kriege, wehl e andere Hintergrundlayer us em LayerSwitcher im rächte obere Ecke.\x3cbr\x3e\x3cbr\x3eDää Fähler git s seli hyfig, wel s Skript vu dr \'${layerLib}\'-Bibliothek nit yybunde woren isch oder wel s kei giltige API-Schlissel fir Dyy URL din het.\x3cbr\x3e\x3cbr\x3eEntwickler: Fir Hilf zum korräkte Yybinde vu Layer \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3edoo drucke\x3c/a\x3e",'scale':"Maßstab = 1 : ${scaleDenom}",'W':"W",'E':"O",'N':"N",'S':"S",'layerAlreadyAdded':"Du hesch versuecht dää Layer in d Charte yyzfiege: ${layerName}, aber är isch schoi yygfiegt",'reprojectDeprecated':"Du bruchsch d \'reproject\'-Option bim ${layerName}-Layer. Die Option isch nimi giltig: si isch aagleit wore go   Date iber kommerziälli Grundcharte lege, aber des sott mer jetz mache mit dr Unterstitzig vu Spherical Mercator. Meh Informatione git s uf http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Die Methode isch veraltet un wird us dr Version 3.0 usegnuu. Bitte verwäbnd statt däm ${newMethod}.",'boundsAddError':"Du muesch e x-Wärt un e y-Wärt yygee bi dr Zuefieg-Funktion",'lonlatAddError':"Du meusch e Lengi- un e Breiti-Grad yygee bi dr Zuefieg-Funktion.",'pixelAddError':"Du muesch x- un y-Wärt aagee bi dr Zuefieg-Funktion.",'unsupportedGeometryType':"Nit unterstitze Geometrii-Typ: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fählgschlaa: Elemänt mit ID ${elemId} isch villicht falsch gsetzt.",'filterEvaluateNotImplemented':"evaluiere isch nit implemäntiert in däm Filtertyp."});OpenLayers.Lang["hr"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Nepodržani zahtjev ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Osnovna karta",'sameProjection':"Pregledna karta radi jedino kao je u istoj projekciji kao i glava karta",'readNotImplemented':"Čitanje nije implementirano.",'writeNotImplemented':"Pisanje nije implementirano.",'noFID':"Ne mogu ažurirati značajku za koju ne postoji FID.",'errorLoadingGML':"Greška u učitavanju GML datoteke ${url}",'browserNotSupported':"Vaš preglednik ne podržava vektorsko renderiranje. Trenutno podržani rendereri su: ${renderers}",'componentShouldBe':"addFeatures : komponenta bi trebala biti ${geomType}",'getFeatureError':"getFeatureFromEvent je pozvao Layer bez renderera. Ovo obično znači da ste uništiili Layer, a ne neki Handler koji je povezan s njim.",'commitSuccess':"WFS Transakcija: USPJEŠNA ${response}",'commitFailed':"WFS Transakcija: NEUSPJEŠNA ${response}",'scale':"Mjerilo = 1 : ${scaleDenom}",'layerAlreadyAdded':"Pokušali ste dodati layer:  ${layerName} na kartu, ali je već dodan",'methodDeprecated':"Ova metoda nije odobrena i biti će maknuta u 3.0. Koristite ${newMethod}.",'boundsAddError':"Morate dati obje vrijednosti ,  x i y  da bi dodali funkciju.",'lonlatAddError':"Morate dati obje vrijednosti , (lon i lat) da bi dodali funkciju.",'pixelAddError':"Morate dati obje vrijednosti ,  x i y  da bi dodali funkciju.",'unsupportedGeometryType':"Nepodržani tip geometrije: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition nije uspjelo: element sa id ${elemId} može biti krivo smješten."});OpenLayers.Lang["hsb"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Wotmołwa njewobdźěłaneho naprašowanja ${statusText}",'permalink':"Trajny wotkaz",'overlays':"Naworštowanja",'baseLayer':"Zakładna runina",'sameProjection':"Přehladowa karta jenož funguje, hdyž je w samsnej projekciji kaž hłowna karta",'readNotImplemented':"Čitanje njeimplementowane.",'writeNotImplemented':"Pisanje njeimplementowane.",'noFID':"Funkcija, za kotruž FID njeje, njeda so aktualizować.",'errorLoadingGML':"Zmylk při začitowanju dataje ${url}",'browserNotSupported':"Twój wobhladowak wektorowe rysowanje njepodpěruje. Tuchwilu podpěrowane rysowaki su:\n${renderers}",'componentShouldBe':"addFeatures: komponenta měła ${geomType} być",'getFeatureError':"getFeatureFromEvent bu na woršće bjez rysowak zawołany. To zwjetša woznamjenja, zo sy worštu zničił, ale nic wobdźěłak, kotryž je z njej zwjazany.",'minZoomLevelError':"Kajkosć minZoomLevel je jenož za wužiwanje z worštami myslena, kotrež wot FixedZoomLevels pochadźeja. Zo tuta woršta wfs za minZoomLevel přepruwuje, je relikt zańdźenosće. Njemóžemy wšak ju wotstronić, bjeztoho zo aplikacije, kotrež na OpenLayers bazěruja a snano tutu kajkosć wužiwaja, hižo njefunguja. Tohodla smy ju jako zestarjenu woznamjenili -- přepruwowanje za minZoomLevel budu so we wersiji 3.0 wotstronjeć. Prošu wužij město toho nastajenje min/max, kaž je tu wopisane: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-Transakcija: WUSPĚŠNA ${response}",'commitFailed':"WFS-Transakcija: NJEPORADŹENA ${response}",'googleWarning':"Woršta Google njemóžeše so korektnje začitać.\x3cbr\x3e\x3cbr\x3eZo by tutu zdźělenku wotbył, wubjer nowy BaseLayer z wuběra worštow horjeka naprawo.\x3cbr\x3e\x3cbr\x3eNajskerje so to stawa, dokelž skript biblioteki Google Maps pak njebu zapřijaty pak njewobsahuje korektny kluč API za twoje sydło.\x3cbr\x3e\x3cbr\x3eWuwiwarjo: Za pomoc ke korektnemu fungowanju worštow\n\x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3etu kliknyć\x3c/a\x3e",'getLayerWarning':"Woršta ${layerType} njemóžeše so korektnje začitać.\x3cbr\x3e\x3cbr\x3eZo by tutu zdźělenku wotbył, wubjer nowy BaseLayer z wuběra worštow horjeka naprawo.\x3cbr\x3e\x3cbr\x3eNajskerje so to stawa, dokelž skript biblioteki ${layerLib} njebu korektnje zapřijaty.\x3cbr\x3e\x3cbr\x3eWuwiwarjo: Za pomoc ke korektnemu fungowanju worštow\n\x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3etu kliknyć\x3c/a\x3e",'scale':"Měritko = 1 : ${scaleDenom}",'W':"Z",'E':"W",'N':"S",'S':"J",'layerAlreadyAdded':"Sy spytał runinu ${layerName} karće dodać, ale je so hižo dodała",'reprojectDeprecated':"Wužiwaš opciju \"reproject\" wořšty ${layerName}. Tuta opcija je zestarjena: jeje wužiwanje bě myslene, zo by zwobraznjenje datow nad komercielnymi bazowymi kartami podpěrało, ale funkcionalnosć měła so nětko z pomocu Sperical Mercator docpěć. Dalše informacije steja na http://trac.openlayers.org/wiki/SphericalMercator k dispoziciji.",'methodDeprecated':"Tuta metoda je so njeschwaliła a budźe so w 3.0 wotstronjeć. Prošu wužij ${newMethod} město toho.",'boundsAddError':"Dyrbiš hódnotu x kaž tež y funkciji \"add\" přepodać.",'lonlatAddError':"Dyrbiš hódnotu lon kaž tež lat funkciji \"add\" přepodać.",'pixelAddError':"Dyrbiš hódnotu x kaž tež y funkciji \"add\" přepodać.",'unsupportedGeometryType':"Njepodpěrowany geometrijowy typ: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition je so njeporadźił: element z id ${elemId} bu snano wopak zaměstnjeny.",'filterEvaluateNotImplemented':"wuhódnoćenje njeje za tutón filtrowy typ implementowany."});OpenLayers.Lang["hu"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Nem kezelt kérés visszatérése ${statusText}",'permalink':"Permalink",'overlays':"Rávetítések",'baseLayer':"Alapréteg",'sameProjection':"Az áttekintő térkép csak abban az esetben működik, ha ugyanazon a vetületen van, mint a fő térkép.",'readNotImplemented':"Olvasás nincs végrehajtva.",'writeNotImplemented':"Írás nincs végrehajtva.",'noFID':"Nem frissíthető olyan jellemző, amely nem rendelkezik FID-del.",'errorLoadingGML':"Hiba GML-fájl betöltésekor ${url}",'browserNotSupported':"A böngészője nem támogatja a vektoros renderelést. A jelenleg támogatott renderelők:\n${renderers}",'componentShouldBe':"addFeatures : az összetevőnek ilyen típusúnak kell lennie: ${geomType}",'getFeatureError':"getFeatureFromEvent réteget hívott meg renderelő nélkül. Ez rendszerint azt jelenti, hogy megsemmisített egy fóliát, de néhány ahhoz társított kezelőt nem.",'minZoomLevelError':"A minZoomLevel tulajdonságot csak a következővel való használatra szánták: FixedZoomLevels-leszármazott fóliák. Ez azt jelenti, hogy a minZoomLevel wfs fólia jelölőnégyzetei már a múlté. Mi azonban nem távolíthatjuk el annak a veszélye nélkül, hogy az esetlegesen ettől függő OL alapú alkalmazásokat tönkretennénk. Ezért ezt érvénytelenítjük -- a minZoomLevel az alul levő jelölőnégyzet a 3.0-s verzióból el lesz távolítva. Kérjük, helyette használja a  min/max felbontás beállítást, amelyről az alábbi helyen talál leírást: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS tranzakció: SIKERES ${response}",'commitFailed':"WFS tranzakció: SIKERTELEN ${response}",'googleWarning':"A Google fólia betöltése sikertelen.\x3cbr\x3e\x3cbr\x3eAhhoz, hogy ez az üzenet eltűnjön, válasszon egy új BaseLayer fóliát a jobb felső sarokban található fóliakapcsoló segítségével.\x3cbr\x3e\x3cbr\x3eNagy valószínűséggel ez azért van, mert a Google Maps könyvtár parancsfájlja nem található, vagy nem tartalmazza az Ön oldalához tartozó megfelelő API-kulcsot.\x3cbr\x3e\x3cbr\x3eFejlesztőknek: A helyes működtetésre vonatkozó segítség az alábbi helyen érhető el, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3ekattintson ide\x3c/a\x3e",'getLayerWarning':"A(z) ${layerType} fólia nem töltődött be helyesen.\x3cbr\x3e\x3cbr\x3eAhhoz, hogy ez az üzenet eltűnjön, válasszon egy új BaseLayer fóliát a jobb felső sarokban található fóliakapcsoló segítségével.\x3cbr\x3e\x3cbr\x3eNagy valószínűséggel ez azért van, mert a(z) ${layerLib} könyvtár parancsfájlja helytelen.\x3cbr\x3e\x3cbr\x3eFejlesztőknek: A helyes működtetésre vonatkozó segítség az alábbi helyen érhető el, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3ekattintson ide\x3c/a\x3e",'scale':"Lépték = 1 : ${scaleDenom}",'W':"Ny",'E':"K",'N':"É",'S':"D",'layerAlreadyAdded':"Megpróbálta hozzáadni a(z) ${layerName} fóliát a térképhez, de az már hozzá van adva",'reprojectDeprecated':"Ön a \'reproject\' beállítást használja a(z) ${layerName} fólián. Ez a beállítás érvénytelen: használata az üzleti alaptérképek fölötti adatok megjelenítésének támogatására szolgált, de ezt a funkció ezentúl a Gömbi Mercator használatával érhető el. További információ az alábbi helyen érhető el: http://trac.openlayers.org/wiki/SphericalMercator",'methodDeprecated':"Ez a módszer érvénytelenítve lett és a 3.0-s verzióból el lesz távolítva. Használja a(z) ${newMethod} módszert helyette.",'boundsAddError':"Az x és y értékeknek egyaránt meg kell felelnie, hogy a funkciót hozzáadhassa.",'lonlatAddError':"A hossz. és szél. értékeknek egyaránt meg kell felelnie, hogy a funkciót hozzáadhassa.",'pixelAddError':"Az x és y értékeknek egyaránt meg kell felelnie, hogy a funkciót hozzáadhassa.",'unsupportedGeometryType':"Nem támogatott geometriatípus: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition sikertelen: lehetséges, hogy a(z) ${elemId} azonosítójú elem téves helyre került.",'filterEvaluateNotImplemented':"ennél a szűrőtípusnál kiértékelés nem hajtódik végre."});OpenLayers.Lang["ia"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Le responsa a un requesta non esseva maneate: ${statusText}",'permalink':"Permaligamine",'overlays':"Superpositiones",'baseLayer':"Strato de base",'sameProjection':"Le mini-carta functiona solmente si illo es in le mesme projection que le carta principal",'readNotImplemented':"Lectura non implementate.",'writeNotImplemented':"Scriptura non implementate.",'noFID':"Non pote actualisar un elemento sin FID.",'errorLoadingGML':"Error al cargamento del file GML ${url}",'browserNotSupported':"Tu navigator non supporta le rendition de vectores. Le renditores actualmente supportate es:\n${renderers}",'componentShouldBe':"addFeatures: le componente debe esser del typo ${geomType}",'getFeatureError':"getFeatureFromEvent ha essite appellate in un strato sin renditor. Isto significa generalmente que tu ha destruite un strato, ma lassava un gestor associate con illo.",'minZoomLevelError':"Le proprietate minZoomLevel es solmente pro uso con le stratos descendente de FixedZoomLevels. Le facto que iste strato WFS verifica minZoomLevel es un reliquia del passato. Nonobstante, si nos lo remove immediatemente, nos pote rumper applicationes a base de OL que depende de illo. Ergo nos lo declara obsolete; le verification de minZoomLevel in basso essera removite in version 3.0. Per favor usa in su loco le configuration de resolutiones min/max como describite a: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transaction WFS: SUCCESSO ${response}",'commitFailed':"Transaction WFS: FALLEVA ${response}",'googleWarning':"Le strato Google non poteva esser cargate correctemente.\x3cbr\x3e\x3cbr\x3ePro disfacer te de iste message, selige un nove BaseLayer in le selector de strato in alto a dextra.\x3cbr\x3e\x3cbr\x3eMulto probabilemente, isto es proque le script del libreria de Google Maps non esseva includite o non contine le clave API correcte pro tu sito.\x3cbr\x3e\x3cbr\x3eDisveloppatores: Pro adjuta de corriger isto, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eclicca hic\x3c/a",'getLayerWarning':"Le strato ${layerType} non poteva esser cargate correctemente.\x3cbr\x3e\x3cbr\x3ePro disfacer te de iste message, selige un nove BaseLayer in le selector de strato in alto a dextra.\x3cbr\x3e\x3cbr\x3eMulto probabilemente, isto es proque le script del libreria de ${layerLib} non esseva correctemente includite.\x3cbr\x3e\x3cbr\x3eDisveloppatores: Pro adjuta de corriger isto, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclicca hic\x3c/a\x3e",'scale':"Scala = 1 : ${scaleDenom}",'W':"W",'E':"E",'N':"N",'S':"S",'layerAlreadyAdded':"Tu tentava adder le strato: ${layerName} al carta, ma illo es ja presente",'reprojectDeprecated':"Tu usa le option \'reproject\' in le strato ${layerName} layer. Iste option es obsolescente: illo esseva pro poter monstrar datos super cartas de base commercial, ma iste functionalitate pote ora esser attingite con le uso de Spherical Mercator. Ulterior information es disponibile a http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Iste methodo ha essite declarate obsolescente e essera removite in version 3.0. Per favor usa ${newMethod} in su loco.",'boundsAddError':"Tu debe passar le duo valores x e y al function add.",'lonlatAddError':"Tu debe passar le duo valores lon e lat al function add.",'pixelAddError':"Tu debe passar le duo valores x e y al function add.",'unsupportedGeometryType':"Typo de geometria non supportate: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition falleva: le elemento con id ${elemId} pote esser mal placiate.",'filterEvaluateNotImplemented':"\"evaluate\" non es implementate pro iste typo de filtro."});OpenLayers.Lang["is"]=OpenLayers.Util.applyDefaults({'permalink':"Varanlegur tengill",'overlays':"Þekjur",'baseLayer':"Grunnlag",'sameProjection':"Yfirlitskortið virkar aðeins ef það er í sömu vörpun og aðalkortið",'readNotImplemented':"Skrifun er óútfærð.",'writeNotImplemented':"Lestur er óútfærður.",'errorLoadingGML':"Villa kom upp við að hlaða inn GML skránni ${url}",'scale':"Skali = 1 : ${scaleDenom}",'layerAlreadyAdded':"Þú reyndir að bæta laginu ${layerName} á kortið en það er þegar búið að bæta því við",'methodDeprecated':"Þetta fall hefur verið úrelt og verður fjarlægt í 3.0. Notaðu ${newMethod} í staðin."});OpenLayers.Lang.it={'unhandledRequest':"Codice di ritorno della richiesta ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Livello base",'sameProjection':"La mini mappa funziona solamente se ha la stessa proiezione della mappa principale",'readNotImplemented':"Lettura non implementata.",'writeNotImplemented':"Scrittura non implementata.",'noFID':"Impossibile aggiornare un elemento grafico che non abbia il FID.",'errorLoadingGML':"Errore nel caricamento del file GML ${url}",'browserNotSupported':"Il tuo browser non supporta il rendering vettoriale. I renderizzatore attualemnte supportati sono:\n${renderers}",'componentShouldBe':"addFeatures : il componente dovrebbe essere di tipo ${geomType}",'getFeatureError':"getFeatureFromEvent chiamata su di un livello senza renderizzatore. Ciò significa che "+"il livello è stato cancellato, ma non i gestori associati ad esso.",'minZoomLevelError':"La proprietà minZoomLevel è da utilizzare solamente "+"con livelli che abbiano FixedZoomLevels. Il fatto che "+"questo livello wfs controlli la proprietà minZoomLevel è "+"un retaggio del passato. Non possiamo comunque rimuoverla "+"senza rompere le vecchie applicazioni che dipendono su di essa."+"Quindi siamo costretti a deprecarla -- minZoomLevel "+"e sarà rimossa dalla vesione 3.0. Si prega di utilizzare i "+"settaggi di risoluzione min/max come descritto qui: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transazione WFS: SUCCESS ${response}",'commitFailed':"Transazione WFS: FAILED ${response}",'googleWarning':"Il livello Google non è riuscito a caricare correttamente.<br><br>"+"Per evitare questo messaggio, seleziona un nuovo BaseLayer "+"nel selettore di livelli nell'angolo in alto a destra.<br><br>"+"Più precisamente, ciò accade perchè la libreria Google Maps "+"non è stata inclusa nella pagina, oppure non contiene la "+"corretta API key per il tuo sito.<br><br>"+"Sviluppatori: Per aiuto su come farlo funzionare correttamente, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>clicca qui</a>",'getLayerWarning':"Il livello ${layerType} non è riuscito a caricare correttamente.<br><br>"+"Per evitare questo messaggio, seleziona un nuovo BaseLayer "+"nel selettore di livelli nell'angolo in alto a destra.<br><br>"+"Più precisamente, ciò accade perchè la libreria ${layerLib} "+"non è stata inclusa nella pagina.<br><br>"+"Sviluppatori: Per aiuto su come farlo funzionare correttamente, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>clicca qui</a>",'scale':"Scala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Stai cercando di aggiungere il livello: ${layerName} alla mappa, ma tale livello è già stato aggiunto.",'reprojectDeprecated':"Stai utilizzando l'opzione 'reproject' sul livello ${layerName}. "+"Questa opzione è deprecata: il suo utilizzo è stato introdotto per"+"supportare il disegno dei dati sopra mappe commerciali, ma tale "+"funzionalità dovrebbe essere ottenuta tramite l'utilizzo della proiezione "+"Spherical Mercator. Per maggiori informazioni consultare qui "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Questo metodo è stato deprecato e sarà rimosso dalla versione 3.0. "+"Si prega di utilizzare il metodo ${newMethod} in alternativa.",'boundsAddError':"Devi specificare i valori di x e y alla funzione add.",'lonlatAddError':"Devi specificare i valori di lon e lat alla funzione add.",'pixelAddError':"Devi specificare i valori di x e y alla funzione add.",'unsupportedGeometryType':"Tipo di geometria non supportata: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fallita: l'elemento con id ${elemId} è posizionato in modo errato.",'end':''};OpenLayers.Lang["ja"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"未処理の要求は ${statusText} を返します",'permalink':"パーマリンク",'overlays':"オーバーレイ",'baseLayer':"基底レイヤー",'sameProjection':"概観地図はメインの地図と同じ投影法をとる場合のみ機能します",'readNotImplemented':"読み込みは実装されていません。",'writeNotImplemented':"書き込みは実装されていません。",'noFID':"FID のない地物は更新できません。",'errorLoadingGML':"GML ファイル ${url} の読み込みエラー",'browserNotSupported':"あなたのブラウザはベクターグラフィックスの描写に対応していません。現時点で対応しているソフトウェアは以下のものです。\n${renderers}",'componentShouldBe':"addFeatures: 要素は ${geomType} であるべきです",'getFeatureError':"getFeatureFromEvent がレンダラーのないレイヤーから呼ばれました。通常、これはあなたがレイヤーを、それに関連づけられたいくつかのハンドラを除いて、破壊してしまったことを意味します。",'minZoomLevelError':"minZoomLevel プロパティは FixedZoomLevels を継承するレイヤーでの使用のみを想定しています。この minZoomLevel に対する WFS レイヤーの検査は歴史的なものです。しかしながら、この検査を除去するとそれに依存する OpenLayers ベースのアプリケーションを破壊してしまう可能性があります。よって廃止が予定されており、この minZoomLevel 検査はバージョン3.0で除去されます。代わりに、http://trac.openlayers.org/wiki/SettingZoomLevels で解説されている、最小および最大解像度設定を使用してください。",'commitSuccess':"WFS トランザクション: 成功 ${response}",'commitFailed':"WFS トランザクション: 失敗 ${response}",'googleWarning':"Google レイヤーが正しく読み込みを行えませんでした。\x3cbr\x3e\x3cbr\x3eこのメッセージを消すには、右上の隅にあるレイヤー切り替え部分で新しい基底レイヤーを選んでください。\x3cbr\x3e\x3cbr\x3eおそらく、これは Google マップ用ライブラリのスクリプトが組み込まれていないか、あなたのサイトに対応する正しい API キーが設定されていないためです。\x3cbr\x3e\x3cbr\x3e開発者の方へ: 正しい動作をさせるために\x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eこちらのウィキ\x3c/a\x3eを参照してください。",'getLayerWarning':"${layerType} レイヤーが正しく読み込みを行えませんでした。\x3cbr\x3e\x3cbr\x3eこのメッセージを消すには、右上の隅にあるレイヤー切り替え部分で新しい基底レイヤーを選んでください。\x3cbr\x3e\x3cbr\x3eおそらく、これは ${layerLib} ライブラリのスクリプトが正しく組み込まれていないためです。\x3cbr\x3e\x3cbr\x3e開発者の方へ: 正しい動作をさせるために\x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eこちらのウィキ\x3c/a\x3eを参照してください。",'scale':"縮尺 = 1 : ${scaleDenom}",'W':"西",'E':"東",'N':"北",'S':"南",'layerAlreadyAdded':"あなたは「${layerName}」を地図に追加しようと試みましたが、そのレイヤーは既に追加されています",'reprojectDeprecated':"あなたは「${layerName}」レイヤーで reproject オプションを使っています。このオプションは商用の基底地図上に情報を表示する目的で設計されましたが、現在ではその機能は Spherical Mercator サポートを利用して実現されており、このオプションの使用は非推奨です。追加の情報は http://trac.openlayers.org/wiki/SphericalMercator で入手できます。",'methodDeprecated':"このメソッドは廃止が予定されており、バージョン3.0で除去されます。代わりに ${newMethod} を使用してください。",'boundsAddError':"x と y 両方の値を add 関数に渡さなければなりません。",'lonlatAddError':"lon と lat 両方の値を add 関数に渡さなければなりません。",'pixelAddError':"x と y の値両方を add 関数に渡さなければなりません。",'unsupportedGeometryType':"未対応の形状型: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition が失敗しました: id ${elemId} をもつ要素が誤った位置にある可能性があります。",'filterEvaluateNotImplemented':"このフィルター型について evaluate は実装されていません。"});OpenLayers.Lang["km"]=OpenLayers.Util.applyDefaults({'permalink':"តំណភ្ជាប់អចិន្ត្រៃយ៍",'baseLayer':"ស្រទាប់បាត​",'errorLoadingGML':"កំហុសកំឡុងពេលផ្ទុកឯកសារ GML ${url}",'scale':"មាត្រដ្ឋាន = ១ ៖ ${scaleDenom}"});OpenLayers.Lang["ksh"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Met dä Antwoot op en Aanfrooch ham_mer nix aanjefange: ${statusText}",'permalink':"Lengk op Duuer",'overlays':"Drövver jelaat",'baseLayer':"Jrund-Nivoh",'sameProjection':"De Övverseeschs_Kaat deiht et bloß, wann se de sälve Projäxjuhn bruche deiht, wi de Houp_Kaat",'readNotImplemented':"„\x3ccode lang=\"en\"\x3eread\x3c/code\x3e“ is em Projramm nit fürjesinn.",'writeNotImplemented':"„\x3ccode lang=\"en\"\x3ewrite\x3c/code\x3e“ is em Projramm nit fürjesinn.",'noFID':"En Saach, woh kein \x3ci lang=\"en\"\x3eFID\x3c/i\x3e för doh es, löht sesch nit ändere.",'errorLoadingGML':"Fähler beim \x3ci lang=\"en\"\x3eGML\x3c/i\x3e-Datei-Laade vun \x3ccode\x3e${url}\x3c/code\x3e",'browserNotSupported':"Dinge Brauser kann kein Väktore ußjävve. De Zoote Ußjaabe, di em Momang jon, sen:\n${renderers}",'componentShouldBe':"\x3ccode lang=\"en\"\x3eaddFeatures\x3c/code\x3e: dä Aandeil sullt vun dä Zoot „\x3ccode lang=\"en\"\x3e${geomType}\x3c/code\x3e“ sin.",'getFeatureError':"\x3ccode lang=\"en\"\x3egetFeatureFromEvent\x3c/code\x3e es vun enem Nivoh opjeroofe woode, woh et kei Projramm zom Ußjävve jit. Dat bedügg för jewöhnlesch, dat De e Nivoh kapott jemaat häs, ävver nit e Projramm för domet ömzejonn, wat domet verbonge es.",'minZoomLevelError':"De Eijeschaff „\x3ccode lang=\"en\"\x3eminZoomLevel\x3c/code\x3e“ es bloß doför jedaach, dat mer se met dä Nivvohß bruch, di vun \x3ccode lang=\"en\"\x3eFixedZoomLevels\x3c/code\x3e affhange don. Dat dat \x3ci lang=\"en\"\x3eWFS\x3c/i\x3e-Nivvoh övverhoup de Eijeschaff „\x3ccode lang=\"en\"\x3eminZoomLevel\x3c/code\x3e“ pröhfe deiht, es noch övveresch vun fröhjer. Mer künne dat ävver jez nit fott lohße, oohne dat mer Jevaa loufe, dat Aanwendunge vun OpenLayers nit mieh loufe, di sesch doh velleijsch noch drop am verlohße sin. Dröm sare mer, dat mer et nit mieh han welle, un de „\x3ccode lang=\"en\"\x3eminZoomLevel\x3c/code\x3e“-Eijeschaff weed hee vun de Version 3.0 af nit mieh jeprööf wäde. Nemm doför de Enstellung för de hühßte un de kleinßte Oplöhsung, esu wi et en http://trac.openlayers.org/wiki/SettingZoomLevels opjeschrevve es.",'commitSuccess':"Dä \x3ci lang=\"en\"\x3eWFS\x3c/i\x3e-Vörjang es joot jeloufe: ${response}",'commitFailed':"Dä \x3ci lang=\"en\"\x3eWFS\x3c/i\x3e-Vörjang es scheif jejange: ${response}",'googleWarning':"Dat Nivvoh \x3ccode lang=\"en\"\x3eGoogle\x3c/code\x3e kunnt nit reschtesch jelaade wääde.\x3cbr /\x3e\x3cbr /\x3eÖm hee di Nohreesch loß ze krijje, donn en ander Jrund-Nivvoh ußsöhke, rähß bovve en de Äk.\x3cbr /\x3e\x3cbr /\x3eWascheinlesch es dat wiel dat \x3ci lang=\"en\"\x3eGoogle-Maps\x3c/i\x3e-Skrepp entweeder nit reschtesch enjebonge wood, udder nit dä reschtejje \x3ci lang=\"en\"\x3eAPI\x3c/i\x3e-Schlößel för Ding Web-ßait scheke deiht.\x3cbr /\x3e\x3cbr /\x3eFör Projrammierer jidd_et Hölp do_drövver, \x3ca href=\"http://trac.openlayers.org/wiki/Google\" target=\"_blank\"\x3ewi mer dat aan et Loufe brengk\x3c/a\x3e.",'getLayerWarning':"Dat Nivvoh \x3ccode\x3e${layerType}\x3c/code\x3e kunnt nit reschtesch jelaade wääde.\x3cbr /\x3e\x3cbr /\x3eÖm hee di Nohreesch loß ze krijje, donn en ander Jrund-Nivvoh ußsöhkre, rähß bovve en de Äk.\x3cbr /\x3e\x3cbr /\x3eWascheinlesch es dat, wiel dat Skrepp \x3ccode\x3e${layerLib}\x3c/code\x3e nit reschtesch enjebonge wood.\x3cbr /\x3e\x3cbr /\x3eFör Projrammierer jidd_Et Hölp do_drövver, \x3ca href=\"http://trac.openlayers.org/wiki/${layerLib}\" target=\"_blank\"\x3ewi mer dat aan et Loufe brengk\x3c/a\x3e.",'scale':"Mohßshtaab = 1 : ${scaleDenom}",'W':"W",'E':"O",'N':"N",'S':"S",'layerAlreadyAdded':"Do häß versöhk, dat Nivvoh \x3ccode\x3e${layerName}\x3c/code\x3e en di Kaat eren ze bränge, et wohr ävver ald do dren.",'reprojectDeprecated':"Do bruchs de Ußwahl \x3ccode\x3ereproject\x3c/code\x3e op däm Nivvoh \x3ccode\x3e${layerName}\x3c/code\x3e. Di Ußwahl es nit mieh jähn jesinn. Se wohr doför jedaach, öm Date op jeschääfsmäßesch eruß jejovve Kaate bovve drop ze moole, wat ävver enzwesche besser met dä Öngershtözung för de ßfääresche Mäkaator Beldscher jeiht. Doh kanns De mieh drövver fenge op dä Sigg: http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Hee di Metood es nim_mih aktoäll un et weed se en dä Version 3.0 nit mieh jävve. Nemm \x3ccode\x3e${newMethod}\x3c/code\x3e doföör.",'boundsAddError':"Do moß beeds vun de \x3ccode\x3ex\x3c/code\x3e un \x3ccode\x3ey\x3c/code\x3e Wääte aan de Fungkßjohn \x3ccode\x3eadd\x3c/code\x3e jävve.",'lonlatAddError':"Do moß beeds \x3ccode\x3elon\x3c/code\x3e un \x3ccode\x3elat\x3c/code\x3e aan de Fungkßjohn \x3ccode\x3eadd\x3c/code\x3e jävve.",'pixelAddError':"Do moß beeds \x3ccode\x3ex\x3c/code\x3e un \x3ccode\x3ey\x3c/code\x3e aan de Fungkßjohn \x3ccode\x3eadd\x3c/code\x3e jävve.",'unsupportedGeometryType':"De Zoot Jommetrii dom_mer nit ongershtöze: \x3ccode\x3e${geomType}\x3c/code\x3e",'pagePositionFailed':"\x3ccode lang=\"en\"\x3eOpenLayers.Util.pagePosition\x3c/code\x3e es donevve jejange: dat Denge met dä Kännong \x3ccode\x3e${elemId}\x3c/code\x3e künnt am verkeehte Plaz sin.",'filterEvaluateNotImplemented':"„\x3ccode lang=\"en\"\x3eevaluate\x3c/code\x3e“ es för di Zoot Fellter nit enjereschdt."});OpenLayers.Lang["nb"]={'unhandledRequest':"Ubehandlet forespørsel returnerte ${statusText}",'permalink':"Kobling til denne siden",'overlays':"Kartlag",'baseLayer':"Bakgrunnskart",'sameProjection':"Oversiktskartet fungerer bare når det har samme projeksjon som hovedkartet",'readNotImplemented':"Lesing er ikke implementert.",'writeNotImplemented':"Skriving er ikke implementert.",'noFID':"Kan ikke oppdatere et feature (et objekt) som ikke har FID.",'errorLoadingGML':"Feil under lasting av GML-fil ${url}",'browserNotSupported':"Din nettleser støtter ikke vektortegning. Tegnemetodene som støttes er:\n${renderers}",'componentShouldBe':"addFeatures : komponenten må være en ${geomType}",'getFeatureError':"getFeatureFromEvent har blitt kjørt mot et lag uten noen tegnemetode. Dette betyr som regel at du "+"fjernet et lag uten å fjerne alle håndterere tilknyttet laget.",'minZoomLevelError':"Egenskapen minZoomLevel er kun ment til bruk på lag "+"basert på FixedZoomLevels. At dette wfs-laget sjekker "+"minZoomLevel er en etterlevning fra tidligere versjoner. Det kan dog ikke "+"tas bort uten å risikere at OL-baserte applikasjoner "+"slutter å virke, så det er merket som foreldet: "+"minZoomLevel i sjekken nedenfor vil fjernes i 3.0. "+"Vennligst bruk innstillingene for min/maks oppløsning "+"som er beskrevet her: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-transaksjon: LYKTES ${response}",'commitFailed':"WFS-transaksjon: MISLYKTES ${response}",'googleWarning':"Google-laget kunne ikke lastes.<br><br>"+"Bytt til et annet bakgrunnslag i lagvelgeren i "+"øvre høyre hjørne for å slippe denne meldingen.<br><br>"+"Sannsynligvis forårsakes feilen av at Google Maps-biblioteket "+"ikke er riktig inkludert på nettsiden, eller at det ikke er "+"angitt riktig API-nøkkel for nettstedet.<br><br>"+"Utviklere: For hjelp til å få dette til å virke se "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>her</a>.",'getLayerWarning':"${layerType}-laget kunne ikke lastes.<br><br>"+"Bytt til et annet bakgrunnslag i lagvelgeren i "+"øvre høyre hjørne for å slippe denne meldingen.<br><br>"+"Sannsynligvis forårsakes feilen av at "+"${layerLib}-biblioteket ikke var riktig inkludert "+"på nettsiden.<br><br>"+"Utviklere: For hjelp til å få dette til å virke se "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>her</a>.",'scale':"<strong>Skala</strong> 1 : ${scaleDenom}",'layerAlreadyAdded':"Du forsøkte å legge til laget ${layerName} på kartet, men det er allerede lagt til",'reprojectDeprecated':"Du bruker innstillingen 'reproject' på laget ${layerName}. "+"Denne innstillingen er foreldet, den var ment for å støtte "+"visning av kartdata over kommersielle bakgrunnskart, men det "+"bør nå gjøres med støtten for Spherical Mercator. Mer informasjon "+"finnes på http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Denne metoden er markert som foreldet og vil bli fjernet i 3.0. "+"Vennligst bruk ${newMethod} i stedet.",'boundsAddError':"Du må gi både x- og y-verdier til funksjonen add.",'lonlatAddError':"Du må gi både lon- og lat-verdier til funksjonen add.",'pixelAddError':"Du må gi både x- og y-verdier til funksjonen add.",'unsupportedGeometryType':"Geometritypen ${geomType} er ikke støttet",'pagePositionFailed':"OpenLayers.Util.pagePosition feilet: elementet med id ${elemId} kan være feilplassert.",'end':''};OpenLayers.Lang["no"]=OpenLayers.Lang["nb"];OpenLayers.Lang["nds"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Unbehannelt Trüchmellels för de Anfraag ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Achtergrundkoort",'sameProjection':"De Översichtskoort geiht blot, wenn de sülve Projekschoon as bi de Hööftkoort bruukt warrt",'readNotImplemented':"Lesen is nich inricht.",'writeNotImplemented':"Schrieven is nich inricht.",'noFID':"En Feature, dat keen FID hett, kann nich aktuell maakt warrn.",'errorLoadingGML':"Fehler bi’t Laden vun de GML-Datei ${url}",'browserNotSupported':"Dien Browser ünnerstütt keen Vektorbiller. Ünnerstütt Renderers:\n${renderers}",'componentShouldBe':"addFeatures : Kumponent schull man den Typ ${geomType} hebben",'getFeatureError':"getFeatureFromEvent is von en Laag ahn Render opropen worrn. Dat bedüüdt normalerwies, dat en Laag wegmaakt worrn is, aver nich de Handler, de dor op verwiest.",'commitSuccess':"WFS-Transakschoon: hett klappt ${response}",'commitFailed':"WFS-Transakschoon: hett nich klappt ${response}",'scale':"Skaal = 1 : ${scaleDenom}",'layerAlreadyAdded':"Du versöchst de Laag „${layerName}“ to de Koort totofögen, man de is al toföögt",'methodDeprecated':"Disse Methood is oold un schall dat in 3.0 nich mehr geven. Bruuk dor man beter ${newMethod} för.",'boundsAddError':"De Weert x un y, de mööt all beid an de add-Funkschoon övergeven warrn.",'lonlatAddError':"De Weert lon un lat, de mööt all beid an de add-Funkschoon övergeven warrn.",'pixelAddError':"De Weert x un y, de mööt all beid an de add-Funkschoon övergeven warrn.",'unsupportedGeometryType':"Nich ünnerstütt Geometrie-Typ: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition güng nich: Element mit de Id ${elemId} is villicht an’n verkehrten Platz."});OpenLayers.Lang["nl"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Het verzoek is niet afgehandeld met de volgende melding: ${statusText}",'permalink':"Permanente verwijzing",'overlays':"Overlays",'baseLayer':"Achtergrondkaart",'sameProjection':"De overzichtskaart werkt alleen als de projectie gelijk is aan de projectie van de hoofdkaart",'readNotImplemented':"Lezen is niet geïmplementeerd.",'writeNotImplemented':"Schrijven is niet geïmplementeerd.",'noFID':"Een optie die geen FID heeft kan niet bijgewerkt worden.",'errorLoadingGML':"Er is een fout opgetreden bij het laden van het GML bestand van ${url}",'browserNotSupported':"Uw browser ondersteunt het weergeven van vectoren niet.\nMomenteel ondersteunde weergavemogelijkheden:\n${renderers}",'componentShouldBe':"addFeatures : component moet van het type ${geomType} zijn",'getFeatureError':"getFeatureFromEvent is aangeroepen op een laag zonder rederer.\nDit betekent meestal dat u een laag hebt verwijderd, maar niet een handler die ermee geassocieerd was.",'minZoomLevelError':"De eigenschap minZoomLevel is alleen bedoeld voor gebruik lagen met die afstammen van FixedZoomLevels-lagen.\nDat deze WFS-laag minZoomLevel controleert, is een overblijfsel uit het verleden.\nWe kunnen deze controle echter niet verwijderen zonder op OL gebaseerde applicaties die hervan afhankelijk zijn stuk te maken.\nDaarom heeft deze functionaliteit de eigenschap \'deprecated\' gekregen - de minZoomLevel wordt verwijderd in versie 3.0.\nGebruik in plaats van deze functie de mogelijkheid om min/max voor resolutie in te stellen zoals op de volgende pagina wordt beschreven:\nhttp://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-transactie: succesvol ${response}",'commitFailed':"WFS-transactie: mislukt ${response}",'googleWarning':"De Google-Layer kon niet correct geladen worden.\x3cbr /\x3e\x3cbr /\x3e\nOm deze melding niet meer te krijgen, moet u een andere achtergrondkaart kiezen in de laagwisselaar in de rechterbovenhoek.\x3cbr /\x3e\x3cbr /\x3e\nDit komt waarschijnlijk doordat de bibliotheek ${layerLib} niet correct ingevoegd is.\x3cbr /\x3e\x3cbr /\x3e\nOntwikkelaars: \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eklik hier\x3c/a\x3e om dit werkend te krijgen.",'getLayerWarning':"De laag ${layerType} kon niet goed geladen worden.\x3cbr /\x3e\x3cbr /\x3e\nOm deze melding niet meer te krijgen, moet u een andere achtergrondkaart kiezen in de laagwisselaar in de rechterbovenhoek.\x3cbr /\x3e\x3cbr /\x3e\nDit komt waarschijnlijk doordat de bibliotheek ${layerLib} niet correct is ingevoegd.\x3cbr /\x3e\x3cbr /\x3e\nOntwikkelaars: \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eklik hier\x3c/a\x3e om dit werkend te krijgen.",'scale':"Schaal = 1 : ${scaleDenom}",'W':"W",'E':"O",'N':"N",'S':"Z",'layerAlreadyAdded':"U hebt geprobeerd om de laag  ${layerName} aan de kaart toe te voegen, maar deze is al toegevoegd",'reprojectDeprecated':"U gebruikt de optie \'reproject\' op de laag ${layerName}.\nDeze optie is vervallen: deze optie was ontwikkeld om gegevens over commerciële basiskaarten weer te geven, maar deze functionaliteit wordt nu bereikt door ondersteuning van Spherical Mercator.\nMeer informatie is beschikbaar op http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Deze methode is verouderd en wordt verwijderd in versie 3.0.\nGebruik ${newMethod}.",'boundsAddError':"U moet zowel de x- als de y-waarde doorgeven aan de toevoegfunctie.",'lonlatAddError':"U moet zowel de lengte- als de breedtewaarde doorgeven aan de toevoegfunctie.",'pixelAddError':"U moet zowel de x- als de y-waarde doorgeven aan de toevoegfunctie.",'unsupportedGeometryType':"Dit geometrietype wordt niet ondersteund: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition is mislukt: het element met id ${elemId} is wellicht onjuist geplaatst.",'filterEvaluateNotImplemented':"evalueren is niet geïmplementeerd voor dit filtertype."});OpenLayers.Lang["nn"]=OpenLayers.Util.applyDefaults({'scale':"Skala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Du freista å leggja til laget «${layerName}» på kartet, men det har alt vorte lagt til.",'boundsAddError':"Du er nøydd til å gje både ein x- og ein y-verdi til «add»-funksjonen.",'lonlatAddError':"Du er nøydd til å gje både lon- og lat-verdiar til «add»-funksjonen.",'pixelAddError':"Du er nøydd til å gje både ein x- og ein y-verdi til «add»-funksjonen."});OpenLayers.Lang["pt-br"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"A requisição retornou um erro não tratado: ${statusText}",'permalink':"Link para essa página",'overlays':"Camadas de Sobreposição",'baseLayer':"Camada Base",'sameProjection':"O mapa de referência só funciona quando ele está na mesma projeção do mapa principal",'readNotImplemented':"Leitura não implementada.",'writeNotImplemented':"Escrita não implementada.",'noFID':"Não é possível atualizar uma feição que não tenha um FID.",'errorLoadingGML':"Erro ao carregar o arquivo GML ${url}",'browserNotSupported':"Seu navegador não suporta renderização de vetores. Os renderizadores suportados atualmente são:\n${renderers}",'componentShouldBe':"addFeatures: o componente deve ser do tipo ${geomType}",'getFeatureError':"getFeatureFromEvent foi executado mas nenhum renderizador foi encontrado. Isso pode indicar que você destruiu uma camana, mas não o handler associado a ela.",'minZoomLevelError':"A propriedade minZoomLevel é de uso restrito das camadas descendentes de FixedZoomLevels. A verificação dessa propriedade pelas camadas wfs é um resíduo do passado. Não podemos, entretanto não é possível removê-la sem possívelmente quebrar o funcionamento de aplicações OL que possuem depência com ela. Portanto estamos tornando seu uso obsoleto -- a verificação desse atributo será removida na versão 3.0. Ao invés, use as opções de resolução min/max como descrito em: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transação WFS : SUCESSO ${response}",'commitFailed':"Transação WFS : ERRO ${response}",'googleWarning':"Não foi possível carregar a camada Google corretamente.\x3cbr\x3e\x3cbr\x3ePara se livrar dessa mensagem, selecione uma nova Camada Base, na ferramenta de alternação de camadas localização do canto superior direito.\x3cbr\x3e\x3cbr\x3eMuito provavelmente, isso foi causado porque o script da biblioteca do Google Maps não foi incluído, ou porque ele não contém a chave correta da API para o seu site.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: Para obter ajuda em solucionar esse problema \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3ecliquem aqui\x3c/a\x3e",'getLayerWarning':"Não foi possível carregar a camada ${layerType} corretamente.\x3cbr\x3e\x3cbr\x3ePara se livrar dessa mensagem, selecione uma nova Camada Base, na ferramenta de alternação de camadas localização do canto superior direito.\x3cbr\x3e\x3cbr\x3eMuito provavelmente, isso foi causado porque o script da biblioteca ${layerLib} não foi incluído corretamente.\x3cbr\x3e\x3cbr\x3eDesenvolvedores: Para obter ajuda em solucionar esse problema \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3ecliquem aqui\x3c/a\x3e",'scale':"Escala = 1 : ${scaleDenom}",'W':"O",'E':"L",'N':"N",'S':"S",'layerAlreadyAdded':"Você tentou adicionar a camada: ${layerName} ao mapa, mas ela já foi adicionada",'reprojectDeprecated':"Você está usando a opção \'reproject\' na camada ${layerName}. Essa opção está obsoleta: seu uso foi projetado para suportar a visualização de dados sobre bases de mapas comerciais, entretanto essa funcionalidade deve agora ser alcançada usando o suporte à projeção Mercator. Mais informação está disponível em: http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Esse método está obsoleto e será removido na versão 3.0. Ao invés, por favor use ${newMethod}.",'boundsAddError':"Você deve informar ambos os valores x e y para a função add.",'lonlatAddError':"Você deve informar ambos os valores lon e lat para a função add.",'pixelAddError':"Você deve informar ambos os valores x e y para a função add.",'unsupportedGeometryType':"Tipo geométrico não suportado: ${geomType}.",'pagePositionFailed':"OpenLayers.Util.pagePosition falhou: o elemento de id ${elemId} deve estar fora do lugar.",'filterEvaluateNotImplemented':"evaluete não está implementado para este tipo de filtro."});OpenLayers.Lang["pt"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Servidor devolveu erro não contemplado ${statusText}",'permalink':"Ligação permanente",'overlays':"Sobreposições",'baseLayer':"Camada Base",'sameProjection':"O mapa panorâmico só funciona quando está na mesma projeção que o mapa principal",'readNotImplemented':"Leitura não implementada.",'writeNotImplemented':"Escrita não implementada.",'noFID':"Não é possível atualizar um elemento para a qual não há FID.",'errorLoadingGML':"Erro ao carregar ficheiro GML ${url}",'browserNotSupported':"O seu navegador não suporta renderização vetorial. Actualmente os renderizadores suportados são:\n${renderers}",'componentShouldBe':"addFeatures: componente deve ser um(a) ${geomType}",'getFeatureError':"getFeatureFromEvent foi chamado numa camada sem renderizador. Isto normalmente significa que destruiu uma camada, mas não um manipulador \'\'(handler)\'\' que lhe está associado.",'minZoomLevelError':"A propriedade minZoomLevel só deve ser usada com as camadas descendentes da FixedZoomLevels. A verificação da propriedade por esta camada wfs é uma relíquia do passado. No entanto, não podemos removê-la sem correr o risco de afectar aplicações OL que dependam dela. Portanto, estamos a torná-la obsoleta -- a verificação minZoomLevel será removida na versão 3.0. Em vez dela, por favor, use as opções de resolução min/max descritas aqui: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transacção WFS: SUCESSO ${response}",'commitFailed':"Transacção WFS: FALHOU ${response}",'googleWarning':"A Camada Google não foi correctamente carregada.\x3cbr\x3e\x3cbr\x3ePara deixar de receber esta mensagem, seleccione uma nova Camada-Base no \'\'switcher\'\' de camadas no canto superior direito.\x3cbr\x3e\x3cbr\x3eProvavelmente, isto acontece porque o \'\'script\'\' da biblioteca do Google Maps não foi incluído ou não contém a chave API correcta para o seu sítio.\x3cbr\x3e\x3cbr\x3eProgramadores: Para ajuda sobre como solucionar o problema \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eclique aqui\x3c/a\x3e .",'getLayerWarning':"A camada ${layerType} não foi correctamente carregada.\x3cbr\x3e\x3cbr\x3ePara desactivar esta mensagem, seleccione uma nova Camada-Base no \'\'switcher\'\' de camadas no canto superior direito.\x3cbr\x3e\x3cbr\x3eProvavelmente, isto acontece porque o \'\'script\'\' da biblioteca ${layerLib} não foi incluído correctamente.\x3cbr\x3e\x3cbr\x3eProgramadores: Para ajuda sobre como solucionar o problema \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eclique aqui\x3c/a\x3e .",'scale':"Escala = 1 : ${scaleDenom}",'W':"O",'E':"E",'N':"N",'S':"S",'layerAlreadyAdded':"Você tentou adicionar a camada: ${layerName} ao mapa, mas ela já tinha sido adicionada antes",'reprojectDeprecated':"Está usando a opção \'reproject\' na camada ${layerName}. Esta opção é obsoleta: foi concebida para permitir a apresentação de dados sobre mapas-base comerciais, mas esta funcionalidade é agora suportada pelo Mercator Esférico. Mais informação está disponível em http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Este método foi declarado obsoleto e será removido na versão 3.0. Por favor, use ${newMethod} em vez disso.",'boundsAddError':"Você deve passar tanto o valor x como o y à função de adição.",'lonlatAddError':"Você deve passar tanto o valor lon como o lat à função de adição.",'pixelAddError':"Você deve passar tanto o valor x como o y à função de adição.",'unsupportedGeometryType':"Tipo de geometria não suportado: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition falhou: o elemento com o id ${elemId} poderá estar mal-posicionado.",'filterEvaluateNotImplemented':"avaliar não está implementado para este tipo de filtro."});OpenLayers.Lang["ru"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Необработанный запрос вернул ${statusText}",'permalink':"Постоянная ссылка",'overlays':"Слои",'baseLayer':"Основной слой",'sameProjection':"Обзорная карта работает только тогда, когда имеет ту же проекцию, что и основная",'readNotImplemented':"Чтение не реализовано.",'writeNotImplemented':"Запись не реализована.",'noFID':"Невозможно обновить объект, для которого нет FID.",'errorLoadingGML':"Ошибка при загрузке файла GML ${url}",'browserNotSupported':"Ваш браузер не поддерживает векторную графику. На данный момент поддерживаются:\n${renderers}",'componentShouldBe':"addFeatures: компонент должен быть ${geomType}",'getFeatureError':"getFeatureFromEvent вызван для слоя без рендерера. Обычно это говорит о том, что вы уничтожили слой, но оставили связанный с ним обработчик.",'minZoomLevelError':"Свойство minZoomLevel предназначено только для использования со слоями, являющимися потомками FixedZoomLevels. То, что этот WFS-слой проверяется на minZoomLevel — реликт прошлого. Однако мы не можем удалить эту функцию, так как, возможно, от неё зависят некоторые основанные на OpenLayers приложения. Функция объявлена устаревшей — проверка minZoomLevel будет удалена в 3.0. Пожалуйста, используйте вместо неё настройку мин/макс разрешения, описанную здесь: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Транзакция WFS: УСПЕШНО ${response}",'commitFailed':"Транзакция WFS: ОШИБКА ${response}",'googleWarning':"Слой Google не удалось нормально загрузить.\x3cbr\x3e\x3cbr\x3eЧтобы избавиться от этого сообщения, выбите другой основной слой в переключателе в правом верхнем углу.\x3cbr\x3e\x3cbr\x3eСкорее всего, причина в том, что библиотека Google Maps не была включена или не содержит корректного API-ключа для вашего сайта.\x3cbr\x3e\x3cbr\x3eРазработчикам: чтобы узнать, как сделать, чтобы всё заработало, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eщёлкните тут\x3c/a\x3e",'getLayerWarning':"Слой ${layerType} не удалось нормально загрузить. \x3cbr\x3e\x3cbr\x3eЧтобы избавиться от этого сообщения, выбите другой основной слой в переключателе в правом верхнем углу.\x3cbr\x3e\x3cbr\x3eСкорее всего, причина в том, что библиотека ${layerLib} не была включена или была включена некорректно.\x3cbr\x3e\x3cbr\x3eРазработчикам: чтобы узнать, как сделать, чтобы всё заработало, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eщёлкните тут\x3c/a\x3e",'scale':"Масштаб = 1 : ${scaleDenom}",'W':"З",'E':"В",'N':"С",'S':"Ю",'layerAlreadyAdded':"Вы попытались добавить слой «${layerName}» на карту, но он уже был добавлен",'reprojectDeprecated':"Вы используете опцию \'reproject\' для слоя ${layerName}. Эта опция является устаревшей: ее использование предполагалось для поддержки показа данных поверх коммерческих базовых карт, но теперь этот функционал несёт встроенная поддержка сферической проекции Меркатора. Больше сведений доступно на http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Этот метод считается устаревшим и будет удалён в версии 3.0. Пожалуйста, пользуйтесь ${newMethod}.",'boundsAddError':"Функции add надо передавать оба значения, x и y.",'lonlatAddError':"Функции add надо передавать оба значения, lon и lat.",'pixelAddError':"Функции add надо передавать оба значения, x и y.",'unsupportedGeometryType':"Неподдерживаемый тип геометрии: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: элемент с id ${elemId} может находиться не в нужном месте.",'filterEvaluateNotImplemented':"evaluate не реализовано для фильтра данного типа."});OpenLayers.Lang["sk"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Neobslúžené požiadavky vracajú ${statusText}",'permalink':"Trvalý odkaz",'overlays':"Prekrytia",'baseLayer':"Základná vrstva",'sameProjection':"Prehľadová mapka funguje iba vtedy, keď je v rovnakej projekcii ako hlavná mapa",'readNotImplemented':"Čítanie nie je implementované.",'writeNotImplemented':"Zápis nie je implementovaný.",'noFID':"Nie je možné aktualizovať vlastnosť, pre ktorú neexistuje FID.",'errorLoadingGML':"Chyba pri načítaní súboru GML ${url}",'browserNotSupported':"Váš prehliadač nepodporuje vykresľovanie vektorov. Momentálne podporované vykresľovače sú:\n${renderers}",'componentShouldBe':"addFeatures: komponent by mal byť ${geomType}",'getFeatureError':"getFeatureFromEvent bola zavolaná na vrstve bez vykresľovača. To zvyčajne znamená, že ste odstránili vrstvu, ale nie niektorú z obslúh, ktorá je s ňou asociovaná.",'minZoomLevelError':"Vlastnosť minZoomLevel je určený iba na použitie s vrstvami odvodenými od FixedZoomLevels. To, že táto wfs vrstva kontroluje minZoomLevel je pozostatok z minulosti. Nemôžeme ho však odstrániť, aby sme sa vyhli možnému porušeniu aplikácií založených na Open Layers, ktoré na tomto môže závisieť. Preto ho označujeme ako zavrhovaný - dolu uvedená kontrola minZoomLevel bude odstránená vo verzii 3.0. Použite prosím namiesto toho kontrolu min./max. rozlíšenia podľa tu uvedeného popisu: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transakcia WFS: ÚSPEŠNÁ ${response}",'commitFailed':"Transakcia WFS: ZLYHALA ${response}",'googleWarning':"Vrstvu Google nebolo možné správne načítať.\x3cbr\x3e\x3cbr\x3eAby ste sa tejto správy zbavili vyberte novú BaseLayer v prepínači vrstiev v pravom hornom rohu.\x3cbr\x3e\x3cbr\x3eToto sa stalo pravdepodobne preto, že skript knižnice Google Maps buď nebol načítaný alebo neobsahuje správny kľúč API pre vašu lokalitu.\x3cbr\x3e\x3cbr\x3eVývojári: Tu môžete získať \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3epomoc so sfunkčnením\x3c/a\x3e",'getLayerWarning':"Vrstvu ${layerType} nebolo možné správne načítať.\x3cbr\x3e\x3cbr\x3eAby ste sa tejto správy zbavili vyberte novú BaseLayer v prepínači vrstiev v pravom hornom rohu.\x3cbr\x3e\x3cbr\x3eToto sa stalo pravdepodobne preto, že skript knižnice ${layerType} buď nebol načítaný alebo neobsahuje správny kľúč API pre vašu lokalitu.\x3cbr\x3e\x3cbr\x3eVývojári: Tu môžete získať \x3ca href=\'http://trac.openlayers.org/wiki/${layerType}\' target=\'_blank\'\x3epomoc so sfunkčnením\x3c/a\x3e",'scale':"Mierka = 1 : ${scaleDenom}",'layerAlreadyAdded':"Pokúsili ste sa do mapy pridať vrstvu ${layerName}, ale tá už bola pridaná",'reprojectDeprecated':"Používate voľby „reproject“ vrstvy ${layerType}. Táto voľba je zzavrhovaná: jej použitie bolo navrhnuté na podporu zobrazovania údajov nad komerčnými základovými mapami, ale túto funkcionalitu je teraz možné dosiahnuť pomocou Spherical Mercator. Ďalšie informácie získate na stránke http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Táto metóda je zavrhovaná a bude odstránená vo verzii 3.0. Použite prosím namiesto nej metódu ${newMethod}.",'boundsAddError':"Sčítacej funkcii musíte dať hodnoty x aj y.",'lonlatAddError':"Sčítacej funkcii musíte dať hodnoty lon (zem. dĺžka) aj lat (zem. šírka).",'pixelAddError':"Sčítacej funkcii musíte dať hodnoty x aj y.",'unsupportedGeometryType':"Nepodporovaný typ geometrie: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition zlyhalo: prvok s id ${elemId} môže byť zle umiestnený.",'filterEvaluateNotImplemented':"evaluate nie je implementovaný pre tento typ filtra"});OpenLayers.Lang["sv"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Ej hanterad fråga retur ${statusText}",'permalink':"Permalänk",'overlays':"Kartlager",'baseLayer':"Bakgrundskarta",'sameProjection':"Översiktskartan fungerar endast när den har samma projektion som huvudkartan",'readNotImplemented':"Läsning ej implementerad.",'writeNotImplemented':"Skrivning ej implementerad.",'noFID':"Kan ej uppdatera feature (objekt) för vilket FID saknas.",'errorLoadingGML':"Fel i laddning av GML-fil ${url}",'browserNotSupported':"Din webbläsare stöder inte vektorvisning. För närvarande stöds följande visning:\n${renderers}",'componentShouldBe':"addFeatures : komponenten skall vara en ${geomType}",'getFeatureError':"getFeatureFromEvent anropad för lager utan utritning. Detta betyder oftast att man raderat ett lager, men inte en hanterare som är knuten till lagret.",'minZoomLevelError':"Egenskapen minZoomLevel är endast avsedd att användas med lager med FixedZoomLevels. Att detta WFS-lager kontrollerar minZoomLevel är en relik från äldre versioner. Vi kan dock inte ta bort det utan att riskera att OL-baserade tillämpningar som använder detta slutar fungera. Därför är det satt som deprecated, minZoomLevel kommer att tas bort i version 3.0. Använd i stället inställning av min/max resolution som beskrivs här: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS-transaktion: LYCKADES ${response}",'commitFailed':"WFS-transaktion: MISSLYCKADES ${response}",'googleWarning':"Google-lagret kunde inte laddas korrekt.\x3cbr\x3e\x3cbr\x3eFör att slippa detta meddelande, välj en annan bakgrundskarta i lagerväljaren i övre högra hörnet.\x3cbr\x3e\x3cbr\x3eSannolikt beror felet på att Google Maps-biblioteket inte är inkluderat på webbsidan eller på att sidan inte anger korrekt API-nyckel för webbplatsen.\x3cbr\x3e\x3cbr\x3eUtvecklare: hjälp för att åtgärda detta, \x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eklicka här\x3c/a\x3e.",'getLayerWarning':"${layerType}-lagret kunde inte laddas korrekt.\x3cbr\x3e\x3cbr\x3eFör att slippa detta meddelande, välj en annan bakgrundskarta i lagerväljaren i övre högra hörnet.\x3cbr\x3e\x3cbr\x3eSannolikt beror felet på att ${layerLib}-biblioteket inte är inkluderat på webbsidan.\x3cbr\x3e\x3cbr\x3eUtvecklare: hjälp för att åtgärda detta, \x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eklicka här\x3c/a\x3e.",'scale':"\x3cstrong\x3eSkala\x3c/strong\x3e 1 : ${scaleDenom}",'layerAlreadyAdded':"Du försökte lägga till lagret: ${layerName} på kartan, men det har lagts till tidigare",'reprojectDeprecated':"Du använder inställningen \'reproject\' på lagret ${layerName}. Denna inställning markerad som deprecated: den var avsedd att användas för att stödja visning av kartdata på kommersiella bakgrundskartor, men nu bör man i stället använda Spherical Mercator-stöd för den funktionaliteten. Mer information finns på http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Denna metod är markerad som deprecated och kommer att tas bort i 3.0. Använd ${newMethod} i stället.",'boundsAddError':"Du måste skicka både x- och y-värde till funktionen add.",'lonlatAddError':"Du måste skicka både lon- och lat-värde till funktionen add.",'pixelAddError':"Du måste skicka både x- och y-värde till funktionen add.",'unsupportedGeometryType':"Stöd saknas för geometritypen: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition misslyckades: elementet med id ${elemId} kan placeras fel.",'filterEvaluateNotImplemented':"evaluering har ej implementerats för denna typ av filter."});OpenLayers.Lang["te"]=OpenLayers.Util.applyDefaults({'permalink':"స్థిరలింకు",'W':"ప",'E':"తూ",'N':"ఉ",'S':"ద"});OpenLayers.Lang["vi"]=OpenLayers.Util.applyDefaults({'unhandledRequest':"Không xử lý được phản hồi ${statusText} cho yêu cầu",'permalink':"Liên kết thường trực",'overlays':"Lấp bản đồ",'baseLayer':"Lớp nền",'sameProjection':"Bản đồ toàn cảnh chỉ hoạt động khi cùng phép chiếu với bản đồ chính",'readNotImplemented':"Chưa hỗ trợ chức năng đọc.",'writeNotImplemented':"Chưa hỗ trợ chức năng viết.",'noFID':"Không thể cập nhật tính năng thiếu FID.",'errorLoadingGML':"Lỗi tải tập tin GML tại ${url}",'browserNotSupported':"Trình duyệt của bạn không hỗ trợ chức năng vẽ bằng vectơ. Hiện hỗ trợ các bộ kết xuất:\n${renderers}",'componentShouldBe':"addFeatures: bộ phận cần phải là ${geomType}",'getFeatureError':"getFeatureFromEvent được gọi từ lớp không có bộ kết xuất. Thường thì có lẽ lớp bị xóa nhưng một phần xử lý của nó vẫn còn.",'minZoomLevelError':"Chỉ nên sử dụng thuộc tính minZoomLevel với các lớp FixedZoomLevels-descendent. Việc lớp wfs này tìm cho minZoomLevel là di tích còn lại từ xưa. Tuy nhiên, nếu chúng tôi dời nó thì sẽ vỡ các chương trình OpenLayers mà dựa trên nó. Bởi vậy chúng tôi phản đối sử dụng nó\x26nbsp;– bước tìm cho minZoomLevel sẽ được dời vào phiên bản 3.0. Xin sử dụng thiết lập độ phân tích tối thiểu / tối đa thay thế, theo hướng dẫn này: http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Giao dịch WFS: THÀNH CÔNG ${response}",'commitFailed':"Giao dịch WFS: THẤT BẠI ${response}",'googleWarning':"Không thể tải lớp Google đúng đắn.\x3cbr\x3e\x3cbr\x3eĐể tránh thông báo này lần sau, hãy chọn BaseLayer mới dùng điều khiển chọn lớp ở góc trên phải.\x3cbr\x3e\x3cbr\x3eChắc script thư viện Google Maps hoặc không được bao gồm hoặc không chứa khóa API hợp với website của bạn.\x3cbr\x3e\x3cbr\x3e\x3ca href=\'http://trac.openlayers.org/wiki/Google\' target=\'_blank\'\x3eTrợ giúp về tính năng này\x3c/a\x3e cho người phát triển.",'getLayerWarning':"Không thể tải lớp ${layerType} đúng đắn.\x3cbr\x3e\x3cbr\x3eĐể tránh thông báo này lần sau, hãy chọn BaseLayer mới dùng điều khiển chọn lớp ở góc trên phải.\x3cbr\x3e\x3cbr\x3eChắc script thư viện ${layerLib} không được bao gồm đúng kiểu.\x3cbr\x3e\x3cbr\x3e\x3ca href=\'http://trac.openlayers.org/wiki/${layerLib}\' target=\'_blank\'\x3eTrợ giúp về tính năng này\x3c/a\x3e cho người phát triển.",'scale':"Tỷ lệ = 1 : ${scaleDenom}",'W':"T",'E':"Đ",'N':"B",'S':"N",'layerAlreadyAdded':"Bạn muốn thêm lớp ${layerName} vào bản đồ, nhưng lớp này đã được thêm",'reprojectDeprecated':"Bạn đang áp dụng chế độ “reproject” vào lớp ${layerName}. Chế độ này đã bị phản đối: nó có mục đích hỗ trợ lấp dữ liệu trên các nền bản đồ thương mại; nên thực hiện hiệu ứng đó dùng tính năng Mercator Hình cầu. Có sẵn thêm chi tiết tại http://trac.openlayers.org/wiki/SphericalMercator .",'methodDeprecated':"Phương thức này đã bị phản đối và sẽ bị dời vào phiên bản 3.0. Xin hãy sử dụng ${newMethod} thay thế.",'boundsAddError':"Cần phải cho cả giá trị x và y vào hàm add.",'lonlatAddError':"Cần phải cho cả giá trị lon và lat vào hàm add.",'pixelAddError':"Cần phải cho cả giá trị x và y vào hàm add.",'unsupportedGeometryType':"Không hỗ trợ kiểu địa lý: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition bị thất bại: nguyên tố với ID ${elemId} có thể ở chỗ sai.",'filterEvaluateNotImplemented':"chưa hỗ trợ evaluate cho loại bộ lọc này."});OpenLayers.Lang["zh-CN"]={'unhandledRequest':"未处理的请求,返回值为 ${statusText}",'permalink':"永久链接",'overlays':"叠加层",'baseLayer':"基础图层",'sameProjection':"鹰眼地图只有在和主地图使用相同的投影的时候才能正常共工作",'readNotImplemented':"读取功能没有实现。",'writeNotImplemented':"写入功能没有实现。",'noFID':"无法更新feature,缺少FID。",'errorLoadingGML':"加载GML文件 ${url} 出现错误。",'browserNotSupported':"你使用的浏览器不支持矢量渲染。当前支持的渲染方式包括:\n${renderers}",'componentShouldBe':"addFeatures : 组件类型应该是 ${geomType}",'getFeatureError':"getFeatureFromEvent方法在一个没有渲染器的图层上被调用。 这通常意味着您"+"销毁了一个图层,但并未销毁其关联的handler。",'minZoomLevelError':"minZoomLevel属性仅适合用于"+"使用了固定缩放级别的图层。这个 "+"wfs 图层检查 minZoomLevel 是过去遗留下来的。"+"然而,我们不能移除它,"+"而破坏依赖于它的基于OL的应用程序。"+"因此,我们废除了它 -- minZoomLevel "+"将会在3.0中被移除。请改用 "+"min/max resolution 设置,参考:"+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: 成功。 ${response}",'commitFailed':"WFS Transaction: 失败。 ${response}",'googleWarning':"Google图层不能正确加载。<br><br>"+"要消除这个信息,请在右上角的"+"图层控制面板中选择其他的基础图层。<br><br>"+"这种情况很可能是没有正确的包含Google地图脚本库,"+"或者是没有包含在你的站点上"+"使用的正确的Google Maps API密匙。<br><br>"+"开发者:获取使其正确工作的帮助信息,"+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>点击这里</a>",'getLayerWarning':"${layerType} 图层不能正确加载。<br><br>"+"要消除这个信息,请在右上角的"+"图层控制面板中选择其他的基础图层。<br><br>"+"这种情况很可能是没有正确的包含"+"${layerLib} 脚本库。<br><br>"+"开发者:获取使其正确工作的帮助信息,"+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>点击这里</a>",'scale':"比例尺 = 1 : ${scaleDenom}",'layerAlreadyAdded':"你尝试添加图层: ${layerName} 到地图中,但是它之前就已经被添加。",'reprojectDeprecated':"你正在使用 ${layerName} 图层上的'reproject'选项。"+"这个选项已经不再使用:"+"它是被设计用来支持显示商业的地图数据,"+"不过现在该功能可以通过使用Spherical Mercator来实现。"+"更多信息可以参阅"+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"该方法已经不再被支持,并且将在3.0中被移除。"+"请使用 ${newMethod} 方法来替代。",'boundsAddError':"您必须传递 x 和 y 两个参数值到 add 方法。",'lonlatAddError':"您必须传递 lon 和 lat 两个参数值到 add 方法。",'pixelAddError':"您必须传递 x and y 两个参数值到 add 方法。",'unsupportedGeometryType':"不支持的几何体类型: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition 失败:id 为 ${elemId} 的元素可能被错置。",'end':''};OpenLayers.Lang["zh-TW"]={'unhandledRequest':"未處理的請求,傳回值為 ${statusText}。",'permalink':"永久連結",'overlays':"額外圖層",'baseLayer':"基礎圖層",'sameProjection':"地圖縮覽(OverviewMap)只能在跟主地圖相同投影時起作用。",'readNotImplemented':"沒有實作讀取的功能。",'writeNotImplemented':"沒有實作寫入的功能。",'noFID':"因為沒有 FID 所以無法更新 feature。",'errorLoadingGML':"讀取GML檔案 ${url} 錯誤。",'browserNotSupported':"您的瀏覽器未支援向量渲染. 目前支援的渲染方式是:\n${renderers}",'componentShouldBe':"addFeatures : 元件應該為 ${geomType}",'getFeatureError':"getFeatureFromEvent 在一個沒有被渲染的圖層裡被呼叫。這通常意味著您 "+"摧毀了一個圖層,但並未摧毀相關的handler。",'minZoomLevelError':"minZoomLevel 屬性僅適合用在 "+"FixedZoomLevels-descendent 類型的圖層. 這個"+"wfs layer 的 minZoomLevel 是過去所遺留下來的,"+"然而我們不能移除它而不讓它將"+"過去的程式相容性給破壞掉。"+"因此我們將會迴避使用它 -- minZoomLevel "+"會在3.0被移除,請改"+"用在這邊描述的 min/max resolution 設定: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: 成功 ${response}",'commitFailed':"WFS Transaction: 失敗 ${response}",'googleWarning':"The Google Layer 圖層無法被正確的載入。<br><br>"+"要迴避這個訊息, 請在右上角的圖層改變器裡,"+"選一個新的基礎圖層。<br><br>"+"很有可能是因為 Google Maps 的函式庫"+"腳本沒有被正確的置入,或沒有包含 "+"您網站上正確的 API key <br><br>"+"開發者: 要幫助這個行為正確完成,"+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>請按這裡</a>",'getLayerWarning':"${layerType} 圖層無法被正確的載入。<br><br>"+"要迴避這個訊息, 請在右上角的圖層改變器裡,"+"選一個新的基礎圖層。<br><br>"+"很有可能是因為 ${layerLib} 的函式庫"+"腳本沒有被正確的置入。<br><br>"+"開發者: 要幫助這個行為正確完成,"+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>請按這裡</a>",'scale':"Scale = 1 : ${scaleDenom}",'layerAlreadyAdded':"你試著新增圖層: ${layerName} 到地圖上,但圖層之前就已經被新增了。",'reprojectDeprecated':"你正使用 'reproject' 這個選項 "+"在 ${layerName} 層。這個選項已經不再使用:"+"它的使用原本是設計用來支援在商業地圖上秀出資料,"+"但這個功能已經被"+"Spherical Mercator所取代。更多的資訊可以在 "+"http://trac.openlayers.org/wiki/SphericalMercator 找到。",'methodDeprecated':"這個方法已經不再使用且在3.0將會被移除,"+"請使用 ${newMethod} 來代替。",'boundsAddError':"您必須傳入 x 跟 y 兩者的值進 add 函數。",'lonlatAddError':"您必須傳入 lon 跟 lat 兩者的值進 add 函數。",'pixelAddError':"您必須傳入 x 跟 y 兩者的值進 add 函數。",'unsupportedGeometryType':"未支援的幾何型別: ${geomType}。",'pagePositionFailed':"OpenLayers.Util.pagePosition 失敗: id ${elemId} 的 element 可能被錯置。",'end':''};OpenLayers.Popup.AnchoredBubble=OpenLayers.Class(OpenLayers.Popup.Anchored,{rounded:false,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){this.padding=new OpenLayers.Bounds(0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE,0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE);OpenLayers.Popup.Anchored.prototype.initialize.apply(this,arguments);},draw:function(px){OpenLayers.Popup.Anchored.prototype.draw.apply(this,arguments);this.setContentHTML();this.setBackgroundColor();this.setOpacity();return this.div;},updateRelativePosition:function(){this.setRicoCorners();},setSize:function(contentSize){OpenLayers.Popup.Anchored.prototype.setSize.apply(this,arguments);this.setRicoCorners();},setBackgroundColor:function(color){if(color!=undefined){this.backgroundColor=color;}
 if(this.div!=null){if(this.contentDiv!=null){this.div.style.background="transparent";OpenLayers.Rico.Corner.changeColor(this.groupDiv,this.backgroundColor);}}},setOpacity:function(opacity){OpenLayers.Popup.Anchored.prototype.setOpacity.call(this,opacity);if(this.div!=null){if(this.groupDiv!=null){OpenLayers.Rico.Corner.changeOpacity(this.groupDiv,this.opacity);}}},setBorder:function(border){this.border=0;},setRicoCorners:function(){var corners=this.getCornersToRound(this.relativePosition);var options={corners:corners,color:this.backgroundColor,bgColor:"transparent",blend:false};if(!this.rounded){OpenLayers.Rico.Corner.round(this.div,options);this.rounded=true;}else{OpenLayers.Rico.Corner.reRound(this.groupDiv,options);this.setBackgroundColor();this.setOpacity();}},getCornersToRound:function(){var corners=['tl','tr','bl','br'];var corner=OpenLayers.Bounds.oppositeQuadrant(this.relativePosition);OpenLayers.Util.removeItem(corners,corner);return corners.join(" ");},CLASS_NAME:"OpenLayers.Popup.AnchoredBubble"});OpenLayers.Popup.AnchoredBubble.CORNER_SIZE=5;OpenLayers.Popup.Framed=OpenLayers.Class(OpenLayers.Popup.Anchored,{imageSrc:null,imageSize:null,isAlphaImage:false,positionBlocks:null,blocks:null,fixedRelativePosition:false,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){OpenLayers.Popup.Anchored.prototype.initialize.apply(this,arguments);if(this.fixedRelativePosition){this.updateRelativePosition();this.calculateRelativePosition=function(px){return this.relativePosition;};}
 this.contentDiv.style.position="absolute";this.contentDiv.style.zIndex=1;if(closeBox){this.closeDiv.style.zIndex=1;}
 this.groupDiv.style.position="absolute";this.groupDiv.style.top="0px";this.groupDiv.style.left="0px";this.groupDiv.style.height="100%";this.groupDiv.style.width="100%";},destroy:function(){this.imageSrc=null;this.imageSize=null;this.isAlphaImage=null;this.fixedRelativePosition=false;this.positionBlocks=null;for(var i=0;i<this.blocks.length;i++){var block=this.blocks[i];if(block.image){block.div.removeChild(block.image);}
@@ -477,10 +488,9 @@ var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight
 if(this.supportUse===false){var src=document.getElementById(id);node.firstChild&&node.removeChild(node.firstChild);node.appendChild(src.firstChild.cloneNode(true));node.setAttributeNS(null,"viewBox",src.getAttributeNS(null,"viewBox"));}else{node.setAttributeNS(this.xlinkns,"href","#"+id);}
 node.setAttributeNS(null,"width",size);node.setAttributeNS(null,"height",size);node.setAttributeNS(null,"x",pos.x-offset);node.setAttributeNS(null,"y",pos.y-offset);if(nextSibling){parent.insertBefore(node,nextSibling);}else if(parent){parent.appendChild(node);}}else{node.setAttributeNS(null,"r",style.pointRadius);}
 var rotation=style.rotation;if((rotation!==undefined||node._rotation!==undefined)&&pos){node._rotation=rotation;rotation|=0;if(node.nodeName!=="svg"){node.setAttributeNS(null,"transform","rotate("+rotation+" "+pos.x+" "+
-pos.y+")");}else{var metrics=this.symbolMetrics[id]
-node.firstChild.setAttributeNS(null,"transform","rotate("+style.rotation+" "+metrics[1]+" "+metrics[2]+")");}}}
+pos.y+")");}else{var metrics=this.symbolMetrics[id];node.firstChild.setAttributeNS(null,"transform","rotate("+style.rotation+" "+metrics[1]+" "+metrics[2]+")");}}}
 if(options.isFilled){node.setAttributeNS(null,"fill",style.fillColor);node.setAttributeNS(null,"fill-opacity",style.fillOpacity);}else{node.setAttributeNS(null,"fill","none");}
-if(options.isStroked){node.setAttributeNS(null,"stroke",style.strokeColor);node.setAttributeNS(null,"stroke-opacity",style.strokeOpacity);node.setAttributeNS(null,"stroke-width",style.strokeWidth*widthFactor);node.setAttributeNS(null,"stroke-linecap",style.strokeLinecap);node.setAttributeNS(null,"stroke-linejoin","round");node.setAttributeNS(null,"stroke-dasharray",this.dashStyle(style,widthFactor));}else{node.setAttributeNS(null,"stroke","none");}
+if(options.isStroked){node.setAttributeNS(null,"stroke",style.strokeColor);node.setAttributeNS(null,"stroke-opacity",style.strokeOpacity);node.setAttributeNS(null,"stroke-width",style.strokeWidth*widthFactor);node.setAttributeNS(null,"stroke-linecap",style.strokeLinecap||"round");node.setAttributeNS(null,"stroke-linejoin","round");style.strokeDashstyle&&node.setAttributeNS(null,"stroke-dasharray",this.dashStyle(style,widthFactor));}else{node.setAttributeNS(null,"stroke","none");}
 if(style.pointerEvents){node.setAttributeNS(null,"pointer-events",style.pointerEvents);}
 if(style.cursor!=null){node.setAttributeNS(null,"cursor",style.cursor);}
 return node;},dashStyle:function(style,widthFactor){var w=style.strokeWidth*widthFactor;var str=style.strokeDashstyle;switch(str){case'solid':return'none';case'dot':return[1,4*w].join();case'dash':return[4*w,4*w].join();case'dashdot':return[4*w,4*w,1,4*w].join();case'longdash':return[8*w,4*w].join();case'longdashdot':return[8*w,4*w,1,4*w].join();default:return OpenLayers.String.trim(str).replace(/\s+/g,",");}},createNode:function(type,id){var node=document.createElementNS(this.xmlns,type);if(id){node.setAttributeNS(null,"id",id);}
@@ -496,7 +506,7 @@ if(style.fontSize){label.setAttributeNS(null,"font-size",style.fontSize);}
 if(style.fontWeight){label.setAttributeNS(null,"font-weight",style.fontWeight);}
 if(style.labelSelect===true){label.setAttributeNS(null,"pointer-events","visible");label._featureId=featureId;tspan._featureId=featureId;tspan._geometry=location;tspan._geometryClass=location.CLASS_NAME;}else{label.setAttributeNS(null,"pointer-events","none");}
 var align=style.labelAlign||"cm";label.setAttributeNS(null,"text-anchor",OpenLayers.Renderer.SVG.LABEL_ALIGN[align[0]]||"middle");if(this.isGecko){label.setAttributeNS(null,"dominant-baseline",OpenLayers.Renderer.SVG.LABEL_ALIGN[align[1]]||"central");}else{tspan.setAttributeNS(null,"baseline-shift",OpenLayers.Renderer.SVG.LABEL_VSHIFT[align[1]]||"-35%");}
-tspan.textContent=style.label;if(!label.parentNode){label.appendChild(tspan);this.textRoot.appendChild(label);}},getComponentsString:function(components,separator){var renderCmp=[];var complete=true;var len=components.length;var strings=[];var str,component,j;for(var i=0;i<len;i++){component=components[i];renderCmp.push(component);str=this.getShortString(component);if(str){strings.push(str);}else{if(i>0){if(this.getShortString(components[i-1])){strings.push(this.clipLine(components[i],components[i-1]));}}
+tspan.textContent=style.label;if(!label.parentNode){label.appendChild(tspan);this.textRoot.appendChild(label);}},getComponentsString:function(components,separator){var renderCmp=[];var complete=true;var len=components.length;var strings=[];var str,component;for(var i=0;i<len;i++){component=components[i];renderCmp.push(component);str=this.getShortString(component);if(str){strings.push(str);}else{if(i>0){if(this.getShortString(components[i-1])){strings.push(this.clipLine(components[i],components[i-1]));}}
 if(i<len-1){if(this.getShortString(components[i+1])){strings.push(this.clipLine(components[i],components[i+1]));}}
 complete=false;}}
 return{path:strings.join(separator||","),complete:complete};},clipLine:function(badComponent,goodComponent){if(goodComponent.equals(badComponent)){return"";}
@@ -504,28 +514,27 @@ var resolution=this.getResolution();var maxX=this.MAX_PIXEL-this.translationPara
 if(y2<-maxY||y2>maxY){k=(x2-x1)/(y2-y1);y2=y2<0?-maxY:maxY;x2=x1+(y2-y1)*k;}
 return x2+","+y2;},getShortString:function(point){var resolution=this.getResolution();var x=(point.x/resolution+this.left);var y=(this.top-point.y/resolution);if(this.inValidRange(x,y)){return x+","+y;}else{return false;}},getPosition:function(node){return({x:parseFloat(node.getAttributeNS(null,"cx")),y:parseFloat(node.getAttributeNS(null,"cy"))});},importSymbol:function(graphicName){if(!this.defs){this.defs=this.createDefs();}
 var id=this.container.id+"-"+graphicName;if(document.getElementById(id)!=null){return id;}
-var symbol=OpenLayers.Renderer.symbol[graphicName];if(!symbol){throw new Error(graphicName+' is not a valid symbol name');return;}
-var symbolNode=this.nodeFactory(id,"symbol");var node=this.nodeFactory(null,"polygon");symbolNode.appendChild(node);var symbolExtent=new OpenLayers.Bounds(Number.MAX_VALUE,Number.MAX_VALUE,0,0);var points="";var x,y;for(var i=0;i<symbol.length;i=i+2){x=symbol[i];y=symbol[i+1];symbolExtent.left=Math.min(symbolExtent.left,x);symbolExtent.bottom=Math.min(symbolExtent.bottom,y);symbolExtent.right=Math.max(symbolExtent.right,x);symbolExtent.top=Math.max(symbolExtent.top,y);points+=" "+x+","+y;}
-node.setAttributeNS(null,"points",points);var width=symbolExtent.getWidth();var height=symbolExtent.getHeight();var viewBox=[symbolExtent.left-width,symbolExtent.bottom-height,width*3,height*3];symbolNode.setAttributeNS(null,"viewBox",viewBox.join(" "));this.symbolMetrics[id]=[Math.max(width,height),symbolExtent.getCenterLonLat().lon,symbolExtent.getCenterLonLat().lat];this.defs.appendChild(symbolNode);return symbolNode.id;},getFeatureIdFromEvent:function(evt){var featureId=OpenLayers.Renderer.Elements.prototype.getFeatureIdFromEvent.apply(this,arguments);if(this.supportUse===false&&!featureId){var target=evt.target;featureId=target.parentNode&&target!=this.rendererRoot&&target.parentNode._featureId;}
+var symbol=OpenLayers.Renderer.symbol[graphicName];if(!symbol){throw new Error(graphicName+' is not a valid symbol name');}
+var symbolNode=this.nodeFactory(id,"symbol");var node=this.nodeFactory(null,"polygon");symbolNode.appendChild(node);var symbolExtent=new OpenLayers.Bounds(Number.MAX_VALUE,Number.MAX_VALUE,0,0);var points=[];var x,y;for(var i=0;i<symbol.length;i=i+2){x=symbol[i];y=symbol[i+1];symbolExtent.left=Math.min(symbolExtent.left,x);symbolExtent.bottom=Math.min(symbolExtent.bottom,y);symbolExtent.right=Math.max(symbolExtent.right,x);symbolExtent.top=Math.max(symbolExtent.top,y);points.push(x,",",y);}
+node.setAttributeNS(null,"points",points.join(" "));var width=symbolExtent.getWidth();var height=symbolExtent.getHeight();var viewBox=[symbolExtent.left-width,symbolExtent.bottom-height,width*3,height*3];symbolNode.setAttributeNS(null,"viewBox",viewBox.join(" "));this.symbolMetrics[id]=[Math.max(width,height),symbolExtent.getCenterLonLat().lon,symbolExtent.getCenterLonLat().lat];this.defs.appendChild(symbolNode);return symbolNode.id;},getFeatureIdFromEvent:function(evt){var featureId=OpenLayers.Renderer.Elements.prototype.getFeatureIdFromEvent.apply(this,arguments);if(this.supportUse===false&&!featureId){var target=evt.target;featureId=target.parentNode&&target!=this.rendererRoot&&target.parentNode._featureId;}
 return featureId;},CLASS_NAME:"OpenLayers.Renderer.SVG"});OpenLayers.Renderer.SVG.LABEL_ALIGN={"l":"start","r":"end","b":"bottom","t":"hanging"};OpenLayers.Renderer.SVG.LABEL_VSHIFT={"t":"-70%","b":"0"};OpenLayers.Renderer.VML=OpenLayers.Class(OpenLayers.Renderer.Elements,{xmlns:"urn:schemas-microsoft-com:vml",symbolCache:{},offset:null,initialize:function(containerID){if(!this.supported()){return;}
 if(!document.namespaces.olv){document.namespaces.add("olv",this.xmlns);var style=document.createStyleSheet();var shapes=['shape','rect','oval','fill','stroke','imagedata','group','textbox'];for(var i=0,len=shapes.length;i<len;i++){style.addRule('olv\\:'+shapes[i],"behavior: url(#default#VML); "+"position: absolute; display: inline-block;");}}
 OpenLayers.Renderer.Elements.prototype.initialize.apply(this,arguments);},destroy:function(){OpenLayers.Renderer.Elements.prototype.destroy.apply(this,arguments);},supported:function(){return!!(document.namespaces);},setExtent:function(extent,resolutionChanged){OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,arguments);var resolution=this.getResolution();var left=(extent.left/resolution)|0;var top=(extent.top/resolution-this.size.h)|0;if(resolutionChanged||!this.offset){this.offset={x:left,y:top};left=0;top=0;}else{left=left-this.offset.x;top=top-this.offset.y;}
 var org=left+" "+top;this.root.coordorigin=org;var roots=[this.root,this.vectorRoot,this.textRoot];var root;for(var i=0,len=roots.length;i<len;++i){root=roots[i];var size=this.size.w+" "+this.size.h;root.coordsize=size;}
 this.root.style.flip="y";return true;},setSize:function(size){OpenLayers.Renderer.prototype.setSize.apply(this,arguments);var roots=[this.rendererRoot,this.root,this.vectorRoot,this.textRoot];var w=this.size.w+"px";var h=this.size.h+"px";var root;for(var i=0,len=roots.length;i<len;++i){root=roots[i];root.style.width=w;root.style.height=h;}},getNodeType:function(geometry,style){var nodeType=null;switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":if(style.externalGraphic){nodeType="olv:rect";}else if(this.isComplexSymbol(style.graphicName)){nodeType="olv:shape";}else{nodeType="olv:oval";}
 break;case"OpenLayers.Geometry.Rectangle":nodeType="olv:rect";break;case"OpenLayers.Geometry.LineString":case"OpenLayers.Geometry.LinearRing":case"OpenLayers.Geometry.Polygon":case"OpenLayers.Geometry.Curve":case"OpenLayers.Geometry.Surface":nodeType="olv:shape";break;default:break;}
-return nodeType;},setStyle:function(node,style,options,geometry){style=style||node._style;options=options||node._options;var widthFactor=1;var fillColor=style.fillColor;if(node._geometryClass==="OpenLayers.Geometry.Point"){if(style.externalGraphic){if(style.graphicTitle){node.title=style.graphicTitle;}
+return nodeType;},setStyle:function(node,style,options,geometry){style=style||node._style;options=options||node._options;var fillColor=style.fillColor;if(node._geometryClass==="OpenLayers.Geometry.Point"){if(style.externalGraphic){if(style.graphicTitle){node.title=style.graphicTitle;}
 var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var resolution=this.getResolution();var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);node.style.left=(((geometry.x/resolution-this.offset.x)+xOffset)|0)+"px";node.style.top=(((geometry.y/resolution-this.offset.y)-(yOffset+height))|0)+"px";node.style.width=width+"px";node.style.height=height+"px";node.style.flip="y";fillColor="none";options.isStroked=false;}else if(this.isComplexSymbol(style.graphicName)){var cache=this.importSymbol(style.graphicName);node.path=cache.path;node.coordorigin=cache.left+","+cache.bottom;var size=cache.size;node.coordsize=size+","+size;this.drawCircle(node,geometry,style.pointRadius);node.style.flip="y";}else{this.drawCircle(node,geometry,style.pointRadius);}}
 if(options.isFilled){node.fillcolor=fillColor;}else{node.filled="false";}
 var fills=node.getElementsByTagName("fill");var fill=(fills.length==0)?null:fills[0];if(!options.isFilled){if(fill){node.removeChild(fill);}}else{if(!fill){fill=this.createNode('olv:fill',node.id+"_fill");}
 fill.opacity=style.fillOpacity;if(node._geometryClass==="OpenLayers.Geometry.Point"&&style.externalGraphic){if(style.graphicOpacity){fill.opacity=style.graphicOpacity;}
 fill.src=style.externalGraphic;fill.type="frame";if(!(style.graphicWidth&&style.graphicHeight)){fill.aspect="atmost";}}
 if(fill.parentNode!=node){node.appendChild(fill);}}
-var rotation=style.rotation;if(rotation!==node._rotation){node._rotation=rotation;if(style.externalGraphic){this.graphicRotate(node,xOffset,yOffset,style);fill.opacity=0;}else if(node._geometryClass==="OpenLayers.Geometry.Point"){node.style.rotation=rotation||0;}}
-if(options.isStroked){node.strokecolor=style.strokeColor;node.strokeweight=style.strokeWidth+"px";}else{node.stroked=false;}
-var strokes=node.getElementsByTagName("stroke");var stroke=(strokes.length==0)?null:strokes[0];if(!options.isStroked){if(stroke){node.removeChild(stroke);}}else{if(!stroke){stroke=this.createNode('olv:stroke',node.id+"_stroke");node.appendChild(stroke);}
-stroke.opacity=style.strokeOpacity;stroke.endcap=!style.strokeLinecap||style.strokeLinecap=='butt'?'flat':style.strokeLinecap;stroke.dashstyle=this.dashStyle(style);}
+var rotation=style.rotation;if((rotation!==undefined||node._rotation!==undefined)){node._rotation=rotation;if(style.externalGraphic){this.graphicRotate(node,xOffset,yOffset,style);fill.opacity=0;}else if(node._geometryClass==="OpenLayers.Geometry.Point"){node.style.rotation=rotation||0;}}
+var strokes=node.getElementsByTagName("stroke");var stroke=(strokes.length==0)?null:strokes[0];if(!options.isStroked){node.stroked=false;if(stroke){stroke.on=false;}}else{if(!stroke){stroke=this.createNode('olv:stroke',node.id+"_stroke");node.appendChild(stroke);}
+stroke.on=true;stroke.color=style.strokeColor;stroke.weight=style.strokeWidth+"px";stroke.opacity=style.strokeOpacity;stroke.endcap=style.strokeLinecap=='butt'?'flat':(style.strokeLinecap||'round');if(style.strokeDashstyle){stroke.dashstyle=this.dashStyle(style);}}
 if(style.cursor!="inherit"&&style.cursor!=null){node.style.cursor=style.cursor;}
-return node;},graphicRotate:function(node,xOffset,yOffset,style){var style=style||node._style;var options=node._options;var rotation=style.rotation||0;var aspectRatio,size;if(!(style.graphicWidth&&style.graphicHeight)){var img=new Image();img.onreadystatechange=OpenLayers.Function.bind(function(){if(img.readyState=="complete"||img.readyState=="interactive"){aspectRatio=img.width/img.height;size=Math.max(style.pointRadius*2,style.graphicWidth||0,style.graphicHeight||0);xOffset=xOffset*aspectRatio;style.graphicWidth=size*aspectRatio;style.graphicHeight=size;this.graphicRotate(node,xOffset,yOffset,style);}},this);img.src=style.externalGraphic;return;}else{size=Math.max(style.graphicWidth,style.graphicHeight);aspectRatio=style.graphicWidth/style.graphicHeight;}
+return node;},graphicRotate:function(node,xOffset,yOffset,style){var style=style||node._style;var rotation=style.rotation||0;var aspectRatio,size;if(!(style.graphicWidth&&style.graphicHeight)){var img=new Image();img.onreadystatechange=OpenLayers.Function.bind(function(){if(img.readyState=="complete"||img.readyState=="interactive"){aspectRatio=img.width/img.height;size=Math.max(style.pointRadius*2,style.graphicWidth||0,style.graphicHeight||0);xOffset=xOffset*aspectRatio;style.graphicWidth=size*aspectRatio;style.graphicHeight=size;this.graphicRotate(node,xOffset,yOffset,style);}},this);img.src=style.externalGraphic;return;}else{size=Math.max(style.graphicWidth,style.graphicHeight);aspectRatio=style.graphicWidth/style.graphicHeight;}
 var width=Math.round(style.graphicWidth||size*aspectRatio);var height=Math.round(style.graphicHeight||size);node.style.width=width+"px";node.style.height=height+"px";var image=document.getElementById(node.id+"_image");if(!image){image=this.createNode("olv:imagedata",node.id+"_image");node.appendChild(image);}
 image.style.width=width+"px";image.style.height=height+"px";image.src=style.externalGraphic;image.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader("+"src='', sizingMethod='scale')";var rot=rotation*Math.PI/180;var sintheta=Math.sin(rot);var costheta=Math.cos(rot);var filter="progid:DXImageTransform.Microsoft.Matrix(M11="+costheta+",M12="+(-sintheta)+",M21="+sintheta+",M22="+costheta+",SizingMethod='auto expand')\n";var opacity=style.graphicOpacity||style.fillOpacity;if(opacity&&opacity!=1){filter+="progid:DXImageTransform.Microsoft.BasicImage(opacity="+
 opacity+")\n";}
@@ -546,11 +555,12 @@ if(style.fontSize){textbox.style.fontSize=style.fontSize;}
 if(style.fontWeight){textbox.style.fontWeight=style.fontWeight;}
 if(style.labelSelect===true){label._featureId=featureId;textbox._featureId=featureId;textbox._geometry=location;textbox._geometryClass=location.CLASS_NAME;}
 textbox.style.whiteSpace="nowrap";textbox.inset="1px,0px,0px,0px";if(!label.parentNode){label.appendChild(textbox);this.textRoot.appendChild(label);}
-var align=style.labelAlign||"cm";var xshift=textbox.clientWidth*(OpenLayers.Renderer.VML.LABEL_SHIFT[align[0]||"c"]);var yshift=textbox.clientHeight*(OpenLayers.Renderer.VML.LABEL_SHIFT[align[1]||"m"]);label.style.left=parseInt(label.style.left)-xshift-1+"px";label.style.top=parseInt(label.style.top)+yshift+"px";},drawSurface:function(node,geometry){this.setNodeDimension(node,geometry);var resolution=this.getResolution();var path=[];var comp,x,y;for(var i=0,len=geometry.components.length;i<len;i++){comp=geometry.components[i];x=(comp.x/resolution-this.offset.x)|0;y=(comp.y/resolution-this.offset.y)|0;if((i%3)==0&&(i/3)==0){path.push("m");}else if((i%3)==1){path.push(" c");}
+var align=style.labelAlign||"cm";if(align.length==1){align+="m";}
+var xshift=textbox.clientWidth*(OpenLayers.Renderer.VML.LABEL_SHIFT[align.substr(0,1)]);var yshift=textbox.clientHeight*(OpenLayers.Renderer.VML.LABEL_SHIFT[align.substr(1,1)]);label.style.left=parseInt(label.style.left)-xshift-1+"px";label.style.top=parseInt(label.style.top)+yshift+"px";},drawSurface:function(node,geometry){this.setNodeDimension(node,geometry);var resolution=this.getResolution();var path=[];var comp,x,y;for(var i=0,len=geometry.components.length;i<len;i++){comp=geometry.components[i];x=(comp.x/resolution-this.offset.x)|0;y=(comp.y/resolution-this.offset.y)|0;if((i%3)==0&&(i/3)==0){path.push("m");}else if((i%3)==1){path.push(" c");}
 path.push(" "+x+","+y);}
 path.push(" x e");node.path=path.join("");return node;},moveRoot:function(renderer){var layer=this.map.getLayer(renderer.container.id);if(layer instanceof OpenLayers.Layer.Vector.RootContainer){layer=this.map.getLayer(this.container.id);}
 layer&&layer.renderer.clear();OpenLayers.Renderer.Elements.prototype.moveRoot.apply(this,arguments);layer&&layer.redraw();},importSymbol:function(graphicName){var id=this.container.id+"-"+graphicName;var cache=this.symbolCache[id];if(cache){return cache;}
-var symbol=OpenLayers.Renderer.symbol[graphicName];if(!symbol){throw new Error(graphicName+' is not a valid symbol name');return;}
+var symbol=OpenLayers.Renderer.symbol[graphicName];if(!symbol){throw new Error(graphicName+' is not a valid symbol name');}
 var symbolExtent=new OpenLayers.Bounds(Number.MAX_VALUE,Number.MAX_VALUE,0,0);var pathitems=["m"];for(var i=0;i<symbol.length;i=i+2){var x=symbol[i];var y=symbol[i+1];symbolExtent.left=Math.min(symbolExtent.left,x);symbolExtent.bottom=Math.min(symbolExtent.bottom,y);symbolExtent.right=Math.max(symbolExtent.right,x);symbolExtent.top=Math.max(symbolExtent.top,y);pathitems.push(x);pathitems.push(y);if(i==0){pathitems.push("l");}}
 pathitems.push("x e");var path=pathitems.join(" ");var diff=(symbolExtent.getWidth()-symbolExtent.getHeight())/2;if(diff>0){symbolExtent.bottom=symbolExtent.bottom-diff;symbolExtent.top=symbolExtent.top+diff;}else{symbolExtent.left=symbolExtent.left+diff;symbolExtent.right=symbolExtent.right-diff;}
 cache={path:path,size:symbolExtent.getWidth(),left:symbolExtent.left,bottom:symbolExtent.bottom};this.symbolCache[id]=cache;return cache;},CLASS_NAME:"OpenLayers.Renderer.VML"});OpenLayers.Renderer.VML.LABEL_SHIFT={"l":0,"c":.5,"r":1,"t":0,"m":.5,"b":1};OpenLayers.Tile=OpenLayers.Class({EVENT_TYPES:["loadstart","loadend","reload","unload"],events:null,id:null,layer:null,url:null,bounds:null,size:null,position:null,isLoading:false,initialize:function(layer,position,bounds,url,size){this.layer=layer;this.position=position.clone();this.bounds=bounds.clone();this.url=url;this.size=size.clone();this.id=OpenLayers.Util.createUniqueID("Tile_");this.events=new OpenLayers.Events(this,null,this.EVENT_TYPES);},unload:function(){if(this.isLoading){this.isLoading=false;this.events.triggerEvent("unload");}},destroy:function(){this.layer=null;this.bounds=null;this.size=null;this.position=null;this.events.destroy();this.events=null;},clone:function(obj){if(obj==null){obj=new OpenLayers.Tile(this.layer,this.position,this.bounds,this.url,this.size);}
@@ -574,7 +584,8 @@ req.send(null);return req.responseXML;});if(this.keepData){this.data=node;}
 return node;},write:function(node){var data;if(this.xmldom){data=node.xml;}else{var serializer=new XMLSerializer();if(node.nodeType==1){var doc=document.implementation.createDocument("","",null);if(doc.importNode){node=doc.importNode(node,true);}
 doc.appendChild(node);data=serializer.serializeToString(doc);}else{data=serializer.serializeToString(node);}}
 return data;},createElementNS:function(uri,name){var element;if(this.xmldom){if(typeof uri=="string"){element=this.xmldom.createNode(1,name,uri);}else{element=this.xmldom.createNode(1,name,"");}}else{element=document.createElementNS(uri,name);}
-return element;},createTextNode:function(text){var node;if(this.xmldom){node=this.xmldom.createTextNode(text);}else{node=document.createTextNode(text);}
+return element;},createTextNode:function(text){var node;if(typeof text!=="string"){text=String(text);}
+if(this.xmldom){node=this.xmldom.createTextNode(text);}else{node=document.createTextNode(text);}
 return node;},getElementsByTagNameNS:function(node,uri,name){var elements=[];if(node.getElementsByTagNameNS){elements=node.getElementsByTagNameNS(uri,name);}else{var allNodes=node.getElementsByTagName("*");var potentialNode,fullName;for(var i=0,len=allNodes.length;i<len;++i){potentialNode=allNodes[i];fullName=(potentialNode.prefix)?(potentialNode.prefix+":"+name):name;if((name=="*")||(fullName==potentialNode.nodeName)){if((uri=="*")||(uri==potentialNode.namespaceURI)){elements.push(potentialNode);}}}}
 return elements;},getAttributeNodeNS:function(node,uri,name){var attributeNode=null;if(node.getAttributeNodeNS){attributeNode=node.getAttributeNodeNS(uri,name);}else{var attributes=node.attributes;var potentialNode,fullName;for(var i=0,len=attributes.length;i<len;++i){potentialNode=attributes[i];if(potentialNode.namespaceURI==uri){fullName=(potentialNode.prefix)?(potentialNode.prefix+":"+name):name;if(fullName==potentialNode.nodeName){attributeNode=potentialNode;break;}}}}
 return attributeNode;},getAttributeNS:function(node,uri,name){var attributeValue="";if(node.getAttributeNS){attributeValue=node.getAttributeNS(uri,name)||"";}else{var attributeNode=this.getAttributeNodeNS(node,uri,name);if(attributeNode){attributeValue=attributeNode.nodeValue;}}
@@ -590,8 +601,7 @@ return type;},hasAttributeNS:function(node,uri,name){var found=false;if(node.has
 return found;},setAttributeNS:function(node,uri,name,value){if(node.setAttributeNS){node.setAttributeNS(uri,name,value);}else{if(this.xmldom){if(uri){var attribute=node.ownerDocument.createNode(2,name,uri);attribute.nodeValue=value;node.setAttributeNode(attribute);}else{node.setAttribute(name,value);}}else{throw"setAttributeNS not implemented";}}},createElementNSPlus:function(name,options){options=options||{};var uri=options.uri||this.namespaces[options.prefix];if(!uri){var loc=name.indexOf(":");uri=this.namespaces[name.substring(0,loc)];}
 if(!uri){uri=this.namespaces[this.defaultPrefix];}
 var node=this.createElementNS(uri,name);if(options.attributes){this.setAttributes(node,options.attributes);}
-var value=options.value;if(value!=null){if(typeof value=="boolean"){value=String(value);}
-node.appendChild(this.createTextNode(value));}
+var value=options.value;if(value!=null){node.appendChild(this.createTextNode(value));}
 return node;},setAttributes:function(node,obj){var value,uri;for(var name in obj){if(obj[name]!=null&&obj[name].toString){value=obj[name].toString();uri=this.namespaces[name.substring(0,name.indexOf(":"))]||null;this.setAttributeNS(node,uri,name,value);}}},readNode:function(node,obj){if(!obj){obj={};}
 var group=this.readers[node.namespaceURI?this.namespaceAlias[node.namespaceURI]:this.defaultPrefix];if(group){var local=node.localName||node.nodeName.split(":").pop();var reader=group[local]||group["*"];if(reader){reader.apply(this,[node,obj]);}}
 return obj;},readChildNodes:function(node,obj){if(!obj){obj={};}
@@ -605,8 +615,8 @@ case 4:case 6:case 12:case 10:case 11:sibling=null;break outer;}}
 return sibling||null;},lookupNamespaceURI:function(node,prefix){var uri=null;if(node){if(node.lookupNamespaceURI){uri=node.lookupNamespaceURI(prefix);}else{outer:switch(node.nodeType){case 1:if(node.namespaceURI!==null&&node.prefix===prefix){uri=node.namespaceURI;break outer;}
 var len=node.attributes.length;if(len){var attr;for(var i=0;i<len;++i){attr=node.attributes[i];if(attr.prefix==="xmlns"&&attr.name==="xmlns:"+prefix){uri=attr.value||null;break outer;}else if(attr.name==="xmlns"&&prefix===null){uri=attr.value||null;break outer;}}}
 uri=this.lookupNamespaceURI(node.parentNode,prefix);break outer;case 2:uri=this.lookupNamespaceURI(node.ownerElement,prefix);break outer;case 9:uri=this.lookupNamespaceURI(node.documentElement,prefix);break outer;case 6:case 12:case 10:case 11:break outer;default:uri=this.lookupNamespaceURI(node.parentNode,prefix);break outer;}}}
-return uri;},CLASS_NAME:"OpenLayers.Format.XML"});OpenLayers.Format.XML.CONTENT_TYPE={EMPTY:0,SIMPLE:1,COMPLEX:2,MIXED:3};OpenLayers.Format.XML.lookupNamespaceURI=OpenLayers.Function.bind(OpenLayers.Format.XML.prototype.lookupNamespaceURI,OpenLayers.Format.XML.prototype);OpenLayers.Handler=OpenLayers.Class({id:null,control:null,map:null,keyMask:null,active:false,evt:null,initialize:function(control,callbacks,options){OpenLayers.Util.extend(this,options);this.control=control;this.callbacks=callbacks;if(control.map){this.setMap(control.map);}
-OpenLayers.Util.extend(this,options);this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},setMap:function(map){this.map=map;},checkModifiers:function(evt){if(this.keyMask==null){return true;}
+return uri;},CLASS_NAME:"OpenLayers.Format.XML"});OpenLayers.Format.XML.CONTENT_TYPE={EMPTY:0,SIMPLE:1,COMPLEX:2,MIXED:3};OpenLayers.Format.XML.lookupNamespaceURI=OpenLayers.Function.bind(OpenLayers.Format.XML.prototype.lookupNamespaceURI,OpenLayers.Format.XML.prototype);OpenLayers.Handler=OpenLayers.Class({id:null,control:null,map:null,keyMask:null,active:false,evt:null,initialize:function(control,callbacks,options){OpenLayers.Util.extend(this,options);this.control=control;this.callbacks=callbacks;var map=this.map||control.map;if(map){this.setMap(map);}
+this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},setMap:function(map){this.map=map;},checkModifiers:function(evt){if(this.keyMask==null){return true;}
 var keyModifiers=(evt.shiftKey?OpenLayers.Handler.MOD_SHIFT:0)|(evt.ctrlKey?OpenLayers.Handler.MOD_CTRL:0)|(evt.altKey?OpenLayers.Handler.MOD_ALT:0);return(keyModifiers==this.keyMask);},activate:function(){if(this.active){return false;}
 var events=OpenLayers.Events.prototype.BROWSER_EVENTS;for(var i=0,len=events.length;i<len;i++){if(this[events[i]]){this.register(events[i],this[events[i]]);}}
 this.active=true;return true;},deactivate:function(){if(!this.active){return false;}
@@ -620,7 +630,7 @@ if(addNode){var cssNode=document.createElement('link');cssNode.setAttribute('rel
 if(this.controls==null){if(OpenLayers.Control!=null){this.controls=[new OpenLayers.Control.Navigation(),new OpenLayers.Control.PanZoom(),new OpenLayers.Control.ArgParser(),new OpenLayers.Control.Attribution()];}else{this.controls=[];}}
 for(var i=0,len=this.controls.length;i<len;i++){this.addControlToMap(this.controls[i]);}
 this.popups=[];this.unloadDestroy=OpenLayers.Function.bind(this.destroy,this);OpenLayers.Event.observe(window,'unload',this.unloadDestroy);if(options&&options.layers){this.addLayers(options.layers);if(options.center){this.setCenter(options.center,options.zoom);}}},render:function(div){this.div=OpenLayers.Util.getElement(div);OpenLayers.Element.addClass(this.div,'olMap');this.events.attachToElement(this.div);this.viewPortDiv.parentNode.removeChild(this.viewPortDiv);this.div.appendChild(this.viewPortDiv);this.updateSize();},unloadDestroy:null,updateSizeDestroy:null,destroy:function(){if(!this.unloadDestroy){return false;}
-if(this.panTween&&this.panTween.playing){this.panTween.stop();}
+if(this.panTween){this.panTween.stop();this.panTween=null;}
 OpenLayers.Event.stopObserving(window,'unload',this.unloadDestroy);this.unloadDestroy=null;if(this.updateSizeDestroy){OpenLayers.Event.stopObserving(window,'resize',this.updateSizeDestroy);}else{this.events.unregister("resize",this,this.updateSize);}
 this.paddingForPopups=null;if(this.controls!=null){for(var i=this.controls.length-1;i>=0;--i){this.controls[i].destroy();}
 this.controls=null;}
@@ -704,15 +714,16 @@ return zoom;},zoomTo:function(zoom){if(this.isValidZoomLevel(zoom)){this.setCent
 center=bounds.getCenterLonLat().wrapDateLine(maxExtent);}
 this.setCenter(center,this.getZoomForExtent(bounds,closest));},zoomToMaxExtent:function(options){var restricted=(options)?options.restricted:true;var maxExtent=this.getMaxExtent({'restricted':restricted});this.zoomToExtent(maxExtent);},zoomToScale:function(scale,closest){var res=OpenLayers.Util.getResolutionFromScale(scale,this.baseLayer.units);var size=this.getSize();var w_deg=size.w*res;var h_deg=size.h*res;var center=this.getCenter();var extent=new OpenLayers.Bounds(center.lon-w_deg/2,center.lat-h_deg/2,center.lon+w_deg/2,center.lat+h_deg/2);this.zoomToExtent(extent,closest);},getLonLatFromViewPortPx:function(viewPortPx){var lonlat=null;if(this.baseLayer!=null){lonlat=this.baseLayer.getLonLatFromViewPortPx(viewPortPx);}
 return lonlat;},getViewPortPxFromLonLat:function(lonlat){var px=null;if(this.baseLayer!=null){px=this.baseLayer.getViewPortPxFromLonLat(lonlat);}
-return px;},getLonLatFromPixel:function(px){return this.getLonLatFromViewPortPx(px);},getPixelFromLonLat:function(lonlat){var px=this.getViewPortPxFromLonLat(lonlat);px.x=Math.round(px.x);px.y=Math.round(px.y);return px;},getViewPortPxFromLayerPx:function(layerPx){var viewPortPx=null;if(layerPx!=null){var dX=parseInt(this.layerContainerDiv.style.left);var dY=parseInt(this.layerContainerDiv.style.top);viewPortPx=layerPx.add(dX,dY);}
+return px;},getLonLatFromPixel:function(px){return this.getLonLatFromViewPortPx(px);},getPixelFromLonLat:function(lonlat){var px=this.getViewPortPxFromLonLat(lonlat);px.x=Math.round(px.x);px.y=Math.round(px.y);return px;},getGeodesicPixelSize:function(px){var lonlat=px?this.getLonLatFromPixel(px):(this.getCenter()||new OpenLayers.LonLat(0,0));var res=this.getResolution();var left=lonlat.add(-res/2,0);var right=lonlat.add(res/2,0);var bottom=lonlat.add(0,-res/2);var top=lonlat.add(0,res/2);var dest=new OpenLayers.Projection("EPSG:4326");var source=this.getProjectionObject()||dest;if(!source.equals(dest)){left.transform(source,dest);right.transform(source,dest);bottom.transform(source,dest);top.transform(source,dest);}
+return new OpenLayers.Size(OpenLayers.Util.distVincenty(left,right),OpenLayers.Util.distVincenty(bottom,top));},getViewPortPxFromLayerPx:function(layerPx){var viewPortPx=null;if(layerPx!=null){var dX=parseInt(this.layerContainerDiv.style.left);var dY=parseInt(this.layerContainerDiv.style.top);viewPortPx=layerPx.add(dX,dY);}
 return viewPortPx;},getLayerPxFromViewPortPx:function(viewPortPx){var layerPx=null;if(viewPortPx!=null){var dX=-parseInt(this.layerContainerDiv.style.left);var dY=-parseInt(this.layerContainerDiv.style.top);layerPx=viewPortPx.add(dX,dY);if(isNaN(layerPx.x)||isNaN(layerPx.y)){layerPx=null;}}
 return layerPx;},getLonLatFromLayerPx:function(px){px=this.getViewPortPxFromLayerPx(px);return this.getLonLatFromViewPortPx(px);},getLayerPxFromLonLat:function(lonlat){var px=this.getPixelFromLonLat(lonlat);return this.getLayerPxFromViewPortPx(px);},CLASS_NAME:"OpenLayers.Map"});OpenLayers.Map.TILE_WIDTH=256;OpenLayers.Map.TILE_HEIGHT=256;OpenLayers.Marker=OpenLayers.Class({icon:null,lonlat:null,events:null,map:null,initialize:function(lonlat,icon){this.lonlat=lonlat;var newIcon=(icon)?icon:OpenLayers.Marker.defaultIcon();if(this.icon==null){this.icon=newIcon;}else{this.icon.url=newIcon.url;this.icon.size=newIcon.size;this.icon.offset=newIcon.offset;this.icon.calculateOffset=newIcon.calculateOffset;}
 this.events=new OpenLayers.Events(this,this.icon.imageDiv,null);},destroy:function(){this.erase();this.map=null;this.events.destroy();this.events=null;if(this.icon!=null){this.icon.destroy();this.icon=null;}},draw:function(px){return this.icon.draw(px);},erase:function(){if(this.icon!=null){this.icon.erase();}},moveTo:function(px){if((px!=null)&&(this.icon!=null)){this.icon.moveTo(px);}
 this.lonlat=this.map.getLonLatFromLayerPx(px);},isDrawn:function(){var isDrawn=(this.icon&&this.icon.isDrawn());return isDrawn;},onScreen:function(){var onScreen=false;if(this.map){var screenBounds=this.map.getExtent();onScreen=screenBounds.containsLonLat(this.lonlat);}
-return onScreen;},inflate:function(inflate){if(this.icon){var newSize=new OpenLayers.Size(this.icon.size.w*inflate,this.icon.size.h*inflate);this.icon.setSize(newSize);}},setOpacity:function(opacity){this.icon.setOpacity(opacity);},setUrl:function(url){this.icon.setUrl(url);},display:function(display){this.icon.display(display);},CLASS_NAME:"OpenLayers.Marker"});OpenLayers.Marker.defaultIcon=function(){var url=OpenLayers.Util.getImagesLocation()+"marker.png";var size=new OpenLayers.Size(21,25);var calculateOffset=function(size){return new OpenLayers.Pixel(-(size.w/2),-size.h);};return new OpenLayers.Icon(url,size,null,calculateOffset);};OpenLayers.Popup.FramedCloud=OpenLayers.Class(OpenLayers.Popup.Framed,{contentDisplayClass:"olFramedCloudPopupContent",autoSize:true,panMapIfOutOfView:true,imageSize:new OpenLayers.Size(676,736),isAlphaImage:false,fixedRelativePosition:false,positionBlocks:{"tl":{'offset':new OpenLayers.Pixel(44,0),'padding':new OpenLayers.Bounds(8,40,8,9),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,51,22,0),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,50,0,0),position:new OpenLayers.Pixel(-638,0)},{size:new OpenLayers.Size('auto',19),anchor:new OpenLayers.Bounds(0,32,22,null),position:new OpenLayers.Pixel(0,-631)},{size:new OpenLayers.Size(22,18),anchor:new OpenLayers.Bounds(null,32,0,null),position:new OpenLayers.Pixel(-638,-632)},{size:new OpenLayers.Size(81,35),anchor:new OpenLayers.Bounds(null,0,0,null),position:new OpenLayers.Pixel(0,-688)}]},"tr":{'offset':new OpenLayers.Pixel(-45,0),'padding':new OpenLayers.Bounds(8,40,8,9),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,51,22,0),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,50,0,0),position:new OpenLayers.Pixel(-638,0)},{size:new OpenLayers.Size('auto',19),anchor:new OpenLayers.Bounds(0,32,22,null),position:new OpenLayers.Pixel(0,-631)},{size:new OpenLayers.Size(22,19),anchor:new OpenLayers.Bounds(null,32,0,null),position:new OpenLayers.Pixel(-638,-631)},{size:new OpenLayers.Size(81,35),anchor:new OpenLayers.Bounds(0,0,null,null),position:new OpenLayers.Pixel(-215,-687)}]},"bl":{'offset':new OpenLayers.Pixel(45,0),'padding':new OpenLayers.Bounds(8,9,8,40),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,21,22,32),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,21,0,32),position:new OpenLayers.Pixel(-638,0)},{size:new OpenLayers.Size('auto',21),anchor:new OpenLayers.Bounds(0,0,22,null),position:new OpenLayers.Pixel(0,-629)},{size:new OpenLayers.Size(22,21),anchor:new OpenLayers.Bounds(null,0,0,null),position:new OpenLayers.Pixel(-638,-629)},{size:new OpenLayers.Size(81,33),anchor:new OpenLayers.Bounds(null,null,0,0),position:new OpenLayers.Pixel(-101,-674)}]},"br":{'offset':new OpenLayers.Pixel(-44,0),'padding':new OpenLayers.Bounds(8,9,8,40),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,21,22,32),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,21,0,32),position:new OpenLayers.Pixel(-638,0)},{size:new OpenLayers.Size('auto',21),anchor:new OpenLayers.Bounds(0,0,22,null),position:new OpenLayers.Pixel(0,-629)},{size:new OpenLayers.Size(22,21),anchor:new OpenLayers.Bounds(null,0,0,null),position:new OpenLayers.Pixel(-638,-629)},{size:new OpenLayers.Size(81,33),anchor:new OpenLayers.Bounds(0,null,null,0),position:new OpenLayers.Pixel(-311,-674)}]}},minSize:new OpenLayers.Size(105,10),maxSize:new OpenLayers.Size(600,660),initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){this.imageSrc=OpenLayers.Util.getImagesLocation()+'cloud-popup-relative.png';OpenLayers.Popup.Framed.prototype.initialize.apply(this,arguments);this.contentDiv.className=this.contentDisplayClass;},destroy:function(){OpenLayers.Popup.Framed.prototype.destroy.apply(this,arguments);},CLASS_NAME:"OpenLayers.Popup.FramedCloud"});OpenLayers.Request={DEFAULT_CONFIG:{method:"GET",url:window.location.href,async:true,user:undefined,password:undefined,params:null,proxy:OpenLayers.ProxyHost,headers:{},data:null,callback:function(){},success:null,failure:null,scope:null},events:new OpenLayers.Events(this,null,["complete","success","failure"]),issue:function(config){var defaultConfig=OpenLayers.Util.extend(this.DEFAULT_CONFIG,{proxy:OpenLayers.ProxyHost});config=OpenLayers.Util.applyDefaults(config,defaultConfig);var request=new OpenLayers.Request.XMLHttpRequest();var url=config.url;if(config.params){var paramString=OpenLayers.Util.getParameterString(config.params);if(paramString.length>0){var separator=(url.indexOf('?')>-1)?'&':'?';url+=separator+paramString;}}
+return onScreen;},inflate:function(inflate){if(this.icon){var newSize=new OpenLayers.Size(this.icon.size.w*inflate,this.icon.size.h*inflate);this.icon.setSize(newSize);}},setOpacity:function(opacity){this.icon.setOpacity(opacity);},setUrl:function(url){this.icon.setUrl(url);},display:function(display){this.icon.display(display);},CLASS_NAME:"OpenLayers.Marker"});OpenLayers.Marker.defaultIcon=function(){var url=OpenLayers.Util.getImagesLocation()+"marker.png";var size=new OpenLayers.Size(21,25);var calculateOffset=function(size){return new OpenLayers.Pixel(-(size.w/2),-size.h);};return new OpenLayers.Icon(url,size,null,calculateOffset);};OpenLayers.Popup.FramedCloud=OpenLayers.Class(OpenLayers.Popup.Framed,{contentDisplayClass:"olFramedCloudPopupContent",autoSize:true,panMapIfOutOfView:true,imageSize:new OpenLayers.Size(1276,736),isAlphaImage:false,fixedRelativePosition:false,positionBlocks:{"tl":{'offset':new OpenLayers.Pixel(44,0),'padding':new OpenLayers.Bounds(8,40,8,9),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,51,22,0),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,50,0,0),position:new OpenLayers.Pixel(-1238,0)},{size:new OpenLayers.Size('auto',19),anchor:new OpenLayers.Bounds(0,32,22,null),position:new OpenLayers.Pixel(0,-631)},{size:new OpenLayers.Size(22,18),anchor:new OpenLayers.Bounds(null,32,0,null),position:new OpenLayers.Pixel(-1238,-632)},{size:new OpenLayers.Size(81,35),anchor:new OpenLayers.Bounds(null,0,0,null),position:new OpenLayers.Pixel(0,-688)}]},"tr":{'offset':new OpenLayers.Pixel(-45,0),'padding':new OpenLayers.Bounds(8,40,8,9),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,51,22,0),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,50,0,0),position:new OpenLayers.Pixel(-1238,0)},{size:new OpenLayers.Size('auto',19),anchor:new OpenLayers.Bounds(0,32,22,null),position:new OpenLayers.Pixel(0,-631)},{size:new OpenLayers.Size(22,19),anchor:new OpenLayers.Bounds(null,32,0,null),position:new OpenLayers.Pixel(-1238,-631)},{size:new OpenLayers.Size(81,35),anchor:new OpenLayers.Bounds(0,0,null,null),position:new OpenLayers.Pixel(-215,-687)}]},"bl":{'offset':new OpenLayers.Pixel(45,0),'padding':new OpenLayers.Bounds(8,9,8,40),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,21,22,32),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,21,0,32),position:new OpenLayers.Pixel(-1238,0)},{size:new OpenLayers.Size('auto',21),anchor:new OpenLayers.Bounds(0,0,22,null),position:new OpenLayers.Pixel(0,-629)},{size:new OpenLayers.Size(22,21),anchor:new OpenLayers.Bounds(null,0,0,null),position:new OpenLayers.Pixel(-1238,-629)},{size:new OpenLayers.Size(81,33),anchor:new OpenLayers.Bounds(null,null,0,0),position:new OpenLayers.Pixel(-101,-674)}]},"br":{'offset':new OpenLayers.Pixel(-44,0),'padding':new OpenLayers.Bounds(8,9,8,40),'blocks':[{size:new OpenLayers.Size('auto','auto'),anchor:new OpenLayers.Bounds(0,21,22,32),position:new OpenLayers.Pixel(0,0)},{size:new OpenLayers.Size(22,'auto'),anchor:new OpenLayers.Bounds(null,21,0,32),position:new OpenLayers.Pixel(-1238,0)},{size:new OpenLayers.Size('auto',21),anchor:new OpenLayers.Bounds(0,0,22,null),position:new OpenLayers.Pixel(0,-629)},{size:new OpenLayers.Size(22,21),anchor:new OpenLayers.Bounds(null,0,0,null),position:new OpenLayers.Pixel(-1238,-629)},{size:new OpenLayers.Size(81,33),anchor:new OpenLayers.Bounds(0,null,null,0),position:new OpenLayers.Pixel(-311,-674)}]}},minSize:new OpenLayers.Size(105,10),maxSize:new OpenLayers.Size(1200,660),initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){this.imageSrc=OpenLayers.Util.getImagesLocation()+'cloud-popup-relative.png';OpenLayers.Popup.Framed.prototype.initialize.apply(this,arguments);this.contentDiv.className=this.contentDisplayClass;},destroy:function(){OpenLayers.Popup.Framed.prototype.destroy.apply(this,arguments);},CLASS_NAME:"OpenLayers.Popup.FramedCloud"});OpenLayers.Request={DEFAULT_CONFIG:{method:"GET",url:window.location.href,async:true,user:undefined,password:undefined,params:null,proxy:OpenLayers.ProxyHost,headers:{},data:null,callback:function(){},success:null,failure:null,scope:null},events:new OpenLayers.Events(this,null,["complete","success","failure"]),issue:function(config){var defaultConfig=OpenLayers.Util.extend(this.DEFAULT_CONFIG,{proxy:OpenLayers.ProxyHost});config=OpenLayers.Util.applyDefaults(config,defaultConfig);var request=new OpenLayers.Request.XMLHttpRequest();var url=config.url;if(config.params){var paramString=OpenLayers.Util.getParameterString(config.params);if(paramString.length>0){var separator=(url.indexOf('?')>-1)?'&':'?';url+=separator+paramString;}}
 if(config.proxy&&(url.indexOf("http")==0)){if(typeof config.proxy=="function"){url=config.proxy(url);}else{url=config.proxy+encodeURIComponent(url);}}
 request.open(config.method,url,config.async,config.user,config.password);for(var header in config.headers){request.setRequestHeader(header,config.headers[header]);}
-var events=this.events;var self=this;request.onreadystatechange=function(){if(request.readyState==OpenLayers.Request.XMLHttpRequest.DONE){var proceed=events.triggerEvent("complete",{request:request,config:config,requestUrl:url});if(proceed!==false){self.runCallbacks({request:request,config:config,requestUrl:url});}}};if(config.async===false){request.send(config.data);}else{window.setTimeout(function(){request.send(config.data);},0);}
+var events=this.events;var self=this;request.onreadystatechange=function(){if(request.readyState==OpenLayers.Request.XMLHttpRequest.DONE){var proceed=events.triggerEvent("complete",{request:request,config:config,requestUrl:url});if(proceed!==false){self.runCallbacks({request:request,config:config,requestUrl:url});}}};if(config.async===false){request.send(config.data);}else{window.setTimeout(function(){if(request._aborted!==true){request.send(config.data);}},0);}
 return request;},runCallbacks:function(options){var request=options.request;var config=options.config;var complete=(config.scope)?OpenLayers.Function.bind(config.callback,config.scope):config.callback;var success;if(config.success){success=(config.scope)?OpenLayers.Function.bind(config.success,config.scope):config.success;}
 var failure;if(config.failure){failure=(config.scope)?OpenLayers.Function.bind(config.failure,config.scope):config.failure;}
 complete(request);if(!request.status||(request.status>=200&&request.status<300)){this.events.triggerEvent("success",options);if(success){success(request);}}
@@ -725,7 +736,7 @@ this.imgDiv=null;if((this.frame!=null)&&(this.frame.parentNode==this.layer.div))
 this.frame=null;if(this.backBufferTile){this.backBufferTile.destroy();this.backBufferTile=null;}
 this.layer.events.unregister("loadend",this,this.resetBackBuffer);OpenLayers.Tile.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Tile.Image(this.layer,this.position,this.bounds,this.url,this.size);}
 obj=OpenLayers.Tile.prototype.clone.apply(this,[obj]);obj.imgDiv=null;return obj;},draw:function(){if(this.layer!=this.layer.map.baseLayer&&this.layer.reproject){this.bounds=this.getBoundsFromBaseLayer(this.position);}
-var drawTile=OpenLayers.Tile.prototype.draw.apply(this,arguments);if(OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,this.layer.transitionEffect)!=-1){if(drawTile){if(!this.backBufferTile){this.backBufferTile=this.clone();this.backBufferTile.hide();this.backBufferTile.isBackBuffer=true;this.events.register('loadend',this,this.resetBackBuffer);this.layer.events.register("loadend",this,this.resetBackBuffer);}
+var drawTile=OpenLayers.Tile.prototype.draw.apply(this,arguments);if((OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,this.layer.transitionEffect)!=-1)||this.layer.singleTile){if(drawTile){if(!this.backBufferTile){this.backBufferTile=this.clone();this.backBufferTile.hide();this.backBufferTile.isBackBuffer=true;this.events.register('loadend',this,this.resetBackBuffer);this.layer.events.register("loadend",this,this.resetBackBuffer);}
 this.startTransition();}else{if(this.backBufferTile){this.backBufferTile.clear();}}}else{if(drawTile&&this.isFirstDraw){this.events.register('loadend',this,this.showTile);this.isFirstDraw=false;}}
 if(!drawTile){return false;}
 if(this.isLoading){this.events.triggerEvent("reload");}else{this.isLoading=true;this.events.triggerEvent("loadstart");}
@@ -733,8 +744,8 @@ return this.renderTile();},resetBackBuffer:function(){this.showTile();if(this.ba
 this.backBufferTile.hide();}},renderTile:function(){if(this.imgDiv==null){this.initImgDiv();}
 this.imgDiv.viewRequestID=this.layer.map.viewRequestID;if(this.layer.async){this.layer.getURLasync(this.bounds,this,"url",this.positionImage);}else{if(this.layer.url instanceof Array){this.imgDiv.urls=this.layer.url.slice();}
 this.url=this.layer.getURL(this.bounds);this.positionImage();}
-return true;},positionImage:function(){if(this.layer==null)
-return;OpenLayers.Util.modifyDOMElement(this.frame,null,this.position,this.size);var imageSize=this.layer.getImageSize(this.bounds);if(this.layerAlphaHack){OpenLayers.Util.modifyAlphaImageDiv(this.imgDiv,null,null,imageSize,this.url);}else{OpenLayers.Util.modifyDOMElement(this.imgDiv,null,null,imageSize);this.imgDiv.src=this.url;}},clear:function(){if(this.imgDiv){this.hide();if(OpenLayers.Tile.Image.useBlankTile){this.imgDiv.src=OpenLayers.Util.getImagesLocation()+"blank.gif";}}},initImgDiv:function(){var offset=this.layer.imageOffset;var size=this.layer.getImageSize(this.bounds);if(this.layerAlphaHack){this.imgDiv=OpenLayers.Util.createAlphaImageDiv(null,offset,size,null,"relative",null,null,null,true);}else{this.imgDiv=OpenLayers.Util.createImage(null,offset,size,null,"relative",null,null,true);}
+return true;},positionImage:function(){if(this.layer===null){return;}
+OpenLayers.Util.modifyDOMElement(this.frame,null,this.position,this.size);var imageSize=this.layer.getImageSize(this.bounds);if(this.layerAlphaHack){OpenLayers.Util.modifyAlphaImageDiv(this.imgDiv,null,null,imageSize,this.url);}else{OpenLayers.Util.modifyDOMElement(this.imgDiv,null,null,imageSize);this.imgDiv.src=this.url;}},clear:function(){if(this.imgDiv){this.hide();if(OpenLayers.Tile.Image.useBlankTile){this.imgDiv.src=OpenLayers.Util.getImagesLocation()+"blank.gif";}}},initImgDiv:function(){var offset=this.layer.imageOffset;var size=this.layer.getImageSize(this.bounds);if(this.layerAlphaHack){this.imgDiv=OpenLayers.Util.createAlphaImageDiv(null,offset,size,null,"relative",null,null,null,true);}else{this.imgDiv=OpenLayers.Util.createImage(null,offset,size,null,"relative",null,null,true);}
 this.imgDiv.className='olTileImage';this.frame.style.zIndex=this.isBackBuffer?0:1;this.frame.appendChild(this.imgDiv);this.layer.div.appendChild(this.frame);if(this.layer.opacity!=null){OpenLayers.Util.modifyDOMElement(this.imgDiv,null,null,null,null,null,null,this.layer.opacity);}
 this.imgDiv.map=this.layer.map;var onload=function(){if(this.isLoading){this.isLoading=false;this.events.triggerEvent("loadend");}};if(this.layerAlphaHack){OpenLayers.Event.observe(this.imgDiv.childNodes[0],'load',OpenLayers.Function.bind(onload,this));}else{OpenLayers.Event.observe(this.imgDiv,'load',OpenLayers.Function.bind(onload,this));}
 var onerror=function(){if(this.imgDiv._attempts>OpenLayers.IMAGE_RELOAD_ATTEMPTS){onload.call(this);}};OpenLayers.Event.observe(this.imgDiv,"error",OpenLayers.Function.bind(onerror,this));},checkImgURL:function(){if(this.layer){var loaded=this.layerAlphaHack?this.imgDiv.firstChild.src:this.imgDiv.src;if(!OpenLayers.Util.isEquivalentUrl(loaded,this.url)){this.hide();}}},startTransition:function(){if(!this.backBufferTile||!this.backBufferTile.imgDiv){return;}
@@ -759,8 +770,8 @@ return!this.stopSingle;},passesTolerance:function(evt){var passes=true;if(this.p
 Math.pow(this.down.y-evt.xy.y,2));if(dpx>this.pixelTolerance){passes=false;}}
 return passes;},clearTimer:function(){if(this.timerId!=null){window.clearTimeout(this.timerId);this.timerId=null;}
 if(this.rightclickTimerId!=null){window.clearTimeout(this.rightclickTimerId);this.rightclickTimerId=null;}},delayedCall:function(evt){this.timerId=null;if(evt){this.callback('click',[evt]);}},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.clearTimer();this.down=null;deactivated=true;}
-return deactivated;},CLASS_NAME:"OpenLayers.Handler.Click"});OpenLayers.Handler.Drag=OpenLayers.Class(OpenLayers.Handler,{started:false,stopDown:true,dragging:false,last:null,start:null,oldOnselectstart:null,interval:0,timeoutId:null,documentDrag:false,documentEvents:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);},down:function(evt){},move:function(evt){},up:function(evt){},out:function(evt){},mousedown:function(evt){var propagate=true;this.dragging=false;if(this.checkModifiers(evt)&&OpenLayers.Event.isLeftClick(evt)){this.started=true;this.start=evt.xy;this.last=evt.xy;OpenLayers.Element.addClass(this.map.viewPortDiv,"olDragDown");this.down(evt);this.callback("down",[evt.xy]);OpenLayers.Event.stop(evt);if(!this.oldOnselectstart){this.oldOnselectstart=(document.onselectstart)?document.onselectstart:OpenLayers.Function.True;document.onselectstart=OpenLayers.Function.False;}
-propagate=!this.stopDown;}else{this.started=false;this.start=null;this.last=null;}
+return deactivated;},CLASS_NAME:"OpenLayers.Handler.Click"});OpenLayers.Handler.Drag=OpenLayers.Class(OpenLayers.Handler,{started:false,stopDown:true,dragging:false,last:null,start:null,oldOnselectstart:null,interval:0,timeoutId:null,documentDrag:false,documentEvents:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);},down:function(evt){},move:function(evt){},up:function(evt){},out:function(evt){},mousedown:function(evt){var propagate=true;this.dragging=false;if(this.checkModifiers(evt)&&OpenLayers.Event.isLeftClick(evt)){this.started=true;this.start=evt.xy;this.last=evt.xy;OpenLayers.Element.addClass(this.map.viewPortDiv,"olDragDown");this.down(evt);this.callback("down",[evt.xy]);OpenLayers.Event.stop(evt);if(!this.oldOnselectstart){this.oldOnselectstart=(document.onselectstart)?document.onselectstart:OpenLayers.Function.True;}
+document.onselectstart=OpenLayers.Function.False;propagate=!this.stopDown;}else{this.started=false;this.start=null;this.last=null;}
 return propagate;},mousemove:function(evt){if(this.started&&!this.timeoutId&&(evt.xy.x!=this.last.x||evt.xy.y!=this.last.y)){if(this.documentDrag===true&&this.documentEvents){if(evt.element===document){this.adjustXY(evt);this.setEvent(evt);}else{this.destroyDocumentEvents();}}
 if(this.interval>0){this.timeoutId=setTimeout(OpenLayers.Function.bind(this.removeTimeout,this),this.interval);}
 this.dragging=true;this.move(evt);this.callback("move",[evt.xy]);if(!this.oldOnselectstart){this.oldOnselectstart=document.onselectstart;document.onselectstart=OpenLayers.Function.False;}
@@ -793,7 +804,7 @@ if(e.wheelDelta){delta=e.wheelDelta/120;if(window.opera&&window.opera.version()<
 this.delta=this.delta+delta;if(this.interval){window.clearTimeout(this._timeoutId);this._timeoutId=window.setTimeout(OpenLayers.Function.bind(function(){this.wheelZoom(e);},this),this.interval);}else{this.wheelZoom(e);}}
 OpenLayers.Event.stop(e);}},wheelZoom:function(e){var delta=this.delta;this.delta=0;if(delta){if(this.mousePosition){e.xy=this.mousePosition;}
 if(!e.xy){e.xy=this.map.getPixelFromLonLat(this.map.getCenter());}
-if(delta<0){this.callback("down",[e,this.cumulative?delta:-1]);}else{this.callback("up",[e,this.cumulative?delta:1]);}}},mousemove:function(evt){this.mousePosition=evt.xy;},activate:function(evt){if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){var wheelListener=this.wheelListener;OpenLayers.Event.observe(window,"DOMMouseScroll",wheelListener);OpenLayers.Event.observe(window,"mousewheel",wheelListener);OpenLayers.Event.observe(document,"mousewheel",wheelListener);return true;}else{return false;}},deactivate:function(evt){if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){var wheelListener=this.wheelListener;OpenLayers.Event.stopObserving(window,"DOMMouseScroll",wheelListener);OpenLayers.Event.stopObserving(window,"mousewheel",wheelListener);OpenLayers.Event.stopObserving(document,"mousewheel",wheelListener);return true;}else{return false;}},CLASS_NAME:"OpenLayers.Handler.MouseWheel"});OpenLayers.Layer=OpenLayers.Class({id:null,name:null,div:null,opacity:null,alwaysInRange:null,EVENT_TYPES:["loadstart","loadend","loadcancel","visibilitychanged","move","moveend"],events:null,map:null,isBaseLayer:false,alpha:false,displayInLayerSwitcher:true,visibility:true,attribution:null,inRange:false,imageSize:null,imageOffset:null,options:null,eventListeners:null,gutter:0,projection:null,units:null,scales:null,resolutions:null,maxExtent:null,minExtent:null,maxResolution:null,minResolution:null,numZoomLevels:null,minScale:null,maxScale:null,displayOutsideMaxExtent:false,wrapDateLine:false,transitionEffect:null,SUPPORTED_TRANSITIONS:['resize'],initialize:function(name,options){this.addOptions(options);this.name=name;if(this.id==null){this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");this.div=OpenLayers.Util.createDiv(this.id);this.div.style.width="100%";this.div.style.height="100%";this.div.dir="ltr";this.events=new OpenLayers.Events(this,this.div,this.EVENT_TYPES);if(this.eventListeners instanceof Object){this.events.on(this.eventListeners);}}
+if(delta<0){this.callback("down",[e,this.cumulative?delta:-1]);}else{this.callback("up",[e,this.cumulative?delta:1]);}}},mousemove:function(evt){this.mousePosition=evt.xy;},activate:function(evt){if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){var wheelListener=this.wheelListener;OpenLayers.Event.observe(window,"DOMMouseScroll",wheelListener);OpenLayers.Event.observe(window,"mousewheel",wheelListener);OpenLayers.Event.observe(document,"mousewheel",wheelListener);return true;}else{return false;}},deactivate:function(evt){if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){var wheelListener=this.wheelListener;OpenLayers.Event.stopObserving(window,"DOMMouseScroll",wheelListener);OpenLayers.Event.stopObserving(window,"mousewheel",wheelListener);OpenLayers.Event.stopObserving(document,"mousewheel",wheelListener);return true;}else{return false;}},CLASS_NAME:"OpenLayers.Handler.MouseWheel"});OpenLayers.Layer=OpenLayers.Class({id:null,name:null,div:null,opacity:null,alwaysInRange:null,EVENT_TYPES:["loadstart","loadend","loadcancel","visibilitychanged","move","moveend"],RESOLUTION_PROPERTIES:['scales','resolutions','maxScale','minScale','maxResolution','minResolution','numZoomLevels','maxZoomLevel'],events:null,map:null,isBaseLayer:false,alpha:false,displayInLayerSwitcher:true,visibility:true,attribution:null,inRange:false,imageSize:null,imageOffset:null,options:null,eventListeners:null,gutter:0,projection:null,units:null,scales:null,resolutions:null,maxExtent:null,minExtent:null,maxResolution:null,minResolution:null,numZoomLevels:null,minScale:null,maxScale:null,displayOutsideMaxExtent:false,wrapDateLine:false,transitionEffect:null,SUPPORTED_TRANSITIONS:['resize'],metadata:{},initialize:function(name,options){this.addOptions(options);this.name=name;if(this.id==null){this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");this.div=OpenLayers.Util.createDiv(this.id);this.div.style.width="100%";this.div.style.height="100%";this.div.dir="ltr";this.events=new OpenLayers.Events(this,this.div,this.EVENT_TYPES);if(this.eventListeners instanceof Object){this.events.on(this.eventListeners);}}
 if(this.wrapDateLine){this.displayOutsideMaxExtent=true;}},destroy:function(setNewBaseLayer){if(setNewBaseLayer==null){setNewBaseLayer=true;}
 if(this.map!=null){this.map.removeLayer(this,setNewBaseLayer);}
 this.projection=null;this.map=null;this.name=null;this.div=null;this.options=null;if(this.events){if(this.eventListeners){this.events.un(this.eventListeners);}
@@ -801,26 +812,39 @@ this.events.destroy();}
 this.eventListeners=null;this.events=null;},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer(this.name,this.getOptions());}
 OpenLayers.Util.applyDefaults(obj,this);obj.map=null;return obj;},getOptions:function(){var options={};for(var o in this.options){options[o]=this[o];}
 return options;},setName:function(newName){if(newName!=this.name){this.name=newName;if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"name"});}}},addOptions:function(newOptions){if(this.options==null){this.options={};}
-OpenLayers.Util.extend(this.options,newOptions);OpenLayers.Util.extend(this,newOptions);},onMapResize:function(){},redraw:function(){var redrawn=false;if(this.map){this.inRange=this.calculateInRange();var extent=this.getExtent();if(extent&&this.inRange&&this.visibility){var zoomChanged=true;this.moveTo(extent,zoomChanged,false);this.events.triggerEvent("moveend",{"zoomChanged":zoomChanged});redrawn=true;}}
+OpenLayers.Util.extend(this.options,newOptions);OpenLayers.Util.extend(this,newOptions);if(typeof this.projection=="string"){this.projection=new OpenLayers.Projection(this.projection);}
+if(this.projection&&this.projection.getUnits()){this.units=this.projection.getUnits();}
+if(this.map){var properties=this.RESOLUTION_PROPERTIES.concat(["projection","units","minExtent","maxExtent"]);for(var o in newOptions){if(newOptions.hasOwnProperty(o)&&OpenLayers.Util.indexOf(properties,o)>=0){this.initResolutions();break;}}}},onMapResize:function(){},redraw:function(){var redrawn=false;if(this.map){this.inRange=this.calculateInRange();var extent=this.getExtent();if(extent&&this.inRange&&this.visibility){var zoomChanged=true;this.moveTo(extent,zoomChanged,false);this.events.triggerEvent("moveend",{"zoomChanged":zoomChanged});redrawn=true;}}
 return redrawn;},moveTo:function(bounds,zoomChanged,dragging){var display=this.visibility;if(!this.isBaseLayer){display=display&&this.inRange;}
-this.display(display);},setMap:function(map){if(this.map==null){this.map=map;this.maxExtent=this.maxExtent||this.map.maxExtent;this.projection=this.projection||this.map.projection;if(this.projection&&typeof this.projection=="string"){this.projection=new OpenLayers.Projection(this.projection);}
+this.display(display);},setMap:function(map){if(this.map==null){this.map=map;this.maxExtent=this.maxExtent||this.map.maxExtent;this.minExtent=this.minExtent||this.map.minExtent;this.projection=this.projection||this.map.projection;if(typeof this.projection=="string"){this.projection=new OpenLayers.Projection(this.projection);}
 this.units=this.projection.getUnits()||this.units||this.map.units;this.initResolutions();if(!this.isBaseLayer){this.inRange=this.calculateInRange();var show=((this.visibility)&&(this.inRange));this.div.style.display=show?"":"none";}
 this.setTileSize();}},afterAdd:function(){},removeMap:function(map){},getImageSize:function(bounds){return(this.imageSize||this.tileSize);},setTileSize:function(size){var tileSize=(size)?size:((this.tileSize)?this.tileSize:this.map.getTileSize());this.tileSize=tileSize;if(this.gutter){this.imageOffset=new OpenLayers.Pixel(-this.gutter,-this.gutter);this.imageSize=new OpenLayers.Size(tileSize.w+(2*this.gutter),tileSize.h+(2*this.gutter));}},getVisibility:function(){return this.visibility;},setVisibility:function(visibility){if(visibility!=this.visibility){this.visibility=visibility;this.display(visibility);this.redraw();if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"visibility"});}
 this.events.triggerEvent("visibilitychanged");}},display:function(display){if(display!=(this.div.style.display!="none")){this.div.style.display=(display&&this.calculateInRange())?"block":"none";}},calculateInRange:function(){var inRange=false;if(this.alwaysInRange){inRange=true;}else{if(this.map){var resolution=this.map.getResolution();inRange=((resolution>=this.minResolution)&&(resolution<=this.maxResolution));}}
-return inRange;},setIsBaseLayer:function(isBaseLayer){if(isBaseLayer!=this.isBaseLayer){this.isBaseLayer=isBaseLayer;if(this.map!=null){this.map.events.triggerEvent("changebaselayer",{layer:this});}}},initResolutions:function(){var props=new Array('projection','units','scales','resolutions','maxScale','minScale','maxResolution','minResolution','minExtent','maxExtent','numZoomLevels','maxZoomLevel');var notScaleProps=['projection','units'];var useInRange=false;var confProps={};for(var i=0,len=props.length;i<len;i++){var property=props[i];if(this.options[property]&&OpenLayers.Util.indexOf(notScaleProps,property)==-1){useInRange=true;}
-confProps[property]=this.options[property]||this.map[property];}
-if(this.alwaysInRange==null){this.alwaysInRange=!useInRange;}
-if((this.options.minScale!=null||this.options.maxScale!=null)&&this.options.scales==null){confProps.scales=null;}
-if((this.options.minResolution!=null||this.options.maxResolution!=null)&&this.options.resolutions==null){confProps.resolutions=null;}
-if((!confProps.numZoomLevels)&&(confProps.maxZoomLevel)){confProps.numZoomLevels=confProps.maxZoomLevel+1;}
-if((confProps.scales!=null)||(confProps.resolutions!=null)){if(confProps.scales!=null){confProps.resolutions=[];for(var i=0,len=confProps.scales.length;i<len;i++){var scale=confProps.scales[i];confProps.resolutions[i]=OpenLayers.Util.getResolutionFromScale(scale,confProps.units);}}
-confProps.numZoomLevels=confProps.resolutions.length;}else{if(confProps.minScale){confProps.maxResolution=OpenLayers.Util.getResolutionFromScale(confProps.minScale,confProps.units);}else if(confProps.maxResolution=="auto"){var viewSize=this.map.getSize();var wRes=confProps.maxExtent.getWidth()/viewSize.w;var hRes=confProps.maxExtent.getHeight()/viewSize.h;confProps.maxResolution=Math.max(wRes,hRes);}
-if(confProps.maxScale!=null){confProps.minResolution=OpenLayers.Util.getResolutionFromScale(confProps.maxScale,confProps.units);}else if((confProps.minResolution=="auto")&&(confProps.minExtent!=null)){var viewSize=this.map.getSize();var wRes=confProps.minExtent.getWidth()/viewSize.w;var hRes=confProps.minExtent.getHeight()/viewSize.h;confProps.minResolution=Math.max(wRes,hRes);}
-if(confProps.minResolution!=null&&this.options.numZoomLevels==undefined){var ratio=confProps.maxResolution/confProps.minResolution;confProps.numZoomLevels=Math.floor(Math.log(ratio)/Math.log(2))+1;}
-confProps.resolutions=new Array(confProps.numZoomLevels);var base=2;if(typeof confProps.minResolution=="number"&&confProps.numZoomLevels>1){base=Math.pow((confProps.maxResolution/confProps.minResolution),(1/(confProps.numZoomLevels-1)));}
-for(var i=0;i<confProps.numZoomLevels;i++){var res=confProps.maxResolution/Math.pow(base,i);confProps.resolutions[i]=res;}}
-confProps.resolutions.sort(function(a,b){return(b-a);});this.resolutions=confProps.resolutions;this.maxResolution=confProps.resolutions[0];var lastIndex=confProps.resolutions.length-1;this.minResolution=confProps.resolutions[lastIndex];this.scales=[];for(var i=0,len=confProps.resolutions.length;i<len;i++){this.scales[i]=OpenLayers.Util.getScaleFromResolution(confProps.resolutions[i],confProps.units);}
-this.minScale=this.scales[0];this.maxScale=this.scales[this.scales.length-1];this.numZoomLevels=confProps.numZoomLevels;},getResolution:function(){var zoom=this.map.getZoom();return this.getResolutionForZoom(zoom);},getExtent:function(){return this.map.calculateBounds();},getZoomForExtent:function(extent,closest){var viewSize=this.map.getSize();var idealResolution=Math.max(extent.getWidth()/viewSize.w,extent.getHeight()/viewSize.h);return this.getZoomForResolution(idealResolution,closest);},getDataExtent:function(){},getResolutionForZoom:function(zoom){zoom=Math.max(0,Math.min(zoom,this.resolutions.length-1));var resolution;if(this.map.fractionalZoom){var low=Math.floor(zoom);var high=Math.ceil(zoom);resolution=this.resolutions[low]-
+return inRange;},setIsBaseLayer:function(isBaseLayer){if(isBaseLayer!=this.isBaseLayer){this.isBaseLayer=isBaseLayer;if(this.map!=null){this.map.events.triggerEvent("changebaselayer",{layer:this});}}},initResolutions:function(){var i,len;var props={},alwaysInRange=true;for(i=0,len=this.RESOLUTION_PROPERTIES.length;i<len;i++){var p=this.RESOLUTION_PROPERTIES[i];props[p]=this.options[p];if(alwaysInRange&&this.options[p]){alwaysInRange=false;}}
+if(this.alwaysInRange==null){this.alwaysInRange=alwaysInRange;}
+if(props.resolutions==null){props.resolutions=this.resolutionsFromScales(props.scales);}
+if(props.resolutions==null){props.resolutions=this.calculateResolutions(props);}
+if(props.resolutions==null){for(i=0,len=this.RESOLUTION_PROPERTIES.length;i<len;i++){var p=this.RESOLUTION_PROPERTIES[i];props[p]=this.options[p]!=null?this.options[p]:this.map[p];}
+if(props.resolutions==null){props.resolutions=this.resolutionsFromScales(props.scales);}
+if(props.resolutions==null){props.resolutions=this.calculateResolutions(props);}}
+var maxResolution;if(this.options.maxResolution&&this.options.maxResolution!=="auto"){maxResolution=this.options.maxResolution;}
+if(this.options.minScale){maxResolution=OpenLayers.Util.getResolutionFromScale(this.options.minScale,this.units);}
+var minResolution;if(this.options.minResolution&&this.options.minResolution!=="auto"){minResolution=this.options.minResolution;}
+if(this.options.maxScale){minResolution=OpenLayers.Util.getResolutionFromScale(this.options.maxScale,this.units);}
+if(props.resolutions){props.resolutions.sort(function(a,b){return(b-a);});if(!maxResolution){maxResolution=props.resolutions[0];}
+if(!minResolution){var lastIdx=props.resolutions.length-1;minResolution=props.resolutions[lastIdx];}}
+this.resolutions=props.resolutions;if(this.resolutions){len=this.resolutions.length;this.scales=new Array(len);for(i=0;i<len;i++){this.scales[i]=OpenLayers.Util.getScaleFromResolution(this.resolutions[i],this.units);}
+this.numZoomLevels=len;}
+this.minResolution=minResolution;if(minResolution){this.maxScale=OpenLayers.Util.getScaleFromResolution(minResolution,this.units);}
+this.maxResolution=maxResolution;if(maxResolution){this.minScale=OpenLayers.Util.getScaleFromResolution(maxResolution,this.units);}},resolutionsFromScales:function(scales){if(scales==null){return;}
+var resolutions,i,len;len=scales.length;resolutions=new Array(len);for(i=0;i<len;i++){resolutions[i]=OpenLayers.Util.getResolutionFromScale(scales[i],this.units);}
+return resolutions;},calculateResolutions:function(props){var maxResolution=props.maxResolution;if(props.minScale!=null){maxResolution=OpenLayers.Util.getResolutionFromScale(props.minScale,this.units);}else if(maxResolution=="auto"&&this.maxExtent!=null){var viewSize=this.map.getSize();var wRes=this.maxExtent.getWidth()/viewSize.w;var hRes=this.maxExtent.getHeight()/viewSize.h;maxResolution=Math.max(wRes,hRes);}
+var minResolution=props.minResolution;if(props.maxScale!=null){minResolution=OpenLayers.Util.getResolutionFromScale(props.maxScale,this.units);}else if(props.minResolution=="auto"&&this.minExtent!=null){var viewSize=this.map.getSize();var wRes=this.minExtent.getWidth()/viewSize.w;var hRes=this.minExtent.getHeight()/viewSize.h;minResolution=Math.max(wRes,hRes);}
+var maxZoomLevel=props.maxZoomLevel;var numZoomLevels=props.numZoomLevels;if(typeof minResolution==="number"&&typeof maxResolution==="number"&&numZoomLevels===undefined){var ratio=maxResolution/minResolution;numZoomLevels=Math.floor(Math.log(ratio)/Math.log(2))+1;}else if(numZoomLevels===undefined&&maxZoomLevel!=null){numZoomLevels=maxZoomLevel+1;}
+if(typeof numZoomLevels!=="number"||numZoomLevels<=0||(typeof maxResolution!=="number"&&typeof minResolution!=="number")){return;}
+var resolutions=new Array(numZoomLevels);var base=2;if(typeof minResolution=="number"&&typeof maxResolution=="number"){base=Math.pow((maxResolution/minResolution),(1/(numZoomLevels-1)));}
+var i;if(typeof maxResolution==="number"){for(i=0;i<numZoomLevels;i++){resolutions[i]=maxResolution/Math.pow(base,i);}}else{for(i=0;i<numZoomLevels;i++){resolutions[numZoomLevels-1-i]=minResolution*Math.pow(base,i);}}
+return resolutions;},getResolution:function(){var zoom=this.map.getZoom();return this.getResolutionForZoom(zoom);},getExtent:function(){return this.map.calculateBounds();},getZoomForExtent:function(extent,closest){var viewSize=this.map.getSize();var idealResolution=Math.max(extent.getWidth()/viewSize.w,extent.getHeight()/viewSize.h);return this.getZoomForResolution(idealResolution,closest);},getDataExtent:function(){},getResolutionForZoom:function(zoom){zoom=Math.max(0,Math.min(zoom,this.resolutions.length-1));var resolution;if(this.map.fractionalZoom){var low=Math.floor(zoom);var high=Math.ceil(zoom);resolution=this.resolutions[low]-
 ((zoom-low)*(this.resolutions[low]-this.resolutions[high]));}else{resolution=this.resolutions[Math.round(zoom)];}
 return resolution;},getZoomForResolution:function(resolution,closest){var zoom;if(this.map.fractionalZoom){var lowZoom=0;var highZoom=this.resolutions.length-1;var highRes=this.resolutions[lowZoom];var lowRes=this.resolutions[highZoom];var res;for(var i=0,len=this.resolutions.length;i<len;++i){res=this.resolutions[i];if(res>=resolution){highRes=res;lowZoom=i;}
 if(res<=resolution){lowRes=res;highZoom=i;break;}}
@@ -832,42 +856,55 @@ return lonlat;},getViewPortPxFromLonLat:function(lonlat){var px=null;if(lonlat!=
 return px;},setOpacity:function(opacity){if(opacity!=this.opacity){this.opacity=opacity;for(var i=0,len=this.div.childNodes.length;i<len;++i){var element=this.div.childNodes[i].firstChild;OpenLayers.Util.modifyDOMElement(element,null,null,null,null,null,null,opacity);}
 if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"opacity"});}}},getZIndex:function(){return this.div.style.zIndex;},setZIndex:function(zIndex){this.div.style.zIndex=zIndex;},adjustBounds:function(bounds){if(this.gutter){var mapGutter=this.gutter*this.map.getResolution();bounds=new OpenLayers.Bounds(bounds.left-mapGutter,bounds.bottom-mapGutter,bounds.right+mapGutter,bounds.top+mapGutter);}
 if(this.wrapDateLine){var wrappingOptions={'rightTolerance':this.getResolution()};bounds=bounds.wrapDateLine(this.maxExtent,wrappingOptions);}
-return bounds;},CLASS_NAME:"OpenLayers.Layer"});(function(){var oXMLHttpRequest=window.XMLHttpRequest;var bGecko=!!window.controllers,bIE=window.document.all&&!window.opera;function cXMLHttpRequest(){this._object=oXMLHttpRequest?new oXMLHttpRequest:new window.ActiveXObject('Microsoft.XMLHTTP');};if(bGecko&&oXMLHttpRequest.wrapped)
-cXMLHttpRequest.wrapped=oXMLHttpRequest.wrapped;cXMLHttpRequest.UNSENT=0;cXMLHttpRequest.OPENED=1;cXMLHttpRequest.HEADERS_RECEIVED=2;cXMLHttpRequest.LOADING=3;cXMLHttpRequest.DONE=4;cXMLHttpRequest.prototype.readyState=cXMLHttpRequest.UNSENT;cXMLHttpRequest.prototype.responseText="";cXMLHttpRequest.prototype.responseXML=null;cXMLHttpRequest.prototype.status=0;cXMLHttpRequest.prototype.statusText="";cXMLHttpRequest.prototype.onreadystatechange=null;cXMLHttpRequest.onreadystatechange=null;cXMLHttpRequest.onopen=null;cXMLHttpRequest.onsend=null;cXMLHttpRequest.onabort=null;cXMLHttpRequest.prototype.open=function(sMethod,sUrl,bAsync,sUser,sPassword){this._async=bAsync;var oRequest=this,nState=this.readyState;if(bIE){var fOnUnload=function(){if(oRequest._object.readyState!=cXMLHttpRequest.DONE)
-fCleanTransport(oRequest);};if(bAsync)
-window.attachEvent("onunload",fOnUnload);}
+return bounds;},CLASS_NAME:"OpenLayers.Layer"});(function(){var oXMLHttpRequest=window.XMLHttpRequest;var bGecko=!!window.controllers,bIE=window.document.all&&!window.opera,bIE7=bIE&&window.navigator.userAgent.match(/MSIE ([\.0-9]+)/)&&RegExp.$1==7;function cXMLHttpRequest(){this._object=oXMLHttpRequest&&!bIE7?new oXMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");this._listeners=[];};if(bGecko&&oXMLHttpRequest.wrapped)
+cXMLHttpRequest.wrapped=oXMLHttpRequest.wrapped;cXMLHttpRequest.UNSENT=0;cXMLHttpRequest.OPENED=1;cXMLHttpRequest.HEADERS_RECEIVED=2;cXMLHttpRequest.LOADING=3;cXMLHttpRequest.DONE=4;cXMLHttpRequest.prototype.readyState=cXMLHttpRequest.UNSENT;cXMLHttpRequest.prototype.responseText='';cXMLHttpRequest.prototype.responseXML=null;cXMLHttpRequest.prototype.status=0;cXMLHttpRequest.prototype.statusText='';cXMLHttpRequest.prototype.onreadystatechange=null;cXMLHttpRequest.onreadystatechange=null;cXMLHttpRequest.onopen=null;cXMLHttpRequest.onsend=null;cXMLHttpRequest.onabort=null;cXMLHttpRequest.prototype.open=function(sMethod,sUrl,bAsync,sUser,sPassword){delete this._headers;if(arguments.length<3)
+bAsync=true;this._async=bAsync;var oRequest=this,nState=this.readyState,fOnUnload;if(bIE&&bAsync){fOnUnload=function(){if(nState!=cXMLHttpRequest.DONE){fCleanTransport(oRequest);oRequest.abort();}};window.attachEvent("onunload",fOnUnload);}
+if(cXMLHttpRequest.onopen)
+cXMLHttpRequest.onopen.apply(this,arguments);if(arguments.length>4)
+this._object.open(sMethod,sUrl,bAsync,sUser,sPassword);else
+if(arguments.length>3)
+this._object.open(sMethod,sUrl,bAsync,sUser);else
+this._object.open(sMethod,sUrl,bAsync);if(!bGecko&&!bIE){this.readyState=cXMLHttpRequest.OPENED;fReadyStateChange(this);}
 this._object.onreadystatechange=function(){if(bGecko&&!bAsync)
 return;oRequest.readyState=oRequest._object.readyState;fSynchronizeValues(oRequest);if(oRequest._aborted){oRequest.readyState=cXMLHttpRequest.UNSENT;return;}
 if(oRequest.readyState==cXMLHttpRequest.DONE){fCleanTransport(oRequest);if(bIE&&bAsync)
 window.detachEvent("onunload",fOnUnload);}
 if(nState!=oRequest.readyState)
-fReadyStateChange(oRequest);nState=oRequest.readyState;};if(cXMLHttpRequest.onopen)
-cXMLHttpRequest.onopen.apply(this,arguments);this._object.open(sMethod,sUrl,bAsync,sUser,sPassword);if(!bAsync&&bGecko){this.readyState=cXMLHttpRequest.OPENED;fReadyStateChange(this);}};cXMLHttpRequest.prototype.send=function(vData){if(cXMLHttpRequest.onsend)
+fReadyStateChange(oRequest);nState=oRequest.readyState;}};cXMLHttpRequest.prototype.send=function(vData){if(cXMLHttpRequest.onsend)
 cXMLHttpRequest.onsend.apply(this,arguments);if(vData&&vData.nodeType){vData=window.XMLSerializer?new window.XMLSerializer().serializeToString(vData):vData.xml;if(!this._headers["Content-Type"])
 this._object.setRequestHeader("Content-Type","application/xml");}
 this._object.send(vData);if(bGecko&&!this._async){this.readyState=cXMLHttpRequest.OPENED;fSynchronizeValues(this);while(this.readyState<cXMLHttpRequest.DONE){this.readyState++;fReadyStateChange(this);if(this._aborted)
 return;}}};cXMLHttpRequest.prototype.abort=function(){if(cXMLHttpRequest.onabort)
 cXMLHttpRequest.onabort.apply(this,arguments);if(this.readyState>cXMLHttpRequest.UNSENT)
 this._aborted=true;this._object.abort();fCleanTransport(this);};cXMLHttpRequest.prototype.getAllResponseHeaders=function(){return this._object.getAllResponseHeaders();};cXMLHttpRequest.prototype.getResponseHeader=function(sName){return this._object.getResponseHeader(sName);};cXMLHttpRequest.prototype.setRequestHeader=function(sName,sValue){if(!this._headers)
-this._headers={};this._headers[sName]=sValue;return this._object.setRequestHeader(sName,sValue);};cXMLHttpRequest.prototype.toString=function(){return'['+"object"+' '+"XMLHttpRequest"+']';};cXMLHttpRequest.toString=function(){return'['+"XMLHttpRequest"+']';};function fReadyStateChange(oRequest){if(oRequest.onreadystatechange)
-oRequest.onreadystatechange.apply(oRequest);if(cXMLHttpRequest.onreadystatechange)
-cXMLHttpRequest.onreadystatechange.apply(oRequest);};function fGetDocument(oRequest){var oDocument=oRequest.responseXML;if(bIE&&oDocument&&!oDocument.documentElement&&oRequest.getResponseHeader("Content-Type").match(/[^\/]+\/[^\+]+\+xml/)){oDocument=new ActiveXObject('Microsoft.XMLDOM');oDocument.loadXML(oRequest.responseText);}
+this._headers={};this._headers[sName]=sValue;return this._object.setRequestHeader(sName,sValue);};cXMLHttpRequest.prototype.addEventListener=function(sName,fHandler,bUseCapture){for(var nIndex=0,oListener;oListener=this._listeners[nIndex];nIndex++)
+if(oListener[0]==sName&&oListener[1]==fHandler&&oListener[2]==bUseCapture)
+return;this._listeners.push([sName,fHandler,bUseCapture]);};cXMLHttpRequest.prototype.removeEventListener=function(sName,fHandler,bUseCapture){for(var nIndex=0,oListener;oListener=this._listeners[nIndex];nIndex++)
+if(oListener[0]==sName&&oListener[1]==fHandler&&oListener[2]==bUseCapture)
+break;if(oListener)
+this._listeners.splice(nIndex,1);};cXMLHttpRequest.prototype.dispatchEvent=function(oEvent){var oEventPseudo={'type':oEvent.type,'target':this,'currentTarget':this,'eventPhase':2,'bubbles':oEvent.bubbles,'cancelable':oEvent.cancelable,'timeStamp':oEvent.timeStamp,'stopPropagation':function(){},'preventDefault':function(){},'initEvent':function(){}};if(oEventPseudo.type=="readystatechange"&&this.onreadystatechange)
+(this.onreadystatechange.handleEvent||this.onreadystatechange).apply(this,[oEventPseudo]);for(var nIndex=0,oListener;oListener=this._listeners[nIndex];nIndex++)
+if(oListener[0]==oEventPseudo.type&&!oListener[2])
+(oListener[1].handleEvent||oListener[1]).apply(this,[oEventPseudo]);};cXMLHttpRequest.prototype.toString=function(){return'['+"object"+' '+"XMLHttpRequest"+']';};cXMLHttpRequest.toString=function(){return'['+"XMLHttpRequest"+']';};function fReadyStateChange(oRequest){if(cXMLHttpRequest.onreadystatechange)
+cXMLHttpRequest.onreadystatechange.apply(oRequest);oRequest.dispatchEvent({'type':"readystatechange",'bubbles':false,'cancelable':false,'timeStamp':new Date+0});};function fGetDocument(oRequest){var oDocument=oRequest.responseXML,sResponse=oRequest.responseText;if(bIE&&sResponse&&oDocument&&!oDocument.documentElement&&oRequest.getResponseHeader("Content-Type").match(/[^\/]+\/[^\+]+\+xml/)){oDocument=new window.ActiveXObject("Microsoft.XMLDOM");oDocument.async=false;oDocument.validateOnParse=false;oDocument.loadXML(sResponse);}
 if(oDocument)
-if((bIE&&oDocument.parseError!=0)||(oDocument.documentElement&&oDocument.documentElement.tagName=="parsererror"))
+if((bIE&&oDocument.parseError!=0)||!oDocument.documentElement||(oDocument.documentElement&&oDocument.documentElement.tagName=="parsererror"))
 return null;return oDocument;};function fSynchronizeValues(oRequest){try{oRequest.responseText=oRequest._object.responseText;}catch(e){}
 try{oRequest.responseXML=fGetDocument(oRequest._object);}catch(e){}
 try{oRequest.status=oRequest._object.status;}catch(e){}
-try{oRequest.statusText=oRequest._object.statusText;}catch(e){}};function fCleanTransport(oRequest){oRequest._object.onreadystatechange=new window.Function;delete oRequest._headers;};if(!window.Function.prototype.apply){window.Function.prototype.apply=function(oRequest,oArguments){if(!oArguments)
+try{oRequest.statusText=oRequest._object.statusText;}catch(e){}};function fCleanTransport(oRequest){oRequest._object.onreadystatechange=new window.Function;};if(!window.Function.prototype.apply){window.Function.prototype.apply=function(oRequest,oArguments){if(!oArguments)
 oArguments=[];oRequest.__func=this;oRequest.__func(oArguments[0],oArguments[1],oArguments[2],oArguments[3],oArguments[4]);delete oRequest.__func;};};OpenLayers.Request.XMLHttpRequest=cXMLHttpRequest;})();OpenLayers.Control.DragPan=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,panned:false,interval:25,documentDrag:false,draw:function(){this.handler=new OpenLayers.Handler.Drag(this,{"move":this.panMap,"done":this.panMapDone},{interval:this.interval,documentDrag:this.documentDrag});},panMap:function(xy){this.panned=true;this.map.pan(this.handler.last.x-xy.x,this.handler.last.y-xy.y,{dragging:this.handler.dragging,animate:false});},panMapDone:function(xy){if(this.panned){this.panMap(xy);this.panned=false;}},CLASS_NAME:"OpenLayers.Control.DragPan"});OpenLayers.State={UNKNOWN:'Unknown',INSERT:'Insert',UPDATE:'Update',DELETE:'Delete'};OpenLayers.Feature.Vector=OpenLayers.Class(OpenLayers.Feature,{fid:null,geometry:null,attributes:null,bounds:null,state:null,style:null,url:null,renderIntent:"default",initialize:function(geometry,attributes,style){OpenLayers.Feature.prototype.initialize.apply(this,[null,null,attributes]);this.lonlat=null;this.geometry=geometry?geometry:null;this.state=null;this.attributes={};if(attributes){this.attributes=OpenLayers.Util.extend(this.attributes,attributes);}
 this.style=style?style:null;},destroy:function(){if(this.layer){this.layer.removeFeatures(this);this.layer=null;}
 this.geometry=null;OpenLayers.Feature.prototype.destroy.apply(this,arguments);},clone:function(){return new OpenLayers.Feature.Vector(this.geometry?this.geometry.clone():null,this.attributes,this.style);},onScreen:function(boundsOnly){var onScreen=false;if(this.layer&&this.layer.map){var screenBounds=this.layer.map.getExtent();if(boundsOnly){var featureBounds=this.geometry.getBounds();onScreen=screenBounds.intersectsBounds(featureBounds);}else{var screenPoly=screenBounds.toGeometry();onScreen=screenPoly.intersects(this.geometry);}}
 return onScreen;},getVisibility:function(){return!(this.style&&this.style.display=='none'||!this.layer||this.layer&&this.layer.styleMap&&this.layer.styleMap.createSymbolizer(this,this.renderIntent).display=='none'||this.layer&&!this.layer.getVisibility());},createMarker:function(){return null;},destroyMarker:function(){},createPopup:function(){return null;},atPoint:function(lonlat,toleranceLon,toleranceLat){var atPoint=false;if(this.geometry){atPoint=this.geometry.atPoint(lonlat,toleranceLon,toleranceLat);}
 return atPoint;},destroyPopup:function(){},move:function(location){if(!this.layer||!this.geometry.move){return;}
 var pixel;if(location.CLASS_NAME=="OpenLayers.LonLat"){pixel=this.layer.getViewPortPxFromLonLat(location);}else{pixel=location;}
-var lastPixel=this.layer.getViewPortPxFromLonLat(this.geometry.getBounds().getCenterLonLat());var res=this.layer.map.getResolution();this.geometry.move(res*(pixel.x-lastPixel.x),res*(lastPixel.y-pixel.y));this.layer.drawFeature(this);return lastPixel;},toState:function(state){if(state==OpenLayers.State.UPDATE){switch(this.state){case OpenLayers.State.UNKNOWN:case OpenLayers.State.DELETE:this.state=state;break;case OpenLayers.State.UPDATE:case OpenLayers.State.INSERT:break;}}else if(state==OpenLayers.State.INSERT){switch(this.state){case OpenLayers.State.UNKNOWN:break;default:this.state=state;break;}}else if(state==OpenLayers.State.DELETE){switch(this.state){case OpenLayers.State.INSERT:break;case OpenLayers.State.DELETE:break;case OpenLayers.State.UNKNOWN:case OpenLayers.State.UPDATE:this.state=state;break;}}else if(state==OpenLayers.State.UNKNOWN){this.state=state;}},CLASS_NAME:"OpenLayers.Feature.Vector"});OpenLayers.Feature.Vector.style={'default':{fillColor:"#ee9900",fillOpacity:0.4,hoverFillColor:"white",hoverFillOpacity:0.8,strokeColor:"#ee9900",strokeOpacity:1,strokeWidth:1,strokeLinecap:"round",strokeDashstyle:"solid",hoverStrokeColor:"red",hoverStrokeOpacity:1,hoverStrokeWidth:0.2,pointRadius:6,hoverPointRadius:1,hoverPointUnit:"%",pointerEvents:"visiblePainted",cursor:"inherit"},'select':{fillColor:"blue",fillOpacity:0.4,hoverFillColor:"white",hoverFillOpacity:0.8,strokeColor:"blue",strokeOpacity:1,strokeWidth:2,strokeLinecap:"round",strokeDashstyle:"solid",hoverStrokeColor:"red",hoverStrokeOpacity:1,hoverStrokeWidth:0.2,pointRadius:6,hoverPointRadius:1,hoverPointUnit:"%",pointerEvents:"visiblePainted",cursor:"pointer"},'temporary':{fillColor:"#66cccc",fillOpacity:0.2,hoverFillColor:"white",hoverFillOpacity:0.8,strokeColor:"#66cccc",strokeOpacity:1,strokeLinecap:"round",strokeWidth:2,strokeDashstyle:"solid",hoverStrokeColor:"red",hoverStrokeOpacity:1,hoverStrokeWidth:0.2,pointRadius:6,hoverPointRadius:1,hoverPointUnit:"%",pointerEvents:"visiblePainted",cursor:"inherit"},'delete':{display:"none"}};OpenLayers.Handler.Box=OpenLayers.Class(OpenLayers.Handler,{dragHandler:null,boxDivClassName:'olHandlerBoxZoomBox',boxCharacteristics:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);var callbacks={"down":this.startBox,"move":this.moveBox,"out":this.removeBox,"up":this.endBox};this.dragHandler=new OpenLayers.Handler.Drag(this,callbacks,{keyMask:this.keyMask});},setMap:function(map){OpenLayers.Handler.prototype.setMap.apply(this,arguments);if(this.dragHandler){this.dragHandler.setMap(map);}},startBox:function(xy){this.zoomBox=OpenLayers.Util.createDiv('zoomBox',this.dragHandler.start);this.zoomBox.className=this.boxDivClassName;this.zoomBox.style.zIndex=this.map.Z_INDEX_BASE["Popup"]-1;this.map.viewPortDiv.appendChild(this.zoomBox);OpenLayers.Element.addClass(this.map.viewPortDiv,"olDrawBox");},moveBox:function(xy){var startX=this.dragHandler.start.x;var startY=this.dragHandler.start.y;var deltaX=Math.abs(startX-xy.x);var deltaY=Math.abs(startY-xy.y);this.zoomBox.style.width=Math.max(1,deltaX)+"px";this.zoomBox.style.height=Math.max(1,deltaY)+"px";this.zoomBox.style.left=xy.x<startX?xy.x+"px":startX+"px";this.zoomBox.style.top=xy.y<startY?xy.y+"px":startY+"px";var box=this.getBoxCharacteristics();if(box.newBoxModel){if(xy.x>startX){this.zoomBox.style.width=Math.max(1,deltaX-box.xOffset)+"px";}
+var lastPixel=this.layer.getViewPortPxFromLonLat(this.geometry.getBounds().getCenterLonLat());var res=this.layer.map.getResolution();this.geometry.move(res*(pixel.x-lastPixel.x),res*(lastPixel.y-pixel.y));this.layer.drawFeature(this);return lastPixel;},toState:function(state){if(state==OpenLayers.State.UPDATE){switch(this.state){case OpenLayers.State.UNKNOWN:case OpenLayers.State.DELETE:this.state=state;break;case OpenLayers.State.UPDATE:case OpenLayers.State.INSERT:break;}}else if(state==OpenLayers.State.INSERT){switch(this.state){case OpenLayers.State.UNKNOWN:break;default:this.state=state;break;}}else if(state==OpenLayers.State.DELETE){switch(this.state){case OpenLayers.State.INSERT:break;case OpenLayers.State.DELETE:break;case OpenLayers.State.UNKNOWN:case OpenLayers.State.UPDATE:this.state=state;break;}}else if(state==OpenLayers.State.UNKNOWN){this.state=state;}},CLASS_NAME:"OpenLayers.Feature.Vector"});OpenLayers.Feature.Vector.style={'default':{fillColor:"#ee9900",fillOpacity:0.4,hoverFillColor:"white",hoverFillOpacity:0.8,strokeColor:"#ee9900",strokeOpacity:1,strokeWidth:1,strokeLinecap:"round",strokeDashstyle:"solid",hoverStrokeColor:"red",hoverStrokeOpacity:1,hoverStrokeWidth:0.2,pointRadius:6,hoverPointRadius:1,hoverPointUnit:"%",pointerEvents:"visiblePainted",cursor:"inherit"},'select':{fillColor:"blue",fillOpacity:0.4,hoverFillColor:"white",hoverFillOpacity:0.8,strokeColor:"blue",strokeOpacity:1,strokeWidth:2,strokeLinecap:"round",strokeDashstyle:"solid",hoverStrokeColor:"red",hoverStrokeOpacity:1,hoverStrokeWidth:0.2,pointRadius:6,hoverPointRadius:1,hoverPointUnit:"%",pointerEvents:"visiblePainted",cursor:"pointer"},'temporary':{fillColor:"#66cccc",fillOpacity:0.2,hoverFillColor:"white",hoverFillOpacity:0.8,strokeColor:"#66cccc",strokeOpacity:1,strokeLinecap:"round",strokeWidth:2,strokeDashstyle:"solid",hoverStrokeColor:"red",hoverStrokeOpacity:1,hoverStrokeWidth:0.2,pointRadius:6,hoverPointRadius:1,hoverPointUnit:"%",pointerEvents:"visiblePainted",cursor:"inherit"},'delete':{display:"none"}};OpenLayers.Handler.Box=OpenLayers.Class(OpenLayers.Handler,{dragHandler:null,boxDivClassName:'olHandlerBoxZoomBox',boxCharacteristics:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);var callbacks={"down":this.startBox,"move":this.moveBox,"out":this.removeBox,"up":this.endBox};this.dragHandler=new OpenLayers.Handler.Drag(this,callbacks,{keyMask:this.keyMask});},destroy:function(){if(this.dragHandler){this.dragHandler.destroy();this.dragHandler=null;}
+OpenLayers.Handler.prototype.destroy.apply(this,arguments);},setMap:function(map){OpenLayers.Handler.prototype.setMap.apply(this,arguments);if(this.dragHandler){this.dragHandler.setMap(map);}},startBox:function(xy){this.zoomBox=OpenLayers.Util.createDiv('zoomBox',this.dragHandler.start);this.zoomBox.className=this.boxDivClassName;this.zoomBox.style.zIndex=this.map.Z_INDEX_BASE["Popup"]-1;this.map.viewPortDiv.appendChild(this.zoomBox);OpenLayers.Element.addClass(this.map.viewPortDiv,"olDrawBox");},moveBox:function(xy){var startX=this.dragHandler.start.x;var startY=this.dragHandler.start.y;var deltaX=Math.abs(startX-xy.x);var deltaY=Math.abs(startY-xy.y);this.zoomBox.style.width=Math.max(1,deltaX)+"px";this.zoomBox.style.height=Math.max(1,deltaY)+"px";this.zoomBox.style.left=xy.x<startX?xy.x+"px":startX+"px";this.zoomBox.style.top=xy.y<startY?xy.y+"px":startY+"px";var box=this.getBoxCharacteristics();if(box.newBoxModel){if(xy.x>startX){this.zoomBox.style.width=Math.max(1,deltaX-box.xOffset)+"px";}
 if(xy.y>startY){this.zoomBox.style.height=Math.max(1,deltaY-box.yOffset)+"px";}}},endBox:function(end){var result;if(Math.abs(this.dragHandler.start.x-end.x)>5||Math.abs(this.dragHandler.start.y-end.y)>5){var start=this.dragHandler.start;var top=Math.min(start.y,end.y);var bottom=Math.max(start.y,end.y);var left=Math.min(start.x,end.x);var right=Math.max(start.x,end.x);result=new OpenLayers.Bounds(left,bottom,right,top);}else{result=this.dragHandler.start.clone();}
 this.removeBox();this.callback("done",[result]);},removeBox:function(){this.map.viewPortDiv.removeChild(this.zoomBox);this.zoomBox=null;this.boxCharacteristics=null;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDrawBox");},activate:function(){if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.dragHandler.activate();return true;}else{return false;}},deactivate:function(){if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.dragHandler.deactivate();return true;}else{return false;}},getBoxCharacteristics:function(){if(!this.boxCharacteristics){var xOffset=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-left-width"))+parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-right-width"))+1;var yOffset=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-top-width"))+parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-bottom-width"))+1;var newBoxModel=OpenLayers.Util.getBrowserName()=="msie"?document.compatMode!="BackCompat":true;this.boxCharacteristics={xOffset:xOffset,yOffset:yOffset,newBoxModel:newBoxModel};}
-return this.boxCharacteristics;},CLASS_NAME:"OpenLayers.Handler.Box"});OpenLayers.Handler.RegularPolygon=OpenLayers.Class(OpenLayers.Handler.Drag,{sides:4,radius:null,snapAngle:null,snapToggle:'shiftKey',persist:false,irregular:false,angle:null,fixedRadius:false,feature:null,layer:null,origin:null,initialize:function(control,callbacks,options){this.style=OpenLayers.Util.extend(OpenLayers.Feature.Vector.style['default'],{});OpenLayers.Handler.prototype.initialize.apply(this,[control,callbacks,options]);this.options=(options)?options:new Object();},setOptions:function(newOptions){OpenLayers.Util.extend(this.options,newOptions);OpenLayers.Util.extend(this,newOptions);},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){var options={displayInLayerSwitcher:false,calculateInRange:OpenLayers.Function.True};this.layer=new OpenLayers.Layer.Vector(this.CLASS_NAME,options);this.map.addLayer(this.layer);activated=true;}
+return this.boxCharacteristics;},CLASS_NAME:"OpenLayers.Handler.Box"});OpenLayers.Handler.RegularPolygon=OpenLayers.Class(OpenLayers.Handler.Drag,{sides:4,radius:null,snapAngle:null,snapToggle:'shiftKey',layerOptions:null,persist:false,irregular:false,angle:null,fixedRadius:false,feature:null,layer:null,origin:null,initialize:function(control,callbacks,options){if(!(options&&options.layerOptions&&options.layerOptions.styleMap)){this.style=OpenLayers.Util.extend(OpenLayers.Feature.Vector.style['default'],{});}
+OpenLayers.Handler.prototype.initialize.apply(this,[control,callbacks,options]);this.options=(options)?options:{};},setOptions:function(newOptions){OpenLayers.Util.extend(this.options,newOptions);OpenLayers.Util.extend(this,newOptions);},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){var options=OpenLayers.Util.extend({displayInLayerSwitcher:false,calculateInRange:OpenLayers.Function.True},this.layerOptions);this.layer=new OpenLayers.Layer.Vector(this.CLASS_NAME,options);this.map.addLayer(this.layer);activated=true;}
 return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.Drag.prototype.deactivate.apply(this,arguments)){if(this.dragging){this.cancel();}
 if(this.layer.map!=null){this.layer.destroy(false);if(this.feature){this.feature.destroy();}}
 this.layer=null;this.feature=null;deactivated=true;}
@@ -877,8 +914,8 @@ this.feature=new OpenLayers.Feature.Vector();this.createGeometry();this.callback
 this.modifyGeometry();if(this.irregular){var dx=point.x-this.origin.x;var dy=point.y-this.origin.y;var ratio;if(dy==0){ratio=dx/(this.radius*Math.sqrt(2));}else{ratio=dx/dy;}
 this.feature.geometry.resize(1,this.origin,ratio);this.feature.geometry.move(dx/2,dy/2);}
 this.layer.drawFeature(this.feature,this.style);},up:function(evt){this.finalize();if(this.start==this.last){this.callback("done",[evt.xy]);}},out:function(evt){this.finalize();},createGeometry:function(){this.angle=Math.PI*((1/this.sides)-(1/2));if(this.snapAngle){this.angle+=this.snapAngle*(Math.PI/180);}
-this.feature.geometry=OpenLayers.Geometry.Polygon.createRegularPolygon(this.origin,this.radius,this.sides,this.snapAngle);},modifyGeometry:function(){var angle,dx,dy,point;var ring=this.feature.geometry.components[0];if(ring.components.length!=(this.sides+1)){this.createGeometry();ring=this.feature.geometry.components[0];}
-for(var i=0;i<this.sides;++i){point=ring.components[i];angle=this.angle+(i*2*Math.PI/this.sides);point.x=this.origin.x+(this.radius*Math.cos(angle));point.y=this.origin.y+(this.radius*Math.sin(angle));point.clearBounds();}},calculateAngle:function(point,evt){var alpha=Math.atan2(point.y-this.origin.y,point.x-this.origin.x);if(this.snapAngle&&(this.snapToggle&&!evt[this.snapToggle])){var snapAngleRad=(Math.PI/180)*this.snapAngle;this.angle=Math.round(alpha/snapAngleRad)*snapAngleRad;}else{this.angle=alpha;}},cancel:function(){this.callback("cancel",null);this.finalize();},finalize:function(){this.origin=null;this.radius=this.options.radius;},clear:function(){this.layer.renderer.clear();this.layer.destroyFeatures();},callback:function(name,args){if(this.callbacks[name]){this.callbacks[name].apply(this.control,[this.feature.geometry.clone()]);}
+this.feature.geometry=OpenLayers.Geometry.Polygon.createRegularPolygon(this.origin,this.radius,this.sides,this.snapAngle);},modifyGeometry:function(){var angle,point;var ring=this.feature.geometry.components[0];if(ring.components.length!=(this.sides+1)){this.createGeometry();ring=this.feature.geometry.components[0];}
+for(var i=0;i<this.sides;++i){point=ring.components[i];angle=this.angle+(i*2*Math.PI/this.sides);point.x=this.origin.x+(this.radius*Math.cos(angle));point.y=this.origin.y+(this.radius*Math.sin(angle));point.clearBounds();}},calculateAngle:function(point,evt){var alpha=Math.atan2(point.y-this.origin.y,point.x-this.origin.x);if(this.snapAngle&&(this.snapToggle&&!evt[this.snapToggle])){var snapAngleRad=(Math.PI/180)*this.snapAngle;this.angle=Math.round(alpha/snapAngleRad)*snapAngleRad;}else{this.angle=alpha;}},cancel:function(){this.callback("cancel",null);this.finalize();},finalize:function(){this.origin=null;this.radius=this.options.radius;},clear:function(){if(this.layer){this.layer.renderer.clear();this.layer.destroyFeatures();}},callback:function(name,args){if(this.callbacks[name]){this.callbacks[name].apply(this.control,[this.feature.geometry.clone()]);}
 if(!this.persist&&(name=="done"||name=="cancel")){this.clear();}},CLASS_NAME:"OpenLayers.Handler.RegularPolygon"});OpenLayers.Layer.HTTPRequest=OpenLayers.Class(OpenLayers.Layer,{URL_HASH_FACTOR:(Math.sqrt(5)-1)/2,url:null,params:null,reproject:false,initialize:function(name,url,params,options){var newArguments=arguments;newArguments=[name,options];OpenLayers.Layer.prototype.initialize.apply(this,newArguments);this.url=url;this.params=OpenLayers.Util.extend({},params);},destroy:function(){this.url=null;this.params=null;OpenLayers.Layer.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.HTTPRequest(this.name,this.url,this.params,this.getOptions());}
 obj=OpenLayers.Layer.prototype.clone.apply(this,[obj]);return obj;},setUrl:function(newUrl){this.url=newUrl;},mergeNewParams:function(newParams){this.params=OpenLayers.Util.extend(this.params,newParams);var ret=this.redraw();if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"params"});}
 return ret;},redraw:function(force){if(force){return this.mergeNewParams({"_olSalt":Math.random()});}else{return OpenLayers.Layer.prototype.redraw.apply(this,[]);}},selectUrl:function(paramString,urls){var product=1;for(var i=0,len=paramString.length;i<len;i++){product*=paramString.charCodeAt(i)*this.URL_HASH_FACTOR;product-=Math.floor(product);}
@@ -888,8 +925,8 @@ paramsString=OpenLayers.Util.getParameterString(allParams);return OpenLayers.Uti
 this.drawn=true;}},addMarker:function(marker){this.markers.push(marker);if(this.opacity!=null){marker.setOpacity(this.opacity);}
 if(this.map&&this.map.getExtent()){marker.map=this.map;this.drawMarker(marker);}},removeMarker:function(marker){if(this.markers&&this.markers.length){OpenLayers.Util.removeItem(this.markers,marker);marker.erase();}},clearMarkers:function(){if(this.markers!=null){while(this.markers.length>0){this.removeMarker(this.markers[0]);}}},drawMarker:function(marker){var px=this.map.getLayerPxFromLonLat(marker.lonlat);if(px==null){marker.display(false);}else{if(!marker.isDrawn()){var markerImg=marker.draw(px);this.div.appendChild(markerImg);}else if(marker.icon){marker.icon.moveTo(px);}}},getDataExtent:function(){var maxExtent=null;if(this.markers&&(this.markers.length>0)){var maxExtent=new OpenLayers.Bounds();for(var i=0,len=this.markers.length;i<len;i++){var marker=this.markers[i];maxExtent.extend(marker.lonlat);}}
 return maxExtent;},CLASS_NAME:"OpenLayers.Layer.Markers"});OpenLayers.Layer.SphericalMercator={getExtent:function(){var extent=null;if(this.sphericalMercator){extent=this.map.calculateBounds();}else{extent=OpenLayers.Layer.FixedZoomLevels.prototype.getExtent.apply(this);}
-return extent;},initMercatorParameters:function(){this.RESOLUTIONS=[];var maxResolution=156543.0339;for(var zoom=0;zoom<=this.MAX_ZOOM_LEVEL;++zoom){this.RESOLUTIONS[zoom]=maxResolution/Math.pow(2,zoom);}
-this.units="m";this.projection="EPSG:900913";},forwardMercator:function(lon,lat){var x=lon*20037508.34/180;var y=Math.log(Math.tan((90+lat)*Math.PI/360))/(Math.PI/180);y=y*20037508.34/180;return new OpenLayers.LonLat(x,y);},inverseMercator:function(x,y){var lon=(x/20037508.34)*180;var lat=(y/20037508.34)*180;lat=180/Math.PI*(2*Math.atan(Math.exp(lat*Math.PI/180))-Math.PI/2);return new OpenLayers.LonLat(lon,lat);},projectForward:function(point){var lonlat=OpenLayers.Layer.SphericalMercator.forwardMercator(point.x,point.y);point.x=lonlat.lon;point.y=lonlat.lat;return point;},projectInverse:function(point){var lonlat=OpenLayers.Layer.SphericalMercator.inverseMercator(point.x,point.y);point.x=lonlat.lon;point.y=lonlat.lat;return point;}};OpenLayers.Projection.addTransform("EPSG:4326","EPSG:900913",OpenLayers.Layer.SphericalMercator.projectForward);OpenLayers.Projection.addTransform("EPSG:900913","EPSG:4326",OpenLayers.Layer.SphericalMercator.projectInverse);OpenLayers.Control.DrawFeature=OpenLayers.Class(OpenLayers.Control,{layer:null,callbacks:null,EVENT_TYPES:["featureadded"],multi:false,featureAdded:function(){},handlerOptions:null,initialize:function(layer,handler,options){this.EVENT_TYPES=OpenLayers.Control.DrawFeature.prototype.EVENT_TYPES.concat(OpenLayers.Control.prototype.EVENT_TYPES);OpenLayers.Control.prototype.initialize.apply(this,[options]);this.callbacks=OpenLayers.Util.extend({done:this.drawFeature,modify:function(vertex,feature){this.layer.events.triggerEvent("sketchmodified",{vertex:vertex,feature:feature});},create:function(vertex,feature){this.layer.events.triggerEvent("sketchstarted",{vertex:vertex,feature:feature});}},this.callbacks);this.layer=layer;this.handlerOptions=this.handlerOptions||{};if(!("multi"in this.handlerOptions)){this.handlerOptions.multi=this.multi;}
+return extent;},getLonLatFromViewPortPx:function(viewPortPx){return OpenLayers.Layer.prototype.getLonLatFromViewPortPx.apply(this,arguments);},getViewPortPxFromLonLat:function(lonlat){return OpenLayers.Layer.prototype.getViewPortPxFromLonLat.apply(this,arguments);},initMercatorParameters:function(){this.RESOLUTIONS=[];var maxResolution=156543.0339;for(var zoom=0;zoom<=this.MAX_ZOOM_LEVEL;++zoom){this.RESOLUTIONS[zoom]=maxResolution/Math.pow(2,zoom);}
+this.units="m";this.projection=this.projection||"EPSG:900913";},forwardMercator:function(lon,lat){var x=lon*20037508.34/180;var y=Math.log(Math.tan((90+lat)*Math.PI/360))/(Math.PI/180);y=y*20037508.34/180;return new OpenLayers.LonLat(x,y);},inverseMercator:function(x,y){var lon=(x/20037508.34)*180;var lat=(y/20037508.34)*180;lat=180/Math.PI*(2*Math.atan(Math.exp(lat*Math.PI/180))-Math.PI/2);return new OpenLayers.LonLat(lon,lat);},projectForward:function(point){var lonlat=OpenLayers.Layer.SphericalMercator.forwardMercator(point.x,point.y);point.x=lonlat.lon;point.y=lonlat.lat;return point;},projectInverse:function(point){var lonlat=OpenLayers.Layer.SphericalMercator.inverseMercator(point.x,point.y);point.x=lonlat.lon;point.y=lonlat.lat;return point;}};OpenLayers.Projection.addTransform("EPSG:4326","EPSG:900913",OpenLayers.Layer.SphericalMercator.projectForward);OpenLayers.Projection.addTransform("EPSG:900913","EPSG:4326",OpenLayers.Layer.SphericalMercator.projectInverse);OpenLayers.Control.DrawFeature=OpenLayers.Class(OpenLayers.Control,{layer:null,callbacks:null,EVENT_TYPES:["featureadded"],multi:false,featureAdded:function(){},handlerOptions:null,initialize:function(layer,handler,options){this.EVENT_TYPES=OpenLayers.Control.DrawFeature.prototype.EVENT_TYPES.concat(OpenLayers.Control.prototype.EVENT_TYPES);OpenLayers.Control.prototype.initialize.apply(this,[options]);this.callbacks=OpenLayers.Util.extend({done:this.drawFeature,modify:function(vertex,feature){this.layer.events.triggerEvent("sketchmodified",{vertex:vertex,feature:feature});},create:function(vertex,feature){this.layer.events.triggerEvent("sketchstarted",{vertex:vertex,feature:feature});}},this.callbacks);this.layer=layer;this.handlerOptions=this.handlerOptions||{};if(!("multi"in this.handlerOptions)){this.handlerOptions.multi=this.multi;}
 var sketchStyle=this.layer.styleMap&&this.layer.styleMap.styles.temporary;if(sketchStyle){this.handlerOptions.layerOptions=OpenLayers.Util.applyDefaults(this.handlerOptions.layerOptions,{styleMap:new OpenLayers.StyleMap({"default":sketchStyle})});}
 this.handler=new handler(this,this.callbacks,this.handlerOptions);},drawFeature:function(geometry){var feature=new OpenLayers.Feature.Vector(geometry);var proceed=this.layer.events.triggerEvent("sketchcomplete",{feature:feature});if(proceed!==false){feature.state=OpenLayers.State.INSERT;this.layer.addFeatures([feature]);this.featureAdded(feature);this.events.triggerEvent("featureadded",{feature:feature});}},CLASS_NAME:"OpenLayers.Control.DrawFeature"});OpenLayers.Control.ZoomBox=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,out:false,alwaysZoom:false,draw:function(){this.handler=new OpenLayers.Handler.Box(this,{done:this.zoomBox},{keyMask:this.keyMask});},zoomBox:function(position){if(position instanceof OpenLayers.Bounds){var bounds;if(!this.out){var minXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.left,position.bottom));var maxXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.right,position.top));bounds=new OpenLayers.Bounds(minXY.lon,minXY.lat,maxXY.lon,maxXY.lat);}else{var pixWidth=Math.abs(position.right-position.left);var pixHeight=Math.abs(position.top-position.bottom);var zoomFactor=Math.min((this.map.size.h/pixHeight),(this.map.size.w/pixWidth));var extent=this.map.getExtent();var center=this.map.getLonLatFromPixel(position.getCenterPixel());var xmin=center.lon-(extent.getWidth()/2)*zoomFactor;var xmax=center.lon+(extent.getWidth()/2)*zoomFactor;var ymin=center.lat-(extent.getHeight()/2)*zoomFactor;var ymax=center.lat+(extent.getHeight()/2)*zoomFactor;bounds=new OpenLayers.Bounds(xmin,ymin,xmax,ymax);}
 var lastZoom=this.map.getZoom();this.map.zoomToExtent(bounds);if(lastZoom==this.map.getZoom()&&this.alwaysZoom==true){this.map.zoomTo(lastZoom+(this.out?-1:1));}}else{if(!this.out){this.map.setCenter(this.map.getLonLatFromPixel(position),this.map.getZoom()+1);}else{this.map.setCenter(this.map.getLonLatFromPixel(position),this.map.getZoom()-1);}}},CLASS_NAME:"OpenLayers.Control.ZoomBox"});OpenLayers.Format.WKT=OpenLayers.Class(OpenLayers.Format,{initialize:function(options){this.regExes={'typeStr':/^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/,'spaces':/\s+/,'parenComma':/\)\s*,\s*\(/,'doubleParenComma':/\)\s*\)\s*,\s*\(\s*\(/,'trimParens':/^\s*\(?(.*?)\)?\s*$/};OpenLayers.Format.prototype.initialize.apply(this,[options]);},read:function(wkt){var features,type,str;var matches=this.regExes.typeStr.exec(wkt);if(matches){type=matches[1].toLowerCase();str=matches[2];if(this.parse[type]){features=this.parse[type].apply(this,[str]);}
@@ -901,7 +938,8 @@ geometry=collection[i].geometry;type=geometry.CLASS_NAME.split('.')[2].toLowerCa
 if(this.internalProjection&&this.externalProjection){geometry=geometry.clone();geometry.transform(this.internalProjection,this.externalProjection);}
 data=this.extract[type].apply(this,[geometry]);pieces.push(type.toUpperCase()+'('+data+')');}
 if(isCollection){pieces.push(')');}
-return pieces.join('');},extract:{'point':function(point){return point.x+' '+point.y;},'multipoint':function(multipoint){var array=[];for(var i=0,len=multipoint.components.length;i<len;++i){array.push(this.extract.point.apply(this,[multipoint.components[i]]));}
+return pieces.join('');},extract:{'point':function(point){return point.x+' '+point.y;},'multipoint':function(multipoint){var array=[];for(var i=0,len=multipoint.components.length;i<len;++i){array.push('('+
+this.extract.point.apply(this,[multipoint.components[i]])+')');}
 return array.join(',');},'linestring':function(linestring){var array=[];for(var i=0,len=linestring.components.length;i<len;++i){array.push(this.extract.point.apply(this,[linestring.components[i]]));}
 return array.join(',');},'multilinestring':function(multilinestring){var array=[];for(var i=0,len=multilinestring.components.length;i<len;++i){array.push('('+
 this.extract.linestring.apply(this,[multilinestring.components[i]])+')');}
@@ -909,7 +947,7 @@ return array.join(',');},'polygon':function(polygon){var array=[];for(var i=0,le
 this.extract.linestring.apply(this,[polygon.components[i]])+')');}
 return array.join(',');},'multipolygon':function(multipolygon){var array=[];for(var i=0,len=multipolygon.components.length;i<len;++i){array.push('('+
 this.extract.polygon.apply(this,[multipolygon.components[i]])+')');}
-return array.join(',');}},parse:{'point':function(str){var coords=OpenLayers.String.trim(str).split(this.regExes.spaces);return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(coords[0],coords[1]));},'multipoint':function(str){var points=OpenLayers.String.trim(str).split(',');var components=[];for(var i=0,len=points.length;i<len;++i){components.push(this.parse.point.apply(this,[points[i]]).geometry);}
+return array.join(',');}},parse:{'point':function(str){var coords=OpenLayers.String.trim(str).split(this.regExes.spaces);return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(coords[0],coords[1]));},'multipoint':function(str){var point;var points=OpenLayers.String.trim(str).split(this.regExes.parenComma);var components=[];for(var i=0,len=points.length;i<len;++i){point=points[i].replace(this.regExes.trimParens,'$1');components.push(this.parse.point.apply(this,[point]).geometry);}
 return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiPoint(components));},'linestring':function(str){var points=OpenLayers.String.trim(str).split(',');var components=[];for(var i=0,len=points.length;i<len;++i){components.push(this.parse.point.apply(this,[points[i]]).geometry);}
 return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString(components));},'multilinestring':function(str){var line;var lines=OpenLayers.String.trim(str).split(this.regExes.parenComma);var components=[];for(var i=0,len=lines.length;i<len;++i){line=lines[i].replace(this.regExes.trimParens,'$1');components.push(this.parse.linestring.apply(this,[line]).geometry);}
 return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiLineString(components));},'polygon':function(str){var ring,linestring,linearring;var rings=OpenLayers.String.trim(str).split(this.regExes.parenComma);var components=[];for(var i=0,len=rings.length;i<len;++i){ring=rings[i].replace(this.regExes.trimParens,'$1');linestring=this.parse.linestring.apply(this,[ring]).geometry;linearring=new OpenLayers.Geometry.LinearRing(linestring.components);components.push(linearring);}
@@ -918,15 +956,15 @@ return new OpenLayers.Feature.Vector(new OpenLayers.Geometry.MultiPolygon(compon
 return components;}},CLASS_NAME:"OpenLayers.Format.WKT"});OpenLayers.Layer.Grid=OpenLayers.Class(OpenLayers.Layer.HTTPRequest,{tileSize:null,grid:null,singleTile:false,ratio:1.5,buffer:2,numLoadingTiles:0,initialize:function(name,url,params,options){OpenLayers.Layer.HTTPRequest.prototype.initialize.apply(this,arguments);this.events.addEventType("tileloaded");this.grid=[];},destroy:function(){this.clearGrid();this.grid=null;this.tileSize=null;OpenLayers.Layer.HTTPRequest.prototype.destroy.apply(this,arguments);},clearGrid:function(){if(this.grid){for(var iRow=0,len=this.grid.length;iRow<len;iRow++){var row=this.grid[iRow];for(var iCol=0,clen=row.length;iCol<clen;iCol++){var tile=row[iCol];this.removeTileMonitoringHooks(tile);tile.destroy();}}
 this.grid=[];}},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.Grid(this.name,this.url,this.params,this.getOptions());}
 obj=OpenLayers.Layer.HTTPRequest.prototype.clone.apply(this,[obj]);if(this.tileSize!=null){obj.tileSize=this.tileSize.clone();}
-obj.grid=[];return obj;},moveTo:function(bounds,zoomChanged,dragging){OpenLayers.Layer.HTTPRequest.prototype.moveTo.apply(this,arguments);bounds=bounds||this.map.getExtent();if(bounds!=null){var forceReTile=!this.grid.length||zoomChanged;var tilesBounds=this.getTilesBounds();if(this.singleTile){if(forceReTile||(!dragging&&!tilesBounds.containsBounds(bounds))){this.initSingleTile(bounds);}}else{if(forceReTile||!tilesBounds.containsBounds(bounds,true)){this.initGriddedTiles(bounds);}else{this.moveGriddedTiles(bounds);}}}},setTileSize:function(size){if(this.singleTile){size=this.map.getSize().clone();size.h=parseInt(size.h*this.ratio);size.w=parseInt(size.w*this.ratio);}
+obj.grid=[];return obj;},moveTo:function(bounds,zoomChanged,dragging){OpenLayers.Layer.HTTPRequest.prototype.moveTo.apply(this,arguments);bounds=bounds||this.map.getExtent();if(bounds!=null){var forceReTile=!this.grid.length||zoomChanged;var tilesBounds=this.getTilesBounds();if(this.singleTile){if(forceReTile||(!dragging&&!tilesBounds.containsBounds(bounds))){this.initSingleTile(bounds);}}else{if(forceReTile||!tilesBounds.containsBounds(bounds,true)){this.initGriddedTiles(bounds);}else{this.moveGriddedTiles(bounds);}}}},setTileSize:function(size){if(this.singleTile){size=this.map.getSize();size.h=parseInt(size.h*this.ratio);size.w=parseInt(size.w*this.ratio);}
 OpenLayers.Layer.HTTPRequest.prototype.setTileSize.apply(this,[size]);},getGridBounds:function(){var msg="The getGridBounds() function is deprecated. It will be "+"removed in 3.0. Please use getTilesBounds() instead.";OpenLayers.Console.warn(msg);return this.getTilesBounds();},getTilesBounds:function(){var bounds=null;if(this.grid.length){var bottom=this.grid.length-1;var bottomLeftTile=this.grid[bottom][0];var right=this.grid[0].length-1;var topRightTile=this.grid[0][right];bounds=new OpenLayers.Bounds(bottomLeftTile.bounds.left,bottomLeftTile.bounds.bottom,topRightTile.bounds.right,topRightTile.bounds.top);}
 return bounds;},initSingleTile:function(bounds){var center=bounds.getCenterLonLat();var tileWidth=bounds.getWidth()*this.ratio;var tileHeight=bounds.getHeight()*this.ratio;var tileBounds=new OpenLayers.Bounds(center.lon-(tileWidth/2),center.lat-(tileHeight/2),center.lon+(tileWidth/2),center.lat+(tileHeight/2));var ul=new OpenLayers.LonLat(tileBounds.left,tileBounds.top);var px=this.map.getLayerPxFromLonLat(ul);if(!this.grid.length){this.grid[0]=[];}
 var tile=this.grid[0][0];if(!tile){tile=this.addTile(tileBounds,px);this.addTileMonitoringHooks(tile);tile.draw();this.grid[0][0]=tile;}else{tile.moveTo(tileBounds,px);}
 this.removeExcessTiles(1,1);},calculateGridLayout:function(bounds,extent,resolution){var tilelon=resolution*this.tileSize.w;var tilelat=resolution*this.tileSize.h;var offsetlon=bounds.left-extent.left;var tilecol=Math.floor(offsetlon/tilelon)-this.buffer;var tilecolremain=offsetlon/tilelon-tilecol;var tileoffsetx=-tilecolremain*this.tileSize.w;var tileoffsetlon=extent.left+tilecol*tilelon;var offsetlat=bounds.top-(extent.bottom+tilelat);var tilerow=Math.ceil(offsetlat/tilelat)+this.buffer;var tilerowremain=tilerow-offsetlat/tilelat;var tileoffsety=-tilerowremain*this.tileSize.h;var tileoffsetlat=extent.bottom+tilerow*tilelat;return{tilelon:tilelon,tilelat:tilelat,tileoffsetlon:tileoffsetlon,tileoffsetlat:tileoffsetlat,tileoffsetx:tileoffsetx,tileoffsety:tileoffsety};},initGriddedTiles:function(bounds){var viewSize=this.map.getSize();var minRows=Math.ceil(viewSize.h/this.tileSize.h)+
 Math.max(1,2*this.buffer);var minCols=Math.ceil(viewSize.w/this.tileSize.w)+
-Math.max(1,2*this.buffer);var extent=this.maxExtent;var resolution=this.map.getResolution();var tileLayout=this.calculateGridLayout(bounds,extent,resolution);var tileoffsetx=Math.round(tileLayout.tileoffsetx);var tileoffsety=Math.round(tileLayout.tileoffsety);var tileoffsetlon=tileLayout.tileoffsetlon;var tileoffsetlat=tileLayout.tileoffsetlat;var tilelon=tileLayout.tilelon;var tilelat=tileLayout.tilelat;this.origin=new OpenLayers.Pixel(tileoffsetx,tileoffsety);var startX=tileoffsetx;var startLon=tileoffsetlon;var rowidx=0;var layerContainerDivLeft=parseInt(this.map.layerContainerDiv.style.left);var layerContainerDivTop=parseInt(this.map.layerContainerDiv.style.top);do{var row=this.grid[rowidx++];if(!row){row=[];this.grid.push(row);}
+Math.max(1,2*this.buffer);var extent=this.getMaxExtent();var resolution=this.map.getResolution();var tileLayout=this.calculateGridLayout(bounds,extent,resolution);var tileoffsetx=Math.round(tileLayout.tileoffsetx);var tileoffsety=Math.round(tileLayout.tileoffsety);var tileoffsetlon=tileLayout.tileoffsetlon;var tileoffsetlat=tileLayout.tileoffsetlat;var tilelon=tileLayout.tilelon;var tilelat=tileLayout.tilelat;this.origin=new OpenLayers.Pixel(tileoffsetx,tileoffsety);var startX=tileoffsetx;var startLon=tileoffsetlon;var rowidx=0;var layerContainerDivLeft=parseInt(this.map.layerContainerDiv.style.left);var layerContainerDivTop=parseInt(this.map.layerContainerDiv.style.top);do{var row=this.grid[rowidx++];if(!row){row=[];this.grid.push(row);}
 tileoffsetlon=startLon;tileoffsetx=startX;var colidx=0;do{var tileBounds=new OpenLayers.Bounds(tileoffsetlon,tileoffsetlat,tileoffsetlon+tilelon,tileoffsetlat+tilelat);var x=tileoffsetx;x-=layerContainerDivLeft;var y=tileoffsety;y-=layerContainerDivTop;var px=new OpenLayers.Pixel(x,y);var tile=row[colidx++];if(!tile){tile=this.addTile(tileBounds,px);this.addTileMonitoringHooks(tile);row.push(tile);}else{tile.moveTo(tileBounds,px,false);}
-tileoffsetlon+=tilelon;tileoffsetx+=this.tileSize.w;}while((tileoffsetlon<=bounds.right+tilelon*this.buffer)||colidx<minCols);tileoffsetlat-=tilelat;tileoffsety+=this.tileSize.h;}while((tileoffsetlat>=bounds.bottom-tilelat*this.buffer)||rowidx<minRows);this.removeExcessTiles(rowidx,colidx);this.spiralTileLoad();},spiralTileLoad:function(){var tileQueue=[];var directions=["right","down","left","up"];var iRow=0;var iCell=-1;var direction=OpenLayers.Util.indexOf(directions,"right");var directionsTried=0;while(directionsTried<directions.length){var testRow=iRow;var testCell=iCell;switch(directions[direction]){case"right":testCell++;break;case"down":testRow++;break;case"left":testCell--;break;case"up":testRow--;break;}
+tileoffsetlon+=tilelon;tileoffsetx+=this.tileSize.w;}while((tileoffsetlon<=bounds.right+tilelon*this.buffer)||colidx<minCols);tileoffsetlat-=tilelat;tileoffsety+=this.tileSize.h;}while((tileoffsetlat>=bounds.bottom-tilelat*this.buffer)||rowidx<minRows);this.removeExcessTiles(rowidx,colidx);this.spiralTileLoad();},getMaxExtent:function(){return this.maxExtent;},spiralTileLoad:function(){var tileQueue=[];var directions=["right","down","left","up"];var iRow=0;var iCell=-1;var direction=OpenLayers.Util.indexOf(directions,"right");var directionsTried=0;while(directionsTried<directions.length){var testRow=iRow;var testCell=iCell;switch(directions[direction]){case"right":testCell++;break;case"down":testRow++;break;case"left":testCell--;break;case"up":testRow--;break;}
 var tile=null;if((testRow<this.grid.length)&&(testRow>=0)&&(testCell<this.grid[0].length)&&(testCell>=0)){tile=this.grid[testRow][testCell];}
 if((tile!=null)&&(!tile.queued)){tileQueue.unshift(tile);tile.queued=true;directionsTried=0;iRow=testRow;iCell=testCell;}else{direction=(direction+1)%4;directionsTried++;}}
 for(var i=0,len=tileQueue.length;i<len;i++){var tile=tileQueue[i];tile.draw();tile.queued=false;}},addTile:function(bounds,position){},addTileMonitoringHooks:function(tile){tile.onLoadStart=function(){if(this.numLoadingTiles==0){this.events.triggerEvent("loadstart");}
@@ -934,8 +972,8 @@ this.numLoadingTiles++;};tile.events.register("loadstart",this,tile.onLoadStart)
 if(prepend){grid.unshift(row);}else{grid.push(row);}},shiftColumn:function(prepend){var deltaX=(prepend)?-this.tileSize.w:this.tileSize.w;var resolution=this.map.getResolution();var deltaLon=resolution*deltaX;for(var i=0,len=this.grid.length;i<len;i++){var row=this.grid[i];var modelTileIndex=(prepend)?0:(row.length-1);var modelTile=row[modelTileIndex];var bounds=modelTile.bounds.clone();var position=modelTile.position.clone();bounds.left=bounds.left+deltaLon;bounds.right=bounds.right+deltaLon;position.x=position.x+deltaX;var tile=prepend?this.grid[i].pop():this.grid[i].shift();tile.moveTo(bounds,position);if(prepend){row.unshift(tile);}else{row.push(tile);}}},removeExcessTiles:function(rows,columns){while(this.grid.length>rows){var row=this.grid.pop();for(var i=0,l=row.length;i<l;i++){var tile=row[i];this.removeTileMonitoringHooks(tile);tile.destroy();}}
 while(this.grid[0].length>columns){for(var i=0,l=this.grid.length;i<l;i++){var row=this.grid[i];var tile=row.pop();this.removeTileMonitoringHooks(tile);tile.destroy();}}},onMapResize:function(){if(this.singleTile){this.clearGrid();this.setTileSize();}},getTileBounds:function(viewPortPx){var maxExtent=this.maxExtent;var resolution=this.getResolution();var tileMapWidth=resolution*this.tileSize.w;var tileMapHeight=resolution*this.tileSize.h;var mapPoint=this.getLonLatFromViewPortPx(viewPortPx);var tileLeft=maxExtent.left+(tileMapWidth*Math.floor((mapPoint.lon-
 maxExtent.left)/tileMapWidth));var tileBottom=maxExtent.bottom+(tileMapHeight*Math.floor((mapPoint.lat-
-maxExtent.bottom)/tileMapHeight));return new OpenLayers.Bounds(tileLeft,tileBottom,tileLeft+tileMapWidth,tileBottom+tileMapHeight);},CLASS_NAME:"OpenLayers.Layer.Grid"});OpenLayers.Style=OpenLayers.Class({name:null,title:null,description:null,layerName:null,isDefault:false,rules:null,context:null,defaultStyle:null,defaultsPerSymbolizer:false,propertyStyles:null,initialize:function(style,options){OpenLayers.Util.extend(this,options);this.rules=[];if(options&&options.rules){this.addRules(options.rules);}
-this.setDefaultStyle(style||OpenLayers.Feature.Vector.style["default"]);},destroy:function(){for(var i=0,len=this.rules.length;i<len;i++){this.rules[i].destroy();this.rules[i]=null;}
+maxExtent.bottom)/tileMapHeight));return new OpenLayers.Bounds(tileLeft,tileBottom,tileLeft+tileMapWidth,tileBottom+tileMapHeight);},CLASS_NAME:"OpenLayers.Layer.Grid"});OpenLayers.Style=OpenLayers.Class({id:null,name:null,title:null,description:null,layerName:null,isDefault:false,rules:null,context:null,defaultStyle:null,defaultsPerSymbolizer:false,propertyStyles:null,initialize:function(style,options){OpenLayers.Util.extend(this,options);this.rules=[];if(options&&options.rules){this.addRules(options.rules);}
+this.setDefaultStyle(style||OpenLayers.Feature.Vector.style["default"]);this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},destroy:function(){for(var i=0,len=this.rules.length;i<len;i++){this.rules[i].destroy();this.rules[i]=null;}
 this.rules=null;this.defaultStyle=null;},createSymbolizer:function(feature){var style=this.defaultsPerSymbolizer?{}:this.createLiterals(OpenLayers.Util.extend({},this.defaultStyle),feature);var rules=this.rules;var rule,context;var elseRules=[];var appliedRules=false;for(var i=0,len=rules.length;i<len;i++){rule=rules[i];var applies=rule.evaluate(feature);if(applies){if(rule instanceof OpenLayers.Rule&&rule.elseFilter){elseRules.push(rule);}else{appliedRules=true;this.applySymbolizer(rule,style,feature);}}}
 if(appliedRules==false&&elseRules.length>0){appliedRules=true;for(var i=0,len=elseRules.length;i<len;i++){this.applySymbolizer(elseRules[i],style,feature);}}
 if(rules.length>0&&appliedRules==false){style.display="none";}
@@ -945,8 +983,9 @@ if(symbolizer.graphic===true){OpenLayers.Util.applyDefaults(symbolizer,{pointRad
 return this.createLiterals(OpenLayers.Util.extend(style,symbolizer),feature);},createLiterals:function(style,feature){var context=OpenLayers.Util.extend({},feature.attributes||feature.data);OpenLayers.Util.extend(context,this.context);for(var i in this.propertyStyles){style[i]=OpenLayers.Style.createLiteral(style[i],context,feature,i);}
 return style;},findPropertyStyles:function(){var propertyStyles={};var style=this.defaultStyle;this.addPropertyStyles(propertyStyles,style);var rules=this.rules;var symbolizer,value;for(var i=0,len=rules.length;i<len;i++){symbolizer=rules[i].symbolizer;for(var key in symbolizer){value=symbolizer[key];if(typeof value=="object"){this.addPropertyStyles(propertyStyles,value);}else{this.addPropertyStyles(propertyStyles,symbolizer);break;}}}
 return propertyStyles;},addPropertyStyles:function(propertyStyles,symbolizer){var property;for(var key in symbolizer){property=symbolizer[key];if(typeof property=="string"&&property.match(/\$\{\w+\}/)){propertyStyles[key]=true;}}
-return propertyStyles;},addRules:function(rules){this.rules=this.rules.concat(rules);this.propertyStyles=this.findPropertyStyles();},setDefaultStyle:function(style){this.defaultStyle=style;this.propertyStyles=this.findPropertyStyles();},getSymbolizerPrefix:function(geometry){var prefixes=OpenLayers.Style.SYMBOLIZER_PREFIXES;for(var i=0,len=prefixes.length;i<len;i++){if(geometry.CLASS_NAME.indexOf(prefixes[i])!=-1){return prefixes[i];}}},CLASS_NAME:"OpenLayers.Style"});OpenLayers.Style.createLiteral=function(value,context,feature,property){if(typeof value=="string"&&value.indexOf("${")!=-1){value=OpenLayers.String.format(value,context,[feature,property]);value=(isNaN(value)||!value)?value:parseFloat(value);}
-return value;};OpenLayers.Style.SYMBOLIZER_PREFIXES=['Point','Line','Polygon','Text'];OpenLayers.Control.Navigation=OpenLayers.Class(OpenLayers.Control,{dragPan:null,dragPanOptions:null,documentDrag:false,zoomBox:null,zoomBoxEnabled:true,zoomWheelEnabled:true,mouseWheelOptions:null,handleRightClicks:false,zoomBoxKeyMask:OpenLayers.Handler.MOD_SHIFT,autoActivate:true,initialize:function(options){this.handlers={};OpenLayers.Control.prototype.initialize.apply(this,arguments);},destroy:function(){this.deactivate();if(this.dragPan){this.dragPan.destroy();}
+return propertyStyles;},addRules:function(rules){Array.prototype.push.apply(this.rules,rules);this.propertyStyles=this.findPropertyStyles();},setDefaultStyle:function(style){this.defaultStyle=style;this.propertyStyles=this.findPropertyStyles();},getSymbolizerPrefix:function(geometry){var prefixes=OpenLayers.Style.SYMBOLIZER_PREFIXES;for(var i=0,len=prefixes.length;i<len;i++){if(geometry.CLASS_NAME.indexOf(prefixes[i])!=-1){return prefixes[i];}}},clone:function(){var options=OpenLayers.Util.extend({},this);if(this.rules){options.rules=[];for(var i=0,len=this.rules.length;i<len;++i){options.rules.push(this.rules[i].clone());}}
+options.context=this.context&&OpenLayers.Util.extend({},this.context);var defaultStyle=OpenLayers.Util.extend({},this.defaultStyle);return new OpenLayers.Style(defaultStyle,options);},CLASS_NAME:"OpenLayers.Style"});OpenLayers.Style.createLiteral=function(value,context,feature,property){if(typeof value=="string"&&value.indexOf("${")!=-1){value=OpenLayers.String.format(value,context,[feature,property]);value=(isNaN(value)||!value)?value:parseFloat(value);}
+return value;};OpenLayers.Style.SYMBOLIZER_PREFIXES=['Point','Line','Polygon','Text','Raster'];OpenLayers.Control.Navigation=OpenLayers.Class(OpenLayers.Control,{dragPan:null,dragPanOptions:null,documentDrag:false,zoomBox:null,zoomBoxEnabled:true,zoomWheelEnabled:true,mouseWheelOptions:null,handleRightClicks:false,zoomBoxKeyMask:OpenLayers.Handler.MOD_SHIFT,autoActivate:true,initialize:function(options){this.handlers={};OpenLayers.Control.prototype.initialize.apply(this,arguments);},destroy:function(){this.deactivate();if(this.dragPan){this.dragPan.destroy();}
 this.dragPan=null;if(this.zoomBox){this.zoomBox.destroy();}
 this.zoomBox=null;OpenLayers.Control.prototype.destroy.apply(this,arguments);},activate:function(){this.dragPan.activate();if(this.zoomWheelEnabled){this.handlers.wheel.activate();}
 this.handlers.click.activate();if(this.zoomBoxEnabled){this.zoomBox.activate();}
@@ -962,28 +1001,29 @@ if(tolerance){var dist;if(intersection){if(point){var segs=[seg1,seg2];var seg,x
 Math.pow(y-intersection.y,2));if(dist<tolerance){intersection.x=x;intersection.y=y;break outer;}}}}}else{var segs=[seg1,seg2];var source,target,x,y,p,result;outer:for(var i=0;i<2;++i){source=segs[i];target=segs[(i+1)%2];for(var j=1;j<3;++j){p={x:source["x"+j],y:source["y"+j]};result=OpenLayers.Geometry.distanceToSegment(p,target);if(result.distance<tolerance){if(point){intersection=new OpenLayers.Geometry.Point(p.x,p.y);}else{intersection=true;}
 break outer;}}}}}
 return intersection;};OpenLayers.Geometry.distanceToSegment=function(point,segment){var x0=point.x;var y0=point.y;var x1=segment.x1;var y1=segment.y1;var x2=segment.x2;var y2=segment.y2;var dx=x2-x1;var dy=y2-y1;var along=((dx*(x0-x1))+(dy*(y0-y1)))/(Math.pow(dx,2)+Math.pow(dy,2));var x,y;if(along<=0.0){x=x1;y=y1;}else if(along>=1.0){x=x2;y=y2;}else{x=x1+along*dx;y=y1+along*dy;}
-return{distance:Math.sqrt(Math.pow(x-x0,2)+Math.pow(y-y0,2)),x:x,y:y};};OpenLayers.Layer.XYZ=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:true,sphericalMercator:false,initialize:function(name,url,options){if(options&&options.sphericalMercator||this.sphericalMercator){options=OpenLayers.Util.extend({maxExtent:new OpenLayers.Bounds(-128*156543.0339,-128*156543.0339,128*156543.0339,128*156543.0339),maxResolution:156543.0339,numZoomLevels:19,units:"m",projection:"EPSG:900913"},options);}
+return{distance:Math.sqrt(Math.pow(x-x0,2)+Math.pow(y-y0,2)),x:x,y:y};};OpenLayers.Layer.XYZ=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:true,sphericalMercator:false,zoomOffset:0,initialize:function(name,url,options){if(options&&options.sphericalMercator||this.sphericalMercator){options=OpenLayers.Util.extend({maxExtent:new OpenLayers.Bounds(-128*156543.0339,-128*156543.0339,128*156543.0339,128*156543.0339),maxResolution:156543.0339,numZoomLevels:19,units:"m",projection:"EPSG:900913"},options);}
 url=url||this.url;name=name||this.name;var newArguments=[name,url,{},options];OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.XYZ(this.name,this.url,this.getOptions());}
-obj=OpenLayers.Layer.HTTPRequest.prototype.clone.apply(this,[obj]);if(this.tileSize!=null){obj.tileSize=this.tileSize.clone();}
-obj.grid=[];return obj;},getURL:function(bounds){var res=this.map.getResolution();var x=Math.round((bounds.left-this.maxExtent.left)/(res*this.tileSize.w));var y=Math.round((this.maxExtent.top-bounds.top)/(res*this.tileSize.h));var z=this.map.getZoom();var limit=Math.pow(2,z);if(this.wrapDateLine)
+obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){var res=this.map.getResolution();var x=Math.round((bounds.left-this.maxExtent.left)/(res*this.tileSize.w));var y=Math.round((this.maxExtent.top-bounds.top)/(res*this.tileSize.h));var z=this.map.getZoom()+this.zoomOffset;var limit=Math.pow(2,z);if(this.wrapDateLine)
 {x=((x%limit)+limit)%limit;}
 var url=this.url;var s=''+x+y+z;if(url instanceof Array)
 {url=this.selectUrl(s,url);}
-var path=OpenLayers.String.format(url,{'x':x,'y':y,'z':z});return path;},addTile:function(bounds,position){return new OpenLayers.Tile.Image(this,position,bounds,null,this.tileSize);},setMap:function(map){OpenLayers.Layer.Grid.prototype.setMap.apply(this,arguments);if(!this.tileOrigin){this.tileOrigin=new OpenLayers.LonLat(this.maxExtent.left,this.maxExtent.bottom);}},CLASS_NAME:"OpenLayers.Layer.XYZ"});OpenLayers.Layer.OSM=OpenLayers.Class(OpenLayers.Layer.XYZ,{name:"OpenStreetMap",attribution:"Data CC-By-SA by <a href='http://openstreetmap.org/'>OpenStreetMap</a>",sphericalMercator:true,url:'http://tile.openstreetmap.org/${z}/${x}/${y}.png',CLASS_NAME:"OpenLayers.Layer.OSM"});OpenLayers.Rule=OpenLayers.Class({id:null,name:'default',title:null,description:null,context:null,filter:null,elseFilter:false,symbolizer:null,minScaleDenominator:null,maxScaleDenominator:null,initialize:function(options){this.symbolizer={};OpenLayers.Util.extend(this,options);this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},destroy:function(){for(var i in this.symbolizer){this.symbolizer[i]=null;}
-this.symbolizer=null;},evaluate:function(feature){var context=this.getContext(feature);var applies=true;if(this.minScaleDenominator||this.maxScaleDenominator){var scale=feature.layer.map.getScale();}
+var path=OpenLayers.String.format(url,{'x':x,'y':y,'z':z});return path;},addTile:function(bounds,position){return new OpenLayers.Tile.Image(this,position,bounds,null,this.tileSize);},setMap:function(map){OpenLayers.Layer.Grid.prototype.setMap.apply(this,arguments);if(!this.tileOrigin){this.tileOrigin=new OpenLayers.LonLat(this.maxExtent.left,this.maxExtent.bottom);}},CLASS_NAME:"OpenLayers.Layer.XYZ"});OpenLayers.Layer.OSM=OpenLayers.Class(OpenLayers.Layer.XYZ,{name:"OpenStreetMap",attribution:"Data CC-By-SA by <a href='http://openstreetmap.org/'>OpenStreetMap</a>",sphericalMercator:true,url:'http://tile.openstreetmap.org/${z}/${x}/${y}.png',clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.OSM(this.name,this.url,this.getOptions());}
+obj=OpenLayers.Layer.XYZ.prototype.clone.apply(this,[obj]);return obj;},CLASS_NAME:"OpenLayers.Layer.OSM"});OpenLayers.Rule=OpenLayers.Class({id:null,name:null,title:null,description:null,context:null,filter:null,elseFilter:false,symbolizer:null,symbolizers:null,minScaleDenominator:null,maxScaleDenominator:null,initialize:function(options){this.symbolizer={};OpenLayers.Util.extend(this,options);if(this.symbolizers){delete this.symbolizer;}
+this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},destroy:function(){for(var i in this.symbolizer){this.symbolizer[i]=null;}
+this.symbolizer=null;delete this.symbolizers;},evaluate:function(feature){var context=this.getContext(feature);var applies=true;if(this.minScaleDenominator||this.maxScaleDenominator){var scale=feature.layer.map.getScale();}
 if(this.minScaleDenominator){applies=scale>=OpenLayers.Style.createLiteral(this.minScaleDenominator,context);}
 if(applies&&this.maxScaleDenominator){applies=scale<OpenLayers.Style.createLiteral(this.maxScaleDenominator,context);}
 if(applies&&this.filter){if(this.filter.CLASS_NAME=="OpenLayers.Filter.FeatureId"){applies=this.filter.evaluate(feature);}else{applies=this.filter.evaluate(context);}}
 return applies;},getContext:function(feature){var context=this.context;if(!context){context=feature.attributes||feature.data;}
 if(typeof this.context=="function"){context=this.context(feature);}
-return context;},clone:function(){var options=OpenLayers.Util.extend({},this);options.symbolizer={};for(var key in this.symbolizer){value=this.symbolizer[key];type=typeof value;if(type==="object"){options.symbolizer[key]=OpenLayers.Util.extend({},value);}else if(type==="string"){options.symbolizer[key]=value;}}
+return context;},clone:function(){var options=OpenLayers.Util.extend({},this);if(this.symbolizers){var len=this.symbolizers.length;options.symbolizers=new Array(len);for(var i=0;i<len;++i){options.symbolizers[i]=this.symbolizers[i].clone();}}else{options.symbolizer={};var value,type;for(var key in this.symbolizer){value=this.symbolizer[key];type=typeof value;if(type==="object"){options.symbolizer[key]=OpenLayers.Util.extend({},value);}else if(type==="string"){options.symbolizer[key]=value;}}}
 options.filter=this.filter&&this.filter.clone();options.context=this.context&&OpenLayers.Util.extend({},this.context);return new OpenLayers.Rule(options);},CLASS_NAME:"OpenLayers.Rule"});OpenLayers.StyleMap=OpenLayers.Class({styles:null,extendDefault:true,initialize:function(style,options){this.styles={"default":new OpenLayers.Style(OpenLayers.Feature.Vector.style["default"]),"select":new OpenLayers.Style(OpenLayers.Feature.Vector.style["select"]),"temporary":new OpenLayers.Style(OpenLayers.Feature.Vector.style["temporary"]),"delete":new OpenLayers.Style(OpenLayers.Feature.Vector.style["delete"])};if(style instanceof OpenLayers.Style){this.styles["default"]=style;this.styles["select"]=style;this.styles["temporary"]=style;this.styles["delete"]=style;}else if(typeof style=="object"){for(var key in style){if(style[key]instanceof OpenLayers.Style){this.styles[key]=style[key];}else if(typeof style[key]=="object"){this.styles[key]=new OpenLayers.Style(style[key]);}else{this.styles["default"]=new OpenLayers.Style(style);this.styles["select"]=new OpenLayers.Style(style);this.styles["temporary"]=new OpenLayers.Style(style);this.styles["delete"]=new OpenLayers.Style(style);break;}}}
 OpenLayers.Util.extend(this,options);},destroy:function(){for(var key in this.styles){this.styles[key].destroy();}
 this.styles=null;},createSymbolizer:function(feature,intent){if(!feature){feature=new OpenLayers.Feature.Vector();}
 if(!this.styles[intent]){intent="default";}
 feature.renderIntent=intent;var defaultSymbolizer={};if(this.extendDefault&&intent!="default"){defaultSymbolizer=this.styles["default"].createSymbolizer(feature);}
 return OpenLayers.Util.extend(defaultSymbolizer,this.styles[intent].createSymbolizer(feature));},addUniqueValueRules:function(renderIntent,property,symbolizers,context){var rules=[];for(var value in symbolizers){rules.push(new OpenLayers.Rule({symbolizer:symbolizers[value],context:context,filter:new OpenLayers.Filter.Comparison({type:OpenLayers.Filter.Comparison.EQUAL_TO,property:property,value:value})}));}
-this.styles[renderIntent].addRules(rules);},CLASS_NAME:"OpenLayers.StyleMap"});OpenLayers.Geometry.Collection=OpenLayers.Class(OpenLayers.Geometry,{components:null,componentTypes:null,initialize:function(components){OpenLayers.Geometry.prototype.initialize.apply(this,arguments);this.components=[];if(components!=null){this.addComponents(components);}},destroy:function(){this.components.length=0;this.components=null;},clone:function(){var geometry=eval("new "+this.CLASS_NAME+"()");for(var i=0,len=this.components.length;i<len;i++){geometry.addComponent(this.components[i].clone());}
+this.styles[renderIntent].addRules(rules);},CLASS_NAME:"OpenLayers.StyleMap"});OpenLayers.Geometry.Collection=OpenLayers.Class(OpenLayers.Geometry,{components:null,componentTypes:null,initialize:function(components){OpenLayers.Geometry.prototype.initialize.apply(this,arguments);this.components=[];if(components!=null){this.addComponents(components);}},destroy:function(){this.components.length=0;this.components=null;OpenLayers.Geometry.prototype.destroy.apply(this,arguments);},clone:function(){var geometry=eval("new "+this.CLASS_NAME+"()");for(var i=0,len=this.components.length;i<len;i++){geometry.addComponent(this.components[i].clone());}
 OpenLayers.Util.applyDefaults(geometry,this);return geometry;},getComponentsString:function(){var strings=[];for(var i=0,len=this.components.length;i<len;i++){strings.push(this.components[i].toShortString());}
 return strings.join(",");},calculateBounds:function(){this.bounds=null;if(this.components&&this.components.length>0){this.setBounds(this.components[0].getBounds());for(var i=1,len=this.components.length;i<len;i++){this.extendBounds(this.components[i].getBounds());}}},addComponents:function(components){if(!(components instanceof Array)){components=[components];}
 for(var i=0,len=components.length;i<len;i++){this.addComponent(components[i]);}},addComponent:function(component,index){var added=false;if(component){if(this.componentTypes==null||(OpenLayers.Util.indexOf(this.componentTypes,component.CLASS_NAME)>-1)){if(index!=null&&(index<this.components.length)){var components1=this.components.slice(0,index);var components2=this.components.slice(index,this.components.length);components1.push(component);this.components=components1.concat(components2);}else{this.components.push(component);}
@@ -992,7 +1032,15 @@ return added;},removeComponents:function(components){if(!(components instanceof
 for(var i=components.length-1;i>=0;--i){this.removeComponent(components[i]);}},removeComponent:function(component){OpenLayers.Util.removeItem(this.components,component);this.clearBounds();},getLength:function(){var length=0.0;for(var i=0,len=this.components.length;i<len;i++){length+=this.components[i].getLength();}
 return length;},getArea:function(){var area=0.0;for(var i=0,len=this.components.length;i<len;i++){area+=this.components[i].getArea();}
 return area;},getGeodesicArea:function(projection){var area=0.0;for(var i=0,len=this.components.length;i<len;i++){area+=this.components[i].getGeodesicArea(projection);}
-return area;},getCentroid:function(){return this.components.length&&this.components[0].getCentroid();},getGeodesicLength:function(projection){var length=0.0;for(var i=0,len=this.components.length;i<len;i++){length+=this.components[i].getGeodesicLength(projection);}
+return area;},getCentroid:function(weighted){if(!weighted){return this.components.length&&this.components[0].getCentroid();}
+var len=this.components.length;if(!len){return false;}
+var areas=[];var centroids=[];var areaSum=0;var minArea=Number.MAX_VALUE;var component;for(var i=0;i<len;++i){component=this.components[i];var area=component.getArea();var centroid=component.getCentroid(true);if(isNaN(area)||isNaN(centroid.x)||isNaN(centroid.y)){continue;}
+areas.push(area);areaSum+=area;minArea=(area<minArea&&area>0)?area:minArea;centroids.push(centroid);}
+len=areas.length;if(areaSum===0){for(var i=0;i<len;++i){areas[i]=1;}
+areaSum=areas.length;}else{for(var i=0;i<len;++i){areas[i]/=minArea;}
+areaSum/=minArea;}
+var xSum=0,ySum=0,centroid,area;for(var i=0;i<len;++i){centroid=centroids[i];area=areas[i];xSum+=centroid.x*area;ySum+=centroid.y*area;}
+return new OpenLayers.Geometry.Point(xSum/areaSum,ySum/areaSum);},getGeodesicLength:function(projection){var length=0.0;for(var i=0,len=this.components.length;i<len;i++){length+=this.components[i].getGeodesicLength(projection);}
 return length;},move:function(x,y){for(var i=0,len=this.components.length;i<len;i++){this.components[i].move(x,y);}},rotate:function(angle,origin){for(var i=0,len=this.components.length;i<len;++i){this.components[i].rotate(angle,origin);}},resize:function(scale,origin,ratio){for(var i=0;i<this.components.length;++i){this.components[i].resize(scale,origin,ratio);}
 return this;},distanceTo:function(geometry,options){var edge=!(options&&options.edge===false);var details=edge&&options&&options.details;var result,best,distance;var min=Number.POSITIVE_INFINITY;for(var i=0,len=this.components.length;i<len;++i){result=this.components[i].distanceTo(geometry,options);distance=details?result.distance:result;if(distance<min){min=distance;best=result;if(min==0){break;}}}
 return best;},equals:function(geometry){var equivalent=true;if(!geometry||!geometry.CLASS_NAME||(this.CLASS_NAME!=geometry.CLASS_NAME)){equivalent=false;}else if(!(geometry.components instanceof Array)||(geometry.components.length!=this.components.length)){equivalent=false;}else{for(var i=0,len=this.components.length;i<len;++i){if(!this.components[i].equals(geometry.components[i])){equivalent=false;break;}}}
@@ -1005,7 +1053,7 @@ OpenLayers.Util.applyDefaults(obj,this);return obj;},calculateBounds:function(){
 return result;},equals:function(geom){var equals=false;if(geom!=null){equals=((this.x==geom.x&&this.y==geom.y)||(isNaN(this.x)&&isNaN(this.y)&&isNaN(geom.x)&&isNaN(geom.y)));}
 return equals;},toShortString:function(){return(this.x+", "+this.y);},move:function(x,y){this.x=this.x+x;this.y=this.y+y;this.clearBounds();},rotate:function(angle,origin){angle*=Math.PI/180;var radius=this.distanceTo(origin);var theta=angle+Math.atan2(this.y-origin.y,this.x-origin.x);this.x=origin.x+(radius*Math.cos(theta));this.y=origin.y+(radius*Math.sin(theta));this.clearBounds();},getCentroid:function(){return new OpenLayers.Geometry.Point(this.x,this.y);},resize:function(scale,origin,ratio){ratio=(ratio==undefined)?1:ratio;this.x=origin.x+(scale*ratio*(this.x-origin.x));this.y=origin.y+(scale*(this.y-origin.y));this.clearBounds();return this;},intersects:function(geometry){var intersect=false;if(geometry.CLASS_NAME=="OpenLayers.Geometry.Point"){intersect=this.equals(geometry);}else{intersect=geometry.intersects(this);}
 return intersect;},transform:function(source,dest){if((source&&dest)){OpenLayers.Projection.transform(this,source,dest);this.bounds=null;}
-return this;},getVertices:function(nodes){return[this];},CLASS_NAME:"OpenLayers.Geometry.Point"});OpenLayers.Layer.Vector=OpenLayers.Class(OpenLayers.Layer,{EVENT_TYPES:["beforefeatureadded","beforefeaturesadded","featureadded","featuresadded","beforefeatureremoved","featureremoved","featuresremoved","beforefeatureselected","featureselected","featureunselected","beforefeaturemodified","featuremodified","afterfeaturemodified","vertexmodified","sketchstarted","sketchmodified","sketchcomplete","refresh"],isBaseLayer:false,isFixed:false,isVector:true,features:null,filter:null,selectedFeatures:null,unrenderedFeatures:null,reportError:true,style:null,styleMap:null,strategies:null,protocol:null,renderers:['SVG','VML','Canvas'],renderer:null,rendererOptions:null,geometryType:null,drawn:false,initialize:function(name,options){this.EVENT_TYPES=OpenLayers.Layer.Vector.prototype.EVENT_TYPES.concat(OpenLayers.Layer.prototype.EVENT_TYPES);OpenLayers.Layer.prototype.initialize.apply(this,arguments);if(!this.renderer||!this.renderer.supported()){this.assignRenderer();}
+return this;},getVertices:function(nodes){return[this];},CLASS_NAME:"OpenLayers.Geometry.Point"});OpenLayers.Layer.Vector=OpenLayers.Class(OpenLayers.Layer,{EVENT_TYPES:["beforefeatureadded","beforefeaturesadded","featureadded","featuresadded","beforefeatureremoved","beforefeaturesremoved","featureremoved","featuresremoved","beforefeatureselected","featureselected","featureunselected","beforefeaturemodified","featuremodified","afterfeaturemodified","vertexmodified","sketchstarted","sketchmodified","sketchcomplete","refresh"],isBaseLayer:false,isFixed:false,isVector:true,features:null,filter:null,selectedFeatures:null,unrenderedFeatures:null,reportError:true,style:null,styleMap:null,strategies:null,protocol:null,renderers:['SVG','VML','Canvas'],renderer:null,rendererOptions:null,geometryType:null,drawn:false,initialize:function(name,options){this.EVENT_TYPES=OpenLayers.Layer.Vector.prototype.EVENT_TYPES.concat(OpenLayers.Layer.prototype.EVENT_TYPES);OpenLayers.Layer.prototype.initialize.apply(this,arguments);if(!this.renderer||!this.renderer.supported()){this.assignRenderer();}
 if(!this.renderer||!this.renderer.supported()){this.renderer=null;this.displayError();}
 if(!this.styleMap){this.styleMap=new OpenLayers.StyleMap();}
 this.features=[];this.selectedFeatures=[];this.unrenderedFeatures={};if(this.strategies){for(var i=0,len=this.strategies.length;i<len;i++){this.strategies[i].setLayer(this);}}},destroy:function(){if(this.strategies){var strategy,i,len;for(i=0,len=this.strategies.length;i<len;i++){strategy=this.strategies[i];if(strategy.autoDestroy){strategy.destroy();}}
@@ -1015,31 +1063,36 @@ this.protocol=null;}
 this.destroyFeatures();this.features=null;this.selectedFeatures=null;this.unrenderedFeatures=null;if(this.renderer){this.renderer.destroy();}
 this.renderer=null;this.geometryType=null;this.drawn=null;OpenLayers.Layer.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.Vector(this.name,this.getOptions());}
 obj=OpenLayers.Layer.prototype.clone.apply(this,[obj]);var features=this.features;var len=features.length;var clonedFeatures=new Array(len);for(var i=0;i<len;++i){clonedFeatures[i]=features[i].clone();}
-obj.features=clonedFeatures;return obj;},refresh:function(obj){if(this.calculateInRange()&&this.visibility){this.events.triggerEvent("refresh",obj);}},assignRenderer:function(){for(var i=0,len=this.renderers.length;i<len;i++){var rendererClass=OpenLayers.Renderer[this.renderers[i]];if(rendererClass&&rendererClass.prototype.supported()){this.renderer=new rendererClass(this.div,this.rendererOptions);break;}}},displayError:function(){if(this.reportError){OpenLayers.Console.userError(OpenLayers.i18n("browserNotSupported",{'renderers':this.renderers.join("\n")}));}},setMap:function(map){OpenLayers.Layer.prototype.setMap.apply(this,arguments);if(!this.renderer){this.map.removeLayer(this);}else{this.renderer.map=this.map;this.renderer.setSize(this.map.getSize());}},afterAdd:function(){if(this.strategies){var strategy,i,len;for(i=0,len=this.strategies.length;i<len;i++){strategy=this.strategies[i];if(strategy.autoActivate){strategy.activate();}}}},removeMap:function(map){if(this.strategies){var strategy,i,len;for(i=0,len=this.strategies.length;i<len;i++){strategy=this.strategies[i];if(strategy.autoActivate){strategy.deactivate();}}}},onMapResize:function(){OpenLayers.Layer.prototype.onMapResize.apply(this,arguments);this.renderer.setSize(this.map.getSize());},moveTo:function(bounds,zoomChanged,dragging){OpenLayers.Layer.prototype.moveTo.apply(this,arguments);var coordSysUnchanged=true;if(!dragging){this.renderer.root.style.visibility="hidden";this.div.style.left=-parseInt(this.map.layerContainerDiv.style.left)+"px";this.div.style.top=-parseInt(this.map.layerContainerDiv.style.top)+"px";var extent=this.map.getExtent();coordSysUnchanged=this.renderer.setExtent(extent,zoomChanged);this.renderer.root.style.visibility="visible";if(navigator.userAgent.toLowerCase().indexOf("gecko")!=-1){this.div.scrollLeft=this.div.scrollLeft;}
+obj.features=clonedFeatures;return obj;},refresh:function(obj){if(this.calculateInRange()&&this.visibility){this.events.triggerEvent("refresh",obj);}},assignRenderer:function(){for(var i=0,len=this.renderers.length;i<len;i++){var rendererClass=this.renderers[i];var renderer=(typeof rendererClass=="function")?rendererClass:OpenLayers.Renderer[rendererClass];if(renderer&&renderer.prototype.supported()){this.renderer=new renderer(this.div,this.rendererOptions);break;}}},displayError:function(){if(this.reportError){OpenLayers.Console.userError(OpenLayers.i18n("browserNotSupported",{'renderers':this.renderers.join("\n")}));}},setMap:function(map){OpenLayers.Layer.prototype.setMap.apply(this,arguments);if(!this.renderer){this.map.removeLayer(this);}else{this.renderer.map=this.map;this.renderer.setSize(this.map.getSize());}},afterAdd:function(){if(this.strategies){var strategy,i,len;for(i=0,len=this.strategies.length;i<len;i++){strategy=this.strategies[i];if(strategy.autoActivate){strategy.activate();}}}},removeMap:function(map){this.drawn=false;if(this.strategies){var strategy,i,len;for(i=0,len=this.strategies.length;i<len;i++){strategy=this.strategies[i];if(strategy.autoActivate){strategy.deactivate();}}}},onMapResize:function(){OpenLayers.Layer.prototype.onMapResize.apply(this,arguments);this.renderer.setSize(this.map.getSize());},moveTo:function(bounds,zoomChanged,dragging){OpenLayers.Layer.prototype.moveTo.apply(this,arguments);var coordSysUnchanged=true;if(!dragging){this.renderer.root.style.visibility="hidden";this.div.style.left=-parseInt(this.map.layerContainerDiv.style.left)+"px";this.div.style.top=-parseInt(this.map.layerContainerDiv.style.top)+"px";var extent=this.map.getExtent();coordSysUnchanged=this.renderer.setExtent(extent,zoomChanged);this.renderer.root.style.visibility="visible";if(navigator.userAgent.toLowerCase().indexOf("gecko")!=-1){this.div.scrollLeft=this.div.scrollLeft;}
 if(!zoomChanged&&coordSysUnchanged){for(var i in this.unrenderedFeatures){var feature=this.unrenderedFeatures[i];this.drawFeature(feature);}}}
 if(!this.drawn||zoomChanged||!coordSysUnchanged){this.drawn=true;var feature;for(var i=0,len=this.features.length;i<len;i++){this.renderer.locked=(i!==(len-1));feature=this.features[i];this.drawFeature(feature);}}},display:function(display){OpenLayers.Layer.prototype.display.apply(this,arguments);var currentDisplay=this.div.style.display;if(currentDisplay!=this.renderer.root.style.display){this.renderer.root.style.display=currentDisplay;}},addFeatures:function(features,options){if(!(features instanceof Array)){features=[features];}
 var notify=!options||!options.silent;if(notify){var event={features:features};var ret=this.events.triggerEvent("beforefeaturesadded",event);if(ret===false){return;}
 features=event.features;}
-for(var i=0,len=features.length;i<len;i++){if(i!=(features.length-1)){this.renderer.locked=true;}else{this.renderer.locked=false;}
+var featuresAdded=[];for(var i=0,len=features.length;i<len;i++){if(i!=(features.length-1)){this.renderer.locked=true;}else{this.renderer.locked=false;}
 var feature=features[i];if(this.geometryType&&!(feature.geometry instanceof this.geometryType)){var throwStr=OpenLayers.i18n('componentShouldBe',{'geomType':this.geometryType.prototype.CLASS_NAME});throw throwStr;}
-this.features.push(feature);feature.layer=this;if(!feature.style&&this.style){feature.style=OpenLayers.Util.extend({},this.style);}
+feature.layer=this;if(!feature.style&&this.style){feature.style=OpenLayers.Util.extend({},this.style);}
 if(notify){if(this.events.triggerEvent("beforefeatureadded",{feature:feature})===false){continue;};this.preFeatureInsert(feature);}
-this.drawFeature(feature);if(notify){this.events.triggerEvent("featureadded",{feature:feature});this.onFeatureInsert(feature);}}
-if(notify){this.events.triggerEvent("featuresadded",{features:features});}},removeFeatures:function(features,options){if(!features||features.length===0){return;}
+featuresAdded.push(feature);this.features.push(feature);this.drawFeature(feature);if(notify){this.events.triggerEvent("featureadded",{feature:feature});this.onFeatureInsert(feature);}}
+if(notify){this.events.triggerEvent("featuresadded",{features:featuresAdded});}},removeFeatures:function(features,options){if(!features||features.length===0){return;}
+if(features===this.features){return this.removeAllFeatures(options);}
 if(!(features instanceof Array)){features=[features];}
-if(features===this.features||features===this.selectedFeatures){features=features.slice();}
-var notify=!options||!options.silent;for(var i=features.length-1;i>=0;i--){if(i!=0&&features[i-1].geometry){this.renderer.locked=true;}else{this.renderer.locked=false;}
+if(features===this.selectedFeatures){features=features.slice();}
+var notify=!options||!options.silent;if(notify){this.events.triggerEvent("beforefeaturesremoved",{features:features});}
+for(var i=features.length-1;i>=0;i--){if(i!=0&&features[i-1].geometry){this.renderer.locked=true;}else{this.renderer.locked=false;}
 var feature=features[i];delete this.unrenderedFeatures[feature.id];if(notify){this.events.triggerEvent("beforefeatureremoved",{feature:feature});}
 this.features=OpenLayers.Util.removeItem(this.features,feature);feature.layer=null;if(feature.geometry){this.renderer.eraseFeatures(feature);}
 if(OpenLayers.Util.indexOf(this.selectedFeatures,feature)!=-1){OpenLayers.Util.removeItem(this.selectedFeatures,feature);}
 if(notify){this.events.triggerEvent("featureremoved",{feature:feature});}}
-if(notify){this.events.triggerEvent("featuresremoved",{features:features});}},destroyFeatures:function(features,options){var all=(features==undefined);if(all){features=this.features;}
+if(notify){this.events.triggerEvent("featuresremoved",{features:features});}},removeAllFeatures:function(options){var notify=!options||!options.silent;var features=this.features;if(notify){this.events.triggerEvent("beforefeaturesremoved",{features:features});}
+var feature;for(var i=features.length-1;i>=0;i--){feature=features[i];if(notify){this.events.triggerEvent("beforefeatureremoved",{feature:feature});}
+feature.layer=null;if(notify){this.events.triggerEvent("featureremoved",{feature:feature});}}
+this.renderer.clear();this.features=[];this.unrenderedFeatures={};this.selectedFeatures=[];if(notify){this.events.triggerEvent("featuresremoved",{features:features});}},destroyFeatures:function(features,options){var all=(features==undefined);if(all){features=this.features;}
 if(features){this.removeFeatures(features,options);for(var i=features.length-1;i>=0;i--){features[i].destroy();}}},drawFeature:function(feature,style){if(!this.drawn){return}
 if(typeof style!="object"){if(!style&&feature.state===OpenLayers.State.DELETE){style="delete";}
 var renderIntent=style||feature.renderIntent;style=feature.style||this.style;if(!style){style=this.styleMap.createSymbolizer(feature,renderIntent);}}
 if(!this.renderer.drawFeature(feature,style)){this.unrenderedFeatures[feature.id]=feature;}else{delete this.unrenderedFeatures[feature.id];};},eraseFeatures:function(features){this.renderer.eraseFeatures(features);},getFeatureFromEvent:function(evt){if(!this.renderer){OpenLayers.Console.error(OpenLayers.i18n("getFeatureError"));return null;}
-var featureId=this.renderer.getFeatureIdFromEvent(evt);return this.getFeatureById(featureId);},getFeatureById:function(featureId){var feature=null;for(var i=0,len=this.features.length;i<len;++i){if(this.features[i].id==featureId){feature=this.features[i];break;}}
-return feature;},onFeatureInsert:function(feature){},preFeatureInsert:function(feature){},getDataExtent:function(){var maxExtent=null;var features=this.features;if(features&&(features.length>0)){maxExtent=new OpenLayers.Bounds();var geometry=null;for(var i=0,len=features.length;i<len;i++){geometry=features[i].geometry;if(geometry){maxExtent.extend(geometry.getBounds());}}}
+var featureId=this.renderer.getFeatureIdFromEvent(evt);return this.getFeatureById(featureId);},getFeatureBy:function(property,value){var feature=null;for(var i=0,len=this.features.length;i<len;++i){if(this.features[i][property]==value){feature=this.features[i];break;}}
+return feature;},getFeatureById:function(featureId){return this.getFeatureBy('id',featureId);},getFeatureByFid:function(featureFid){return this.getFeatureBy('fid',featureFid);},onFeatureInsert:function(feature){},preFeatureInsert:function(feature){},getDataExtent:function(){var maxExtent=null;var features=this.features;if(features&&(features.length>0)){maxExtent=new OpenLayers.Bounds();var geometry=null;for(var i=0,len=features.length;i<len;i++){geometry=features[i].geometry;if(geometry){maxExtent.extend(geometry.getBounds());}}}
 return maxExtent;},CLASS_NAME:"OpenLayers.Layer.Vector"});OpenLayers.Geometry.MultiPoint=OpenLayers.Class(OpenLayers.Geometry.Collection,{componentTypes:["OpenLayers.Geometry.Point"],initialize:function(components){OpenLayers.Geometry.Collection.prototype.initialize.apply(this,arguments);},addPoint:function(point,index){this.addComponent(point,index);},removePoint:function(point){this.removeComponent(point);},CLASS_NAME:"OpenLayers.Geometry.MultiPoint"});OpenLayers.Handler.Point=OpenLayers.Class(OpenLayers.Handler,{point:null,layer:null,multi:false,drawing:false,mouseDown:false,lastDown:null,lastUp:null,persist:false,layerOptions:null,initialize:function(control,callbacks,options){if(!(options&&options.layerOptions&&options.layerOptions.styleMap)){this.style=OpenLayers.Util.extend(OpenLayers.Feature.Vector.style['default'],{});}
 OpenLayers.Handler.prototype.initialize.apply(this,arguments);},activate:function(){if(!OpenLayers.Handler.prototype.activate.apply(this,arguments)){return false;}
 var options=OpenLayers.Util.extend({displayInLayerSwitcher:false,calculateInRange:OpenLayers.Function.True},this.layerOptions);this.layer=new OpenLayers.Layer.Vector(this.CLASS_NAME,options);this.map.addLayer(this.layer);return true;},createFeature:function(pixel){var lonlat=this.map.getLonLatFromPixel(pixel);this.point=new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat));this.callback("create",[this.point.geometry,this.point]);this.point.geometry.clearBounds();this.layer.addFeatures([this.point],{silent:true});},deactivate:function(){if(!OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){return false;}
@@ -1173,11 +1226,11 @@ this.setState(feature,node);var nd_dom=this.createElementNS(null,"nd");nd_dom.se
 this.serializeTags(feature,way);nodes.push(way);return nodes;},polygon:function(feature){var attrs=OpenLayers.Util.extend({'area':'yes'},feature.attributes);var feat=new OpenLayers.Feature.Vector(feature.geometry.components[0],attrs);feat.osm_id=feature.osm_id;return this.createXML['linestring'].apply(this,[feat]);}},serializeTags:function(feature,node){for(var key in feature.attributes){var tag=this.createElementNS(null,"tag");tag.setAttribute("k",key);tag.setAttribute("v",feature.attributes[key]);node.appendChild(tag);}},setState:function(feature,node){if(feature.state){var state=null;switch(feature.state){case OpenLayers.State.UPDATE:state="modify";case OpenLayers.State.DELETE:state="delete";}
 if(state){node.setAttribute("action",state);}}},CLASS_NAME:"OpenLayers.Format.OSM"});OpenLayers.Geometry.MultiPolygon=OpenLayers.Class(OpenLayers.Geometry.Collection,{componentTypes:["OpenLayers.Geometry.Polygon"],initialize:function(components){OpenLayers.Geometry.Collection.prototype.initialize.apply(this,arguments);},CLASS_NAME:"OpenLayers.Geometry.MultiPolygon"});OpenLayers.Format.GML=OpenLayers.Class(OpenLayers.Format.XML,{featureNS:"http://mapserver.gis.umn.edu/mapserver",featurePrefix:"feature",featureName:"featureMember",layerName:"features",geometryName:"geometry",collectionName:"FeatureCollection",gmlns:"http://www.opengis.net/gml",extractAttributes:true,xy:true,initialize:function(options){this.regExes={trimSpace:(/^\s*|\s*$/g),removeSpace:(/\s*/g),splitSpace:(/\s+/),trimComma:(/\s*,\s*/g)};OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},read:function(data){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);}
 var featureNodes=this.getElementsByTagNameNS(data.documentElement,this.gmlns,this.featureName);var features=[];for(var i=0;i<featureNodes.length;i++){var feature=this.parseFeature(featureNodes[i]);if(feature){features.push(feature);}}
-return features;},parseFeature:function(node){var order=["MultiPolygon","Polygon","MultiLineString","LineString","MultiPoint","Point","Envelope","Box"];var type,nodeList,geometry,parser;for(var i=0;i<order.length;++i){type=order[i];nodeList=this.getElementsByTagNameNS(node,this.gmlns,type);if(nodeList.length>0){parser=this.parseGeometry[type.toLowerCase()];if(parser){geometry=parser.apply(this,[nodeList[0]]);if(this.internalProjection&&this.externalProjection){geometry.transform(this.externalProjection,this.internalProjection);}}else{OpenLayers.Console.error(OpenLayers.i18n("unsupportedGeometryType",{'geomType':type}));}
+return features;},parseFeature:function(node){var order=["MultiPolygon","Polygon","MultiLineString","LineString","MultiPoint","Point","Envelope"];var type,nodeList,geometry,parser;for(var i=0;i<order.length;++i){type=order[i];nodeList=this.getElementsByTagNameNS(node,this.gmlns,type);if(nodeList.length>0){parser=this.parseGeometry[type.toLowerCase()];if(parser){geometry=parser.apply(this,[nodeList[0]]);if(this.internalProjection&&this.externalProjection){geometry.transform(this.externalProjection,this.internalProjection);}}else{OpenLayers.Console.error(OpenLayers.i18n("unsupportedGeometryType",{'geomType':type}));}
 break;}}
+var bounds;var boxNodes=this.getElementsByTagNameNS(node,this.gmlns,"Box");for(i=0;i<boxNodes.length;++i){var boxNode=boxNodes[i];var box=this.parseGeometry["box"].apply(this,[boxNode]);var parentNode=boxNode.parentNode;var parentName=parentNode.localName||parentNode.nodeName.split(":").pop();if(parentName==="boundedBy"){bounds=box;}else{geometry=box.toGeometry();}}
 var attributes;if(this.extractAttributes){attributes=this.parseAttributes(node);}
-var feature=new OpenLayers.Feature.Vector(geometry,attributes);feature.gml={featureType:node.firstChild.nodeName.split(":")[1],featureNS:node.firstChild.namespaceURI,featureNSPrefix:node.firstChild.prefix};var boundedByNodes=this.getElementsByTagNameNS(node,this.gmlns,'boundedBy');if(boundedByNodes.length===1){parser=this.parseGeometry['box'];if(parser){feature.bounds=parser.apply(this,[boundedByNodes[0]]);}}
-var childNode=node.firstChild;var fid;while(childNode){if(childNode.nodeType==1){fid=childNode.getAttribute("fid")||childNode.getAttribute("id");if(fid){break;}}
+var feature=new OpenLayers.Feature.Vector(geometry,attributes);feature.bounds=bounds;feature.gml={featureType:node.firstChild.nodeName.split(":")[1],featureNS:node.firstChild.namespaceURI,featureNSPrefix:node.firstChild.prefix};var childNode=node.firstChild;var fid;while(childNode){if(childNode.nodeType==1){fid=childNode.getAttribute("fid")||childNode.getAttribute("id");if(fid){break;}}
 childNode=childNode.nextSibling;}
 feature.fid=fid;return feature;},parseGeometry:{point:function(node){var nodeList,coordString;var coords=[];var nodeList=this.getElementsByTagNameNS(node,this.gmlns,"pos");if(nodeList.length>0){coordString=nodeList[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.trimSpace,"");coords=coordString.split(this.regExes.splitSpace);}
 if(coords.length==0){nodeList=this.getElementsByTagNameNS(node,this.gmlns,"coordinates");if(nodeList.length>0){coordString=nodeList[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.removeSpace,"");coords=coordString.split(",");}}
index 98f5a64216608f4b3de4d9d474fd4261eb7cfddd..973149b9a0c425ed0e8f43a43c80ab2e73990539 100644 (file)
Binary files a/public/potlatch/potlatch.swf and b/public/potlatch/potlatch.swf differ
diff --git a/vendor/plugins/oauth-plugin/.gitignore b/vendor/plugins/oauth-plugin/.gitignore
deleted file mode 100644 (file)
index 56cb2dc..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-doc
-pkg
-*.log
-.DS_Store
-.svn
diff --git a/vendor/plugins/oauth-plugin/CHANGELOG b/vendor/plugins/oauth-plugin/CHANGELOG
deleted file mode 100644 (file)
index a4006aa..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-2/11/2009
-- Fixed escaping error and file path error in the generator simultaneously reported and fixed by Ivan Valdes and Mike Demers thanks
-
-2/9/2009
-- Fixed compatibility issue with OAuth Gem 3.1 (wr0ngway and aeden)
-- Added Test:Unit tests to generator (Ed Hickey)
-- added missing oauth_clients/edit.html.erb view template (Ed Hickey)
-- added missing :oauth_clients resource route in USAGE (Ed Hickey)
-- Don't throw NPE it token is not in db (Haruska)
-- Cleaned up whitespace (bricolage, Nicholas Nam)
-- Fixed bug in default verify_oauth_signature (igrigorik)
-- Doc fixes (skippy)
-
-6/23/2008
-
-- Split OAuth controller into two parts: OAuth and OAuth clients. [jcrosby]
-
-revision 31
-
-- patch that fixes a problem in oauth_required from Hannes Tyden and Sean Treadway from SoundCloud. Thanks.
-
-revision 30
-
-- updated to use oauth gem 0.2.1
-
-
-revision 23
-
-- removed all core libraries from plugin. They are now in the oauth gem.
-
-# oauth-plugin-pre-gem Branch created
-
-revision 18
-- added a generator for creation oauth_providers
-
-revision 12
-- the bug with post and put has now been fixed.
-- better documentation
-
-revision 9
-- added a test helper. Include OAuth::TestHelper in your tests or specs to mock incoming requests
-
-revision: 8
-- moved tests into oauth folder and renamed them to make them work with autotest by default
-- Refactored the request methods to make them more flexible and ready for integrating with ActiveResource
-- There are a few tests that fail. All of them to do with put and post requests with payload data. I decided to commit anyway, to get the new api out.
-
-revision: 7
-
-- Done a lot of work on the Server side of things. The Server class has changed a lot and is likely to be incompatible with previous versions
-
-revision: 6
-
-- Throws InsecureSignatureMethod exception if attempting to use straight sha1 or md5.
-- Disables plaintext signature over http (throws an InsecureSignatureMethod)
-- Better testing of signature methods - the prior tests were seriously flawed.
-
-revision: 5
-
-- Removed support for sha1 and md5
-- Implemented draft 6 support of OAuth removing secrets from base string
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/MIT-LICENSE b/vendor/plugins/oauth-plugin/MIT-LICENSE
deleted file mode 100644 (file)
index 570ecf8..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2007 [name of plugin creator]
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/plugins/oauth-plugin/README.rdoc b/vendor/plugins/oauth-plugin/README.rdoc
deleted file mode 100644 (file)
index e2e68b7..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-= OAuth Plugin
-
-This is the beginning of a plugin for implementing OAuth Providers in Rails applications.
-
-See the OAuth specs at:
-
-http://oauth.net/core/1.0/
-
-and the OAuth site at:
-
-http://oauth.net
-
-== Requirements
-
-You need to install the oauth gem (0.2.1) which is the core OAuth ruby library. It will NOT work on any previous version of the gem.
-  
-  sudo gem install oauth
-
-The Generator currently creates code (in particular views) that only work in Rails 2.
-
-It should not be difficult to manually modify the code to work on Rails 1.2.x
-
-I think the only real issue is that the views have .html.erb extensions. So these could theoretically just be renamed to .rhtml.
-
-Please let me know if this works and I will see if I can make the generator conditionally create .rhtml for pre 2.0 versions of RAILS.
-
-== OAuth Provider generator
-
-While it isn't very flexible at the moment there is an oauth_provider generator which you can use like this:
-
-./script/generate oauth_provider
-
-This generates OAuth and OAuth client controllers as well as the required models.
-
-It requires an authentication framework such as acts_as_authenticated, restful_authentication or restful_open_id_authentication. It also requires Rails 2.0.
-
-=== Routes
-
-You need to add the following to your routes (config/routes.rb)
-
-       map.resources :oauth_clients
-       map.authorize '/oauth/authorize',:controller=>'oauth',:action=>'authorize'
-       map.request_token '/oauth/request_token',:controller=>'oauth',:action=>'request_token'
-       map.access_token '/oauth/access_token',:controller=>'oauth',:action=>'access_token'
-       map.test_request '/oauth/test_request',:controller=>'oauth',:action=>'test_request'
-
-=== User Model
-
-Add the following lines to your user model:
-
-  has_many :client_applications
-  has_many :tokens, :class_name=>"OauthToken",:order=>"authorized_at desc",:include=>[:client_application]
-
-=== Migrate database
-
-The database is defined in:
-       
-       db/migrate/XXX_create_oauth_tables.rb
-
-Run them as any other normal migration in rails with:
-
-  rake db:migrate
-
-=== RSpec
-
-The generator installs a collection of RSpec (http://rspec.info) specs instead of normal unit_tests. If you don't use RSpec (and really why aren't you?) feel free to remove the spec folder.
-       
-If you would like to contribute regular unit tests I will accept them with a smile.
-
-== Protecting your actions
-
-I recommend that you think about what your users would want to provide access to and limit oauth for those only. For example in a CRUD controller you may think about if you want to let consumer applications do the create, update or delete actions. For your application this might make sense, but for others maybe not.
-
-If you want to give oauth access to everything a registered user can do, just replace the filter you have in your controllers with:
-
-       before_filter :login_or_oauth_required
-       
-If you want to restrict consumers to the index and show methods of your controller do the following:
-
-       before_filter :login_required,:except=>[:show,:index]
-       before_filter :login_or_oauth_required,:only=>[:show,:index]
-
-If you have an action you only want used via oauth:
-
-       before_filter :oauth_required
-
-All of these places the tokens user in current_user as you would expect. It also exposes the following methods:
-
-* current_token - for accessing the token used to authorize the current request
-* current_client_application - for accessing information about which consumer is currently accessing your request
-
-You could add application specific information to the OauthToken and ClientApplication model for such things as object level access control, billing, expiry etc. Be creative and you can create some really cool applications here.
-
-== More
-
-The Google Code project is http://code.google.com/p/oauth-plugin/
-
-The Mailing List for all things OAuth in Ruby is:
-
-http://groups.google.com/group/oauth-ruby
-
-The Mailing list for everything else OAuth is:
-
-http://groups.google.com/group/oauth
-
-The OAuth Ruby Gem home page is http://oauth.rubyforge.org
-
-Please help documentation, patches and testing.
-
-Copyright (c) 2007-2008 Pelle Braendgaard, released under the MIT license
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/Rakefile b/vendor/plugins/oauth-plugin/Rakefile
deleted file mode 100644 (file)
index 16a9769..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-require 'rake'
-require 'rake/testtask'
-require 'rake/rdoctask'
-
-desc 'Default: run unit tests.'
-task :default => :test
-
-desc 'Test the oauth plugin.'
-Rake::TestTask.new(:test) do |t|
-  t.libs << 'lib'
-  t.pattern = 'test/**/*_test.rb'
-  t.verbose = true
-end
-
-desc 'Generate documentation for the oauth plugin.'
-Rake::RDocTask.new(:rdoc) do |rdoc|
-  rdoc.rdoc_dir = 'rdoc'
-  rdoc.title    = 'Oauth'
-  rdoc.options << '--line-numbers' << '--inline-source'
-  rdoc.rdoc_files.include('README')
-  rdoc.rdoc_files.include('lib/**/*.rb')
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/USAGE b/vendor/plugins/oauth-plugin/generators/oauth_provider/USAGE
deleted file mode 100644 (file)
index ded11ac..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-./script/generate oauth_provider 
-
-This creates an OAuth Provider controller as well as the requisite models.
-
-It requires an authentication framework such as acts_as_authenticated, restful_authentication or restful_open_id_authentication.
-
-If you generated the migration file (true by default), make sure you run
-rake db:migrate
-
-You need to add the following routes to your config/routes.rb file:
-
-map.resources :oauth_clients
-map.oauth '/oauth',:controller=>'oauth',:action=>'index'
-map.authorize '/oauth/authorize',:controller=>'oauth',:action=>'authorize'
-map.request_token '/oauth/request_token',:controller=>'oauth',:action=>'request_token'
-map.access_token '/oauth/access_token',:controller=>'oauth',:action=>'access_token'
-map.test_request '/oauth/test_request',:controller=>'oauth',:action=>'test_request'
-
-include the following in your user.rb
-
-has_many :client_applications
-has_many :tokens, :class_name=>"OauthToken",:order=>"authorized_at desc",:include=>[:client_application]
-
-
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/oauth_provider_generator.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/oauth_provider_generator.rb
deleted file mode 100644 (file)
index 57059e2..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-class OauthProviderGenerator < Rails::Generator::Base
-  default_options :skip_migration => false
-  attr_reader   :class_path,
-                :controller_name,
-                :controller_class_path,
-                :controller_file_path,
-                :controller_class_name,
-                :controller_singular_name,
-                :controller_plural_name
-  alias_method  :controller_file_name,  :controller_singular_name
-
-  def initialize(runtime_args, runtime_options = {})
-    super
-
-    @controller_name = args.shift || 'oauth'
-    @controller_singular_name = 'oauth'
-    @controller_plural_name = 'oauth'
-    @controller_file_name = 'oauth'
-    @controller_class_name="Oauth"
-    @class_path=''
-    @controller_class_path=''
-  end
-
-  def manifest
-    record do |m|
-      
-      # Check for class naming collisions.
-      # Check for class naming collisions.
-      m.class_collisions controller_class_path,       "#{controller_class_name}Controller", # Oauth Controller
-                                                      "#{controller_class_name}Helper",
-                                                      "#{controller_class_name}ClientsController",
-                                                      "#{controller_class_name}ClientsHelper"
-      m.class_collisions class_path,                  "ClientApplication","OauthNonce","RequestToken","AccessToken","OauthToken"
-
-      # Controller, helper, views, and test directories.
-      m.directory File.join('app/models', class_path)
-      m.directory File.join('app/controllers', controller_class_path)
-      m.directory File.join('app/helpers', controller_class_path)
-      m.directory File.join('app/views', controller_class_path, controller_file_name)
-      m.directory File.join('app/views', controller_class_path, 'oauth_clients')
-
-      m.template 'client_application.rb',File.join('app/models',"client_application.rb")
-      m.template 'oauth_token.rb',    File.join('app/models',"oauth_token.rb")
-      m.template 'request_token.rb',  File.join('app/models',"request_token.rb")
-      m.template 'access_token.rb',   File.join('app/models',"access_token.rb")
-      m.template 'oauth_nonce.rb',    File.join('app/models',"oauth_nonce.rb")
-
-      m.template 'controller.rb',File.join('app/controllers',controller_class_path,"#{controller_file_name}_controller.rb")
-      m.template 'helper.rb',File.join('app/helpers',controller_class_path,"#{controller_file_name}_helper.rb")
-
-      m.template 'clients_controller.rb',File.join('app/controllers',controller_class_path,"#{controller_file_name}_clients_controller.rb")
-      m.template 'clients_helper.rb',File.join('app/helpers',controller_class_path,"#{controller_file_name}_clients_helper.rb")
-
-      if !options[:test_unit]
-        m.directory File.join('spec')
-        m.directory File.join('spec/models')
-        m.directory File.join('spec/fixtures', class_path)
-        m.directory File.join('spec/controllers', controller_class_path)
-        
-        m.template 'client_application_spec.rb',File.join('spec/models',"client_application_spec.rb")
-        m.template 'oauth_token_spec.rb',    File.join('spec/models',"oauth_token_spec.rb")
-        m.template 'oauth_nonce_spec.rb',    File.join('spec/models',"oauth_nonce_spec.rb")
-        m.template 'client_applications.yml',File.join('spec/fixtures',"client_applications.yml")
-        m.template 'oauth_tokens.yml',    File.join('spec/fixtures',"oauth_tokens.yml")
-        m.template 'oauth_nonces.yml',    File.join('spec/fixtures',"oauth_nonces.yml")
-        m.template 'controller_spec_helper.rb', File.join('spec/controllers', controller_class_path,"#{controller_file_name}_controller_spec_helper.rb")
-        m.template 'controller_spec.rb',File.join('spec/controllers',controller_class_path,"#{controller_file_name}_controller_spec.rb")      
-        m.template 'clients_controller_spec.rb',File.join('spec/controllers',controller_class_path,"#{controller_file_name}_clients_controller_spec.rb")
-      else
-        m.directory File.join('test')
-        m.directory File.join('test/unit')
-        m.directory File.join('test/fixtures', class_path)
-        m.directory File.join('test/functional', controller_class_path)
-        m.template 'client_application_test.rb',File.join('test/unit',"client_application_test.rb")
-        m.template 'oauth_token_test.rb',    File.join('test/unit',"oauth_token_test.rb")
-        m.template 'oauth_nonce_test.rb',    File.join('test/unit',"oauth_nonce_test.rb")
-        m.template 'client_applications.yml',File.join('test/fixtures',"client_applications.yml")
-        m.template 'oauth_tokens.yml',    File.join('test/fixtures',"oauth_tokens.yml")
-        m.template 'oauth_nonces.yml',    File.join('test/fixtures',"oauth_nonces.yml")
-        m.template 'controller_test_helper.rb', File.join('test', controller_class_path,"#{controller_file_name}_controller_test_helper.rb")
-        m.template 'controller_test.rb',File.join('test/functional',controller_class_path,"#{controller_file_name}_controller_test.rb")
-        m.template 'clients_controller_test.rb',File.join('test/functional',controller_class_path,"#{controller_file_name}_clients_controller_test.rb")
-      end
-
-      m.template '_form.html.erb',  File.join('app/views', controller_class_path, 'oauth_clients', "_form.html.erb")
-      m.template 'new.html.erb',  File.join('app/views', controller_class_path, 'oauth_clients', "new.html.erb")
-      m.template 'index.html.erb',  File.join('app/views', controller_class_path, 'oauth_clients', "index.html.erb")
-      m.template 'show.html.erb',  File.join('app/views', controller_class_path, 'oauth_clients', "show.html.erb")
-      m.template 'edit.html.erb',  File.join('app/views', controller_class_path, 'oauth_clients', "edit.html.erb")
-      m.template 'authorize.html.erb',  File.join('app/views', controller_class_path, controller_file_name, "authorize.html.erb")
-      m.template 'authorize_success.html.erb',  File.join('app/views', controller_class_path, controller_file_name, "authorize_success.html.erb")
-      m.template 'authorize_failure.html.erb',  File.join('app/views', controller_class_path, controller_file_name, "authorize_failure.html.erb")
-      
-
-      unless options[:skip_migration]
-        m.migration_template 'migration.rb', 'db/migrate', :assigns => {
-          :migration_name => "CreateOauthTables"
-        }, :migration_file_name => "create_oauth_tables"
-      end
-    end
-  end
-
-  protected
-    def banner
-      "Usage: #{$0} #{spec.name}"
-    end
-
-    def add_options!(opt)
-      opt.separator ''
-      opt.separator 'Options:'
-      opt.on("--skip-migration", 
-             "Don't generate a migration file") { |v| options[:skip_migration] = v }
-      opt.on("--test-unit", 
-             "Generate the Test::Unit compatible tests instead of RSpec") { |v| options[:test_unit] = v }
-    end
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/_form.html.erb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/_form.html.erb
deleted file mode 100644 (file)
index ee3f5b8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<div class="field">
-       <label for="client_application_name">Name*</label><br/>
-       <%%= f.text_field :name %>
-</div>
-<div class="field">
-       <label for="client_application_url">Main Application URL*</label><br/>
-       <%%= f.text_field :url %>
-</div>
-<div class="field">
-       <label for="client_application_callback_url">Callback URL*</label><br/>
-       <%%= f.text_field :callback_url %>
-</div>
-<div class="field">
-       <label for="client_application_support_url">Support URL</label><br/>
-       <%%= f.text_field :support_url %>
-</div>
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/access_token.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/access_token.rb
deleted file mode 100644 (file)
index b773310..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-class AccessToken<OauthToken
-  validates_presence_of :user
-  before_create :set_authorized_at
-  
-protected 
-  
-  def set_authorized_at
-    self.authorized_at = Time.now
-  end
-end
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/authorize.html.erb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/authorize.html.erb
deleted file mode 100644 (file)
index 0607eb4..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<h1>Authorize access to your account</h1>
-<p>Would you like to authorize <%%= link_to @token.client_application.name,@token.client_application.url %> (<%%= link_to @token.client_application.url,@token.client_application.url %>) to access your account?</p>
-<%% form_tag authorize_url do %>
-  <%%= hidden_field_tag "oauth_token", @token.token %>
-  <%%- if params[:oauth_callback] -%>
-  <%%= hidden_field_tag "oauth_callback", params[:oauth_callback] %>
-<%%- end -%>
-<p>
-       <%%= check_box_tag 'authorize' %> authorize access
-</p>
-<p>
-       <%%= submit_tag %>
-</p>
-<%% end %>
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/authorize_failure.html.erb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/authorize_failure.html.erb
deleted file mode 100644 (file)
index d8110c9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<h1>You have disallowed this request</h1>
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/authorize_success.html.erb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/authorize_success.html.erb
deleted file mode 100644 (file)
index effe24a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<h1>You have allowed this request</h1>
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/client_application.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/client_application.rb
deleted file mode 100644 (file)
index b7ca97d..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-require 'oauth'
-class ClientApplication < ActiveRecord::Base
-  belongs_to :user
-  has_many :tokens, :class_name => "OauthToken"
-  validates_presence_of :name, :url, :key, :secret
-  validates_uniqueness_of :key
-  before_validation_on_create :generate_keys
-  
-  def self.find_token(token_key)
-    token = OauthToken.find_by_token(token_key, :include => :client_application)
-    if token && token.authorized?
-      logger.info "Loaded #{token.token} which was authorized by (user_id=#{token.user_id}) on the #{token.authorized_at}"
-      token
-    else
-      nil
-    end
-  end
-  
-  def self.verify_request(request, options = {}, &block)
-    begin
-      signature = OAuth::Signature.build(request, options, &block)
-      logger.info "Signature Base String: #{signature.signature_base_string}"
-      logger.info "Consumer: #{signature.send :consumer_key}"
-      logger.info "Token: #{signature.send :token}"
-      return false unless OauthNonce.remember(signature.request.nonce, signature.request.timestamp)
-      value = signature.verify
-      logger.info "Signature verification returned: #{value.to_s}"
-      value
-    rescue OAuth::Signature::UnknownSignatureMethod => e
-      logger.info "ERROR"+e.to_s
-      false
-    end
-  end
-  
-  def oauth_server
-    @oauth_server ||= OAuth::Server.new("http://your.site")
-  end
-  
-  def credentials
-    @oauth_client ||= OAuth::Consumer.new(key, secret)
-  end
-    
-  def create_request_token
-    RequestToken.create :client_application => self
-  end
-  
-protected
-  
-  def generate_keys
-    @oauth_client = oauth_server.generate_consumer_credentials
-    self.key = @oauth_client.key
-    self.secret = @oauth_client.secret
-  end
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/client_application_spec.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/client_application_spec.rb
deleted file mode 100644 (file)
index 14f3887..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-require File.dirname(__FILE__) + '/../spec_helper'
-module OAuthSpecHelpers
-  
-  def create_consumer
-    @consumer = OAuth::Consumer.new(@application.key,@application.secret,
-      {
-        :site => @application.oauth_server.base_url
-      })
-  end
-  
-  def create_test_request
-    
-  end
-  
-  def create_oauth_request
-    @token = AccessToken.create :client_application => @application, :user => users(:quentin)
-    @request = @consumer.create_signed_request(:get, "/hello", @token)
-  end
-  
-  def create_request_token_request
-    @request = @consumer.create_signed_request(:get, @application.oauth_server.request_token_path, @token)
-  end
-  
-  def create_access_token_request
-    @token = RequestToken.create :client_application => @application
-    @request = @consumer.create_signed_request(:get, @application.oauth_server.request_token_path, @token)
-  end
-  
-end
-
-describe ClientApplication do #, :shared => true do
-  include OAuthSpecHelpers
-  fixtures :users, :client_applications, :oauth_tokens
-  before(:each) do
-    @application = ClientApplication.create :name => "Agree2", :url => "http://agree2.com", :user => users(:quentin)
-    create_consumer
-  end
-
-  it "should be valid" do
-    @application.should be_valid
-  end
-  
-    
-  it "should not have errors" do
-    @application.errors.full_messages.should == []
-  end
-  
-  it "should have key and secret" do
-    @application.key.should_not be_nil
-    @application.secret.should_not be_nil
-  end
-
-  it "should have credentials" do
-    @application.credentials.should_not be_nil
-    @application.credentials.key.should == @application.key
-    @application.credentials.secret.should == @application.secret
-  end
-  
-end
-
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/client_application_test.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/client_application_test.rb
deleted file mode 100644 (file)
index 3ba2cf7..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-require File.dirname(__FILE__) + '/../test_helper'
-module OAuthHelpers
-  
-  def create_consumer
-    @consumer=OAuth::Consumer.new(@application.key,@application.secret,
-      {
-        :site=>@application.oauth_server.base_url
-      })
-  end
-  
-end
-
-class ClientApplicationTest < ActiveSupport::TestCase
-  include OAuthHelpers
-  fixtures :users,:client_applications,:oauth_tokens
-  
-  def setup
-    @application = ClientApplication.create :name=>"Agree2",:url=>"http://agree2.com",:user=>users(:quentin)
-    create_consumer
-  end
-
-  def test_should_be_valid
-    assert @application.valid?
-  end
-  
-    
-  def test_should_not_have_errors
-    assert_equal [], @application.errors.full_messages
-  end
-  
-  def test_should_have_key_and_secret
-    assert_not_nil @application.key
-    assert_not_nil @application.secret
-  end
-
-  def test_should_have_credentials
-    assert_not_nil @application.credentials
-    assert_equal @application.key, @application.credentials.key
-    assert_equal @application.secret, @application.credentials.secret
-  end
-  
-end
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/client_applications.yml b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/client_applications.yml
deleted file mode 100644 (file)
index 4bbf370..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
-one:
-  id: 1
-  name: MyString
-  url: MyString
-  support_url: MyString
-  callback_url: MyString
-  key: one_key
-  secret: MyString
-  user_id: 1
-  created_at: 2007-11-17 16:56:51
-  updated_at: 2007-11-17 16:56:51
-two:
-  id: 2
-  name: MyString
-  url: MyString
-  support_url: MyString
-  callback_url: MyString
-  key: two_key
-  secret: MyString
-  user_id: 1
-  created_at: 2007-11-17 16:56:51
-  updated_at: 2007-11-17 16:56:51
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller.rb
deleted file mode 100644 (file)
index 5f78274..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-class OauthClientsController < ApplicationController
-  before_filter :login_required
-  
-  def index
-    @client_applications = current_user.client_applications
-    @tokens = current_user.tokens.find :all, :conditions => 'oauth_tokens.invalidated_at is null and oauth_tokens.authorized_at is not null'
-  end
-
-  def new
-    @client_application = ClientApplication.new
-  end
-
-  def create
-    @client_application = current_user.client_applications.build(params[:client_application])
-    if @client_application.save
-      flash[:notice] = "Registered the information successfully"
-      redirect_to :action => "show", :id => @client_application.id
-    else
-      render :action => "new"
-    end
-  end
-  
-  def show
-    @client_application = current_user.client_applications.find(params[:id])
-  end
-
-  def edit
-    @client_application = current_user.client_applications.find(params[:id])
-  end
-  
-  def update
-    @client_application = current_user.client_applications.find(params[:id])
-    if @client_application.update_attributes(params[:client_application])
-      flash[:notice] = "Updated the client information successfully"
-      redirect_to :action => "show", :id => @client_application.id
-    else
-      render :action => "edit"
-    end
-  end
-
-  def destroy
-    @client_application = current_user.client_applications.find(params[:id])
-    @client_application.destroy
-    flash[:notice] = "Destroyed the client application registration"
-    redirect_to :action => "index"
-  end
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller_spec.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller_spec.rb
deleted file mode 100644 (file)
index d617b56..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-require File.dirname(__FILE__) + '/../spec_helper'
-require File.dirname(__FILE__) + '/oauth_controller_spec_helper'
-require 'oauth/client/action_controller_request'
-
-describe OauthClientsController, "index" do
-  include OAuthControllerSpecHelper
-  before(:each) do
-    login_as_application_owner
-  end
-  
-  def do_get
-    get :index
-  end
-  
-  it "should be successful" do
-    do_get
-    response.should be_success
-  end
-  
-  it "should query current_users client applications" do
-    @user.should_receive(:client_applications).and_return(@client_applications)
-    do_get
-  end
-  
-  it "should assign client_applications" do
-    do_get
-    assigns[:client_applications].should equal(@client_applications)
-  end
-  
-  it "should render index template" do
-    do_get
-    response.should render_template('index')
-  end
-end
-
-describe OauthClientsController, "show" do
-  include OAuthControllerSpecHelper
-  before(:each) do
-    login_as_application_owner
-  end
-  
-  def do_get
-    get :show, :id => '3'
-  end
-  
-  it "should be successful" do
-    do_get
-    response.should be_success
-  end
-  
-  it "should query current_users client applications" do
-    @user.should_receive(:client_applications).and_return(@client_applications)
-    @client_applications.should_receive(:find).with('3').and_return(@client_application)
-    do_get
-  end
-  
-  it "should assign client_applications" do
-    do_get
-    assigns[:client_application].should equal(@client_application)
-  end
-  
-  it "should render show template" do
-    do_get
-    response.should render_template('show')
-  end
-  
-end
-
-describe OauthClientsController, "new" do
-  include OAuthControllerSpecHelper
-  before(:each) do
-    login_as_application_owner
-    ClientApplication.stub!(:new).and_return(@client_application)
-  end
-  
-  def do_get
-    get :new
-  end
-  
-  it "should be successful" do
-    do_get
-    response.should be_success
-  end
-  
-  it "should assign client_applications" do
-    do_get
-    assigns[:client_application].should equal(@client_application)
-  end
-  
-  it "should render show template" do
-    do_get
-    response.should render_template('new')
-  end
-  
-end
-
-describe OauthClientsController, "edit" do
-  include OAuthControllerSpecHelper
-  before(:each) do
-    login_as_application_owner
-  end
-  
-  def do_get
-    get :edit, :id => '3'
-  end
-  
-  it "should be successful" do
-    do_get
-    response.should be_success
-  end
-  
-  it "should query current_users client applications" do
-    @user.should_receive(:client_applications).and_return(@client_applications)
-    @client_applications.should_receive(:find).with('3').and_return(@client_application)
-    do_get
-  end
-  
-  it "should assign client_applications" do
-    do_get
-    assigns[:client_application].should equal(@client_application)
-  end
-  
-  it "should render edit template" do
-    do_get
-    response.should render_template('edit')
-  end
-  
-end
-
-describe OauthClientsController, "create" do
-  include OAuthControllerSpecHelper
-  
-  before(:each) do
-    login_as_application_owner
-    @client_applications.stub!(:build).and_return(@client_application)
-    @client_application.stub!(:save).and_return(true)
-  end
-  
-  def do_valid_post
-    @client_application.should_receive(:save).and_return(true)
-    post :create, 'client_application'=>{'name' => 'my site'}
-  end
-
-  def do_invalid_post
-    @client_application.should_receive(:save).and_return(false)
-    post :create, :client_application=>{:name => 'my site'}
-  end
-  
-  it "should query current_users client applications" do
-    @client_applications.should_receive(:build).and_return(@client_application)
-    do_valid_post
-  end
-  
-  it "should redirect to new client_application" do
-    do_valid_post
-    response.should be_redirect
-    response.should redirect_to(:action => "show", :id => @client_application.id)
-  end
-  
-  it "should assign client_applications" do
-    do_invalid_post
-    assigns[:client_application].should equal(@client_application)
-  end
-  
-  it "should render show template" do
-    do_invalid_post
-    response.should render_template('new')
-  end
-end
-
-describe OauthClientsController, "destroy" do
-  include OAuthControllerSpecHelper
-  before(:each) do
-    login_as_application_owner
-    @client_application.stub!(:destroy)
-  end
-  
-  def do_delete
-    delete :destroy, :id => '3'
-  end
-    
-  it "should query current_users client applications" do
-    @user.should_receive(:client_applications).and_return(@client_applications)
-    @client_applications.should_receive(:find).with('3').and_return(@client_application)
-    do_delete
-  end
-
-  it "should destroy client applications" do
-    @client_application.should_receive(:destroy)
-    do_delete
-  end
-    
-  it "should redirect to list" do
-    do_delete
-    response.should be_redirect
-    response.should redirect_to(:action => 'index')
-  end
-  
-end
-
-describe OauthClientsController, "update" do
-  include OAuthControllerSpecHelper
-  
-  before(:each) do
-    login_as_application_owner
-  end
-  
-  def do_valid_update
-    @client_application.should_receive(:update_attributes).and_return(true)
-    put :update, :id => '1', 'client_application'=>{'name' => 'my site'}
-  end
-
-  def do_invalid_update
-    @client_application.should_receive(:update_attributes).and_return(false)
-    put :update, :id => '1', 'client_application'=>{'name' => 'my site'}
-  end
-  
-  it "should query current_users client applications" do
-    @user.should_receive(:client_applications).and_return(@client_applications)
-    @client_applications.should_receive(:find).with('1').and_return(@client_application)
-    do_valid_update
-  end
-  
-  it "should redirect to new client_application" do
-    do_valid_update
-    response.should be_redirect
-    response.should redirect_to(:action => "show", :id => @client_application.id)
-  end
-  
-  it "should assign client_applications" do
-    do_invalid_update
-    assigns[:client_application].should equal(@client_application)
-  end
-  
-  it "should render show template" do
-    do_invalid_update
-    response.should render_template('edit')
-  end
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller_test.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller_test.rb
deleted file mode 100644 (file)
index 47585a2..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-require File.dirname(__FILE__) + '/../test_helper'
-require File.dirname(__FILE__) + '/../oauth_controller_test_helper'
-require 'oauth/client/action_controller_request'
-
-class OauthClientsController; def rescue_action(e) raise e end; end
-
-class OauthClientsControllerIndexTest < ActionController::TestCase
-  include OAuthControllerTestHelper
-  tests OauthClientsController
-  
-  def setup    
-    @controller = OauthClientsController.new
-    @request    = ActionController::TestRequest.new
-    @response   = ActionController::TestResponse.new    
-    
-    login_as_application_owner
-  end
-  
-  def do_get
-    get :index
-  end
-  
-  def test_should_be_successful
-    do_get
-    assert @response.success?
-  end
-  
-  def test_should_query_current_users_client_applications
-    @user.expects(:client_applications).returns(@client_applications)
-    do_get
-  end
-  
-  def test_should_assign_client_applications
-    do_get
-    assert_equal @client_applications, assigns(:client_applications)
-  end
-  
-  def test_should_render_index_template
-    do_get
-    assert_template 'index'
-  end
-end
-
-class OauthClientsControllerShowTest < ActionController::TestCase
-  include OAuthControllerTestHelper
-  tests OauthClientsController
-  
-  def setup
-    @controller = OauthClientsController.new
-    @request    = ActionController::TestRequest.new
-    @response   = ActionController::TestResponse.new    
-    
-    login_as_application_owner
-  end
-  
-  def do_get
-    get :show, :id=>'3'
-  end
-  
-  def test_should_be_successful
-    do_get
-    assert @response.success?
-  end
-  
-  def test_should_query_current_users_client_applications
-    @user.expects(:client_applications).returns(@client_applications)
-    @client_applications.expects(:find).with('3').returns(@client_application)
-    do_get
-  end
-  
-  def test_should_assign_client_applications
-    do_get
-    assert_equal @client_application, assigns(:client_application)
-  end
-  
-  def test_should_render_show_template
-    do_get
-    assert_template 'show'
-  end
-  
-end
-
-class OauthClientsControllerNewTest < ActionController::TestCase
-  include OAuthControllerTestHelper
-  tests OauthClientsController
-
-  def setup
-    @controller = OauthClientsController.new
-    @request    = ActionController::TestRequest.new
-    @response   = ActionController::TestResponse.new    
-    
-    login_as_application_owner
-    ClientApplication.stubs(:new).returns(@client_application)
-  end
-  
-  def do_get
-    get :new
-  end
-  
-  def test_should_be_successful
-    do_get
-    assert @response.success?
-  end
-  
-  def test_should_assign_client_applications
-    do_get
-    assert_equal @client_application, assigns(:client_application)
-  end
-  
-  def test_should_render_show_template
-    do_get
-    assert_template 'new'
-  end
-  
-end
-class OauthClientsControllerEditTest < ActionController::TestCase
-  include OAuthControllerTestHelper
-  tests OauthClientsController
-  
-  def setup
-    @controller = OauthClientsController.new
-    @request    = ActionController::TestRequest.new
-    @response   = ActionController::TestResponse.new    
-
-    login_as_application_owner
-  end
-  
-  def do_get
-    get :edit, :id=>'3'
-  end
-  
-  def test_should_be_successful
-    do_get
-    assert @response.success?
-  end
-  
-  def test_should_query_current_users_client_applications
-    @user.expects(:client_applications).returns(@client_applications)
-    @client_applications.expects(:find).with('3').returns(@client_application)
-    do_get
-  end
-  
-  def test_should_assign_client_applications
-    do_get
-    assert_equal @client_application, assigns(:client_application)
-  end
-  
-  def test_should_render_edit_template
-    do_get
-    assert_template 'edit'
-  end
-  
-end
-
-class OauthClientsControllerCreateTest < ActionController::TestCase
-  include OAuthControllerTestHelper
-  tests OauthClientsController
-  
-  def setup
-    @controller = OauthClientsController.new
-    @request    = ActionController::TestRequest.new
-    @response   = ActionController::TestResponse.new    
-    
-    login_as_application_owner
-    @client_applications.stubs(:build).returns(@client_application)
-    @client_application.stubs(:save).returns(true)
-  end
-  
-  def do_valid_post
-    @client_application.expects(:save).returns(true)
-    post :create,'client_application'=>{'name'=>'my site'}
-  end
-
-  def do_invalid_post
-    @client_application.expects(:save).returns(false)
-    post :create,:client_application=>{:name=>'my site'}
-  end
-  
-  def test_should_query_current_users_client_applications
-    @client_applications.expects(:build).returns(@client_application)
-    do_valid_post
-  end
-  
-  def test_should_redirect_to_new_client_application
-    do_valid_post
-    assert_response :redirect
-    assert_redirected_to(:action => "show", :id => @client_application.id)
-  end
-  
-  def test_should_assign_client_applications
-    do_invalid_post
-    assert_equal @client_application, assigns(:client_application)
-  end
-  
-  def test_should_render_show_template
-    do_invalid_post
-    assert_template('new')
-  end
-end
-class OauthClientsControllerDestroyTest < ActionController::TestCase
-  include OAuthControllerTestHelper
-  tests OauthClientsController
-  
-  def setup
-    @controller = OauthClientsController.new
-    @request    = ActionController::TestRequest.new
-    @response   = ActionController::TestResponse.new
-    
-    login_as_application_owner
-    @client_application.stubs(:destroy)
-  end
-  
-  def do_delete
-    delete :destroy,:id=>'3'
-  end
-    
-  def test_should_query_current_users_client_applications
-    @user.expects(:client_applications).returns(@client_applications)
-    @client_applications.expects(:find).with('3').returns(@client_application)
-    do_delete
-  end
-
-  def test_should_destroy_client_applications
-    @client_application.expects(:destroy)
-    do_delete
-  end
-    
-  def test_should_redirect_to_list
-    do_delete
-    assert_response :redirect
-    assert_redirected_to :action => 'index'
-  end
-  
-end
-
-class OauthClientsControllerUpdateTest < ActionController::TestCase
-  include OAuthControllerTestHelper
-  tests OauthClientsController
-
-  def setup
-    @controller = OauthClientsController.new
-    @request    = ActionController::TestRequest.new
-    @response   = ActionController::TestResponse.new
-    login_as_application_owner
-  end
-  
-  def do_valid_update
-    @client_application.expects(:update_attributes).returns(true)
-    put :update, :id => '1', 'client_application' => {'name'=>'my site'}
-  end
-
-  def do_invalid_update
-    @client_application.expects(:update_attributes).returns(false)
-    put :update, :id=>'1', 'client_application' => {'name'=>'my site'}
-  end
-  
-  def test_should_query_current_users_client_applications
-    @user.expects(:client_applications).returns(@client_applications)
-    @client_applications.expects(:find).with('1').returns(@client_application)
-    do_valid_update
-  end
-  
-  def test_should_redirect_to_new_client_application
-    do_valid_update
-    assert_response :redirect
-    assert_redirected_to :action => "show", :id => @client_application.id
-  end
-  
-  def test_should_assign_client_applications
-    do_invalid_update
-    assert_equal @client_application, assigns(:client_application)
-  end
-  
-  def test_should_render_show_template
-    do_invalid_update
-    assert_template('edit')
-  end
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_helper.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_helper.rb
deleted file mode 100644 (file)
index 3b909aa..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-module OauthClientsHelper
-end
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller.rb
deleted file mode 100644 (file)
index 58ac213..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-class OauthController < ApplicationController
-  before_filter :login_required, :except => [:request_token, :access_token, :test_request]
-  before_filter :login_or_oauth_required, :only => [:test_request]
-  before_filter :verify_oauth_consumer_signature, :only => [:request_token]
-  before_filter :verify_oauth_request_token, :only => [:access_token]
-  # Uncomment the following if you are using restful_open_id_authentication
-  # skip_before_filter :verify_authenticity_token
-
-  def request_token
-    @token = current_client_application.create_request_token
-    if @token
-      render :text => @token.to_query
-    else
-      render :nothing => true, :status => 401
-    end
-  end 
-  
-  def access_token
-    @token = current_token && current_token.exchange!
-    if @token
-      render :text => @token.to_query
-    else
-      render :nothing => true, :status => 401
-    end
-  end
-
-  def test_request
-    render :text => params.collect{|k,v|"#{k}=#{v}"}.join("&")
-  end
-  
-  def authorize
-    @token = RequestToken.find_by_token params[:oauth_token]
-    unless @token.invalidated?    
-      if request.post? 
-        if params[:authorize] == '1'
-          @token.authorize!(current_user)
-          redirect_url = params[:oauth_callback] || @token.client_application.callback_url
-          if redirect_url
-            redirect_to "#{redirect_url}?oauth_token=#{@token.token}"
-          else
-            render :action => "authorize_success"
-          end
-        elsif params[:authorize] == "0"
-          @token.invalidate!
-          render :action => "authorize_failure"
-        end
-      end
-    else
-      render :action => "authorize_failure"
-    end
-  end
-  
-  def revoke
-    @token = current_user.tokens.find_by_token params[:token]
-    if @token
-      @token.invalidate!
-      flash[:notice] = "You've revoked the token for #{@token.client_application.name}"
-    end
-    redirect_to oauth_clients_url
-  end
-  
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller_spec.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller_spec.rb
deleted file mode 100644 (file)
index f3479ab..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-require File.dirname(__FILE__) + '/../spec_helper'
-require File.dirname(__FILE__) + '/oauth_controller_spec_helper'
-require 'oauth/client/action_controller_request'
-
-describe OauthController, "getting a request token" do
-  include OAuthControllerSpecHelper
-  before(:each) do
-    setup_oauth
-    sign_request_with_oauth
-    @client_application.stub!(:create_request_token).and_return(@request_token)
-  end
-  
-  def do_get
-    get :request_token
-  end
-  
-  it "should be successful" do
-    do_get
-    response.should be_success
-  end
-  
-  it "should query for client_application" do
-    ClientApplication.should_receive(:find_by_key).with('key').and_return(@client_application)
-    do_get
-  end
-  
-  it "should request token from client_application" do
-    @client_application.should_receive(:create_request_token).and_return(@request_token)
-    do_get
-  end
-  
-  it "should return token string" do
-    do_get
-    response.body.should == @request_token_string
-  end
-end
-
-describe OauthController, "token authorization" do
-  include OAuthControllerSpecHelper
-  before(:each) do
-    login
-    setup_oauth
-    RequestToken.stub!(:find_by_token).and_return(@request_token)
-  end
-  
-  def do_get
-    get :authorize, :oauth_token => @request_token.token
-  end
-
-  def do_post
-    @request_token.should_receive(:authorize!).with(@user)
-    post :authorize, :oauth_token => @request_token.token, :authorize => "1"
-  end
-
-  def do_post_without_user_authorization
-    @request_token.should_receive(:invalidate!)
-    post :authorize, :oauth_token => @request_token.token, :authorize => "0"
-  end
-
-  def do_post_with_callback
-    @request_token.should_receive(:authorize!).with(@user)
-    post :authorize, :oauth_token => @request_token.token, :oauth_callback => "http://application/alternative", :authorize => "1"
-  end
-
-  def do_post_with_no_application_callback
-    @request_token.should_receive(:authorize!).with(@user)
-    @client_application.stub!(:callback_url).and_return(nil)
-    post :authorize, :oauth_token => @request_token.token, :authorize => "1"
-  end
-  
-  it "should be successful" do
-    do_get
-    response.should be_success
-  end
-  
-  it "should query for client_application" do
-    RequestToken.should_receive(:find_by_token).and_return(@request_token)
-    do_get
-  end
-  
-  it "should assign token" do
-    do_get
-    assigns[:token].should equal(@request_token)
-  end
-  
-  it "should render authorize template" do
-    do_get
-    response.should render_template('authorize')
-  end
-  
-  it "should redirect to default callback" do
-    do_post
-    response.should be_redirect
-    response.should redirect_to("http://application/callback?oauth_token=#{@request_token.token}")
-  end
-
-  it "should redirect to callback in query" do
-    do_post_with_callback
-    response.should be_redirect
-    response.should redirect_to("http://application/alternative?oauth_token=#{@request_token.token}")
-  end
-
-  it "should be successful on authorize without any application callback" do
-    do_post_with_no_application_callback
-    response.should be_success
-  end
-
-  it "should be successful on authorize without any application callback" do
-    do_post_with_no_application_callback
-    response.should render_template('authorize_success')
-  end
-  
-  it "should render failure screen on user invalidation" do
-    do_post_without_user_authorization
-    response.should render_template('authorize_failure')
-  end
-
-  it "should render failure screen if token is invalidated" do
-    @request_token.should_receive(:invalidated?).and_return(true)
-    do_get
-    response.should render_template('authorize_failure')
-  end
-  
-
-end
-
-
-describe OauthController, "getting an access token" do
-  include OAuthControllerSpecHelper
-  before(:each) do
-    setup_oauth
-    sign_request_with_oauth @request_token
-    @request_token.stub!(:exchange!).and_return(@access_token)
-  end
-  
-  def do_get
-    get :access_token
-  end
-  
-  it "should be successful" do
-    do_get
-    response.should be_success
-  end
-  
-  it "should query for client_application" do
-    ClientApplication.should_receive(:find_token).with(@request_token.token).and_return(@request_token)
-    do_get
-  end
-  
-  it "should request token from client_application" do
-    @request_token.should_receive(:exchange!).and_return(@access_token)
-    do_get
-  end
-  
-  it "should return token string" do
-    do_get
-    response.body.should == @access_token_string
-  end
-end
-
-class OauthorizedController<ApplicationController
-  before_filter :login_or_oauth_required, :only => :both
-  before_filter :login_required, :only => :interactive
-  before_filter :oauth_required, :only => :token_only
-  
-  def interactive
-  end
-  
-  def token_only
-  end
-  
-  def both
-  end
-end
-
-describe OauthorizedController, " access control" do
-  include OAuthControllerSpecHelper
-  
-  before(:each) do
-  end
-  
-  it "should have access_token set up correctly" do
-    setup_to_authorize_request
-    @access_token.is_a?(AccessToken).should == true
-    @access_token.should be_authorized
-    @access_token.should_not be_invalidated
-    @access_token.user.should == @user
-    @access_token.client_application.should == @client_application
-  end
-  
-  it "should return false for oauth? by default" do
-    controller.send(:oauth?).should == false
-  end
-
-  it "should return nil for current_token  by default" do
-    controller.send(:current_token).should be_nil
-  end
-  
-  it "should allow oauth when using login_or_oauth_required" do
-    setup_to_authorize_request
-    sign_request_with_oauth(@access_token)
-    ClientApplication.should_receive(:find_token).with(@access_token.token).and_return(@access_token)
-    get :both
-    controller.send(:current_token).should == @access_token
-    controller.send(:current_token).is_a?(AccessToken).should == true 
-    controller.send(:current_user).should == @user
-    controller.send(:current_client_application).should == @client_application
-    response.code.should == '200'
-    response.should be_success
-  end
-
-  it "should allow interactive when using login_or_oauth_required" do
-    login
-    get :both
-    response.should be_success
-    controller.send(:current_user).should == @user
-    controller.send(:current_token).should be_nil
-  end
-
-  
-  it "should allow oauth when using oauth_required" do
-    setup_to_authorize_request
-    sign_request_with_oauth(@access_token)
-    ClientApplication.should_receive(:find_token).with(@access_token.token).and_return(@access_token)
-    get :token_only
-    controller.send(:current_token).should == @access_token
-    controller.send(:current_client_application).should == @client_application
-    controller.send(:current_user).should == @user 
-    response.code.should == '200' 
-    response.should be_success 
-  end
-
-  it "should disallow oauth using RequestToken when using oauth_required" do
-    setup_to_authorize_request
-    ClientApplication.should_receive(:find_token).with(@request_token.token).and_return(@request_token)
-    sign_request_with_oauth(@request_token)
-    get :token_only
-    response.code.should == '401'
-  end
-
-  it "should disallow interactive when using oauth_required" do
-    login
-    get :token_only
-    response.code.should == '401'
-    
-    controller.send(:current_user).should == @user
-    controller.send(:current_token).should be_nil
-  end
-
-  it "should disallow oauth when using login_required" do
-    setup_to_authorize_request
-    sign_request_with_oauth(@access_token)
-    get :interactive
-    response.code.should == "302"
-    controller.send(:current_user).should be_nil
-    controller.send(:current_token).should be_nil
-  end
-
-  it "should allow interactive when using login_required" do
-    login
-    get :interactive
-    response.should be_success
-    controller.send(:current_user).should == @user
-    controller.send(:current_token).should be_nil
-  end
-
-end
-
-describe OauthController, "revoke" do
-  include OAuthControllerSpecHelper
-  before(:each) do
-    setup_oauth_for_user
-    @request_token.stub!(:invalidate!)
-  end
-  
-  def do_post
-    post :revoke, :token => "TOKEN STRING"
-  end
-  
-  it "should redirect to index" do
-    do_post
-    response.should be_redirect
-    response.should redirect_to('http://test.host/oauth_clients')
-  end
-  
-  it "should query current_users tokens" do
-    @tokens.should_receive(:find_by_token).and_return(@request_token)
-    do_post
-  end
-  
-  it "should call invalidate on token" do
-    @request_token.should_receive(:invalidate!)
-    do_post
-  end
-  
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller_spec_helper.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller_spec_helper.rb
deleted file mode 100644 (file)
index 9e71284..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-module OAuthControllerSpecHelper
-  def login
-    controller.stub!(:local_request?).and_return(true)
-    @user = mock_model(User)
-    controller.stub!(:current_user).and_return(@user)
-    @tokens = []
-    @tokens.stub!(:find).and_return(@tokens)
-    @user.stub!(:tokens).and_return(@tokens)
-    User.stub!(:find_by_id).and_return(@user)
-  end
-  
-  def login_as_application_owner
-    login
-    @client_application = mock_model(ClientApplication)
-    @client_applications = [@client_application]
-    
-    @user.stub!(:client_applications).and_return(@client_applications)
-    @client_applications.stub!(:find).and_return(@client_application)
-  end
-  
-  def setup_oauth
-    controller.stub!(:local_request?).and_return(true)
-    @user||=mock_model(User)
-    
-    User.stub!(:find_by_id).and_return(@user)
-    
-    @server = OAuth::Server.new "http://test.host"
-    @consumer = OAuth::Consumer.new('key', 'secret',{:site => "http://test.host"})
-
-    @client_application = mock_model(ClientApplication)
-    controller.stub!(:current_client_application).and_return(@client_application)
-    ClientApplication.stub!(:find_by_key).and_return(@client_application)
-    @client_application.stub!(:key).and_return(@consumer.key)
-    @client_application.stub!(:secret).and_return(@consumer.secret)
-    @client_application.stub!(:name).and_return("Client Application name")
-    @client_application.stub!(:callback_url).and_return("http://application/callback")
-    @request_token = mock_model(RequestToken, :token => 'request_token', :client_application => @client_application, :secret => "request_secret", :user => @user)
-    @request_token.stub!(:invalidated?).and_return(false)
-    ClientApplication.stub!(:find_token).and_return(@request_token)
-    
-    @request_token_string = "oauth_token = request_token&oauth_token_secret = request_secret"
-    @request_token.stub!(:to_query).and_return(@request_token_string)
-
-    @access_token = mock_model(AccessToken, :token => 'access_token', :client_application => @client_application, :secret => "access_secret", :user => @user)
-    @access_token.stub!(:invalidated?).and_return(false)
-    @access_token.stub!(:authorized?).and_return(true)
-    @access_token_string = "oauth_token = access_token&oauth_token_secret = access_secret"
-    @access_token.stub!(:to_query).and_return(@access_token_string)
-
-    @client_application.stub!(:authorize_request?).and_return(true)
-#    @client_application.stub!(:sign_request_with_oauth_token).and_return(@request_token)
-    @client_application.stub!(:exchange_for_access_token).and_return(@access_token)
-  end
-  
-  def setup_oauth_for_user
-    login
-    setup_oauth
-    @tokens = [@request_token]
-    @tokens.stub!(:find).and_return(@tokens)
-    @tokens.stub!(:find_by_token).and_return(@request_token)
-    @user.stub!(:tokens).and_return(@tokens)
-  end
-  
-  def sign_request_with_oauth(token = nil)
-    ActionController::TestRequest.use_oauth = true
-    @request.configure_oauth(@consumer,token)
-  end
-    
-  def setup_to_authorize_request
-    setup_oauth
-    OauthToken.stub!(:find_by_token).with( @access_token.token).and_return(@access_token)
-    @access_token.stub!(:is_a?).and_return(true)
-  end
-end
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller_test.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller_test.rb
deleted file mode 100644 (file)
index f75eaee..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-require File.dirname(__FILE__) + '/../test_helper'
-require File.dirname(__FILE__) + '/../oauth_controller_test_helper'
-require 'oauth/client/action_controller_request'
-
-class OauthController; def rescue_action(e) raise e end; end
-
-class OauthControllerRequestTokenTest < ActionController::TestCase
-  include OAuthControllerTestHelper
-  tests OauthController
-  
-  def setup
-    @controller = OauthController.new
-    setup_oauth
-    sign_request_with_oauth
-    @client_application.stubs(:create_request_token).returns(@request_token)
-  end
-  
-  def do_get
-    get :request_token
-  end
-  
-  def test_should_be_successful
-    do_get
-    assert @response.success?
-  end
-  
-  def test_should_query_for_client_application
-    ClientApplication.expects(:find_by_key).with('key').returns(@client_application)
-    do_get
-  end
-  
-  def test_should_request_token_from_client_application
-    @client_application.expects(:create_request_token).returns(@request_token)
-    do_get
-  end
-  
-  def test_should_return_token_string
-    do_get
-    assert_equal @request_token_string, @response.body
-  end
-end
-
-class OauthControllerTokenAuthorizationTest < ActionController::TestCase
-   include OAuthControllerTestHelper
-   tests OauthController
-   
-  def setup
-    @controller = OauthController.new
-    login
-    setup_oauth
-    RequestToken.stubs(:find_by_token).returns(@request_token)
-  end
-  
-  def do_get
-    get :authorize, :oauth_token => @request_token.token
-  end
-
-  def do_post
-    @request_token.expects(:authorize!).with(@user)
-    post :authorize,:oauth_token=>@request_token.token,:authorize=>"1"
-  end
-
-  def do_post_without_user_authorization
-    @request_token.expects(:invalidate!)
-    post :authorize,:oauth_token=>@request_token.token,:authorize=>"0"
-  end
-
-  def do_post_with_callback
-    @request_token.expects(:authorize!).with(@user)
-    post :authorize,:oauth_token=>@request_token.token,:oauth_callback=>"http://application/alternative",:authorize=>"1"
-  end
-
-  def do_post_with_no_application_callback
-    @request_token.expects(:authorize!).with(@user)
-    @client_application.stubs(:callback_url).returns(nil)
-    post :authorize, :oauth_token => @request_token.token, :authorize=>"1"
-  end
-  
-  def test_should_be_successful
-    do_get
-    assert @response.success?
-  end
-  
-  def test_should_query_for_client_application
-    RequestToken.expects(:find_by_token).returns(@request_token)
-    do_get
-  end
-  
-  def test_should_assign_token
-    do_get
-    assert_equal @request_token, assigns(:token)
-  end
-  
-  def test_should_render_authorize_template
-    do_get
-    assert_template('authorize')
-  end
-  
-  def test_should_redirect_to_default_callback
-    do_post
-    assert_response :redirect
-    assert_redirected_to("http://application/callback?oauth_token=#{@request_token.token}")
-  end
-
-  def test_should_redirect_to_callback_in_query
-    do_post_with_callback
-    assert_response :redirect
-    assert_redirected_to("http://application/alternative?oauth_token=#{@request_token.token}")
-  end
-
-  def test_should_be_successful_on_authorize_without_any_application_callback
-    do_post_with_no_application_callback
-    assert @response.success?
-    assert_template('authorize_success')
-  end
-  
-  def test_should_render_failure_screen_on_user_invalidation
-    do_post_without_user_authorization
-    assert_template('authorize_failure')
-  end
-
-  def test_should_render_failure_screen_if_token_is_invalidated
-    @request_token.expects(:invalidated?).returns(true)
-    do_get
-    assert_template('authorize_failure')
-  end
-  
-
-end
-
-class OauthControllerGetAccessTokenTest < ActionController::TestCase
-  include OAuthControllerTestHelper
-  tests OauthController
-  
-  def setup
-    @controller = OauthController.new
-    setup_oauth
-    sign_request_with_oauth @request_token
-    @request_token.stubs(:exchange!).returns(@access_token)
-  end
-  
-  def do_get
-    get :access_token
-  end
-  
-  def test_should_be_successful
-    do_get
-    assert @response.success?
-  end
-  
-  def test_should_query_for_client_application
-    ClientApplication.expects(:find_token).with(@request_token.token).returns(@request_token)
-    do_get
-  end
-  
-  def test_should_request_token_from_client_application
-    @request_token.expects(:exchange!).returns(@access_token)
-    do_get
-  end
-  
-  def test_should__return_token_string
-    do_get
-    assert_equal @access_token_string, @response.body
-  end
-end
-
-class OauthorizedController < ApplicationController
-  before_filter :login_or_oauth_required,:only=>:both
-  before_filter :login_required,:only=>:interactive
-  before_filter :oauth_required,:only=>:token_only
-    
-  def interactive
-    render :text => "interactive"
-  end
-  
-  def token_only
-    render :text => "token"
-  end
-  
-  def both
-    render :text => "both"
-  end
-end
-
-class OauthControllerAccessControlTest < ActionController::TestCase
-  include OAuthControllerTestHelper
-  tests OauthorizedController
-  
-  def setup
-    @controller = OauthorizedController.new
-  end
-  
-  def test_should__have_access_token_set_up_correctly
-    setup_to_authorize_request
-    assert @access_token.is_a?(AccessToken)
-    assert @access_token.authorized?
-    assert !@access_token.invalidated?
-    assert_equal @user, @access_token.user
-    assert_equal @client_application, @access_token.client_application
-  end
-  
-  def test_should_return_false_for_oauth_by_default
-    assert_equal false, @controller.send(:oauth?)
-  end
-
-  def test_should_return_nil_for_current_token_by_default
-    assert_nil @controller.send(:current_token)
-  end
-  
-  def test_should_allow_oauth_when_using_login_or_oauth_required
-    setup_to_authorize_request
-    sign_request_with_oauth(@access_token)
-    ClientApplication.expects(:find_token).with(@access_token.token).returns(@access_token)
-    get :both
-    assert_equal @access_token, @controller.send(:current_token)
-    assert @controller.send(:current_token).is_a?(AccessToken)
-    assert_equal @user, @controller.send(:current_user)
-    assert_equal @client_application, @controller.send(:current_client_application)
-    assert_equal '200', @response.code
-    assert @response.success?
-  end
-
-  def test_should_allow_interactive_when_using_login_or_oauth_required
-    login
-    get :both
-    assert @response.success?
-    assert_equal @user, @controller.send(:current_user)
-    assert_nil @controller.send(:current_token)
-  end
-  
-  def test_should_allow_oauth_when_using_oauth_required
-    setup_to_authorize_request
-    sign_request_with_oauth(@access_token)
-    ClientApplication.expects(:find_token).with(@access_token.token).returns(@access_token)
-    get :token_only
-    assert_equal @access_token, @controller.send(:current_token)
-    assert_equal @client_application, @controller.send(:current_client_application)
-    assert_equal @user, @controller.send(:current_user)
-    assert_equal '200', @response.code
-    assert @response.success? 
-  end
-
-  def test_should_disallow_oauth_using_request_token_when_using_oauth_required
-    setup_to_authorize_request
-    ClientApplication.expects(:find_token).with(@request_token.token).returns(@request_token)
-    sign_request_with_oauth(@request_token)
-    get :token_only
-    assert_equal '401', @response.code
-  end
-
-  def test_should_disallow_interactive_when_using_oauth_required
-    login
-    get :token_only
-    assert_equal '401', @response.code
-    
-    assert_equal @user, @controller.send(:current_user)
-    assert_nil @controller.send(:current_token)
-  end
-
-  def test_should_disallow_oauth_when_using_login_required
-    setup_to_authorize_request
-    sign_request_with_oauth(@access_token)
-    get :interactive
-    assert_equal "302",@response.code
-    assert_nil @controller.send(:current_user)
-    assert_nil @controller.send(:current_token)
-  end
-
-  def test_should_allow_interactive_when_using_login_required
-    login
-    get :interactive
-    assert @response.success?
-    assert_equal @user, @controller.send(:current_user)
-    assert_nil @controller.send(:current_token)
-  end
-
-end
-
-class OauthControllerRevokeTest < ActionController::TestCase
-  include OAuthControllerTestHelper
-  tests OauthController
-  
-  def setup
-    @controller = OauthController.new
-    setup_oauth_for_user
-    @request_token.stubs(:invalidate!)
-  end
-  
-  def do_post
-    post :revoke, :token => "TOKEN STRING"
-  end
-  
-  def test_should_redirect_to_index
-    do_post
-    assert_response :redirect
-    assert_redirected_to('http://test.host/oauth_clients')
-  end
-  
-  def test_should_query_current_users_tokens
-    @tokens.expects(:find_by_token).returns(@request_token)
-    do_post
-  end
-  
-  def test_should_call_invalidate_on_token
-    @request_token.expects(:invalidate!)
-    do_post
-  end
-  
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller_test_helper.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/controller_test_helper.rb
deleted file mode 100644 (file)
index 2827252..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-require "mocha"
-module OAuthControllerTestHelper
-  
-  # Some custom stuff since we're using Mocha
-  def mock_model(model_class, options_and_stubs = {})
-    id = rand(10000)
-    options_and_stubs.reverse_merge! :id => id,
-      :to_param => id.to_s,
-      :new_record? => false,
-      :errors => stub("errors", :count => 0)
-      
-    m = stub("#{model_class.name}_#{options_and_stubs[:id]}", options_and_stubs)
-    m.instance_eval <<-CODE
-      def is_a?(other)
-        #{model_class}.ancestors.include?(other)
-      end
-      def kind_of?(other)
-        #{model_class}.ancestors.include?(other)
-      end
-      def instance_of?(other)
-        other == #{model_class}
-      end
-      def class
-        #{model_class}
-      end
-    CODE
-    yield m if block_given?
-    m
-  end
-    
-  def mock_full_client_application
-    mock_model(ClientApplication, 
-                :name => "App1", 
-                :url => "http://app.com", 
-                :callback_url => "http://app.com/callback",
-                :support_url => "http://app.com/support",
-                :key => "asd23423yy",
-                :secret => "secret",
-                :oauth_server => OAuth::Server.new("http://kowabunga.com")
-              )
-  end
-  
-  def login
-    @controller.stubs(:local_request?).returns(true)
-    @user = mock_model(User, :login => "ron")
-    @controller.stubs(:current_user).returns(@user)
-    @tokens=[]
-    @tokens.stubs(:find).returns(@tokens)
-    @user.stubs(:tokens).returns(@tokens)
-    User.stubs(:find_by_id).returns(@user)
-  end
-  
-  def login_as_application_owner
-    login
-    @client_application = mock_full_client_application
-    @client_applications = [@client_application]
-    
-    @user.stubs(:client_applications).returns(@client_applications)
-    @client_applications.stubs(:find).returns(@client_application)
-  end
-  
-  def setup_oauth
-    @controller.stubs(:local_request?).returns(true)
-    @user||=mock_model(User)
-    
-    User.stubs(:find_by_id).returns(@user)
-    
-    @server=OAuth::Server.new "http://test.host"
-    @consumer=OAuth::Consumer.new('key','secret',{:site=>"http://test.host"})
-
-    @client_application = mock_full_client_application
-    @controller.stubs(:current_client_application).returns(@client_application)
-    ClientApplication.stubs(:find_by_key).returns(@client_application)
-    @client_application.stubs(:key).returns(@consumer.key)
-    @client_application.stubs(:secret).returns(@consumer.secret)
-    @client_application.stubs(:name).returns("Client Application name")
-    @client_application.stubs(:callback_url).returns("http://application/callback")
-    @request_token=mock_model(RequestToken,:token=>'request_token',:client_application=>@client_application,:secret=>"request_secret",:user=>@user)
-    @request_token.stubs(:invalidated?).returns(false)
-    ClientApplication.stubs(:find_token).returns(@request_token)
-    
-    @request_token_string="oauth_token=request_token&oauth_token_secret=request_secret"
-    @request_token.stubs(:to_query).returns(@request_token_string)
-
-    @access_token=mock_model(AccessToken,:token=>'access_token',:client_application=>@client_application,:secret=>"access_secret",:user=>@user)
-    @access_token.stubs(:invalidated?).returns(false)
-    @access_token.stubs(:authorized?).returns(true)
-    @access_token_string="oauth_token=access_token&oauth_token_secret=access_secret"
-    @access_token.stubs(:to_query).returns(@access_token_string)
-
-    @client_application.stubs(:authorize_request?).returns(true)
-#    @client_application.stubs(:sign_request_with_oauth_token).returns(@request_token)
-    @client_application.stubs(:exchange_for_access_token).returns(@access_token)
-  end
-  
-  def setup_oauth_for_user
-    login
-    setup_oauth
-    @tokens=[@request_token]
-    @tokens.stubs(:find).returns(@tokens)
-    @tokens.stubs(:find_by_token).returns(@request_token)
-    @user.stubs(:tokens).returns(@tokens)
-  end
-  
-  def sign_request_with_oauth(token=nil)
-    ActionController::TestRequest.use_oauth=true
-    @request.configure_oauth(@consumer, token)
-  end
-    
-  def setup_to_authorize_request
-    setup_oauth
-    OauthToken.stubs(:find_by_token).with( @access_token.token).returns(@access_token)
-    @access_token.stubs(:is_a?).returns(true)
-  end
-end
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/edit.html.erb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/edit.html.erb
deleted file mode 100644 (file)
index 6c4f5ce..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<h1>Edit your application</h1>
-<%% form_for :client_application do |f| %>
-       <%%= render :partial => "form", :locals => { :f => f } %>
-       <%%= submit_tag "Edit" %>
-<%% end %>
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/helper.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/helper.rb
deleted file mode 100644 (file)
index 010cf9f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-module OauthHelper
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/index.html.erb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/index.html.erb
deleted file mode 100644 (file)
index fcb3a03..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<div class="flash"><%%= flash[:notice] %></div>
-<h1>OAuth Client Applications</h1>
-<%% unless @tokens.empty? %>
-<p>The following tokens have been issued to applications in your name</p>
-<table>
-       <tr><th>Application</th><th>Issued</th><th>&nbsp;</th></tr>
-       <%% @tokens.each do |token|%>
-               <%% content_tag_for :tr, token do %>
-                       <td><%%= link_to token.client_application.name, token.client_application.url %></td>
-                       <td><%%= token.authorized_at %></td>
-                       <td>
-                               <%% form_tag :controller => 'oauth', :action => 'revoke' do %>
-                               <%%= hidden_field_tag 'token', token.token %>
-                               <%%= submit_tag "Revoke!" %>
-                               <%% end %>
-                       </td>
-               <%% end %>
-       <%% end %>
-       
-</table>
-<%% end %>
-<h3>Application Developers</h3>
-<%% if @client_applications.empty? %>
-       <p>
-               Do you have an application you would like to register for use with us using the <a href="http://oauth.net">OAuth</a> standard?
-       </p>
-       <p>
-               You must register your web application before it can make OAuth requests to this service
-       </p>
-<%% else %>
-       <p>
-               You have the following client applications registered:
-       </p>
-       <%% @client_applications.each do |client|%>
-               <%% div_for client do %>
-                       <%%= link_to client.name, :action => :show, :id => client.id %>
-               <%% end %>
-       <%% end %>
-<%% end %>
-<h3><%%= link_to "Register your application", :action => :new %></h3>
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/migration.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/migration.rb
deleted file mode 100644 (file)
index c1b6b02..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-class CreateOauthTables < ActiveRecord::Migration
-  def self.up
-    create_table :client_applications do |t|
-      t.string :name
-      t.string :url
-      t.string :support_url
-      t.string :callback_url
-      t.string :key, :limit => 50
-      t.string :secret, :limit => 50
-      t.integer :user_id
-
-      t.timestamps
-    end
-    add_index :client_applications, :key, :unique
-    
-    create_table :oauth_tokens do |t|
-      t.integer :user_id
-      t.string :type, :limit => 20
-      t.integer :client_application_id
-      t.string :token, :limit => 50
-      t.string :secret, :limit => 50
-      t.timestamp :authorized_at, :invalidated_at
-      t.timestamps
-    end
-    
-    add_index :oauth_tokens, :token, :unique
-    
-    create_table :oauth_nonces do |t|
-      t.string :nonce
-      t.integer :timestamp
-
-      t.timestamps
-    end
-    add_index :oauth_nonces,[:nonce, :timestamp], :unique
-    
-  end
-
-  def self.down
-    drop_table :client_applications
-    drop_table :oauth_tokens
-    drop_table :oauth_nonces
-  end
-
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/new.html.erb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/new.html.erb
deleted file mode 100644 (file)
index be541da..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<h1>Register a new application</h1>
-<%% form_for :client_application, :url => { :action => :create } do |f| %>
-   <%%= render :partial => "form", :locals => { :f => f } %>
-   <%%= submit_tag "Register" %>
-<%% end %>
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_nonce.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_nonce.rb
deleted file mode 100644 (file)
index 075351b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# Simple store of nonces. The OAuth Spec requires that any given pair of nonce and timestamps are unique.
-# Thus you can use the same nonce with a different timestamp and viceversa.
-class OauthNonce < ActiveRecord::Base
-  validates_presence_of :nonce, :timestamp
-  validates_uniqueness_of :nonce, :scope => :timestamp
-  
-  # Remembers a nonce and it's associated timestamp. It returns false if it has already been used
-  def self.remember(nonce, timestamp)
-    oauth_nonce = OauthNonce.create(:nonce => nonce, :timestamp => timestamp)
-    return false if oauth_nonce.new_record?
-    oauth_nonce
-  end
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_nonce_spec.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_nonce_spec.rb
deleted file mode 100644 (file)
index 7829bdc..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-require File.dirname(__FILE__) + '/../spec_helper'
-require 'oauth/helper'
-describe OauthNonce do
-  include OAuth::Helper
-  before(:each) do
-    @oauth_nonce = OauthNonce.remember(generate_key, Time.now.to_i)
-  end
-
-  it "should be valid" do
-    @oauth_nonce.should be_valid
-  end
-  
-  it "should not have errors" do
-    @oauth_nonce.errors.full_messages.should == []
-  end
-  
-  it "should not be a new record" do
-    @oauth_nonce.should_not be_new_record
-  end
-  
-  it "should not allow a second one with the same values" do
-    OauthNonce.remember(@oauth_nonce.nonce,@oauth_nonce.timestamp).should == false
-  end
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_nonce_test.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_nonce_test.rb
deleted file mode 100644 (file)
index 2fd6a75..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-require 'oauth/helper'
-require File.dirname(__FILE__) + '/../test_helper'
-
-class ClientNoneTest < ActiveSupport::TestCase
-  include OAuth::Helper
-  
-  def setup
-    @oauth_nonce = OauthNonce.remember(generate_key,Time.now.to_i)
-  end
-
-  def test_should_be_valid
-    assert @oauth_nonce.valid?
-  end
-  
-  def test_should_not_have_errors
-    assert_equal [], @oauth_nonce.errors.full_messages
-  end
-  
-  def test_should_not_be_a_new_record
-    assert !@oauth_nonce.new_record?
-  end
-  
-  def test_shuold_not_allow_a_second_one_with_the_same_values
-    assert_equal false, OauthNonce.remember(@oauth_nonce.nonce, @oauth_nonce.timestamp)
-  end
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_nonces.yml b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_nonces.yml
deleted file mode 100644 (file)
index 4e0b306..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
-one:
-  id: 1
-  nonce: a_nonce
-  timestamp: 1
-  created_at: 2007-11-25 17:27:04
-  updated_at: 2007-11-25 17:27:04
-two:
-  id: 2
-  nonce: b_nonce
-  timestamp: 2
-  created_at: 2007-11-25 17:27:04
-  updated_at: 2007-11-25 17:27:04
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_token.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_token.rb
deleted file mode 100644 (file)
index 5fca40c..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-class OauthToken < ActiveRecord::Base
-  belongs_to :client_application
-  belongs_to :user
-  validates_uniqueness_of :token
-  validates_presence_of :client_application, :token, :secret
-  before_validation_on_create :generate_keys
-  
-  def invalidated?
-    invalidated_at != nil
-  end
-  
-  def invalidate!
-    update_attribute(:invalidated_at, Time.now)
-  end
-  
-  def authorized?
-    authorized_at != nil && !invalidated?
-  end
-  
-  def to_query
-    "oauth_token=#{token}&oauth_token_secret=#{secret}"
-  end
-    
-protected
-  
-  def generate_keys
-    @oauth_token = client_application.oauth_server.generate_credentials
-    self.token = @oauth_token[0]
-    self.secret = @oauth_token[1]
-  end
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_token_spec.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_token_spec.rb
deleted file mode 100644 (file)
index 594c204..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-require File.dirname(__FILE__) + '/../spec_helper'
-
-describe RequestToken do
-  fixtures :client_applications, :users, :oauth_tokens
-  before(:each) do
-    @token = RequestToken.create :client_application => client_applications(:one)
-  end
-
-  it "should be valid" do
-    @token.should be_valid
-  end
-  
-  it "should not have errors" do
-    @token.errors.should_not == []
-  end
-  
-  it "should have a token" do
-    @token.token.should_not be_nil
-  end
-
-  it "should have a secret" do
-    @token.secret.should_not be_nil
-  end
-  
-  it "should not be authorized" do 
-    @token.should_not be_authorized
-  end
-
-  it "should not be invalidated" do
-    @token.should_not be_invalidated
-  end
-  
-  it "should authorize request" do
-    @token.authorize!(users(:quentin))
-    @token.should be_authorized
-    @token.authorized_at.should_not be_nil
-    @token.user.should == users(:quentin)
-  end
-  
-  it "should not exchange without approval" do
-    @token.exchange!.should == false
-    @token.should_not be_invalidated
-  end
-  
-  it "should not exchange without approval" do
-    @token.authorize!(users(:quentin))
-    @access = @token.exchange!
-    @access.should_not == false
-    @token.should be_invalidated
-    
-    @access.user.should == users(:quentin)
-    @access.should be_authorized
-  end
-  
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_token_test.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_token_test.rb
deleted file mode 100644 (file)
index dc7f5cb..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-require File.dirname(__FILE__) + '/../test_helper'
-
-class RequestTokenTest < ActiveSupport::TestCase
-
-  fixtures :client_applications, :users, :oauth_tokens
-  
-  def setup
-    @token = RequestToken.create :client_application=>client_applications(:one)
-  end
-
-  def test_should_be_valid
-    assert @token.valid?
-  end
-  
-  def test_should_not_have_errors
-    assert @token.errors.empty?
-  end
-  
-  def test_should_have_a_token
-    assert_not_nil @token.token
-  end
-
-  def test_should_have_a_secret
-    assert_not_nil @token.secret
-  end
-  
-  def test_should_not_be_authorized 
-    assert !@token.authorized?
-  end
-
-  def test_should_not_be_invalidated
-    assert !@token.invalidated?
-  end
-  
-  def test_should_authorize_request
-    @token.authorize!(users(:quentin))
-    assert @token.authorized?
-    assert_not_nil @token.authorized_at
-    assert_equal users(:quentin), @token.user
-  end
-  
-  def test_should_not_exchange_without_approval
-    assert_equal false, @token.exchange!
-    assert_equal false, @token.invalidated?
-  end
-  
-  def test_should_not_exchange_without_approval
-    @token.authorize!(users(:quentin))
-    @access = @token.exchange!
-    assert_not_equal false, @access
-    assert @token.invalidated?
-    
-    assert_equal users(:quentin), @access.user
-    assert @access.authorized?
-  end
-  
-end
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_tokens.yml b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/oauth_tokens.yml
deleted file mode 100644 (file)
index 1c8006e..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
-one:
-  id: 1
-  user_id: 1
-  client_application_id: 1
-  token: one
-  secret: MyString
-  created_at: 2007-11-19 07:31:46
-  updated_at: 2007-11-19 07:31:46
-two:
-  id: 2
-  user_id: 1
-  client_application_id: 1
-  token: two
-  secret: MyString
-  created_at: 2007-11-19 07:31:46
-  updated_at: 2007-11-19 07:31:46
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/request_token.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/request_token.rb
deleted file mode 100644 (file)
index b6047fe..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-class RequestToken < OauthToken
-  def authorize!(user)
-    return false if authorized?
-    self.user = user
-    self.authorized_at = Time.now
-    self.save
-  end
-  
-  def exchange!
-    return false unless authorized?
-    RequestToken.transaction do
-      access_token = AccessToken.create(:user => user, :client_application => client_application)
-      invalidate!
-      access_token
-    end
-  end
-end
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/show.html.erb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/show.html.erb
deleted file mode 100644 (file)
index a997e2f..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<h1>OAuth details for <%%=@client_application.name %></h1>
-<p>
-       <b>Consumer Key:</b> <%%=@client_application.key %>
-</p>
-<p>
-       <b>Consumer Secret:</b> <%%=@client_application.secret %>
-</p>
-<p>
-       <b>Request Token URL</b> http<%%='s' if request.ssl? %>://<%%= request.host_with_port %><%%=@client_application.oauth_server.request_token_path %>
-</p>
-<p>
-       <b>Access Token URL</b> http<%%='s' if request.ssl? %>://<%%= request.host_with_port %><%%=@client_application.oauth_server.access_token_path %>
-</p>
-<p>
-       <b>Authorize URL</b> http<%%='s' if request.ssl? %>://<%%= request.host_with_port %><%%=@client_application.oauth_server.authorize_path %>
-</p>
-
-<p>
-       We support hmac-sha1 (recommended) as well as plain text in ssl mode.
-</p>
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/init.rb b/vendor/plugins/oauth-plugin/init.rb
deleted file mode 100644 (file)
index 28e2556..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-gem 'oauth', '>=0.2.1'
-require 'oauth/signature/hmac/sha1'
-require 'oauth/request_proxy/action_controller_request'
-require 'oauth/server'
-require 'oauth/rails/controller_methods'
-ActionController::Base.send :include, OAuth::Rails::ControllerMethods
diff --git a/vendor/plugins/oauth-plugin/install.rb b/vendor/plugins/oauth-plugin/install.rb
deleted file mode 100644 (file)
index f1531bd..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#should we do any text formatting?
-puts IO.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
\ No newline at end of file
diff --git a/vendor/plugins/oauth-plugin/lib/oauth/rails/controller_methods.rb b/vendor/plugins/oauth-plugin/lib/oauth/rails/controller_methods.rb
deleted file mode 100644 (file)
index 68ef9d2..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-require 'oauth/signature'
-module OAuth
-  module Rails
-   
-    module ControllerMethods
-      protected
-      
-      def current_token
-        @current_token
-      end
-      
-      def current_client_application
-        @current_client_application
-      end
-      
-      def oauthenticate
-        logger.info "entering oauthenticate"
-        verified=verify_oauth_signature 
-        logger.info "verified=#{verified.to_s}"
-        return verified && current_token.is_a?(::AccessToken)
-      end
-      
-      def oauth?
-        current_token!=nil
-      end
-      
-      # use in a before_filter
-      def oauth_required
-        logger.info "Current_token=#{@current_token.inspect}"
-        if oauthenticate
-          logger.info "passed oauthenticate"
-          if authorized?
-            logger.info "passed authorized"
-            return true
-          else
-            logger.info "failed authorized"
-            invalid_oauth_response
-          end
-        else
-          logger.info "failed oauthenticate"
-          
-          invalid_oauth_response
-        end
-      end
-      
-      # This requies that you have an acts_as_authenticated compatible authentication plugin installed
-      def login_or_oauth_required
-        if oauthenticate
-          if authorized?
-            return true
-          else
-            invalid_oauth_response
-          end
-        else
-          login_required
-        end
-      end
-      
-      
-      # verifies a request token request
-      def verify_oauth_consumer_signature
-        begin
-          valid = ClientApplication.verify_request(request) do |token, consumer_key|
-            @current_client_application = ClientApplication.find_by_key(consumer_key)
-
-            # return the token secret and the consumer secret
-            [nil, @current_client_application.secret]
-          end
-        rescue
-          valid=false
-        end
-
-        invalid_oauth_response unless valid
-      end
-
-      def verify_oauth_request_token
-        verify_oauth_signature && current_token.is_a?(RequestToken)
-      end
-
-      def invalid_oauth_response(code=401,message="Invalid OAuth Request")
-        render :text => message, :status => code
-      end
-
-      private
-      
-      def current_token=(token)
-        @current_token=token
-        if @current_token
-          @current_user=@current_token.user
-          @current_client_application=@current_token.client_application 
-        end
-        @current_token
-      end
-      
-      # Implement this for your own application using app-specific models
-      def verify_oauth_signature
-        begin
-          valid = ClientApplication.verify_request(request) do |request|
-            self.current_token = OauthToken.find_token(request.token)
-            logger.info "self=#{self.class.to_s}"
-            logger.info "token=#{self.current_token}"
-            # return the token secret and the consumer secret
-            [(current_token.nil? ? nil : current_token.secret), (current_client_application.nil? ? nil : current_client_application.secret)]
-          end
-          # reset @current_user to clear state for restful_...._authentication
-          @current_user = nil if (!valid)
-          valid
-        rescue
-          false
-        end
-      end
-    end
-  end
-end
diff --git a/vendor/plugins/oauth-plugin/tasks/oauth_tasks.rake b/vendor/plugins/oauth-plugin/tasks/oauth_tasks.rake
deleted file mode 100644 (file)
index fd2b0e1..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# desc "Explaining what the task does"
-# task :oauth do
-#   # Task goes here
-# end
diff --git a/vendor/plugins/oauth-plugin/uninstall.rb b/vendor/plugins/oauth-plugin/uninstall.rb
deleted file mode 100644 (file)
index 9738333..0000000
+++ /dev/null
@@ -1 +0,0 @@
-# Uninstall hook code here