Merge branch 'master' into openid
This commit is contained in:
commit
f70feedc65
115 changed files with 1701 additions and 2867 deletions
|
@ -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
|
|
@ -52,9 +52,17 @@ class OauthController < ApplicationController
|
|||
|
||||
if any_auth
|
||||
@token.authorize!(@user)
|
||||
if @token.oauth10?
|
||||
redirect_url = params[:oauth_callback] || @token.client_application.callback_url
|
||||
if redirect_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
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
class OldRelationTagController < ApplicationController
|
||||
|
||||
end
|
|
@ -1,2 +0,0 @@
|
|||
class OldWayTagController < ApplicationController
|
||||
end
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
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
|
||||
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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() + "&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 = "&mlat=" + $("marker_lat").value + "&mlon=" + $("marker_lon").value;
|
||||
url += "&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+'&lon='+center.lon+'&zoom='+zoom+'&layers='+layers+markerUrl+'">'+"#{html_escape_unicode(I18n.t('export.start_rjs.view_larger_map'))}"+'</a></small>';
|
||||
|
||||
$("export_html_text").value = html;
|
||||
|
||||
|
|
|
@ -117,7 +117,10 @@
|
|||
<% 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 />
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -29,6 +29,10 @@
|
|||
|
||||
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' %>
|
||||
|
|
|
@ -1 +1,5 @@
|
|||
<h1>You have allowed this request</h1>
|
||||
|
||||
<% if @token.oob? %>
|
||||
<p>The verification code is <%= @token.verifier %></p>
|
||||
<% end %>
|
||||
|
|
|
@ -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>
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -758,8 +758,6 @@ af:
|
|||
export_tooltip: Eksporteer kaartdata
|
||||
gps_traces: GPS-spore
|
||||
gps_traces_tooltip: Beheer GPS-spore
|
||||
help_wiki: Help & Wiki
|
||||
help_wiki_tooltip: Help en wiki vir die projek
|
||||
history: Geskiedenis
|
||||
home: tuis
|
||||
home_tooltip: Gaan na tuisligging
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -890,8 +890,6 @@ ar:
|
|||
export_tooltip: صدّر بيانات الخريطة
|
||||
gps_traces: آثار جي بي أس
|
||||
gps_traces_tooltip: عالج آثار جي بي إس
|
||||
help_wiki: المساعدة والويكي
|
||||
help_wiki_tooltip: المساعدة وموقع الويكي للمشروع
|
||||
history: تاريخ
|
||||
home: الصفحة الرئيسية
|
||||
home_tooltip: اذهب إلى الصفحة الرئيسية
|
||||
|
|
|
@ -822,8 +822,6 @@ arz:
|
|||
export_tooltip: صدّر بيانات الخريطة
|
||||
gps_traces: آثار جى بى أس
|
||||
gps_traces_tooltip: عالج الآثار
|
||||
help_wiki: المساعده والويكي
|
||||
help_wiki_tooltip: المساعده وموقع الويكى للمشروع
|
||||
history: تاريخ
|
||||
home: الصفحه الرئيسية
|
||||
home_tooltip: اذهب إلى الصفحه الرئيسية
|
||||
|
|
|
@ -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: Паказаць маю хату
|
||||
|
|
|
@ -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 & Wiki
|
||||
help_wiki_tooltip: Skoazell & lec'hienn Wiki evit ar raktres
|
||||
history: Istor
|
||||
home: degemer
|
||||
home_tooltip: Mont da lec'h ar gêr
|
||||
|
|
|
@ -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 & 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í »
|
||||
previous: "« 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řejný (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řejně dostupná jedině jako anonymní, neuspořádané body)
|
||||
public: Veřejná (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:
|
||||
|
|
|
@ -343,9 +343,6 @@ da:
|
|||
export_tooltip: Eksporter kortdata
|
||||
gps_traces: GPS-spor
|
||||
gps_traces_tooltip: Håndter GPS-spor
|
||||
help_wiki: Hjælp & 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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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 & wiki
|
||||
help_wiki_tooltip: Pomoc & wikisedło za projekt
|
||||
history: Historija
|
||||
home: domoj
|
||||
home_tooltip: K stojnišćoju
|
||||
|
|
|
@ -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 & Wiki"
|
||||
help_wiki_tooltip: "Help & 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 & 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>.'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -495,7 +495,6 @@ eu:
|
|||
layouts:
|
||||
edit: Aldatu
|
||||
export: Esportatu
|
||||
help_wiki: Laguntza eta Wiki
|
||||
history: Historia
|
||||
home: hasiera
|
||||
inbox: sarrera-ontzia ({{count}})
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 & Wiki
|
||||
help_wiki_tooltip: Aide et site Wiki du projet
|
||||
history: Historique
|
||||
home: Chez moi
|
||||
home_tooltip: Aller à l'emplacement de mon domicile
|
||||
|
|
|
@ -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 & Vichi
|
||||
help_wiki_tooltip: Jutori & Vichi pal progjet
|
||||
history: Storic
|
||||
home: lûc iniziâl
|
||||
home_tooltip: Va al lûc iniziâl
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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ć & Wiki
|
||||
help_wiki_tooltip: Pomoć & 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.
|
||||
|
|
|
@ -890,8 +890,6 @@ hsb:
|
|||
export_tooltip: Kartowe daty eksportować
|
||||
gps_traces: GPS-ćěrje
|
||||
gps_traces_tooltip: GPS-ćěrje zrjadować
|
||||
help_wiki: Pomoc & wiki
|
||||
help_wiki_tooltip: Sydło Pomoc & wiki za projekt
|
||||
history: Historija
|
||||
home: domoj
|
||||
home_tooltip: Domoj hić
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -880,8 +880,9 @@ ia:
|
|||
export_tooltip: Exportar datos cartographic
|
||||
gps_traces: Tracias GPS
|
||||
gps_traces_tooltip: Gerer tracias GPS
|
||||
help_wiki: Adjuta & Wiki
|
||||
help_wiki_tooltip: Adjuta & 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.
|
||||
|
|
|
@ -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 & 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
|
||||
|
|
|
@ -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 & Wiki
|
||||
help_wiki_tooltip: Sito e Wiki di supporto per il progetto
|
||||
history: Storico
|
||||
home: posizione iniziale
|
||||
inbox: in arrivo ({{count}})
|
||||
|
|
|
@ -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:
|
||||
|
|
637
config/locales/lb.yml
Normal file
637
config/locales/lb.yml
Normal file
|
@ -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 »
|
||||
previous: "« 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 & 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 »
|
||||
previous: "« 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
|
|
@ -301,9 +301,9 @@ mk:
|
|||
body: "Содржина:"
|
||||
language: "Јазик:"
|
||||
latitude: Геог. ширина
|
||||
location: "Локација:"
|
||||
location: "Местоположба:"
|
||||
longitude: Геог. должина
|
||||
marker_text: Локација на дневничкиот запис
|
||||
marker_text: Место на дневничкиот запис
|
||||
save_button: Зачувај
|
||||
subject: "Наслов:"
|
||||
title: Уреди дневничка ставка
|
||||
|
@ -386,9 +386,9 @@ mk:
|
|||
geocoder:
|
||||
description:
|
||||
title:
|
||||
geonames: Локација од <a href="http://www.geonames.org/">GeoNames</a>
|
||||
geonames: Местоположба од <a href="http://www.geonames.org/">GeoNames</a>
|
||||
osm_namefinder: "{{types}} од <a href=\"http://gazetteer.openstreetmap.org/namefinder/\">OpenStreetMap Именикот</a>"
|
||||
osm_nominatim: Локација од <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>
|
||||
osm_nominatim: Местоположба од <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: Оди на домашна локација
|
||||
home_tooltip: Оди на матичната местоположба
|
||||
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: "локација во светот ќе најдете на:"
|
||||
current_user_2: "местоположба во светот ќе најдете на:"
|
||||
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: Опишете ја моменталната локација со помош на пребарувачот
|
||||
where_am_i_title: Опишете ја моменталната местоположба со помош на пребарувачот
|
||||
sidebar:
|
||||
close: Затвори
|
||||
search_results: Резултати од пребарувањето
|
||||
|
@ -1361,7 +1366,7 @@ mk:
|
|||
email never displayed publicly: (никогаш не се прикажува јавно)
|
||||
flash update success: Корисничките информации се успешно ажурирани.
|
||||
flash update success confirm needed: Корисничките информации се успешно ажурирани. Проверете е-пошта за да ја потврдите на адресата.
|
||||
home location: "Домашна локација:"
|
||||
home location: "Матична местоположба:"
|
||||
image: "Слика:"
|
||||
image size hint: (најдобро работат квадратни слики, барем 100x100)
|
||||
keep image: Задржи ја тековната слика
|
||||
|
@ -1371,7 +1376,7 @@ mk:
|
|||
my settings: Мои прилагодувања
|
||||
new email address: "Нова е-поштенска адреса:"
|
||||
new image: Додај слика
|
||||
no home location: Немате внесено домашна локација.
|
||||
no home location: Немате внесено матична местоположба.
|
||||
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: Ваша локација
|
||||
your location: Ваша местоположба
|
||||
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: Домашната локација е успешно зачувана
|
||||
flash success: Матичната местоположба е успешно зачувана
|
||||
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: Ако ја наместите вашата локација, под ова ќе ви се појави убава карта и други работи. Домашната локација можете да си ја наместите на страницата {{settings_link}}.
|
||||
if set location: Ако ја наместите вашата местоположба, под ова ќе ви се појави убава карта и други работи. Матичната местоположба можете да си ја наместите на страницата {{settings_link}}.
|
||||
km away: "{{count}}km од вас"
|
||||
m away: "{{count}}m од вас"
|
||||
mapper since: "Картограф од:"
|
||||
|
@ -1551,7 +1556,7 @@ mk:
|
|||
status: "Статус:"
|
||||
traces: траги
|
||||
unhide_user: покажи го корисникот
|
||||
user location: Локација на корисникот
|
||||
user location: Местоположба на корисникот
|
||||
your friends: Ваши пријатели
|
||||
user_block:
|
||||
blocks_by:
|
||||
|
|
|
@ -883,8 +883,9 @@ nl:
|
|||
export_tooltip: Kaartgegevens exporteren
|
||||
gps_traces: GPS-tracks
|
||||
gps_traces_tooltip: GPS-tracks beheren
|
||||
help_wiki: Help & 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.
|
||||
|
|
|
@ -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:"
|
||||
|
@ -106,7 +106,7 @@
|
|||
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:"
|
||||
|
@ -218,7 +218,7 @@
|
|||
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:
|
||||
|
@ -530,8 +530,10 @@
|
|||
chapel: Kapell
|
||||
church: Kirke
|
||||
city_hall: Rådhus
|
||||
commercial: Kommersiell bygning
|
||||
dormitory: Sovesal
|
||||
entrance: Bygningsinngang
|
||||
faculty: Fakultetsbygning
|
||||
farm: Gårdsbygg
|
||||
flats: Leiligheter
|
||||
garage: Garasje
|
||||
|
@ -543,6 +545,7 @@
|
|||
office: Kontorbygg
|
||||
public: Offentlig bygg
|
||||
residential: Boligbygg
|
||||
retail: Detaljsalgbygg
|
||||
school: Skolebygg
|
||||
shop: Butikk
|
||||
stadium: Stadion
|
||||
|
@ -554,6 +557,7 @@
|
|||
"yes": Bygning
|
||||
highway:
|
||||
bridleway: Ridevei
|
||||
bus_guideway: Ledet bussfelt
|
||||
bus_stop: Busstopp
|
||||
byway: Stikkvei
|
||||
construction: Motorvei under konstruksjon
|
||||
|
@ -561,20 +565,27 @@
|
|||
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
|
||||
|
@ -600,14 +611,19 @@
|
|||
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
|
||||
|
@ -616,11 +632,15 @@
|
|||
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
|
||||
|
@ -635,6 +655,7 @@
|
|||
miniature_golf: Minigolf
|
||||
nature_reserve: Naturreservat
|
||||
park: Park
|
||||
pitch: Sportsarena
|
||||
playground: Lekeplass
|
||||
recreation_ground: Idrettsplass
|
||||
slipway: Slipp
|
||||
|
@ -715,18 +736,24 @@
|
|||
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
|
||||
|
@ -739,6 +766,7 @@
|
|||
chemist: Kjemiker
|
||||
clothes: Klesbutikk
|
||||
computer: Databutikk
|
||||
confectionery: Konditori
|
||||
convenience: Nærbutikk
|
||||
copyshop: Kopieringsbutikk
|
||||
cosmetics: Kosmetikkforretning
|
||||
|
@ -754,6 +782,7 @@
|
|||
fish: Fiskebutikk
|
||||
florist: Blomsterbutikk
|
||||
food: Matbutikk
|
||||
funeral_directors: Begravelsesforretning
|
||||
furniture: Møbler
|
||||
gallery: Galleri
|
||||
garden_centre: Hagesenter
|
||||
|
@ -783,6 +812,7 @@
|
|||
shoes: Skobutikk
|
||||
shopping_centre: Kjøpesenter
|
||||
sports: Sportsbutikk
|
||||
stationery: Papirbutikk
|
||||
supermarket: Supermarked
|
||||
toys: Lekebutikk
|
||||
travel_agency: Reisebyrå
|
||||
|
@ -810,16 +840,25 @@
|
|||
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:
|
||||
|
@ -841,8 +880,6 @@
|
|||
export_tooltip: Eksporter kartdata
|
||||
gps_traces: GPS-spor
|
||||
gps_traces_tooltip: Behandle GPS-spor
|
||||
help_wiki: Hjelp & Wiki
|
||||
help_wiki_tooltip: Hjelp- & Wiki-side for prosjektet
|
||||
history: Historikk
|
||||
home: hjem
|
||||
home_tooltip: Gå til hjemmeposisjon
|
||||
|
@ -1121,15 +1158,17 @@
|
|||
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:
|
||||
|
@ -1148,6 +1187,7 @@
|
|||
footway: Gangvei
|
||||
forest: Skog
|
||||
golf: Golfbane
|
||||
heathland: Heilandskap
|
||||
industrial: Industriområde
|
||||
lake:
|
||||
- Innsjø
|
||||
|
@ -1156,12 +1196,13 @@
|
|||
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
|
||||
|
@ -1359,6 +1400,9 @@
|
|||
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
|
||||
|
@ -1371,6 +1415,7 @@
|
|||
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:"
|
||||
|
@ -1446,6 +1491,7 @@
|
|||
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
|
||||
|
@ -1577,6 +1623,7 @@
|
|||
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}}
|
||||
|
|
|
@ -882,8 +882,6 @@ pl:
|
|||
export_tooltip: Eksport danych mapy
|
||||
gps_traces: Ślady GPS
|
||||
gps_traces_tooltip: Zarządzanie śladami GPS
|
||||
help_wiki: Pomoc & Wiki
|
||||
help_wiki_tooltip: Pomoc i strony Wiki projektu
|
||||
history: Zmiany
|
||||
home: główna
|
||||
home_tooltip: Przejdź do strony głównej
|
||||
|
|
|
@ -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 & 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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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 & Wiki
|
||||
help_wiki_tooltip: Help & Wiki stránka projektu
|
||||
history: História
|
||||
home: domov
|
||||
home_tooltip: Choďte na domácu polohu
|
||||
|
|
|
@ -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
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -683,7 +683,11 @@ 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_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.
|
||||
|
@ -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 & 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:
|
||||
|
|
|
@ -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: Показати моє місце знаходження
|
||||
|
|
|
@ -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 & Wiki
|
||||
help_wiki_tooltip: Site trợ giúp & 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.
|
||||
|
|
|
@ -269,7 +269,6 @@ zh-CN:
|
|||
export_tooltip: 输出地图数据
|
||||
gps_traces: GPS 追踪
|
||||
gps_traces_tooltip: 管理追踪
|
||||
help_wiki: 帮助 & Wiki
|
||||
history: 历史
|
||||
home: 主页
|
||||
home_tooltip: 回到主页位置
|
||||
|
|
|
@ -454,8 +454,6 @@ zh-TW:
|
|||
export_tooltip: 匯出地圖資料
|
||||
gps_traces: GPS 軌跡
|
||||
gps_traces_tooltip: 管理 GPS 軌跡
|
||||
help_wiki: 求助 & Wiki
|
||||
help_wiki_tooltip: 本計畫的求助 & Wiki 網站
|
||||
history: 歷史
|
||||
home: 家
|
||||
home_tooltip: 移至家位置
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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,7 +65,7 @@ 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_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.
|
||||
|
@ -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!
|
||||
|
|
|
@ -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
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -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
|
||||
|
|
155
config/potlatch/locales/rue.yml
Normal file
155
config/potlatch/locales/rue.yml
Normal file
|
@ -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": Гей
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
11
db/migrate/20100910084426_add_callback_to_oauth_tokens.rb
Normal file
11
db/migrate/20100910084426_add_callback_to_oauth_tokens.rb
Normal file
|
@ -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
|
File diff suppressed because one or more lines are too long
Binary file not shown.
5
vendor/plugins/oauth-plugin/.gitignore
vendored
5
vendor/plugins/oauth-plugin/.gitignore
vendored
|
@ -1,5 +0,0 @@
|
|||
doc
|
||||
pkg
|
||||
*.log
|
||||
.DS_Store
|
||||
.svn
|
61
vendor/plugins/oauth-plugin/CHANGELOG
vendored
61
vendor/plugins/oauth-plugin/CHANGELOG
vendored
|
@ -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
|
20
vendor/plugins/oauth-plugin/MIT-LICENSE
vendored
20
vendor/plugins/oauth-plugin/MIT-LICENSE
vendored
|
@ -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.
|
110
vendor/plugins/oauth-plugin/README.rdoc
vendored
110
vendor/plugins/oauth-plugin/README.rdoc
vendored
|
@ -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
|
22
vendor/plugins/oauth-plugin/Rakefile
vendored
22
vendor/plugins/oauth-plugin/Rakefile
vendored
|
@ -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
|
|
@ -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]
|
||||
|
||||
|
|
@ -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
|
|
@ -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>
|
|
@ -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
|
|
@ -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 %>
|
|
@ -1 +0,0 @@
|
|||
<h1>You have disallowed this request</h1>
|
|
@ -1 +0,0 @@
|
|||
<h1>You have allowed this request</h1>
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -1,2 +0,0 @@
|
|||
module OauthClientsHelper
|
||||
end
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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 %>
|
|
@ -1,2 +0,0 @@
|
|||
module OauthHelper
|
||||
end
|
|
@ -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> </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>
|
|
@ -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
|
|
@ -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 %>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue