Merge branch 'master' into openstreetbugs

This commit is contained in:
Tom Hughes 2010-05-11 19:53:57 +01:00
commit 959442d087
32 changed files with 451 additions and 76 deletions

View file

@ -18,11 +18,29 @@ class UserController < ApplicationController
cache_sweeper :user_sweeper, :only => [:account, :set_status, :delete]
def terms
@title = t 'user.new.title'
@user = User.new(params[:user])
@legale = params[:legale] || OSM.IPToCountry(request.remote_ip) || APP_CONFIG['default_legale']
@text = OSM.legal_text_for_country(@legale)
if request.xhr?
render :update do |page|
page.replace_html "contributorTerms", :partial => "terms"
end
elsif @user.invalid?
render :action => 'new'
end
end
def save
@title = t 'user.new.title'
if Acl.find_by_address(request.remote_ip, :conditions => {:k => "no_account_creation"})
render :action => 'new'
elsif params[:decline]
redirect_to t('user.terms.declined')
else
@user = User.new(params[:user])
@ -31,6 +49,7 @@ class UserController < ApplicationController
@user.description = "" if @user.description.nil?
@user.creation_ip = request.remote_ip
@user.languages = request.user_preferred_languages
@user.terms_agreed = Time.now.getutc
if @user.save
flash[:notice] = t 'user.new.flash create success message'

View file

@ -0,0 +1,30 @@
<p id="first"><%= @text['intro'] %></p>
<ol>
<li>
<p><%= @text['section_1'] %></p>
</li>
<li>
<p><%= @text['section_2'] %></p>
</li>
<li>
<p><%= @text['section_3'] %></p>
<p><%= @text['active_defn_1'] %></p>
<p><%= @text['active_defn_2'] %></p>
</li>
<li>
<p><%= @text['section_4'] %></p>
</li>
<li>
<p><%= @text['section_5'] %></p>
</li>
<li>
<p><%= @text['section_6'] %></p>
<ol>
<li><p><%= @text['section_6_1'] %></p></li>
<li><p><%= @text['section_6_2'] %></p></li>
</ol>
</li>
<li>
<p id="last"><%= @text['section_7'] %></p>
</li>
</ol>

View file

@ -13,12 +13,9 @@
<p><%= t 'user.new.fill_form' %>
</p>
<p><%= t 'user.new.license_agreement' %>
</p>
<%= error_messages_for 'user' %>
<% form_tag :action => 'save' do %>
<% form_tag :action => 'terms' do %>
<%= hidden_field_tag('referer', h(params[:referer])) unless params[:referer].nil? %>
<table id="signupForm">
<tr><td class="fieldName"><%= t 'user.new.email address' %></td><td><%= text_field('user', 'email',{:size => 50, :maxlength => 255, :tabindex => 1}) %></td></tr>
@ -32,7 +29,7 @@
<tr><td class="fieldName"><%= t 'user.new.confirm password' %></td><td><%= password_field('user', 'pass_crypt_confirmation',{:size => 30, :maxlength => 255, :tabindex => 5}) %></td></tr>
<tr><td colspan="2">&nbsp;<!--vertical spacer--></td></tr>
<tr><td></td><td align="right"><input type="submit" value="<%= t'user.new.signup' %>" tabindex="6"></td></tr>
<tr><td></td><td align="right"><input type="submit" value="<%= t'user.new.continue' %>" tabindex="6"></td></tr>
</table>
<% end %>

View file

@ -0,0 +1,46 @@
<h1><%= t 'user.terms.heading' %></h1>
<p><%= t 'user.terms.press accept button' %></p>
<!-- legale is <%= @legale %> -->
<% form_tag :action => 'terms' do %>
<p>
<%= t 'user.terms.legale_select' %>
<% [['france', 'FR'], ['italy', 'IT'], ['rest_of_world', 'GB']].each do |name,legale| %>
<%=
radio_button_tag 'legale', legale, @legale == legale,
:onchange => remote_function(
:before => update_page do |page|
page.replace_html 'contributorTerms', image_tag('searching.gif')
end,
:url => {:legale => legale}
)
%>
<%= label_tag "legale_#{legale}", t('user.terms.legale_names.' + name) %>
<% end %>
</p>
<% end %>
<div id="contributorTerms">
<%= render :partial => "terms" %>
</div>
<% form_tag({:action => "save"}, { :id => "termsForm" }) do %>
<p>
<label for="confirm_pd_checkbox"><%= t 'user.terms.consider_pd' %></label>
<%= check_box('user', 'consider_pd') %>
<span class="minorNote">(<%= link_to(t('user.terms.consider_pd_why'), t('user.terms.consider_pd_why_url'), :target => :new)%>)</span>
</p>
<p>
<%= hidden_field_tag('referer', h(params[:referer])) unless params[:referer].nil? %>
<%= hidden_field('user', 'email') %>
<%= hidden_field('user', 'email_confirmation') %>
<%= hidden_field('user', 'display_name') %>
<%= hidden_field('user', 'pass_crypt') %>
<%= hidden_field('user', 'pass_crypt_confirmation') %>
<div id="buttons">
<%= submit_tag(t('user.terms.decline'), :name => "decline", :id => "decline") %>
<%= submit_tag(t('user.terms.agree'), :name => "agree", :id => "agree") %>
</div>
</p>
<% end %>

View file

@ -24,6 +24,8 @@ standard_settings: &standard_settings
#quova_password: ""
# Spam threshold
spam_threshold: 50
# Default legale (jurisdiction location) for contributor terms
default_legale: GB
development:
<<: *standard_settings

12
config/legales/FR.yml Normal file
View file

@ -0,0 +1,12 @@
intro: "Nous vous remercions de votre intérêt pour la base de données géographiques du projet OpenStreetMap (« le Projet ») et pour votre volonté dy intégrer des données et/ou tout autre contenu (collectivement « les Contenus »). Cet accord de contribution (« lAccord ») est conclu entre vous (ci-après « Vous ») et la Fondation OpenStreetMap (« OSMF ») et a pour objectif de définir létendue des droits de propriété intellectuelle relatifs aux Contenus que vous déciderez de soumettre au Projet. Lisez attentivement les articles suivants et si vous en acceptez les termes, cliquez sur le bouton « Jaccepte » en bas de la page afin de continuer."
section_1: "Dans le cas où des Contenus comprennent des éléments soumis à un droit dauteur, Vous acceptez de najouter que des Contenus dont Vous possédez la propriété intellectuelle. Vous garantissez le fait que Vous êtes légalement habilité à octroyer une licence telle que définie à lArticle 2 des Présentes et que cette licence ne contrevient à aucune loi, à aucune disposition contractuelle ni, à votre connaissance, à aucun droit dun tiers. Si Vous nêtes pas détenteur des droits de propriété intellectuelle, Vous devez garantir le fait que vous avez obtenu laccord exprès et préalable dutiliser les droits de propriété intellectuelle afférents au Contenu et de concéder une licence dutilisation de ce Contenu."
section_2: "Droits concédés. Vous concédez à OSMF, dans les conditions définies à larticle 3, de manière irrévocable et perpétuelle, une licence internationale, non soumise aux droits patrimoniaux dauteur et non exclusive, portant sur tout acte relatif au Contenu, quel que soit le support. La concession porte notamment sur une éventuelle utilisation commerciale du Contenu ainsi que sur le droit de sous-licencier lensemble des contributions à des tiers ou sous-traitants. Vous acceptez de ne pas user de votre droit moral à lencontre de OSMF ou de ses sous-traitants si la loi ou les conventions vous donne un tel droit relativement aux Contenus."
section_3: "OSMF consent à utiliser ou sous-licencier votre Contenu comme partie de la base de données et seulement par le biais dune des licences suivantes : ODbL 1.0 pour la base de données et DbCL 1.0 pour les contenus individuels de la base de données ; CC-BY-SA 2.0 ; ou toute autre licence libre et ouverte choisie à la majorité par vote des membres OSMF puis adoptée par une majorité de 2/3 des contributeurs actifs."
active_defn_1: "Un contributeur actif est défini comme suit:"
active_defn_2: "Une personne physique (utilisant un ou plusieurs comptes, agissant pour son compte ou au nom dun tiers pouvant être une société) qui, ayant une adresse email valide dans son profil enregistré a, dans 3 des 12 derniers mois, modifié le Projet, ce qui démontre ainsi son intérêt réel et renouvelé dans le projet et qui, lorsquelle est sollicitée répond dans un délai maximal de 3 semaines."
section_4: "OSMF accepte de Vous citer ou de citer le titulaire des droits dauteur, selon Votre souhait ou celui du titulaire des droits. Le procédé d'attribution sera fourni ultérieurement. Actuellement, il s'agit de la <a href=\"http://wiki.openstreetmap.org/wiki/Attribution\">page web</a>."
section_5: "Nonobstant les cas prévus dans les Présentes, Vous conservez les droits et intérêts à agir relatifs à vos Contenus."
section_6: "Limitation de responsabilité"
section_6_1: "A lexception des garanties prévues à lArticle 1 des Présentes et dans les limites permises par la loi, Vous fournissez les Contenus en létat sans aucune garantie daucune sorte, expresse ou tacite, notamment sans garantie de valeur commerciale, dadéquation à un usage ou à besoin quelconque."
section_6_2: "En cas de responsabilité ne pouvant être limitée ou exclue par la loi, aucun préjudice particulier, indirect ou punitif, lorsque ces termes sappliquent, ne pourra Vous être imputé ou être imputé à OSMF dans le cadre de cet Accord. Cette limitation de responsabilité sapplique même si chaque Partie était avisée de la possibilité de réalisation dun tel dommage."
section_7: "Divers. Cet Accord est régi par le Droit Anglais, nonobstant les règles en vigueur relatives aux conflits de Lois. Vous convenez que la Convention des Nations Unies sur les Ventes Internationales de Marchandises de 1980 est intégralement inapplicable à cet Accord. Cet Accord entre Vous et OSMF remplace et annule tout accord antérieur, quil soit oral ou écrit, concernant lobjet de cet Accord."

12
config/legales/GB.yml Normal file
View file

@ -0,0 +1,12 @@
intro: "Thank you for your interest in contributing data and/or any other content (collectively, 'Contents') to the geo-database of the OpenStreetMap project (the 'Project'). This contributor agreement (the 'Agreement') is made between you ('You') and The OpenStreetMap Foundation ('OSMF') and clarifies the intellectual property rights in any Contents that You choose to submit to the Project. Please read the following terms and conditions carefully and click either the 'Accept' or 'Decline' button at the bottom to continue."
section_1: "You agree to only add Contents for which You are the copyright holder (to the extent the Contents include any copyrightable elements). You represent and warrant that You are legally entitled to grant the licence in Section 2 below and that such licence does not violate any law, breach any contract, or, to the best of Your knowledge, infringe any third partys rights. If You are not the copyright holder of the Contents, You represent and warrant that You have explicit permission from the rights holder to submit the Contents and grant the licence below."
section_2: "Rights granted. Subject to Section 3 below, You hereby grant to OSMF a worldwide, royalty-free, non-exclusive, perpetual, irrevocable licence to do any act that is restricted by copyright over anything within the Contents, whether in the original medium or any other. These rights explicitly include commercial use, and do not exclude any field of endeavour. These rights include, without limitation, the right to sublicense the work through multiple tiers of sublicensees. To the extent allowable under applicable local laws and copyright conventions, You also waive and/or agree not to assert against OSMF or its licensees any moral rights that You may have in the Contents."
section_3: "OSMF agrees to use or sub-license Your Contents as part of a database and only under the terms of one of the following licences: ODbL 1.0 for the database and DbCL 1.0 for the individual contents of the database; CC-BY-SA 2.0; or another free and open licence. Which other free and open licence is chosen by a vote of the OSMF membership and approved by at least a 2/3 majority vote of active contributors."
active_defn_1: "An 'active contributor' is defined as:"
active_defn_2: "a natural person (whether using a single or multiple accounts) who has edited the Project in any 3 calendar months from the last 12 months (i.e. there is a demonstrated interest over time); and has maintained a valid email address in their registration profile and responds within 3 weeks."
section_4: "At Your or the copyright holders option, OSMF agrees to attribute You or the copyright holder. A mechanism will be provided, currently a <a href=\"http://wiki.openstreetmap.org/wiki/Attribution\">web page</a>."
section_5: "Except as set forth herein, You reserve all right, title, and interest in and to Your Contents."
section_6: "Limitation of Liability"
section_6_1: "To the extent permitted by applicable law, except as provided above in Section 1, You provide the Contents 'as is' without warranty of any kind, either express or implied, including without limitation any warranties or conditions of merchantability, fitness for a particular purpose, or otherwise."
section_6_2: "Subject to any liability that may not be excluded or limited by law, neither You nor OSMF shall be liable for any special, indirect, incidental, consequential, punitive, or exemplary damages under this Agreement, however caused and under any theory of liability. This exclusion applies even if either party has been advised of the possibility of such damages."
section_7: "Miscellaneous. This Agreement shall be governed by English law without regard to principles of conflict of law. You agree that the United Nations Convention on Contracts for the International Sale of Goods (1980) is hereby excluded in its entirety from application to this Agreement. In the event of invalidity of any provision of this Agreement, the parties agree that such invalidity shall not affect the validity of the remaining portions of this Agreement. This is the entire agreement between You and OSMF which supersedes any prior agreement, whether written or oral, relating to the subject matter of this agreement."

13
config/legales/IT.yml Normal file
View file

@ -0,0 +1,13 @@
intro: "Ti ringraziamo per la tua disponibilità a fornire dati e/o qualunque altro contenuto (di seguito indicati collettivamente “Contenuti”) al database geografico del progetto OpenStreetMap (di seguito “Progetto”).. Il presente accordo per la contribuzione di dati (di seguito “Accordo”) si conclude fra Te e la OpenStreetMap Foundation (“OSMF”) e disciplina i diritti sui Contenuti che Tu decidi di apportare al progetto. Leggi per favore le seguenti condizioni generali e premi il tasto “Accetto” o “Rifiuto” posto in fondo al testo per proseguire."
section_1: "Sei impegnato ad apportare esclusivamente contenuti rispetto ai quali Tu sia titolare dei relativi diritti di autore (nella misura in cui i Contenuti riguardino dati o elementi suscettibili di protezione secondo il diritto di autore). Tu dichiari e garantisci di poter validamente concedere la licenza di cui al successivo Articolo 2 e dichiari e garantisci altresì che tale licenza non viola nessuna legge e/o nessun contratto e, per quanto sia di Tua conoscenza, non viola alcun diritto di terzi. Nel caso Tu non sia titolare dei diritti di autore rispetto ai Contenuti, Tu dichiari e garantisci di avere ricevuto del titolare di tali diritti lespressa autorizzazione di apportare i Contenuti e concederne la licenza di cui al successivo punto 2."
section_2: "Diritti concessi. Con il presente Accordo Tu, nei limiti di cui al successivo punto 3, concedi a OSMF in via NON esclusiva una licenza gratuita, valida su tutto il territorio mondiale e di carattere perpetuo e irrevocabile a compiere qualunque atto riservato ai titolari dei diritti di autore sopra i Contenuti e/o qualunque loro singola parte, da effettuarsi su qualunque supporto e mezzo di comunicazione ivi compresi quelli ulteriori e diversi rispetto alloriginale."
section_3: "OSMF userà o concederà in sub-licenza i tuoi Contenuti come parte di un database e solamente nel rispetto di una di queste licenze: ODbl 1.0 per quanto riguarda il database e DdCL 1.0 per i contenuti individuali del database; CC-BY-SA 2.0; o una altra licenza gratuita e di carattere aperto. I membri di OMSF potranno scegliere altre licenze gratuite e di carattere aperto, le quali saranno si intenderanno approvate con il voto della maggioranza dei 2/3 dei voti dei contributori attivi."
active_defn_1: "Per “contributore attivo” deve intendersi:"
active_defn_2: "una persona fisica (indipendentemente dal fatto che usi uno o più account) con i seguenti requisiti cumulativi: 1) che negli ultimi dodici mesi ha fornito in almeno tre diverse circostanze verificatesi in tre diversi mesi propri Contenuti pubblicati nel Progetto (dimostrando così un interesse continuato nel tempo); 2) che ha sempre mantenuto un valido indirizzo email nel suo profilo di registrazione rispondendo a eventuali messaggi entro tre settimane dal loro invio."
section_4: "OSMF riconoscerà la esistenza dei diritti di autore sui Contenuti apportati, e a tal fine indicherà Te o il loro eventuale titolare originario, a scelta di questultimo o Tua. In questo senso verrà attuato un apposito meccanismo di attribuzione, che al momento risulta dalla <a href=\"http://wiki.openstreetmap.org/wiki/Attribution\">pagina web</a>."
section_5: "Salvo quanto stabilito nel presente Accordo, Tu conservi ogni eventuale altro diritto o prerogativa relativa ai Contenuti da Te apportati."
section_6: "Limitazione di responsabilità"
section_6_1: "Nei limiti consentiti dalla legge applicabile, e senza pregiudizio a quanto previsto dal precedente articolo 1; Tu fornisci i Contenuti senza garanzie esplicite o implicite di nessun tipo per quanto riguarda a titolo esemplificativo la loro qualità, assenza di vizi o difetti, adeguatezza e conformità al loro scopo o altro."
section_6_2: "Fatte salve le responsabilità che la legge non permette di escludere o derogare, né Tu né OSMF potranno intendersi responsabili di eventuali danni, siano essi diretti o indiretti, a titolo contrattuale o extracontrattuale, morali o materiali, e a qualunque genere essi appartengano. La presente esclusione di responsabilità sarà valida anche nel caso in cui una delle parti sia stata avvertita della possibilità che tali danni si verifichino."
section_7: "Varie. Il presente Accordo è disciplinato dalla legge vigente in Inghilterra Regno Unito, senza possibilità di applicazione delle relative norme di diritto internazionale privato. Si conviene espressamente che al presente Accordo non potrà essere applicata la Convenzione delle Nazioni Unit."

View file

@ -722,7 +722,7 @@ ar:
subdivision: التقسيم الفرعي
suburb: ضاحية
town: بلدة
unincorporated_area: مساحة غير منظمة
unincorporated_area: منطقة فردية
village: قرية
railway:
abandoned: سكة حديد مهجورة

View file

@ -452,7 +452,7 @@ br:
fountain: Feunteun
fuel: Trelosk
grave_yard: Bered
gym: Fitness/jiminas
gym: Fitness/embregerezh-korf
hall: Sal
health_centre: Kreizenn yec'hed
hospital: Ospital
@ -465,7 +465,7 @@ br:
marketplace: Marc'hallac'h
mountain_rescue: Sikourioù er menezioù
nightclub: Klub-noz
nursery: Diwallerezh
nursery: Spluseg
nursing_home: Ti yec'hed
office: Burev
park: Park
@ -480,7 +480,7 @@ br:
pub: Tavarn
public_building: Savadur foran
public_market: Marc'had foran
reception_area: Tachenn degemer
reception_area: Takad degemer
recycling: Lec'h adaozañ
restaurant: Preti
retirement_home: Ti-retredidi
@ -513,18 +513,18 @@ br:
chapel: Chapel
church: Iliz
city_hall: Ti-kêr
commercial: Savadur gant burevioù
commercial: Savadur kenwerzhel
dormitory: Kouskva
entrance: Dont-tre ar savadur
faculty: Savadur kevrenn
farm: Savadur feurm
entrance: Antre ar savadur
faculty: Kevrenn skol-veur
farm: Ti feurm
flats: Ranndioù
garage: Karrdi
hall: Sal
hospital: Savadur ospital
hotel: Leti
house: Ti
industrial: Savadurioù greantel
industrial: Savadur greantel
office: Savadur burevioù
public: Savadur foran
residential: Savadur annez
@ -540,12 +540,12 @@ br:
"yes": Savadur
highway:
bridleway: Hent evit ar varc'hegerien
bus_guideway: Hent kirri boutin hentet
bus_guideway: Roudenn vus heñchet
bus_stop: Arsav bus
byway: Hent eil renk
construction: Gourhent o vezañ savet
construction: Chanter gourhent
cycleway: Roudenn divrodegoù
distance_marker: Bonn kilometr
distance_marker: Bonn kilometrek
emergency_access_point: Poent moned trummadoù
footway: Gwenodenn evit an droadeien
ford: Roudour
@ -553,19 +553,19 @@ br:
living_street: Straed annez
minor: Hent dister
motorway: Gourhent
motorway_junction: Liammadur gourhent
motorway_link: Hentoù gourhentet
motorway_junction: Kengej gourhent
motorway_link: Gourhent
path: Gwenodenn
pedestrian: Hent evit an droadeien
platform: Leurenn
primary: Hent kentañ renk
primary_link: Hent kentañ
primary_link: Pennhent
raceway: Redva
residential: Takad annezet
road: Hent
secondary: Hent eil renk
secondary_link: Hent a-eil
service: Hent ar servij
secondary_link: Hent a eil renk
service: Hent servij
services: Servijoù gourhent
steps: Diri
stile: Skalier
@ -574,11 +574,11 @@ br:
trail: Roudenn
trunk: Hent-tizh
trunk_link: Hent-tizh
unclassified: Hent bihan
unsurfaced: Hent nann-gwisket
unclassified: Hent dirumm
unsurfaced: Hent dizolo
historic:
archaeological_site: Lec'hienn henoniel
battlefield: Takad emgann
battlefield: Tachenn emgann
boundary_stone: Bonn harzoù
building: Savadur
castle: Kastell
@ -601,10 +601,10 @@ br:
brownfield: Tachenn rezet
cemetery: Bered
commercial: Takad kenwerzh
conservation: Tachenn gwarezet
conservation: Takad gwarezet
construction: Savadur
farm: Atant
farmland: Tachennoù labour-douar
farmland: Douaroù-labour
farmyard: Mereuri
forest: Koadeg
grass: Geot
@ -621,17 +621,17 @@ br:
plaza: Plasenn
quarry: Mengleuz
railway: Hent-houarn
recreation_ground: Tachenn c'hoari
recreation_ground: Leur c'hoari
reservoir: Mirlenn
residential: Takad annez
retail: Takad kenwerzh
village_green: Tachenn foran gant geot
retail: Kenwerzhioù
village_green: Takad natur foran
vineyard: Gwinieg
wetland: Takad gleborek
wood: Koad
leisure:
beach_resort: Kêr-gouronkañ
common: Tachenn kumun
common: Tachennoù foran
fishing: Takad pesketa
garden: Liorzh
golf_course: Tachenn golf
@ -657,7 +657,7 @@ br:
channel: Kanol
cliff: Tornaod
coastline: Arvor
crater: Toull-diskarg
crater: Krater
feature: Elfenn
fell: Fell
fjord: Fjord
@ -699,14 +699,14 @@ br:
houses: Tiez
island: Enez
islet: Enezennig
locality: Lec'hiadenn
locality: Kêr
moor: Lanneg
municipality: Kumun
postcode: Kod post
region: Rannvro
sea: Mor
state: Stad
subdivision: Eilrannad
subdivision: Isrann
suburb: Karter
town: Kêr
unincorporated_area: Takad diaoz
@ -714,26 +714,26 @@ br:
railway:
abandoned: Hent-houarn dilezet
construction: Hent-houarn war sevel
disused: Hent-houarn dizimplijet
disused_station: Porzh-houarn dizimplijet
disused: Hent-houarn dilezet
disused_station: Porzh-houarn dilezet
funicular: Hent-houarn fundren
halt: Chom a-sav an tren
historic_station: Lec'h chom a-sav istorel an tren
halt: Arsav tren
historic_station: Arsav tren istorel
junction: Kej hent-houarn
level_crossing: Treuzenn hent-houarn
light_rail: Hent-houarn bihan
monorail: Monorail
monorail: Hent-houarn unroud
narrow_gauge: Hent-houarn strizh
platform: Pondalez hent-houarn
platform: Savenn hent-houarn
preserved: Hent-houarn miret
spur: Hent-houarn kevreañ
station: Porzh-houarn
subway: Arsav metro
subway_entrance: Dont-tre ar metro
subway_entrance: Antre metro
switch: Hentoù-houarn heñchañ
tram: Tramgarr
tram_stop: Lec'h chom a-sav an tram
yard: Hent rummañ
tram_stop: Arsav tramgarr
yard: Gar-dibab
shop:
alcohol: Gwezher alkool
apparel: Stal dilhad
@ -744,29 +744,29 @@ br:
bicycle: Stal marc'hoù-houarn
books: Levrdi
butcher: Kiger
car: Stal kirri
car: Stal girri
car_dealer: Gwerzher kirri
car_parts: Pezhioù evit ar c'hirri
car_repair: Dresañ kirri
carpet: Stal pallennoù
charity: Stal madobererezh
charity: Stal garitez
chemist: Stal produioù yec'hederezh
clothes: Stal dilhad
computer: Stal urzhiataerioù
confectionery: Koñfizerezh
convenience: Ispiserezh
copyshop: Stal luc'heilañ
cosmetics: Stal gwezeladoù
department_store: Gour stalioù
cosmetics: Stal produioù kened
department_store: Gourstal
discount: Stal discount
doityourself: Stal bitellat
drugstore: Apotikerezh
dry_cleaning: Netadur sec'h
dry_cleaning: Naetaat ent sec'h
electronics: Stal traoù eletronek
estate_agent: Kourater tiez
farm: Stal evit al labour-douar
fashion: Stal giz
fish: Peskerezh
fashion: Stal gizioù
fish: Stal besked
florist: Bokedour
food: Stal voued
funeral_directors: Kañvlidoù
@ -792,7 +792,7 @@ br:
newsagent: Gwerzher kazetennoù
optician: Luneder
organic: Stal boued bio
outdoor: Stal obererezhioù en diavaez
outdoor: Stal oberiantizoù diavaez
pet: Stal loened
photo: Stal luc'hskeudenniñ
salon: Saloñs
@ -806,7 +806,7 @@ br:
video: Stal videoioù
wine: Kavour gwin
tourism:
alpine_hut: Ti repu
alpine_hut: Bod menez
artwork: Oberenn arz
attraction: Tra zedennus
bed_and_breakfast: Bod ha boued
@ -814,7 +814,7 @@ br:
camp_site: Tachenn gampiñ
caravan_site: Tachenn karavanennoù
chalet: Ti-menez
guest_house: Ti ostizien
guest_house: Ti herberc'h
hostel: Herberc'h
hotel: Leti
information: Titouroù
@ -836,15 +836,15 @@ br:
dock: Dok
drain: Dizourer
lock: Skluz
lock_gate: Dor skluz
lock_gate: Skluz
mineral_spring: Mammenn dour melar
mooring: Fes
rapids: Taranoù
river: Stêr
riverbank: Strad ar stêr
riverbank: Naoz
stream: Gwazh-dour
wadi: Oued
water_point: Lec'h dour
water_point: Doureg
waterfall: Lamm-dour
weir: Stankell
javascripts:
@ -1256,9 +1256,9 @@ br:
title: Implijer ebet evel-se
offline:
heading: Stokañ GPX ezlinenn
message: Ar sistem stokañ ha kas GPX a zo dizimplijadus evit poent.
message: Ne'z a ket ar sistem stokañ hag enporzhiañ GPX en-dro evit poent.
offline_warning:
message: Dizimplijadus eo ar sistem kas restroù GPX evit ar poent
message: Ne'z a ket ar sistem enporzhiañ restroù GPX en-dro evit ar poent
trace:
ago: "{{time_in_words_ago}} zo"
by: gant
@ -1348,7 +1348,7 @@ br:
heading: "Aozañ foran :"
public editing note:
heading: Kemm foran
text: Evit poent ez eo ho embannoù dianv, dre-se ne c'hell den skrivañ deoc'h pe gwelet ho lec'hiadur. Evit diskouez ar pezh o peus embannet ha reiñ an tu d'an dud da vont e darempred ganeoc'h dre al lec'hienn, klikit war al liamm da heul. <b>Abaoe ar c'hemm davet ar stumm API 0.6, ne c'hell nemet an dud gant an doare "kemmoù foran" embann kartennoù</b>. (<a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">gouzout hiroc'h</a>).<ul><li>Ne vo ket roet ho chomlec'h e-mail d'an dud o kregiñ ganti.</li><li>An obererezh-se ne c'hell ket bezañ nullet hag an implijerien nevez a zo en doare "kemmoù foran" dre ziouer.</li></ul>
text: Evit poent ez eo dianv ho tegasadennoù ha den ne c'hall skrivañ deoc'h pe gwelet ho lec'hiadur. Evit diskouez ar pezh hoc'h eus embannet ha reiñ an tu d'an dud da vont e darempred ganeoc'h dre al lec'hienn, klikit war al liamm da-heul. <b>Abaoe ar c'hemm davet ar stumm API 0.6, n'eus nemet an dud gant an doare "kemmoù foran" a c'hall embann kartennoù</b>. (<a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">gouzout hiroc'h</a>).<ul><li>Ne vo ket roet ho chomlec'h postel d'an dud.</li><li>N'hall ket an obererezh-se bezañ nullet hag emañ an holl implijerien nevez gant an doare "kemmoù foran" dre ziouer.</li></ul>
replace image: Erlec'hiañ ar skeudenn a-vremañ
return to profile: Distreiñ d'ar profil
save changes button: Enrollañ ar c'hemmoù

View file

@ -893,7 +893,7 @@ de:
export_tooltip: Kartendaten exportieren
gps_traces: GPS-Tracks
gps_traces_tooltip: GPS-Tracks verwalten
help_wiki: Hilfe & Wiki
help_wiki: Hilfe + Wiki
help_wiki_tooltip: Hilfe + Wiki des Projekts
help_wiki_url: http://wiki.openstreetmap.org/wiki/Hauptseite?uselang=de
history: Chronik
@ -1456,7 +1456,7 @@ de:
no_auto_account_create: Im Moment ist das automatische Erstellen eines Benutzerkontos leider nicht möglich.
not displayed publicly: Nicht öffentlich sichtbar (<a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy">Datenschutzrichtlinie</a>)
password: "Passwort:"
signup: Registrieren
signup: Fortsetzen
title: Benutzerkonto erstellen
no_such_user:
body: Es gibt leider keinen Benutzer mit dem Namen {{user}}. Bitte überprüfe deine Schreibweise oder der Link war beschädigt.

View file

@ -1528,7 +1528,7 @@ en:
no_auto_account_create: "Unfortunately we are not currently able to create an account for you automatically."
contact_webmaster: 'Please contact the <a href="mailto:webmaster@openstreetmap.org">webmaster</a> to arrange for an account to be created - we will try and deal with the request as quickly as possible.'
fill_form: "Fill in the form and we will send you a quick email to activate your account."
license_agreement: 'By creating an account, you agree that all data you submit to the Openstreetmap project is to be (non-exclusively) licensed under <a href="http://creativecommons.org/licenses/by-sa/2.0/">this Creative Commons license (by-sa)</a>.'
license_agreement: 'When you confirm your account you will need to agree to the <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">contributor terms</a>.'
email address: "Email Address:"
confirm email address: "Confirm Email Address:"
not displayed publicly: 'Not displayed publicly (see <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="wiki privacy policy including section on email addresses">privacy policy</a>)'
@ -1536,8 +1536,23 @@ en:
display name description: "Your publicly displayed username. You can change this later in the preferences."
password: "Password:"
confirm password: "Confirm Password:"
signup: Signup
continue: Continue
flash create success message: "User was successfully created. Check your email for a confirmation note, and you will be mapping in no time :-)<br /><br />Please note that you will not be able to login until you've received and confirmed your email address.<br /><br />If you use an antispam system which sends confirmation requests then please make sure you whitelist webmaster@openstreetmap.org as we are unable to reply to any confirmation requests."
terms:
heading: "Contributor terms"
press accept button: "Please read the agreement below and press the agree button to create your account."
consider_pd: "I consider my contributions to be in the Public Domain"
consider_pd_why: "what's this?"
consider_pd_why_url: http://wiki.openstreetmap.org/wiki/Why_would_I_want_my_contributions_to_be_public_domain
agree: Agree
declined: "http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined"
decline: "Decline"
legale_select: "Please select your country of residence:"
legale_button: "Go"
legale_names:
france: "France"
italy: "Italy"
rest_of_world: "Rest of the world"
no_such_user:
title: "No such user"
heading: "The user {{user}} does not exist"

View file

@ -435,6 +435,7 @@ gl:
social_club: Club social
studio: Estudio
supermarket: Supermercado
taxi: Taxi
telephone: Teléfono público
theatre: Teatro
toilets: Aseos
@ -646,6 +647,16 @@ gl:
view_tooltip: Ver o mapa
welcome_user: Benvido, {{user_link}}
welcome_user_link_tooltip: A súa páxina de usuario
license_page:
foreign:
english_link: a orixinal en inglés
text: En caso de conflito entre esta páxina traducida e {{english_original_link}}, a páxina en inglés prevalecerá
title: Acerca desta tradución
native:
mapping_link: comezar a contribuír
native_link: versión en galego
text: Estás vendo a versión en inglés da páxina de dereitos de autor. Pode volver á {{native_link}} desta páxina ou pode deixar de ler sobre os dereitos de autor e {{mapping_link}}.
title: Acerca desta páxina
message:
delete:
deleted: Mensaxe borrada

View file

@ -326,6 +326,10 @@ ia:
recent_entries: "Entratas recente de diario:"
title: Diarios de usatores
user_title: Diario de {{user}}
location:
edit: Modificar
location: "Loco:"
view: Vider
new:
title: Nove entrata de diario
no_such_entry:
@ -403,6 +407,7 @@ ia:
other: circa {{count}} km
zero: minus de 1 km
results:
more_results: Plus resultatos
no_results: Nulle resultato trovate
search:
title:
@ -513,22 +518,29 @@ ia:
administrative: Limite administrative
building:
apartments: Bloco de appartamentos
block: Bloco de edificios
bunker: Bunker
chapel: Cappella
church: Ecclesia
city_hall: Casa municipal
commercial: Edificio commercial
dormitory: Dormitorio
entrance: Entrata de edificio
faculty: Edificio de facultate
farm: Edificio agricole
flats: Appartamentos
garage: Garage
hall: Sala
hospital: Edificio hospitalari
hotel: Hotel
house: Casa
industrial: Edificio industrial
office: Edificio de officio
public: Edificio public
residential: Edificio residential
retail: Magazin
school: Edificio de schola
shop: Boteca
stadium: Stadio
store: Magazin
terrace: Terrassa
@ -574,11 +586,59 @@ ia:
trunk_link: Via national
unclassified: Via non classificate
unsurfaced: Cammino de terra
historic:
archaeological_site: Sito archeologic
battlefield: Campo de battalia
boundary_stone: Lapide de frontiera
building: Edificio
castle: Castello
church: Ecclesia
house: Casa
icon: Icone
manor: Casa senioral
memorial: Memorial
mine: Mina
monument: Monumento
museum: Museo
ruins: Ruinas
tower: Turre
wayside_cross: Cruce juxta le via
wayside_shrine: Reliquario juxta le via
wreck: Naufragio
landuse:
allotments: Jardines familial
basin: Bassino
brownfield: Terreno industrial subutilisate
cemetery: Cemeterio
commercial: Area commercial
conservation: Conservation
construction: Construction
farm: Ferma
farmland: Terra arabile
farmyard: Corte de ferma
forest: Foreste
grass: Herba
greenfield: Terreno sin edificios
industrial: Area industrial
landfill: Discargatorio
meadow: Pastura
military: Area militar
mine: Mina
mountain: Montania
nature_reserve: Reserva natural
park: Parco
piste: Pista de ski
plaza: Placia
quarry: Petreria
railway: Ferrovia
recreation_ground: Area recreative
reservoir: Reservoir
residential: Area residential
retail: Magazines
village_green: Parco de village
vineyard: Vinia
wetland: Terra humide
wood: Bosco
leisure:
beach_resort: Loco de vacantias al plagia
common: Terreno commun
@ -661,6 +721,29 @@ ia:
town: Urbe
unincorporated_area: Area sin municipalitate
village: Village
railway:
abandoned: Ferrovia abandonate
construction: Ferrovia in construction
disused: Ferrovia in disuso
disused_station: Station ferroviari in disuso
funicular: Ferrovia funicular
halt: Halto de traino
historic_station: Station ferroviari historic
junction: Junction ferroviari
level_crossing: Passage a nivello
light_rail: Metro legier
monorail: Monorail
narrow_gauge: Ferrovia stricte
platform: Platteforma ferroviari
preserved: Ferrovia preservate
spur: Ramification de ferrovia
station: Station ferroviari
subway: Station de metro
subway_entrance: Entrata al metro
switch: Agulia
tram: Tramvia
tram_stop: Halto de tram
yard: Station de manovras
shop:
alcohol: Magazin de bibitas alcoholic
apparel: Boteca de vestimentos
@ -780,9 +863,14 @@ ia:
cycle_map: Carta cyclista
noname: Sin nomine
site:
edit_disabled_tooltip: Face zoom avante pro modificar le carta
edit_tooltip: Modificar le carta
edit_zoom_alert: Tu debe facer zoom avante pro modificar le carta
history_disabled_tooltip: Face zoom avante pro vider le modificationes de iste area
history_tooltip: Vider le modificationes de iste area
history_zoom_alert: Tu debe facer zoom avante pro vider le historia de modification
layouts:
copyright: Copyright &amp; Licentia
donate: Supporta OpenStreetMap per {{link}} al Fundo de Actualisation de Hardware.
donate_link_text: donation
edit: Modificar
@ -804,6 +892,7 @@ ia:
intro_2: OpenStreetMap permitte vider, modificar e usar datos geographic de modo collaborative desde ubique in le mundo.
intro_3: Le albergamento de OpenStreetMap es gratiosemente supportate per le {{ucl}} e per {{bytemark}}. Altere sponsores del projecto es listate in le {{partners}}.
intro_3_bytemark: Bytemark
intro_3_partners: wiki
intro_3_ucl: Centro VR del UCL
license:
title: Le datos de OpenStreetMap es disponibile sub le licentia Attribution-Share Alike 2.0 Generic de Creative Commons
@ -873,6 +962,10 @@ ia:
send_message_to: Inviar un nove message a {{name}}
subject: Subjecto
title: Inviar message
no_such_message:
body: Non existe un message con iste ID.
heading: Message non existe
title: Message non existe
no_such_user:
body: Regrettabilemente, il non ha un usator o message con iste nomine.
heading: Iste usator non existe
@ -900,6 +993,9 @@ ia:
title: Leger message
to: A
unread_button: Marcar como non legite
wrong_user: Tu es identificate como "{{user}}", ma le message que tu vole leger non ha essite inviate per o a iste usator. Per favor aperi un session como le usator correcte pro poter leger lo.
reply:
wrong_user: Tu es identificate como "{{user}}", ma le message al qual tu vole responder non ha essite inviate a iste usator. Per favor aperi un session como le usator correcte pro poter responder.
sent_message_summary:
delete_button: Deler
notifier:

View file

@ -733,7 +733,7 @@ nl:
halt: Treinhalte
historic_station: Historisch spoorwegstation
junction: Spoorwegkruising
level_crossing: Gelijkvloerse kruising
level_crossing: Spoorwegovergang
light_rail: Lightrail
monorail: Monorail
narrow_gauge: Smalspoor
@ -743,7 +743,7 @@ nl:
station: Spoorwegstation
subway: Metrostation
subway_entrance: Metroingang
switch: Spoogwegpunten
switch: Wissel
tram: Tramrails
tram_stop: Tramhalte
yard: Rangeerterrein
@ -1399,8 +1399,20 @@ nl:
not_an_administrator: U moet beheerder zijn om deze handeling uit te kunnen voeren.
go_public:
flash success: Al uw bewerkingen zijn nu openbaar en u kunt bewerken.
list:
confirm: Geselecteerde gebruikers bevestigen
empty: Geen gebruikers gevonden
heading: Gebruikers
hide: Gelelecteerde gebruikers verbergen
showing:
one: Pagina {{page}} ({{page}} van {{page}})
other: Pagina {{page}} ({{page}}-{{page}} van {{page}})
summary: "{{name}} aangemaakt vanaf {{ip_address}} op {{date}}"
summary_no_ip: "{{name}} aangemaakt op {{date}}"
title: Gebruikers
login:
account not active: Sorry, uw gebruiker is nog niet actief.<br />Klik op de verwijzing in de bevestigingse-mail om deze te activeren.
account suspended: Uw gebruiker is automatisch opgeschort vanwege verdachte activiteit.<br />Neem contact op met de <a href="mailto:Template:Webmaster">webmaster</a> als u deze handeling wilt bespreken.
auth failure: Sorry, met deze gegevens kunt u niet aanmelden.
create_account: registreren
email or username: "E-mailadres of gebruikersnaam:"
@ -1464,6 +1476,10 @@ nl:
title: reset wachtwoord
set_home:
flash success: De thuislocatie is opgeslagen
suspended:
body: "<p>Uw gebruiker is automatisch opgeschort vanwege verdachte activiteit.</p>\n<p>Deze beslissing wordt snel beoordeeld door een beheerder, maar u kunt ook contact opnemen met de <a href=\"mailto:{{webmaster}}\">webmaster</a> als u deze handeling wilt bespreken.</p>"
heading: Gebruiker opgeschort
title: Gebruiker opgeschort
view:
activate_user: gebruiker actief maken
add as friend: vriend toevoegen
@ -1472,6 +1488,7 @@ nl:
blocks by me: blokkades door mij
blocks on me: blokkades door mij
confirm: Bevestigen
confirm_user: deze gebruiker bevestigen
create_block: gebruiker blokkeren
created from: "Aangemaakt door:"
deactivate_user: gebruiker inactief maken
@ -1507,6 +1524,8 @@ nl:
moderator: Moderatorrechten intrekken
send message: bericht verzenden
settings_link_text: voorkeuren
spam score: "Spamscore:"
status: "Status:"
traces: tracks
unhide_user: gebruiker weer zichtbaar maken
user location: Gebruikerslocatie

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -134,6 +134,7 @@ br:
option_layer_ooc_scotland: "R-U istorel : Skos"
option_layer_os_streetview: "R-U : OS StreetView"
option_layer_streets_haiti: "Haiti: anvioù ar straedoù"
option_layer_surrey_air_survey: "Rouantelezh Unanet : Muzuliadenn Aerel Surrey"
option_layer_tip: Dibab an drekleur da ziskwel
option_limitways: Kas ur c'hemenn pa vez karget kalz a roadennoù pounner
option_microblog_id: "Anv ar mikroblog :"

View file

@ -1,6 +1,7 @@
# Messages for Portuguese (Português)
# Exported from translatewiki.net
# Export driver: syck
# Author: Hamilton Abreu
# Author: Luckas Blade
# Author: Malafaya
pt:
@ -42,13 +43,16 @@ pt:
hint_saving: a gravar dados
inspector_way_nodes: $1 nós
inspector_way_nodes_closed: $1 nós (fechado)
loading: A carregar...
login_pwd: "Palavra-passe:"
login_uid: "Nome de utilizador:"
mail: Correio
more: Mais
"no": Não
nobackground: Sem fundo
ok: Ok
option_fadebackground: Esbater fundo
option_layer_streets_haiti: "Haiti: nomes de ruas"
option_thinareas: Usar linhas mais finas em áreas
option_thinlines: Usar linhas finas em todas as escalas
option_warnings: Mostrar avisos flutuantes
@ -61,10 +65,15 @@ pt:
preset_icon_convenience: Loja conveniência
preset_icon_fire_station: Bombeiros
preset_icon_hospital: Hospital
preset_icon_hotel: Hotel
preset_icon_museum: Museu
preset_icon_pharmacy: Farmácia
preset_icon_police: Esquadra polícia
preset_icon_restaurant: Restaurante
preset_icon_school: Escola
preset_icon_supermarket: Supermercado
preset_icon_telephone: Telefone
preset_icon_theatre: Teatro
prompt_addtorelation: Adicionar $1 a uma relação
prompt_changesetcomment: "Introduza uma descrição das suas alterações:"
prompt_createparallel: Criar via paralela
@ -76,6 +85,7 @@ pt:
prompt_welcome: Bem-vindo ao OpenStreetMap!
revert: Reverter
save: Gravar
tags_backtolist: Voltar à lista
tip_addrelation: Adicionar a uma relação
tip_alert: Ocorreu um erro - clique para detalhes
tip_direction: Direção da via - clique para inverter

View file

@ -161,7 +161,7 @@ ru:
preset_icon_cafe: Кафе
preset_icon_cinema: Кинотеатр
preset_icon_convenience: Минимаркет
preset_icon_disaster: Здание на Гаити
preset_icon_disaster: Развалины от землетрясения
preset_icon_fast_food: Фастфуд
preset_icon_ferry_terminal: Паром
preset_icon_fire_station: Пожарная часть

View file

@ -135,6 +135,7 @@ vi:
option_layer_os_streetview: "Anh: OS StreetView"
option_layer_osmarender: OSM Osmarender
option_layer_streets_haiti: "Haiti: tên đường sá"
option_layer_surrey_air_survey: "Anh: Khảo sát Hàng không Surrey"
option_layer_tip: Chọn nền để hiển thị
option_limitways: Báo trước khi tải nhiều dữ liệu
option_microblog_id: "Tên tiểu blog:"

View file

@ -120,6 +120,7 @@ ActionController::Routing::Routes.draw do |map|
map.connect '/offline', :controller => 'site', :action => 'offline'
map.connect '/key', :controller => 'site', :action => 'key'
map.connect '/user/new', :controller => 'user', :action => 'new'
map.connect '/user/terms', :controller => 'user', :action => 'terms'
map.connect '/user/save', :controller => 'user', :action => 'save'
map.connect '/user/confirm', :controller => 'user', :action => 'confirm'
map.connect '/user/confirm-email', :controller => 'user', :action => 'confirm_email'

View file

@ -0,0 +1,11 @@
class AddContributorTermsToUser < ActiveRecord::Migration
def self.up
add_column :users, :terms_agreed, :datetime
add_column :users, :consider_pd, :boolean, :null => false, :default => false
end
def self.down
remove_column :users, :consider_pd
remove_column :users, :terms_agreed
end
end

View file

@ -447,7 +447,7 @@ module OSM
end
end
def self.IPLocation(ip_address)
def self.IPToCountry(ip_address)
Timeout::timeout(4) do
ipinfo = Quova::IpInfo.new(ip_address)
@ -459,10 +459,8 @@ module OSM
country = "GB" if country == "UK"
end
end
country = Country.find_by_code(country.upcase)
return { :minlon => country.min_lon, :minlat => country.min_lat, :maxlon => country.max_lon, :maxlat => country.max_lat }
return country.upcase
end
return nil
@ -470,6 +468,18 @@ module OSM
return nil
end
def self.IPLocation(ip_address)
code = OSM.IPToCountry(ip_address)
unless code.nil?
country = Country.find_by_code(code)
return { :minlon => country.min_lon, :minlat => country.min_lat, :maxlon => country.max_lon, :maxlat => country.max_lat }
end
return nil
end
# Construct a random token of a given length
def self.make_token(length = 30)
chars = 'abcdefghijklmnopqrtuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
@ -529,4 +539,10 @@ module OSM
return [link_proportion - 0.2, 0.0].max * 200 + link_count * 20
end
def self.legal_text_for_country(country_code)
file_name = File.join(RAILS_ROOT, "config", "legales", country_code.to_s + ".yml")
file_name = File.join(RAILS_ROOT, "config", "legales", APP_CONFIG['default_legale'] + ".yml") unless File.exist? file_name
YAML::load_file(file_name)
end
end

View file

@ -583,6 +583,47 @@ hr {
margin-top: 10px;
}
/* Rules for the account confirmation page */
div#contributorTerms {
border: 1px solid black;
padding: 4px;
overflow: auto;
width: 80%;
height: 60%;
}
div#contributorTerms p#first {
margin-top: 0px;
}
div#contributorTerms p#last {
margin-bottom: 0px;
}
div#contributorTerms ol {
margin-bottom: 0px;
}
div#contributorTerms img {
display: block;
margin-left: auto;
margin-right: auto;
margin-top: 10%;
}
form#termsForm {
width: 80%;
}
form#termsForm div#buttons {
float: right;
}
form#termsForm input#agree {
margin-left: 50px;
}
/* Rules for the account settings page */
#accountForm td {

View file

@ -22,7 +22,7 @@ addresses.each do |address,count|
Acl.create(
:address => address,
:netmask => "255.255.255.255",
:k => "no_account",
:k => "no_account_creation",
:v => "auto_spam_block"
)

View file

@ -14,13 +14,13 @@ class UserControllerTest < ActionController::TestCase
end
assert_select "body", :count => 1 do
assert_select "div#content", :count => 1 do
assert_select "form[action='/user/save'][method=post]", :count => 1 do
assert_select "form[action='/user/terms'][method=post]", :count => 1 do
assert_select "input[id=user_email]", :count => 1
assert_select "input[id=user_email_confirmation]", :count => 1
assert_select "input[id=user_display_name]", :count => 1
assert_select "input[id=user_pass_crypt][type=password]", :count => 1
assert_select "input[id=user_pass_crypt_confirmation][type=password]", :count => 1
assert_select "input[type=submit][value=Signup]", :count => 1
assert_select "input[type=submit][value=Continue]", :count => 1
end
end
end