From 9db956c3c677e6993c95bb842a9690332c5a5672 Mon Sep 17 00:00:00 2001 From: Matt Amos Date: Mon, 22 Mar 2010 21:58:47 +0000 Subject: [PATCH 01/20] Branch for LWG work. From 58b10a31dbe2f1ca97c27e65d79939bec1458231 Mon Sep 17 00:00:00 2001 From: Matt Amos Date: Mon, 22 Mar 2010 22:50:02 +0000 Subject: [PATCH 02/20] Fix close tag on test. --- test/functional/way_controller_test.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/functional/way_controller_test.rb b/test/functional/way_controller_test.rb index 6b58137ae..3452be6d0 100644 --- a/test/functional/way_controller_test.rb +++ b/test/functional/way_controller_test.rb @@ -210,7 +210,7 @@ class WayControllerTest < ActionController::TestCase assert_response :forbidden # Now try without having a changeset - content "" + content "" delete :delete, :id => current_ways(:visible_way).id assert_response :forbidden @@ -261,7 +261,7 @@ class WayControllerTest < ActionController::TestCase assert_response :bad_request # Now try without having a changeset - content "" + content "" delete :delete, :id => current_ways(:visible_way).id assert_response :bad_request From b99e8702912226ffc9264efaeede2d4d2e3c7156 Mon Sep 17 00:00:00 2001 From: Matt Amos Date: Mon, 22 Mar 2010 22:51:09 +0000 Subject: [PATCH 03/20] Initial version of contributor terms changes. --- app/controllers/user_controller.rb | 2 ++ app/views/user/confirm.html.erb | 24 +++++++++++++++++-- config/initializers/i18n.rb | 1 + config/legales/en.yml | 15 ++++++++++++ config/legales/fr.yml | 15 ++++++++++++ config/legales/it.yml | 16 +++++++++++++ config/locales/en.yml | 7 +++--- .../050_add_contributor_terms_to_user.rb | 11 +++++++++ 8 files changed, 86 insertions(+), 5 deletions(-) create mode 100644 config/legales/en.yml create mode 100644 config/legales/fr.yml create mode 100644 config/legales/it.yml create mode 100644 db/migrate/050_add_contributor_terms_to_user.rb diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index 9551ac6d8..83c414ef2 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -209,6 +209,8 @@ class UserController < ApplicationController @user = token.user @user.active = true @user.email_valid = true + @user.terms_agreed = Time.now.getutc + @user.consider_pd = true if params[:consider_pd] @user.save! referer = token.referer token.destroy diff --git a/app/views/user/confirm.html.erb b/app/views/user/confirm.html.erb index 5a4106ee3..3186c78dd 100644 --- a/app/views/user/confirm.html.erb +++ b/app/views/user/confirm.html.erb @@ -2,9 +2,29 @@

<%= t 'user.confirm.press confirm button' %>

+
+

<%= t 'legal.contributor_terms.intro' %>

+
    +
  1. <%= t 'legal.contributor_terms.section_1' %>
  2. +
  3. <%= t 'legal.contributor_terms.section_2' %>
  4. +
  5. <%= t 'legal.contributor_terms.section_3' %>
  6. +

    <%= t 'legal.contributor_terms.active_defn_1' %>

    +

    <%= t 'legal.contributor_terms.active_defn_2' %>

    +
  7. <%= t 'legal.contributor_terms.section_4' %>
  8. +
  9. <%= t 'legal.contributor_terms.section_5' %>
  10. +
  11. <%= t 'legal.contributor_terms.section_6' %>
  12. +
      +
    1. <%= t 'legal.contributor_terms.section_6_1' %>
    2. +
    3. <%= t 'legal.contributor_terms.section_6_2' %>
    4. +
    +
  13. <%= t 'legal.contributor_terms.section_7' %>
  14. +
+
+
- - + +
+
diff --git a/config/initializers/i18n.rb b/config/initializers/i18n.rb index b2af5004e..52a02313a 100644 --- a/config/initializers/i18n.rb +++ b/config/initializers/i18n.rb @@ -2,6 +2,7 @@ require 'globalize/i18n/missing_translations_log_handler' I18n.missing_translations_logger = Logger.new("#{RAILS_ROOT}/log/missing_translations.log") I18n.exception_handler = :missing_translations_log_handler +I18n.load_path += Dir[ File.join(RAILS_ROOT, 'config', 'legales', '*.yml') ] module I18n module Backend diff --git a/config/legales/en.yml b/config/legales/en.yml new file mode 100644 index 000000000..5d6903b17 --- /dev/null +++ b/config/legales/en.yml @@ -0,0 +1,15 @@ +en: + legal: + contributor_terms: + 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 party’s 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 holder’s option, OSMF agrees to attribute You or the copyright holder. A mechanism will be provided, currently a web page." + 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." diff --git a/config/legales/fr.yml b/config/legales/fr.yml new file mode 100644 index 000000000..d68f650da --- /dev/null +++ b/config/legales/fr.yml @@ -0,0 +1,15 @@ +fr: + legal: + contributor_terms: + 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é d’y intégrer des données et/ou tout autre contenu (collectivement « les Contenus »). Cet accord de contribution (« l’Accord ») 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 « J’accepte » en bas de la page afin de continuer." + section_1: "Dans le cas où des Contenus comprennent des éléments soumis à un droit d’auteur, Vous acceptez de n’ajouter 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 à l’Article 2 des Présentes et que cette licence ne contrevient à aucune loi, à aucune disposition contractuelle ni, à votre connaissance, à aucun droit d’un tiers. Si Vous n’êtes pas détenteur des droits de propriété intellectuelle, Vous devez garantir le fait que vous avez obtenu l’accord exprès et préalable d’utiliser les droits de propriété intellectuelle afférents au Contenu et de concéder une licence d’utilisation de ce Contenu." + section_2: "Droits concédés. Vous concédez à OSMF, dans les conditions définies à l’article 3, de manière irrévocable et perpétuelle, une licence internationale, non soumise aux droits patrimoniaux d’auteur 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 l’ensemble des contributions à des tiers ou sous-traitants. Vous acceptez de ne pas user de votre droit moral à l’encontre 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 d’une 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 d’un 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, lorsqu’elle 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 d’auteur, selon Votre souhait ou celui du titulaire des droits. Le procédé d'attribution sera fourni ultérieurement. Actuellement, il s'agit de la page web." + 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 l’exception des garanties prévues à l’Article 1 des Présentes et dans les limites permises par la loi, Vous fournissez les Contenus en l’état sans aucune garantie d’aucune sorte, expresse ou tacite, notamment sans garantie de valeur commerciale, d’adé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 s’appliquent, ne pourra Vous être imputé ou être imputé à OSMF dans le cadre de cet Accord. Cette limitation de responsabilité s’applique même si chaque Partie était avisée de la possibilité de réalisation d’un 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, qu’il soit oral ou écrit, concernant l’objet de cet Accord." diff --git a/config/legales/it.yml b/config/legales/it.yml new file mode 100644 index 000000000..ddb154ddc --- /dev/null +++ b/config/legales/it.yml @@ -0,0 +1,16 @@ +it: + legal: + contributor_terms: + 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 l’espressa 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 all’originale." + 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 quest’ultimo o Tua. In questo senso verrà attuato un apposito meccanismo di attribuzione, che al momento risulta dalla pagina web." + 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." + diff --git a/config/locales/en.yml b/config/locales/en.yml index 8699d600c..3cf5a9c10 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1393,7 +1393,7 @@ en: no_auto_account_create: "Unfortunately we are not currently able to create an account for you automatically." contact_webmaster: 'Please contact the webmaster 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 this Creative Commons license (by-sa).' + license_agreement: 'When you confirm your account you will need to agree to the contributor terms.' email address: "Email Address:" confirm email address: "Confirm Email Address:" not displayed publicly: 'Not displayed publicly (see privacy policy)' @@ -1494,8 +1494,9 @@ en: flash update success: "User information updated successfully." confirm: heading: Confirm a user account - press confirm button: "Press the confirm button below to activate your account." - button: Confirm + press confirm button: "Please read the agreement below and press the agree button to activate your account." + consider_pd: "I consider my contributions to be in the Public Domain." + button: Agree success: "Confirmed your account, thanks for signing up!" failure: "A user account with this token has already been confirmed." confirm_email: diff --git a/db/migrate/050_add_contributor_terms_to_user.rb b/db/migrate/050_add_contributor_terms_to_user.rb new file mode 100644 index 000000000..f2eae9047 --- /dev/null +++ b/db/migrate/050_add_contributor_terms_to_user.rb @@ -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 From 9cff6985ff69c97bac50bad4c5bc055fc493262b Mon Sep 17 00:00:00 2001 From: Matt Amos Date: Mon, 22 Mar 2010 23:48:20 +0000 Subject: [PATCH 04/20] Updated URI of dev server instance. --- config/environment.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/environment.rb b/config/environment.rb index 539af83b2..ad18f132e 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -8,7 +8,7 @@ ENV['RAILS_ENV'] ||= 'production' RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION # Set the server URL -SERVER_URL = ENV['OSM_SERVER_URL'] || 'www.openstreetmap.org' +SERVER_URL = ENV['OSM_SERVER_URL'] || 'contributor_terms.dev.openstreetmap.org' # Set the generator GENERATOR = ENV['OSM_SERVER_GENERATOR'] || 'OpenStreetMap server' From 917ed5a7fda9be9c3d751b56db4995a8cb088d57 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 23 Mar 2010 00:17:14 +0000 Subject: [PATCH 05/20] Improve styling of contributor terms. --- app/views/user/confirm.html.erb | 48 ++++++++++++++++++--------------- public/stylesheets/common.css | 18 +++++++++++++ 2 files changed, 44 insertions(+), 22 deletions(-) diff --git a/app/views/user/confirm.html.erb b/app/views/user/confirm.html.erb index 3186c78dd..af3fa2556 100644 --- a/app/views/user/confirm.html.erb +++ b/app/views/user/confirm.html.erb @@ -2,29 +2,33 @@

<%= t 'user.confirm.press confirm button' %>

-
-

<%= t 'legal.contributor_terms.intro' %>

-
    -
  1. <%= t 'legal.contributor_terms.section_1' %>
  2. -
  3. <%= t 'legal.contributor_terms.section_2' %>
  4. -
  5. <%= t 'legal.contributor_terms.section_3' %>
  6. -

    <%= t 'legal.contributor_terms.active_defn_1' %>

    -

    <%= t 'legal.contributor_terms.active_defn_2' %>

    -
  7. <%= t 'legal.contributor_terms.section_4' %>
  8. -
  9. <%= t 'legal.contributor_terms.section_5' %>
  10. -
  11. <%= t 'legal.contributor_terms.section_6' %>
  12. -
      -
    1. <%= t 'legal.contributor_terms.section_6_1' %>
    2. -
    3. <%= t 'legal.contributor_terms.section_6_2' %>
    4. -
    -
  13. <%= t 'legal.contributor_terms.section_7' %>
  14. -
+
+

<%= t 'legal.contributor_terms.intro' %>

+
    +
  1. <%= t 'legal.contributor_terms.section_1' %>
  2. +
  3. <%= t 'legal.contributor_terms.section_2' %>
  4. +
  5. <%= t 'legal.contributor_terms.section_3' %>
  6. +

    <%= t 'legal.contributor_terms.active_defn_1' %>

    +

    <%= t 'legal.contributor_terms.active_defn_2' %>

    +
  7. <%= t 'legal.contributor_terms.section_4' %>
  8. +
  9. <%= t 'legal.contributor_terms.section_5' %>
  10. +
  11. <%= t 'legal.contributor_terms.section_6' %>
  12. +
      +
    1. <%= t 'legal.contributor_terms.section_6_1' %>
    2. +
    3. <%= t 'legal.contributor_terms.section_6_2' %>
    4. +
    +
  13. <%= t 'legal.contributor_terms.section_7' %>
  14. +
- -
- +

+ +
+

+

+ + +

- - diff --git a/public/stylesheets/common.css b/public/stylesheets/common.css index 4efbd928f..f61698742 100644 --- a/public/stylesheets/common.css +++ b/public/stylesheets/common.css @@ -540,6 +540,24 @@ hr { color: gray; } +/* Rules for the account confirmation page */ + +div#contributorTerms { + border: 1px solid black; + padding: 4px; + overflow: auto; + width: 80%; + height: 60%; +} + +div#contributorTerms p { + margin-top: 0px; +} + +div#contributorTerms ol { + margin-bottom: 0px; +} + /* Rules for the account settings page */ #accountForm td { From 576e6e6d673c9d9ec6c2fea138755fc478c82150 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 23 Mar 2010 00:33:16 +0000 Subject: [PATCH 06/20] More improvements to styling of terms. --- app/views/user/confirm.html.erb | 42 ++++++++++++++++++++++----------- public/stylesheets/common.css | 6 ++++- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/app/views/user/confirm.html.erb b/app/views/user/confirm.html.erb index af3fa2556..100206c31 100644 --- a/app/views/user/confirm.html.erb +++ b/app/views/user/confirm.html.erb @@ -3,21 +3,35 @@

<%= t 'user.confirm.press confirm button' %>

-

<%= t 'legal.contributor_terms.intro' %>

+

<%= t 'legal.contributor_terms.intro' %>

    -
  1. <%= t 'legal.contributor_terms.section_1' %>
  2. -
  3. <%= t 'legal.contributor_terms.section_2' %>
  4. -
  5. <%= t 'legal.contributor_terms.section_3' %>
  6. -

    <%= t 'legal.contributor_terms.active_defn_1' %>

    -

    <%= t 'legal.contributor_terms.active_defn_2' %>

    -
  7. <%= t 'legal.contributor_terms.section_4' %>
  8. -
  9. <%= t 'legal.contributor_terms.section_5' %>
  10. -
  11. <%= t 'legal.contributor_terms.section_6' %>
  12. -
      -
    1. <%= t 'legal.contributor_terms.section_6_1' %>
    2. -
    3. <%= t 'legal.contributor_terms.section_6_2' %>
    4. -
    -
  13. <%= t 'legal.contributor_terms.section_7' %>
  14. +
  15. +

    <%= t 'legal.contributor_terms.section_1' %>

    +
  16. +
  17. +

    <%= t 'legal.contributor_terms.section_2' %>

    +
  18. +
  19. +

    <%= t 'legal.contributor_terms.section_3' %>

    +

    <%= t 'legal.contributor_terms.active_defn_1' %>

    +

    <%= t 'legal.contributor_terms.active_defn_2' %>

    +
  20. +
  21. +

    <%= t 'legal.contributor_terms.section_4' %>

    +
  22. +
  23. +

    <%= t 'legal.contributor_terms.section_5' %>

    +
  24. +
  25. +

    <%= t 'legal.contributor_terms.section_6' %>

    +
      +
    1. <%= t 'legal.contributor_terms.section_6_1' %>

    2. +
    3. <%= t 'legal.contributor_terms.section_6_2' %>

    4. +
    +
  26. +
  27. +

    <%= t 'legal.contributor_terms.section_7' %>

    +
diff --git a/public/stylesheets/common.css b/public/stylesheets/common.css index f61698742..c5b98f3b3 100644 --- a/public/stylesheets/common.css +++ b/public/stylesheets/common.css @@ -550,10 +550,14 @@ div#contributorTerms { height: 60%; } -div#contributorTerms p { +div#contributorTerms p#first { margin-top: 0px; } +div#contributorTerms p#last { + margin-bottom: 0px; +} + div#contributorTerms ol { margin-bottom: 0px; } From 6732ff07b99bea0c25093d3432ac94a07fd60559 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 23 Mar 2010 17:50:54 +0000 Subject: [PATCH 07/20] Rework the PD question on the confirmation screen. --- app/views/user/confirm.html.erb | 4 ++-- config/locales/en.yml | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/views/user/confirm.html.erb b/app/views/user/confirm.html.erb index 100206c31..068e6eeee 100644 --- a/app/views/user/confirm.html.erb +++ b/app/views/user/confirm.html.erb @@ -38,8 +38,8 @@

-
+ + (<%= link_to(t('user.confirm.consider_pd_why'), t('user.confirm.consider_pd_why_url'), :target => :new)%>)

diff --git a/config/locales/en.yml b/config/locales/en.yml index 3cf5a9c10..c141dbe6e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1495,7 +1495,9 @@ en: confirm: heading: Confirm a user account press confirm button: "Please read the agreement below and press the agree button to activate your account." - consider_pd: "I consider my contributions to be in the Public Domain." + 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 button: Agree success: "Confirmed your account, thanks for signing up!" failure: "A user account with this token has already been confirmed." From 898c47e647fbffcd0543b78033945b04f1b9aeae Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Fri, 26 Mar 2010 18:55:17 +0000 Subject: [PATCH 08/20] Present the contributor terms as part of the initial signup instead of during the account confirmation step. --- app/controllers/user_controller.rb | 12 +++++-- app/views/user/confirm.html.erb | 46 +++----------------------- app/views/user/new.html.erb | 2 +- app/views/user/terms.html.erb | 53 ++++++++++++++++++++++++++++++ config/locales/en.yml | 14 +++++--- config/routes.rb | 1 + 6 files changed, 78 insertions(+), 50 deletions(-) create mode 100644 app/views/user/terms.html.erb diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index 83c414ef2..94a3e1142 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -18,6 +18,15 @@ class UserController < ApplicationController cache_sweeper :user_sweeper, :only => [:account, :hide, :unhide, :delete] + def terms + @title = t 'user.new.title' + @user = User.new(params[:user]) + + if @user.invalid? + render :action => 'new' + end + end + def save @title = t 'user.new.title' @@ -31,6 +40,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' @@ -209,8 +219,6 @@ class UserController < ApplicationController @user = token.user @user.active = true @user.email_valid = true - @user.terms_agreed = Time.now.getutc - @user.consider_pd = true if params[:consider_pd] @user.save! referer = token.referer token.destroy diff --git a/app/views/user/confirm.html.erb b/app/views/user/confirm.html.erb index 068e6eeee..5a4106ee3 100644 --- a/app/views/user/confirm.html.erb +++ b/app/views/user/confirm.html.erb @@ -2,47 +2,9 @@

<%= t 'user.confirm.press confirm button' %>

-
-

<%= t 'legal.contributor_terms.intro' %>

-
    -
  1. -

    <%= t 'legal.contributor_terms.section_1' %>

    -
  2. -
  3. -

    <%= t 'legal.contributor_terms.section_2' %>

    -
  4. -
  5. -

    <%= t 'legal.contributor_terms.section_3' %>

    -

    <%= t 'legal.contributor_terms.active_defn_1' %>

    -

    <%= t 'legal.contributor_terms.active_defn_2' %>

    -
  6. -
  7. -

    <%= t 'legal.contributor_terms.section_4' %>

    -
  8. -
  9. -

    <%= t 'legal.contributor_terms.section_5' %>

    -
  10. -
  11. -

    <%= t 'legal.contributor_terms.section_6' %>

    -
      -
    1. <%= t 'legal.contributor_terms.section_6_1' %>

    2. -
    3. <%= t 'legal.contributor_terms.section_6_2' %>

    4. -
    -
  12. -
  13. -

    <%= t 'legal.contributor_terms.section_7' %>

    -
  14. -
-
- -

- - - (<%= link_to(t('user.confirm.consider_pd_why'), t('user.confirm.consider_pd_why_url'), :target => :new)%>) -

-

- - -

+ +
+ + diff --git a/app/views/user/new.html.erb b/app/views/user/new.html.erb index bd85664c0..b086eabf3 100644 --- a/app/views/user/new.html.erb +++ b/app/views/user/new.html.erb @@ -18,7 +18,7 @@ <%= 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? %> diff --git a/app/views/user/terms.html.erb b/app/views/user/terms.html.erb new file mode 100644 index 000000000..258b6e0b3 --- /dev/null +++ b/app/views/user/terms.html.erb @@ -0,0 +1,53 @@ +

<%= t 'user.terms.heading' %>

+ +

<%= t 'user.terms.press accept button' %>

+ +
+

<%= t 'legal.contributor_terms.intro' %>

+
    +
  1. +

    <%= t 'legal.contributor_terms.section_1' %>

    +
  2. +
  3. +

    <%= t 'legal.contributor_terms.section_2' %>

    +
  4. +
  5. +

    <%= t 'legal.contributor_terms.section_3' %>

    +

    <%= t 'legal.contributor_terms.active_defn_1' %>

    +

    <%= t 'legal.contributor_terms.active_defn_2' %>

    +
  6. +
  7. +

    <%= t 'legal.contributor_terms.section_4' %>

    +
  8. +
  9. +

    <%= t 'legal.contributor_terms.section_5' %>

    +
  10. +
  11. +

    <%= t 'legal.contributor_terms.section_6' %>

    +
      +
    1. <%= t 'legal.contributor_terms.section_6_1' %>

    2. +
    3. <%= t 'legal.contributor_terms.section_6_2' %>

    4. +
    +
  12. +
  13. +

    <%= t 'legal.contributor_terms.section_7' %>

    +
  14. +
+
+ +<% form_tag :action => 'save' do %> +

+ + <%= check_box('user', 'consider_pd') %> + (<%= link_to(t('user.terms.consider_pd_why'), t('user.terms.consider_pd_why_url'), :target => :new)%>) +

+

+ <%= 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') %> + <%= submit_tag(t('user.terms.button')) %> +

+<% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index c141dbe6e..9a5d0c792 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1403,6 +1403,13 @@ en: confirm password: "Confirm Password:" signup: Signup flash create success message: "User was successfully created. Check your email for a confirmation note, and you will be mapping in no time :-)

Please note that you will not be able to login until you've received and confirmed your email address.

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 activate 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 + button: Agree no_such_user: title: "No such user" heading: "The user {{user}} does not exist" @@ -1494,11 +1501,8 @@ en: flash update success: "User information updated successfully." confirm: heading: Confirm a user account - press confirm button: "Please read the agreement below and press the agree button to activate 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 - button: Agree + press confirm button: "Press the confirm button below to activate your account." + button: Confirm success: "Confirmed your account, thanks for signing up!" failure: "A user account with this token has already been confirmed." confirm_email: diff --git a/config/routes.rb b/config/routes.rb index 0c0e62849..e2f95f7d7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -96,6 +96,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' From 9a9e13af901e9d66357135fb39b111fc9e26b3b2 Mon Sep 17 00:00:00 2001 From: Matt Amos Date: Mon, 12 Apr 2010 23:55:05 +0000 Subject: [PATCH 09/20] Bit more work on the contributor terms page - still very much a work-in-progress. --- app/controllers/user_controller.rb | 3 +++ app/views/user/new.html.erb | 5 +--- app/views/user/terms.html.erb | 39 +++++++++++++++++++++--------- config/initializers/i18n.rb | 1 - config/legales/FR.yml | 12 +++++++++ config/legales/GB.yml | 12 +++++++++ config/legales/IT.yml | 13 ++++++++++ config/legales/en.yml | 15 ------------ config/legales/fr.yml | 15 ------------ config/legales/it.yml | 16 ------------ config/locales/de.yml | 2 +- config/locales/en.yml | 6 ++++- lib/osm.rb | 25 +++++++++++++++---- 13 files changed, 94 insertions(+), 70 deletions(-) create mode 100644 config/legales/FR.yml create mode 100644 config/legales/GB.yml create mode 100644 config/legales/IT.yml delete mode 100644 config/legales/en.yml delete mode 100644 config/legales/fr.yml delete mode 100644 config/legales/it.yml diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index 94a3e1142..2e2571952 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -22,6 +22,9 @@ class UserController < ApplicationController @title = t 'user.new.title' @user = User.new(params[:user]) + country_code = params[:legale] || OSM.IPToCountry(request.remote_ip) + @text = OSM.legal_text_for_country(country_code) + if @user.invalid? render :action => 'new' end diff --git a/app/views/user/new.html.erb b/app/views/user/new.html.erb index b086eabf3..66d8826c2 100644 --- a/app/views/user/new.html.erb +++ b/app/views/user/new.html.erb @@ -13,9 +13,6 @@

<%= t 'user.new.fill_form' %>

-

<%= t 'user.new.license_agreement' %> -

- <%= error_messages_for 'user' %> <% form_tag :action => 'terms' do %> @@ -32,7 +29,7 @@
- +
<%= t 'user.new.email address' %><%= text_field('user', 'email',{:size => 50, :maxlength => 255, :tabindex => 1}) %>
<%= t 'user.new.confirm password' %><%= password_field('user', 'pass_crypt_confirmation',{:size => 30, :maxlength => 255, :tabindex => 5}) %>
 
<% end %> diff --git a/app/views/user/terms.html.erb b/app/views/user/terms.html.erb index 258b6e0b3..23e2ba068 100644 --- a/app/views/user/terms.html.erb +++ b/app/views/user/terms.html.erb @@ -2,35 +2,49 @@

<%= t 'user.terms.press accept button' %>

+

<%= t 'user.terms.legale_select' %> +<% form_tag :action => 'terms' do %> + +<% end %>

+
-

<%= t 'legal.contributor_terms.intro' %>

+

<%= @text['intro'] %>

  1. -

    <%= t 'legal.contributor_terms.section_1' %>

    +

    <%= @text['section_1'] %>

  2. -

    <%= t 'legal.contributor_terms.section_2' %>

    +

    <%= @text['section_2'] %>

  3. -

    <%= t 'legal.contributor_terms.section_3' %>

    -

    <%= t 'legal.contributor_terms.active_defn_1' %>

    -

    <%= t 'legal.contributor_terms.active_defn_2' %>

    +

    <%= @text['section_3'] %>

    +

    <%= @text['active_defn_1'] %>

    +

    <%= @text['active_defn_2'] %>

  4. -

    <%= t 'legal.contributor_terms.section_4' %>

    +

    <%= @text['section_4'] %>

  5. -

    <%= t 'legal.contributor_terms.section_5' %>

    +

    <%= @text['section_5'] %>

  6. -

    <%= t 'legal.contributor_terms.section_6' %>

    +

    <%= @text['section_6'] %>

      -
    1. <%= t 'legal.contributor_terms.section_6_1' %>

    2. -
    3. <%= t 'legal.contributor_terms.section_6_2' %>

    4. +
    5. <%= @text['section_6_1'] %>

    6. +
    7. <%= @text['section_6_2'] %>

  7. -

    <%= t 'legal.contributor_terms.section_7' %>

    +

    <%= @text['section_7'] %>

@@ -48,6 +62,7 @@ <%= hidden_field('user', 'display_name') %> <%= hidden_field('user', 'pass_crypt') %> <%= hidden_field('user', 'pass_crypt_confirmation') %> + <%= t 'user.terms.decline' %> <%= submit_tag(t('user.terms.button')) %>

<% end %> diff --git a/config/initializers/i18n.rb b/config/initializers/i18n.rb index 52a02313a..b2af5004e 100644 --- a/config/initializers/i18n.rb +++ b/config/initializers/i18n.rb @@ -2,7 +2,6 @@ require 'globalize/i18n/missing_translations_log_handler' I18n.missing_translations_logger = Logger.new("#{RAILS_ROOT}/log/missing_translations.log") I18n.exception_handler = :missing_translations_log_handler -I18n.load_path += Dir[ File.join(RAILS_ROOT, 'config', 'legales', '*.yml') ] module I18n module Backend diff --git a/config/legales/FR.yml b/config/legales/FR.yml new file mode 100644 index 000000000..25e44a35c --- /dev/null +++ b/config/legales/FR.yml @@ -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é d’y intégrer des données et/ou tout autre contenu (collectivement « les Contenus »). Cet accord de contribution (« l’Accord ») 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 « J’accepte » en bas de la page afin de continuer." +section_1: "Dans le cas où des Contenus comprennent des éléments soumis à un droit d’auteur, Vous acceptez de n’ajouter 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 à l’Article 2 des Présentes et que cette licence ne contrevient à aucune loi, à aucune disposition contractuelle ni, à votre connaissance, à aucun droit d’un tiers. Si Vous n’êtes pas détenteur des droits de propriété intellectuelle, Vous devez garantir le fait que vous avez obtenu l’accord exprès et préalable d’utiliser les droits de propriété intellectuelle afférents au Contenu et de concéder une licence d’utilisation de ce Contenu." +section_2: "Droits concédés. Vous concédez à OSMF, dans les conditions définies à l’article 3, de manière irrévocable et perpétuelle, une licence internationale, non soumise aux droits patrimoniaux d’auteur 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 l’ensemble des contributions à des tiers ou sous-traitants. Vous acceptez de ne pas user de votre droit moral à l’encontre 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 d’une 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 d’un 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, lorsqu’elle 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 d’auteur, selon Votre souhait ou celui du titulaire des droits. Le procédé d'attribution sera fourni ultérieurement. Actuellement, il s'agit de la page web." +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 l’exception des garanties prévues à l’Article 1 des Présentes et dans les limites permises par la loi, Vous fournissez les Contenus en l’état sans aucune garantie d’aucune sorte, expresse ou tacite, notamment sans garantie de valeur commerciale, d’adé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 s’appliquent, ne pourra Vous être imputé ou être imputé à OSMF dans le cadre de cet Accord. Cette limitation de responsabilité s’applique même si chaque Partie était avisée de la possibilité de réalisation d’un 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, qu’il soit oral ou écrit, concernant l’objet de cet Accord." diff --git a/config/legales/GB.yml b/config/legales/GB.yml new file mode 100644 index 000000000..670332fb0 --- /dev/null +++ b/config/legales/GB.yml @@ -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 party’s 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 holder’s option, OSMF agrees to attribute You or the copyright holder. A mechanism will be provided, currently a web page." +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." diff --git a/config/legales/IT.yml b/config/legales/IT.yml new file mode 100644 index 000000000..e9f6076b2 --- /dev/null +++ b/config/legales/IT.yml @@ -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 l’espressa 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 all’originale." +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 quest’ultimo o Tua. In questo senso verrà attuato un apposito meccanismo di attribuzione, che al momento risulta dalla pagina web." +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." + diff --git a/config/legales/en.yml b/config/legales/en.yml deleted file mode 100644 index 5d6903b17..000000000 --- a/config/legales/en.yml +++ /dev/null @@ -1,15 +0,0 @@ -en: - legal: - contributor_terms: - 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 party’s 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 holder’s option, OSMF agrees to attribute You or the copyright holder. A mechanism will be provided, currently a web page." - 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." diff --git a/config/legales/fr.yml b/config/legales/fr.yml deleted file mode 100644 index d68f650da..000000000 --- a/config/legales/fr.yml +++ /dev/null @@ -1,15 +0,0 @@ -fr: - legal: - contributor_terms: - 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é d’y intégrer des données et/ou tout autre contenu (collectivement « les Contenus »). Cet accord de contribution (« l’Accord ») 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 « J’accepte » en bas de la page afin de continuer." - section_1: "Dans le cas où des Contenus comprennent des éléments soumis à un droit d’auteur, Vous acceptez de n’ajouter 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 à l’Article 2 des Présentes et que cette licence ne contrevient à aucune loi, à aucune disposition contractuelle ni, à votre connaissance, à aucun droit d’un tiers. Si Vous n’êtes pas détenteur des droits de propriété intellectuelle, Vous devez garantir le fait que vous avez obtenu l’accord exprès et préalable d’utiliser les droits de propriété intellectuelle afférents au Contenu et de concéder une licence d’utilisation de ce Contenu." - section_2: "Droits concédés. Vous concédez à OSMF, dans les conditions définies à l’article 3, de manière irrévocable et perpétuelle, une licence internationale, non soumise aux droits patrimoniaux d’auteur 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 l’ensemble des contributions à des tiers ou sous-traitants. Vous acceptez de ne pas user de votre droit moral à l’encontre 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 d’une 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 d’un 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, lorsqu’elle 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 d’auteur, selon Votre souhait ou celui du titulaire des droits. Le procédé d'attribution sera fourni ultérieurement. Actuellement, il s'agit de la page web." - 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 l’exception des garanties prévues à l’Article 1 des Présentes et dans les limites permises par la loi, Vous fournissez les Contenus en l’état sans aucune garantie d’aucune sorte, expresse ou tacite, notamment sans garantie de valeur commerciale, d’adé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 s’appliquent, ne pourra Vous être imputé ou être imputé à OSMF dans le cadre de cet Accord. Cette limitation de responsabilité s’applique même si chaque Partie était avisée de la possibilité de réalisation d’un 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, qu’il soit oral ou écrit, concernant l’objet de cet Accord." diff --git a/config/legales/it.yml b/config/legales/it.yml deleted file mode 100644 index ddb154ddc..000000000 --- a/config/legales/it.yml +++ /dev/null @@ -1,16 +0,0 @@ -it: - legal: - contributor_terms: - 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 l’espressa 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 all’originale." - 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 quest’ultimo o Tua. In questo senso verrà attuato un apposito meccanismo di attribuzione, che al momento risulta dalla pagina web." - 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." - diff --git a/config/locales/de.yml b/config/locales/de.yml index 9806bc800..ad8cf5770 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1429,7 +1429,7 @@ de: no_auto_account_create: Im Moment ist das automatische Erstellen eines Benutzerkontos leider nicht möglich. not displayed publicly: Nicht öffentlich sichtbar (Datenschutzrichtlinie) 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. diff --git a/config/locales/en.yml b/config/locales/en.yml index 9a5d0c792..1f0e59e0a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1401,7 +1401,7 @@ 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 :-)

Please note that you will not be able to login until you've received and confirmed your email address.

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 @@ -1410,6 +1410,10 @@ en: 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 button: Agree + exit_wiki: "http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined" + decline: "Decline" + legale_select: "Please select your country of residence:" + legale_button: "Go" no_such_user: title: "No such user" heading: "The user {{user}} does not exist" diff --git a/lib/osm.rb b/lib/osm.rb index cb23b0c97..50e31a7ff 100644 --- a/lib/osm.rb +++ b/lib/osm.rb @@ -446,7 +446,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) @@ -458,10 +458,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 @@ -469,6 +467,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' @@ -498,5 +508,10 @@ module OSM return "#{tilesql} AND #{prefix}latitude BETWEEN #{minlat} AND #{maxlat} AND #{prefix}longitude BETWEEN #{minlon} AND #{maxlon}" 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", "GB.yml") unless File.exist? file_name + YAML::load_file(file_name) + end end From 972278a223ac07b7a1f4c431706972b13ee76ef0 Mon Sep 17 00:00:00 2001 From: Matt Amos Date: Tue, 27 Apr 2010 00:36:44 +0100 Subject: [PATCH 10/20] Some styling changes. Changed drop-down into radio buttons. Tried, and failed, to get the 'decline' link to look like a button. --- app/controllers/user_controller.rb | 4 +-- app/views/user/terms.html.erb | 32 ++++++++++++---------- config/application.yml | 2 ++ config/locales/en.yml | 8 ++++-- lib/osm.rb | 2 +- public/stylesheets/common.css | 43 ++++++++++++++++++++++++++++++ 6 files changed, 72 insertions(+), 19 deletions(-) diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index 2e2571952..603fb2a49 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -22,8 +22,8 @@ class UserController < ApplicationController @title = t 'user.new.title' @user = User.new(params[:user]) - country_code = params[:legale] || OSM.IPToCountry(request.remote_ip) - @text = OSM.legal_text_for_country(country_code) + @legale = params[:legale] || OSM.IPToCountry(request.remote_ip) || APP_CONFIG['default_legale'] + @text = OSM.legal_text_for_country(@legale) if @user.invalid? render :action => 'new' diff --git a/app/views/user/terms.html.erb b/app/views/user/terms.html.erb index 23e2ba068..daa4396ff 100644 --- a/app/views/user/terms.html.erb +++ b/app/views/user/terms.html.erb @@ -2,19 +2,21 @@

<%= t 'user.terms.press accept button' %>

-

<%= t 'user.terms.legale_select' %> + <% form_tag :action => 'terms' do %> - -<% end %>

+

<%= t 'user.terms.legale_select' %>

+ <% [['france', 'FR'], ['italy', 'IT'], ['rest_of_world', 'GB']].each do |name,legale| %> + <%= radio_button_tag 'legale', legale, @legale == legale %> + <%= label_tag "legale_#{legale}", t('user.terms.legale_names.' + name) %>
+ <% end %> + <%= 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') %> + <%= submit_tag(t('user.terms.legale_button')) %> +<% end %>

<%= @text['intro'] %>

@@ -62,7 +64,9 @@ <%= hidden_field('user', 'display_name') %> <%= hidden_field('user', 'pass_crypt') %> <%= hidden_field('user', 'pass_crypt_confirmation') %> - <%= t 'user.terms.decline' %> - <%= submit_tag(t('user.terms.button')) %> +
+ +
<%= submit_tag(t('user.terms.button'), :class => 'float_right') %>
+

<% end %> diff --git a/config/application.yml b/config/application.yml index 363cc6398..7b2c603f0 100644 --- a/config/application.yml +++ b/config/application.yml @@ -22,6 +22,8 @@ standard_settings: &standard_settings # Quova authentication details #quova_username: "" #quova_password: "" + # Default legale (jurisdiction location) for contributor terms + default_legale: GB development: <<: *standard_settings diff --git a/config/locales/en.yml b/config/locales/en.yml index 1f0e59e0a..9b5e4e171 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1404,16 +1404,20 @@ en: 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 :-)

Please note that you will not be able to login until you've received and confirmed your email address.

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 + heading: "Contributor terms" press accept button: "Please read the agreement below and press the agree button to activate your account." consider_pd: "I consider my contributions to be in the Public Domain" - consider_pd_why: what's this? + 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 button: Agree exit_wiki: "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" diff --git a/lib/osm.rb b/lib/osm.rb index 50e31a7ff..b5f3cb1aa 100644 --- a/lib/osm.rb +++ b/lib/osm.rb @@ -510,7 +510,7 @@ module OSM 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", "GB.yml") unless File.exist? file_name + file_name = File.join(RAILS_ROOT, "config", "legales", APP_CONFIG['default_legale'] + ".yml") unless File.exist? file_name YAML::load_file(file_name) end diff --git a/public/stylesheets/common.css b/public/stylesheets/common.css index c5b98f3b3..362e5d619 100644 --- a/public/stylesheets/common.css +++ b/public/stylesheets/common.css @@ -739,3 +739,46 @@ abbr.geo { .table1 { background: #fff; } + +/* rules for styling a link to look like a button to get around the difficulty + * of laying anything out properly in html. */ + +a.looks_like_button { + color: black; + background: buttonface; + border: 1px solid black; + font-size: small; + padding: 1px; +} + +/* hack to get left/right alignment on a line working. apparently still works in IE too. + * shamelessly stolen from http://www.spartanicus.utvinternet.ie/left_and_right_alignment_using_css.htm + */ +div.left_right_line { + text-align:right; + margin:1em 0; + padding:0; + width:80%; +} +div.left_right_line div { + display:inline; + white-space:nowrap +} +div.left_right_line div.left { + float:left +} +#content>div.left_right_line { + display:table; + width:60% +} +#content>div.left_right_line div { + display:table-cell +} +#content>div.left_right_line div.left { + float:none; + text-align:left +} +#content>div.left_right_line div.right { + text-align:right +} + From adb0883d173c18590b66a1ebad1b335c54d3988d Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 27 Apr 2010 10:01:40 +0100 Subject: [PATCH 11/20] Ajaxify the country selection on the terms page --- app/controllers/user_controller.rb | 6 +++- app/views/user/_terms.html.erb | 30 ++++++++++++++++ app/views/user/terms.html.erb | 58 +++++++++--------------------- public/stylesheets/common.css | 7 ++++ 4 files changed, 58 insertions(+), 43 deletions(-) create mode 100644 app/views/user/_terms.html.erb diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index 603fb2a49..27d124dae 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -25,7 +25,11 @@ class UserController < ApplicationController @legale = params[:legale] || OSM.IPToCountry(request.remote_ip) || APP_CONFIG['default_legale'] @text = OSM.legal_text_for_country(@legale) - if @user.invalid? + if request.xhr? + render :update do |page| + page.replace_html "contributorTerms", :partial => "terms" + end + elsif @user.invalid? render :action => 'new' end end diff --git a/app/views/user/_terms.html.erb b/app/views/user/_terms.html.erb new file mode 100644 index 000000000..849f536e3 --- /dev/null +++ b/app/views/user/_terms.html.erb @@ -0,0 +1,30 @@ +

<%= @text['intro'] %>

+
    +
  1. +

    <%= @text['section_1'] %>

    +
  2. +
  3. +

    <%= @text['section_2'] %>

    +
  4. +
  5. +

    <%= @text['section_3'] %>

    +

    <%= @text['active_defn_1'] %>

    +

    <%= @text['active_defn_2'] %>

    +
  6. +
  7. +

    <%= @text['section_4'] %>

    +
  8. +
  9. +

    <%= @text['section_5'] %>

    +
  10. +
  11. +

    <%= @text['section_6'] %>

    +
      +
    1. <%= @text['section_6_1'] %>

    2. +
    3. <%= @text['section_6_2'] %>

    4. +
    +
  12. +
  13. +

    <%= @text['section_7'] %>

    +
  14. +
diff --git a/app/views/user/terms.html.erb b/app/views/user/terms.html.erb index daa4396ff..a370d4b48 100644 --- a/app/views/user/terms.html.erb +++ b/app/views/user/terms.html.erb @@ -4,51 +4,25 @@ <% form_tag :action => 'terms' do %> -

<%= t 'user.terms.legale_select' %>

- <% [['france', 'FR'], ['italy', 'IT'], ['rest_of_world', 'GB']].each do |name,legale| %> - <%= radio_button_tag 'legale', legale, @legale == legale %> - <%= label_tag "legale_#{legale}", t('user.terms.legale_names.' + name) %>
- <% end %> - <%= 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') %> - <%= submit_tag(t('user.terms.legale_button')) %> +

+ <%= 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 %> +

<% end %>
-

<%= @text['intro'] %>

-
    -
  1. -

    <%= @text['section_1'] %>

    -
  2. -
  3. -

    <%= @text['section_2'] %>

    -
  4. -
  5. -

    <%= @text['section_3'] %>

    -

    <%= @text['active_defn_1'] %>

    -

    <%= @text['active_defn_2'] %>

    -
  6. -
  7. -

    <%= @text['section_4'] %>

    -
  8. -
  9. -

    <%= @text['section_5'] %>

    -
  10. -
  11. -

    <%= @text['section_6'] %>

    -
      -
    1. <%= @text['section_6_1'] %>

    2. -
    3. <%= @text['section_6_2'] %>

    4. -
    -
  12. -
  13. -

    <%= @text['section_7'] %>

    -
  14. -
+ <%= render :partial => "terms" %>
<% form_tag :action => 'save' do %> diff --git a/public/stylesheets/common.css b/public/stylesheets/common.css index 362e5d619..2c99cf074 100644 --- a/public/stylesheets/common.css +++ b/public/stylesheets/common.css @@ -562,6 +562,13 @@ div#contributorTerms ol { margin-bottom: 0px; } +div#contributorTerms img { + display: block; + margin-left: auto; + margin-right: auto; + margin-top: 10%; +} + /* Rules for the account settings page */ #accountForm td { From d033a0f35d1a4cccfc7a5a73a9e1024d5c16daa5 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 27 Apr 2010 10:06:40 +0100 Subject: [PATCH 12/20] Pressing agree creates the account now rather than activating it --- config/locales/en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 9b5e4e171..420137984 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1405,7 +1405,7 @@ en: flash create success message: "User was successfully created. Check your email for a confirmation note, and you will be mapping in no time :-)

Please note that you will not be able to login until you've received and confirmed your email address.

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 activate your account." + 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 From 276c29cb3138b2bd3e36d5f24430c7d55df3b8bc Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 27 Apr 2010 10:45:49 +0100 Subject: [PATCH 13/20] Make the decline button a real button Make the decline button on the terms page a real form submit button and have the server redirect to the wiki as it's the only way to get something that will actually look the same as a button on all the different browsers. --- app/controllers/user_controller.rb | 2 ++ app/views/user/terms.html.erb | 4 ++-- config/locales/en.yml | 4 ++-- public/stylesheets/common.css | 11 ----------- 4 files changed, 6 insertions(+), 15 deletions(-) diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index 27d124dae..43a6db790 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -39,6 +39,8 @@ class UserController < ApplicationController 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]) diff --git a/app/views/user/terms.html.erb b/app/views/user/terms.html.erb index a370d4b48..5dac8f692 100644 --- a/app/views/user/terms.html.erb +++ b/app/views/user/terms.html.erb @@ -39,8 +39,8 @@ <%= hidden_field('user', 'pass_crypt') %> <%= hidden_field('user', 'pass_crypt_confirmation') %>
- -
<%= submit_tag(t('user.terms.button'), :class => 'float_right') %>
+
<%= submit_tag(t('user.terms.decline'), :name => "decline") %>
+
<%= submit_tag(t('user.terms.agree'), :name => "agree") %>

<% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 420137984..21931925a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1409,8 +1409,8 @@ en: 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 - button: Agree - exit_wiki: "http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined" + agree: Agree + declined: "http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined" decline: "Decline" legale_select: "Please select your country of residence:" legale_button: "Go" diff --git a/public/stylesheets/common.css b/public/stylesheets/common.css index 2c99cf074..d46013393 100644 --- a/public/stylesheets/common.css +++ b/public/stylesheets/common.css @@ -747,17 +747,6 @@ abbr.geo { background: #fff; } -/* rules for styling a link to look like a button to get around the difficulty - * of laying anything out properly in html. */ - -a.looks_like_button { - color: black; - background: buttonface; - border: 1px solid black; - font-size: small; - padding: 1px; -} - /* hack to get left/right alignment on a line working. apparently still works in IE too. * shamelessly stolen from http://www.spartanicus.utvinternet.ie/left_and_right_alignment_using_css.htm */ From 9241ecc8eecf08123415640727bf47afe617cd0c Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 27 Apr 2010 11:04:41 +0100 Subject: [PATCH 14/20] Improve layout of buttons on contributor terms page --- app/views/user/terms.html.erb | 8 +++---- public/stylesheets/common.css | 44 ++++++++++------------------------- 2 files changed, 16 insertions(+), 36 deletions(-) diff --git a/app/views/user/terms.html.erb b/app/views/user/terms.html.erb index 5dac8f692..049e07ca7 100644 --- a/app/views/user/terms.html.erb +++ b/app/views/user/terms.html.erb @@ -25,7 +25,7 @@ <%= render :partial => "terms" %>
-<% form_tag :action => 'save' do %> +<% form_tag({:action => "save"}, { :id => "termsForm" }) do %>

<%= check_box('user', 'consider_pd') %> @@ -38,9 +38,9 @@ <%= hidden_field('user', 'display_name') %> <%= hidden_field('user', 'pass_crypt') %> <%= hidden_field('user', 'pass_crypt_confirmation') %> -

-
<%= submit_tag(t('user.terms.decline'), :name => "decline") %>
-
<%= submit_tag(t('user.terms.agree'), :name => "agree") %>
+
+ <%= submit_tag(t('user.terms.decline'), :name => "decline", :id => "decline") %> + <%= submit_tag(t('user.terms.agree'), :name => "agree", :id => "agree") %>

<% end %> diff --git a/public/stylesheets/common.css b/public/stylesheets/common.css index d46013393..8435fd01f 100644 --- a/public/stylesheets/common.css +++ b/public/stylesheets/common.css @@ -569,6 +569,18 @@ div#contributorTerms img { 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 { @@ -746,35 +758,3 @@ abbr.geo { .table1 { background: #fff; } - -/* hack to get left/right alignment on a line working. apparently still works in IE too. - * shamelessly stolen from http://www.spartanicus.utvinternet.ie/left_and_right_alignment_using_css.htm - */ -div.left_right_line { - text-align:right; - margin:1em 0; - padding:0; - width:80%; -} -div.left_right_line div { - display:inline; - white-space:nowrap -} -div.left_right_line div.left { - float:left -} -#content>div.left_right_line { - display:table; - width:60% -} -#content>div.left_right_line div { - display:table-cell -} -#content>div.left_right_line div.left { - float:none; - text-align:left -} -#content>div.left_right_line div.right { - text-align:right -} - From d1eb6d6041d34d98558ada41696e06f7a4d74ca3 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Sun, 9 May 2010 19:06:31 +0200 Subject: [PATCH 15/20] Localisation updates from translatewiki.net (2010-05-09) --- config/locales/ar.yml | 2 +- config/locales/br.yml | 106 ++++++++++++++++----------------- config/locales/de.yml | 2 +- config/locales/gl.yml | 11 ++++ config/locales/ia.yml | 96 +++++++++++++++++++++++++++++ config/locales/nl.yml | 23 ++++++- config/locales/uk.yml | 15 ++++- config/locales/vi.yml | 11 ++++ config/potlatch/locales/br.yml | 1 + config/potlatch/locales/pt.yml | 10 ++++ config/potlatch/locales/ru.yml | 2 +- config/potlatch/locales/vi.yml | 1 + 12 files changed, 220 insertions(+), 60 deletions(-) diff --git a/config/locales/ar.yml b/config/locales/ar.yml index e4a57a76a..0f623b255 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -722,7 +722,7 @@ ar: subdivision: التقسيم الفرعي suburb: ضاحية town: بلدة - unincorporated_area: مساحة غير منظمة + unincorporated_area: منطقة فردية village: قرية railway: abandoned: سكة حديد مهجورة diff --git a/config/locales/br.yml b/config/locales/br.yml index 8c6ef9411..af785bf1e 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -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 kilometroù + 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 servijoù + 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. Abaoe ar c'hemm davet ar stumm API 0.6, ne c'hell nemet an dud gant an doare "kemmoù foran" embann kartennoù. (gouzout hiroc'h).
  • Ne vo ket roet ho chomlec'h e-mail d'an dud o kregiñ ganti.
  • An obererezh-se ne c'hell ket bezañ nullet hag an implijerien nevez a zo en doare "kemmoù foran" dre ziouer.
+ 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. 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ù. (gouzout hiroc'h).
  • Ne vo ket roet ho chomlec'h postel d'an dud.
  • N'hall ket an obererezh-se bezañ nullet hag emañ an holl implijerien nevez gant an doare "kemmoù foran" dre ziouer.
replace image: Erlec'hiañ ar skeudenn a-vremañ return to profile: Distreiñ d'ar profil save changes button: Enrollañ ar c'hemmoù diff --git a/config/locales/de.yml b/config/locales/de.yml index 5d61a478d..a48630fee 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -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 diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 8dbcdcff4..1b7cc5ef8 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -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 diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 9e82b2184..1744938ad 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -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 & 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: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index d2aeb55fe..d2471d234 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -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.
Klik op de verwijzing in de bevestigingse-mail om deze te activeren. + account suspended: Uw gebruiker is automatisch opgeschort vanwege verdachte activiteit.
Neem contact op met de webmaster als u deze handeling wilt bespreken. auth failure: Sorry, met deze gegevens kunt u niet aanmelden. 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: "

Uw gebruiker is automatisch opgeschort vanwege verdachte activiteit.

\n

Deze beslissing wordt snel beoordeeld door een beheerder, maar u kunt ook contact opnemen met de webmaster als u deze handeling wilt bespreken.

" + 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 diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 1909d145b..176384d30 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -928,6 +928,17 @@ uk: view_tooltip: Переглянути мапу welcome_user: Вітаємо, {{user_link}} welcome_user_link_tooltip: Ваша сторінка користувача + license_page: + foreign: + english_link: оригінал англійською + text: У разі суперечностей між цим перекладом та {{english_original_link}}, оригінал англійською маже перевагу. + title: Про цей переклад + legal_babble: "

Авторські права та Ліцензування

\n

\n Дані OpenStreetMap є відкрити даними, що ліцензуються на\n умовах Ліцензії Creative Commons Attribution-ShareAlike 2.0 (CC-BY-SA).\n

\n

\n Ви можете вільно копіювати, поширювати, передавати і адаптувати наші\n мапи і дані, до тих пір, поки ви посилаєтесь на OpenStreetMap та його\n спільноту. Якщо ви змінюєте або щось створюєте на основі нашої мапи\n чи даних, ви повинні розповсюджувати результати під такою ж Ліцензією.\n Повний, чинний текст Ліцензії роз’яснює ваші права та обов’язки.\n

\n\n

Як вказувати посилання на OpenStreetMap

\n

\n Якщо ви використовуєте зображення мапи OpenStreetMap, ми вимагаємо, щоб ви зазначали, принаймні, “© OpenStreetMap\n contributors, CC-BY-SA”. Якщо ви використовуєте тільки картографічні дані, ми вимагаємо наявності “Map data © OpenStreetMap contributors, CC-BY-SA”.\n

\n

\n Будь-де, де це можливо, повинне бути гіпертекстове посилання на OpenStreetMap http://www.openstreetmap.org/\n та на CC-BY-SA http://creativecommons.org/licenses/by-sa/2.0/. Якщо ви використовуєте\n носії де використання гіпертекстових посилань не можливе (наприклад:\n друковані твори), ми пропонуємо вам направляти ваших читачів\n безпосередньо до www.openstreetmap.org (можливо, шляхом розширення\n ‘OpenStreetMap’ до повної адреси) та до\n www.creativecommons.org.\n

\n\n

Дізнатися більше

\n

\n Дізнайтеся більше про використання наших даних у відповідях з правових питань.\n

\n

\n Учасники спільноти OSM повинні завжди пам’ятати про те, що\n забороняється додавати дані з будь-яких захищених авторським правом\n джерел (наприклад: Google Maps чи друковані мапи) без отримання\n попередньої згоди правовласників.\n

\n

\n Хоча OpenStreetMap містить вільні дані, ми не в змозі надавати\n безкоштовний API до наших мап стороннім розробникам.\n\n Дивіться Правила використання API,\n Правила використання частин мапи\n та Правили використання сервісу Nominatim.\n

\n\n

З нами співпрацюють

\n

\n Наша Ліцензія CC-BY-SA вимагає від вас “вказувати на Автора\n оригіналу певним чином, відповідно до носія даних, чи умов\n використання”. Окремі члени спільноти OSM не вимагатимуть\n вказувати більше ніж “OpenStreetMap contributors”, але\n якщо дані в OpenStreetMap отримані від національних картографічних\n агенцій чи інших важливих джерел, можливо має сенс вказати\n безпосередньо на них, зазначивши їх внесок або додавши посилання на\n цій сторінці.\n

\n\n\n\n
    \n
  • Австралія: дані передмість від Австралійського Бюро Статистики.
  • \n
  • Канада: дані від GeoBase®, GeoGratis (© Департамент природних ресурсів Канади)), CanVec (© Департамент природних ресурсів Канади)), та StatCan (Відділ Географії, Статистичне відомство Канади).
  • \n
  • Нова Зеландія: дані отримані з інформації про земельні ресурси Нової Зеландії. Crown Copyright reserved.
  • \n
  • Сполучене Королівство Великобританії: дані Ordnance\n Survey © Crown copyright and database right\n 2010.
  • \n
\n\n

\n Включення даних до OpenStreetMap не означає, що постачальник\n первинних даних якимось чином підтримує OpenStreetMap, чи надає\n підтримку або будь-які гарантії, або приймає на себе будь-яку\n відповідальність.\n

" + native: + mapping_link: почати створення мапи + native_link: української версії + text: Ви переглядаєте англійську версію сторінки авторських прав. Ви можете повернутись до {{native_link}} цієї сторінки або можете не читати про авторські права та {{mapping_link}}. + title: Про цю сторінку message: delete: deleted: Повідомлення вилучено @@ -1340,9 +1351,9 @@ uk: uploaded: "Завантажений на сервер:" visibility: "Видимість:" visibility: - identifiable: Ідентифікований (показується у переліку треків та як ідентифікований, впорядковані точки з часовими позначками) + identifiable: Ідентифікований (показується у переліку треків як ідентифіковані, впорядковані точки з часовими позначками) private: Приватний (доступний тільки як анонімний, невпорядковані точки) - public: Загальнодоступний (показуються у переліку треків та анонімно, невпорядковані точки) + public: Загальнодоступний (показується в переліку треків анонімно, як невпорядковані точки) trackable: Відстежуванний (доступний тільки як анонімний, впорядковані точки з часовими позначками) user: account: diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 5286cdd6c..0d2fd0f14 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -125,10 +125,12 @@ vi: all: next_changeset_tooltip: Bộ thay đổi sau next_node_tooltip: Node tiếp theo + next_relation_tooltip: Quan hệ sau next_way_tooltip: Đường tiếp theo prev_changeset_tooltip: Bộ thay đổi trước prev_node_tooltip: Node trước prev_relation_tooltip: Relation trước + prev_way_tooltip: Lối trước user: name_changeset_tooltip: Xem các đóng góp của {{user}} next_changeset_tooltip: Đóng góp sau của {{user}} @@ -217,6 +219,10 @@ vi: zoom_or_select: Phóng to hoặc chọn vùng bản đồ để xem tag_details: tags: "Thẻ:" + wiki_link: + key: Trang wiki miêu tả khóa {{key}} + tag: Trang wiki miêu tả thẻ {{key}}={{value}} + wikipedia_link: Bài {{page}} trên Wikipedia timeout: sorry: Rất tiếc, đã chờ lấy dữ liệu của {{type}} có ID {{id}} quá lâu. type: @@ -808,7 +814,12 @@ vi: foreign: english_link: nguyên bản tiếng Anh text: Trong trường hợp có xung đột giữa trang dịch và trang {{english_original_link}}, trang tiếng Anh sẽ được ưu tiên + title: Thông tin về bản dịch này + legal_babble: "

Bản quyền và Giấy phép

\n

\n OpenStreetMap là dữ liệu mở được phát hành theo giấy phép Creative Commons Ghi công–Chia sẻ tương tự 2.0 (CC-BY-SA).\n

\n

\n Bạn được tự do sao chép, phân phối, truyền, và tạo ra các tác phẩm phái sinh từ các bản đồ và dữ liệu của chúng ta, miễn là bạn ghi công OpenStreetMap và những người đóng góp vào nó. Nếu bạn sửa đổi hoặc tạo sản phẩm dựa trên các bản đồ và dữ liệu của chúng tôi, bạn chỉ được phép phân phối kết quả theo cùng giấy phép. mã pháp lý đầy đủ giải thích các quyền và trách nhiệm của bạn.\n

\n\n

Cách ghi công OpenStreetMap

\n

\n Nếu bạn đang sử dụng các hình ảnh bản đồ OpenStreetMap, chúng tôi yêu cầu rằng lời ghi công của bạn ít nhất đề “© những người đóng góp vào OpenStreetMap, CC-BY-SA”. Nếu bạn chỉ đang sử dụng dữ liệu bản đồ, chúng tôi xin câu “Dữ liệu © những người đóng góp vào OpenStreetMap, CC-BY-SA”.\n

\n

\n Lúc nào có thể, “OpenStreetMap” nên có liên kết đến http://www.openstreetmap.org/ và “CC-BY-SA” đến http://creativecommons.org/licenses/by-sa/2.0/. Nếu bạn đang sử dụng phương tiện không cho phép đặt liên kết (thí dụ trong tác phẩm in giấy), chúng tôi gợi ý chỉ các độc giả đến www.openstreetmap.org (có lẽ bằng cách mở rộng “OpenStreetMap” trở thành địa chỉ đầy đủ này) và đến www.creativecommons.org.\n

\n\n

Tìm hiểu thêm

\n

\n Hãy đọc thêm chi tiết về việc sử dụng dữ liệu của chúng tôi trong Hỏi đáp Pháp lý.\n

\n

\n Những người đóng góp vào OSM được khuyên không bao giờ bổ sung dữ liệu từ những nguồn có bản quyền (chẳng hạn Google Maps hoặc các bản đồ trên giấy) trước khi người hay công ty giữ bản quyền cho phép rõ ràng.\n

\n

\n Tuy OpenStreetMap là dữ liệu mở, nhưng chúng tôi không thể cung cấp API miễn phí để cho những nhà phát triển bên thứ ba truy cập bản đồ. Hãy xem Quy định Sử dụng API, Quy định Sử dụng Hình ảnh Bản đồ, và Quy định Sử dụng Nominatim.\n

\n\n

Những người đóng góp vào đây

\n

\n Giấy phép CC-BY-SA của chúng tôi bắt bạn phải “ghi công Tác giả Đầu tiên bằng cách hợp với phương tiện Bạn đang sử dụng”. Những cá nhân vẽ bản đồ OSM không yêu cầu lời ghi công dứt khoát hơn “những người đóng góp vào OpenStreetMap”, nhưng trong những trường hợp dữ liệu của cơ quan khảo sát quốc gia hoặc nguồn lớn khác đã được nhập vào OpenStreetMap, có thể có lý ghi công nguồn này bằng cách ghi công họ thẳng hoặc đặt liên kết đến trang này.\n

\n\n\n\n
    \n
  • Canada: Bao gồm dữ liệu từ GeoBase®, GeoGratis (© Bộ Tài nguyên Canada), CanVec (© Bộ Tài nguyên Canada), và StatCan (Sở Địa lý, Statistics Canada).
  • \n
  • New Zealand: Bao gồm dữ liệu bắt nguồn từ Land Information New Zealand. Bản quyền Crown Copyright được bảo lưu.
  • \n
  • Úc: Bao gồm dữ liệu về ngoại ô dựa trên dữ liệu của Cục Thống kê Úc.
  • \n
  • Vương quốc Anh: Bao gồm dữ liệu Ordnance Survey © bản quyền Crown Copyright và quyền cơ sở dữ liệu 2010.
  • \n
\n\n

\n Việc bao gồm dữ liệu trong OpenStreetMap không ngụ ý rằng nhà cung cấp dữ liệu đầu tiên ủng hộ OpenStreetMap, biện hộ sự chính xác của nó, hoặc nhận trách nhiệm pháp lý nào.\n

" native: + mapping_link: bắt đầu vẽ bản đồ + native_link: bản dịch tiếng Việt + text: Đây là bản tiếng Anh của trang bản quyền. Trở về {{native_link}} của trang này hoặc {{mapping_link}} thay vì đọc mãi. title: Giới thiệu về trang này message: delete: diff --git a/config/potlatch/locales/br.yml b/config/potlatch/locales/br.yml index a4835ac05..1159102a5 100644 --- a/config/potlatch/locales/br.yml +++ b/config/potlatch/locales/br.yml @@ -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 :" diff --git a/config/potlatch/locales/pt.yml b/config/potlatch/locales/pt.yml index b8d1b417c..0e1fd1549 100644 --- a/config/potlatch/locales/pt.yml +++ b/config/potlatch/locales/pt.yml @@ -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 diff --git a/config/potlatch/locales/ru.yml b/config/potlatch/locales/ru.yml index 4c68721f6..21aae22b9 100644 --- a/config/potlatch/locales/ru.yml +++ b/config/potlatch/locales/ru.yml @@ -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: Пожарная часть diff --git a/config/potlatch/locales/vi.yml b/config/potlatch/locales/vi.yml index 3d48cca13..c6697d8ce 100644 --- a/config/potlatch/locales/vi.yml +++ b/config/potlatch/locales/vi.yml @@ -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:" From 703c44eeab0ff078bf6a74887fbb1c94a50f80b3 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 11 May 2010 08:59:04 +0100 Subject: [PATCH 16/20] Add spam block ACLs with the right key --- script/update-spam-blocks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/update-spam-blocks b/script/update-spam-blocks index eaf7d9dc3..903fc9b8a 100755 --- a/script/update-spam-blocks +++ b/script/update-spam-blocks @@ -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" ) From 89ec02ea0af6b7b64df007ac20016cce4163621e Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 11 May 2010 19:06:30 +0100 Subject: [PATCH 17/20] Renumber migration to avoid conflict with master --- ...utor_terms_to_user.rb => 052_add_contributor_terms_to_user.rb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename db/migrate/{050_add_contributor_terms_to_user.rb => 052_add_contributor_terms_to_user.rb} (100%) diff --git a/db/migrate/050_add_contributor_terms_to_user.rb b/db/migrate/052_add_contributor_terms_to_user.rb similarity index 100% rename from db/migrate/050_add_contributor_terms_to_user.rb rename to db/migrate/052_add_contributor_terms_to_user.rb From 07f0dddc6328760adb587a2908195991bf80b24a Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 11 May 2010 19:13:38 +0100 Subject: [PATCH 18/20] Add parentheses to avoid warning --- app/controllers/user_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index 1bab42266..e07b65af7 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -40,7 +40,7 @@ class UserController < ApplicationController 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' + redirect_to t('user.terms.declined') else @user = User.new(params[:user]) From e0059261313d963f337ad0a12d236a4856c227b6 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 11 May 2010 19:17:14 +0100 Subject: [PATCH 19/20] Update test to reflect changes in signup page --- test/functional/user_controller_test.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/functional/user_controller_test.rb b/test/functional/user_controller_test.rb index f0e945e20..cbe66a0db 100644 --- a/test/functional/user_controller_test.rb +++ b/test/functional/user_controller_test.rb @@ -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 From 66221ba9b8e490ff2e863062dc38eefbaef374be Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 11 May 2010 19:44:47 +0100 Subject: [PATCH 20/20] Fix site name --- config/environment.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/environment.rb b/config/environment.rb index 93b6e86d2..d8f9b2fc8 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -8,7 +8,7 @@ ENV['RAILS_ENV'] ||= 'production' RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION # Set the server URL -SERVER_URL = ENV['OSM_SERVER_URL'] || 'contributor_terms.dev.openstreetmap.org' +SERVER_URL = ENV['OSM_SERVER_URL'] || 'www.openstreetmap.org' # Set the generator GENERATOR = ENV['OSM_SERVER_GENERATOR'] || 'OpenStreetMap server'