[ckan-changes] commit/ckan: 3 new changesets

Bitbucket commits-noreply at bitbucket.org
Fri Oct 14 12:51:25 UTC 2011


3 new changesets in ckan:

http://bitbucket.org/okfn/ckan/changeset/50948e0ce3c0/
changeset:   50948e0ce3c0
branch:      release-v1.5
user:        dread
date:        2011-10-14 14:25:14
summary:     [controllers,logic,templates]: #1386 transplant of branch feature-1386-no-account-creation-via-openid (up to 1605cb0763a0).
affected #:  9 files (-1 bytes)

--- a/ckan/controllers/user.py	Thu Oct 13 17:56:04 2011 +0100
+++ b/ckan/controllers/user.py	Fri Oct 14 13:25:14 2011 +0100
@@ -222,8 +222,8 @@
             context['message'] = data_dict.get('log_message', '')
             data_dict['id'] = id
             user = get_action('user_update')(context, data_dict)
-
-            h.redirect_to(controller='user', action='read', id=user['id'])
+            h.flash_success(_('Profile updated'))
+            h.redirect_to(controller='user', action='read', id=user['name'])
         except NotAuthorized:
             abort(401, _('Unauthorized to edit user %s') % id)
         except NotFound, e:


--- a/ckan/lib/authenticator.py	Thu Oct 13 17:56:04 2011 +0100
+++ b/ckan/lib/authenticator.py	Fri Oct 14 13:25:14 2011 +0100
@@ -11,20 +11,9 @@
             openid = identity.get('repoze.who.plugins.openid.userid')
             user = User.by_openid(openid)
             if user is None:
-                # TODO: Implement a mask to ask for an alternative user 
-                # name instead of just using the OpenID identifier. 
-                name = identity.get('repoze.who.plugins.openid.nickname')
-                if not User.check_name_valid(name):
-                    name = openid
-                if not User.check_name_available(name):
-                    name = openid
-                user = User(openid=openid, name=name,
-                        fullname=identity.get('repoze.who.plugins.openid.fullname'),
-                        email=identity.get('repoze.who.plugins.openid.email'))
-                Session.add(user)
-                Session.commit()
-                Session.remove()
-            return user.name
+                return None
+            else:
+                return user.name
         return None
     
 


--- a/ckan/logic/schema.py	Thu Oct 13 17:56:04 2011 +0100
+++ b/ckan/logic/schema.py	Fri Oct 14 13:25:14 2011 +0100
@@ -213,10 +213,10 @@
         'name': [not_empty, unicode, user_name_validator],
         'fullname': [ignore_missing, unicode],
         'password': [user_password_validator, user_password_not_empty, ignore_missing, unicode],
-        'email': [ignore_missing, unicode],
+        'email': [not_empty, unicode],
         'about': [ignore_missing, user_about_validator, unicode],
         'created': [ignore],
-        'openid': [ignore],
+        'openid': [ignore_missing],
         'apikey': [ignore],
         'reset_key': [ignore],
     }


--- a/ckan/templates/user/edit_user_form.html	Thu Oct 13 17:56:04 2011 +0100
+++ b/ckan/templates/user/edit_user_form.html	Fri Oct 14 13:25:14 2011 +0100
@@ -12,13 +12,15 @@
 </ul></div><fieldset>
-    <legend>Base details</legend><dl><dt><label for="fullname">Full name:</label></dt><dd><input type="text" name="fullname" value="${data.get('fullname','')}" /></dd><dt><label for="email">E-Mail:</label></dt><dd><input type="text" name="email" value="${data.get('email','')}" /></dd>
+
+    <dt><label for="openid">OpenID:</label></dt>
+    <dd><input type="text" name="openid" value="${data.get('openid','')}" /></dd><dt><label for="about">About:</label></dt><dd class="description-field">
@@ -43,6 +45,13 @@
     <dd><input type="password" name="password2" value="" /></dd></dl></fieldset>
+  <fieldset>
+    <legend>Change your username</legend>
+    <dl>
+    <dt><label for="name">Username:</label></dt>
+    <dd><input type="text" name="name" value="${data.get('name','')}" /></dd>
+    </dl>
+  </fieldset><div class="form-submit"><input id="save" class="pretty-button primary" name="save" type="submit" value="${_('Save Changes')}" /><input id="cancel" class="pretty-button href-action" name="cancel" type="reset" value="${_('Cancel')}" action="${h.url_for(controller='user', action='read')}" />


--- a/ckan/templates/user/login.html	Thu Oct 13 17:56:04 2011 +0100
+++ b/ckan/templates/user/login.html	Fri Oct 14 13:25:14 2011 +0100
@@ -16,20 +16,6 @@
     </script></py:def>
   
-  <py:match path="primarysidebar">
-    <li class="widget-container boxed widget_text">
-      <h2>Not a member?</h2>
-      <p>
-      Join CKAN to contribute datasets under your own name.
-      </p>
-      <ul>
-        <li>${h.link_to(_('Register'), h.url_for(action='register'))}</li>
-        <li>${h.link_to(_('Reset your password'), h.url_for(action='request_reset'))}</li>
-        <li>${h.link_to(_('Privacy Policy'), 'http://www.okfn.org/privacy-policy/')}</li>
-      </ul>
-    </li>
-  </py:match>
-  
   <py:def function="page_title">Login - User</py:def><py:def function="page_heading">Login to ${g.site_title}</py:def>
 
@@ -50,6 +36,8 @@
       </fieldset>
       ${h.submit('s', _('Login'))} — 
       <a href="${h.url_for('reset')}">Forgot your password?</a>
+      —
+      ${h.link_to(_('Not yet registered?'), h.url_for(action='register'))}
     </form><br/><!-- Simple OpenID Selector -->


--- a/ckan/templates/user/new.html	Thu Oct 13 17:56:04 2011 +0100
+++ b/ckan/templates/user/new.html	Fri Oct 14 13:25:14 2011 +0100
@@ -2,22 +2,8 @@
   xmlns:xi="http://www.w3.org/2001/XInclude"
   py:strip="">
   
-  <py:match path="primarysidebar">
-    <li class="widget-container widget_text">
-      <h3>Have an OpenID?</h3>
-      <p>
-        If you have an account with Google, Yahoo or one of many other 
-        OpenID providers, you can log in without signing up. 
-      </p>
-      <ul>
-        <li>${h.link_to(_('Log in now'), h.url_for(action='login'))}</li>
-      </ul>
-    </li>
-  </py:match>
-  
   <py:def function="page_title">Register - User</py:def>
-  <py:def function="page_heading">Join the community</py:def>
-  
+  <py:def function="page_heading">Register for a new Account</py:def><div py:match="content">
     ${Markup(c.form)}


--- a/ckan/templates/user/new_user_form.html	Thu Oct 13 17:56:04 2011 +0100
+++ b/ckan/templates/user/new_user_form.html	Fri Oct 14 13:25:14 2011 +0100
@@ -12,8 +12,6 @@
 </ul></div>
 
-<fieldset>
-    <legend i18n:msg="site_title">Register with CKAN</legend><dl><dt><label class="field_opt" for="name">Login:</label></dt><dd><input type="text" name="name" value="${data.get('name','')}" /></dd>
@@ -24,7 +22,7 @@
         <dd><input type="text" name="fullname" value="${data.get('fullname','')}" /></dd><dd class="field_error" py:if="errors.get('fullname', '')">${errors.get('fullname', '')}</dd>
 
-        <dt><label class="field_opt" for="email">E-Mail (optional):</label></dt>
+        <dt><label class="field_opt" for="email">E-Mail</label></dt><dd><input type="text" name="email" value="${data.get('email','')}" /></dd><dt><label class="field_opt" for="password1">Password:</label></dt>
@@ -47,8 +45,5 @@
         </dd></dl>
-</fieldset>
-
-  <br />
-  <input id="save" name="save" type="submit" value="Save" />
+  <input id="save" name="save" type="submit" value="Register now »" /></form>


--- a/ckan/templates/user/request_reset.html	Thu Oct 13 17:56:04 2011 +0100
+++ b/ckan/templates/user/request_reset.html	Fri Oct 14 13:25:14 2011 +0100
@@ -4,22 +4,15 @@
   py:strip=""><py:def function="page_title">Reset password</py:def>
+  <py:def function="page_heading">Request a password reset</py:def><div py:match="content">
-    <h2>
-      Request a password reset
-    </h2>
-
     <form id="user-password-reset" action="" method="post" class="simple-form" 
-      xmlns:py="http://genshi.edgewall.org/"
-      xmlns:xi="http://www.w3.org/2001/XInclude"
       ><fieldset>
-        <legend>Reset password</legend><label for="user">User name:</label><input name="user" value="" /><br/></fieldset>
-
       <div>
         ${h.submit('reset', _('Reset password'))}
       </div>


--- a/ckan/tests/functional/test_user.py	Thu Oct 13 17:56:04 2011 +0100
+++ b/ckan/tests/functional/test_user.py	Fri Oct 14 13:25:14 2011 +0100
@@ -262,6 +262,7 @@
         username = 'testcreate'
         fullname = u'Test Create'
         password = u'testpassword'
+        email = u'test at test.org'
         assert not model.User.by_name(unicode(username))
         rev_id_before_test = model.repo.youngest_revision().id
 
@@ -272,6 +273,7 @@
         fv = res.forms['user-edit']
         fv['name'] = username
         fv['fullname'] = fullname
+        fv['email'] = email
         fv['password1'] = password
         fv['password2'] = password
         res = fv.submit('save')
@@ -294,6 +296,7 @@
         assert user
         assert_equal(user.name, username)
         assert_equal(user.fullname, fullname)
+        assert_equal(user.email, email)
         assert user.password
         
         # no revision should be created - User is not revisioned
@@ -314,6 +317,7 @@
         username = u'testcreate4'
         fullname = u'Test Create\xc2\xa0'
         password = u'testpassword\xc2\xa0'
+        email = u'me at test.org'
         assert not model.User.by_name(username)
 
         offset = url_for(controller='user', action='register')
@@ -323,6 +327,7 @@
         fv = res.forms['user-edit']
         fv['name'] = username
         fv['fullname'] = fullname.encode('utf8')
+        fv['email'] = email
         fv['password1'] = password.encode('utf8')
         fv['password2'] = password.encode('utf8')
         res = fv.submit('save')
@@ -465,7 +470,8 @@
         user = model.User.by_name(unicode(username))
         if not user:
             model.Session.add(model.User(name=unicode(username), about=about,
-                                         password='letmein'))
+                email=u'me at test.org',
+                password='letmein'))
             model.repo.commit_and_remove()
             user = model.User.by_name(unicode(username))
         rev_id_before_test = model.repo.youngest_revision().id
@@ -473,6 +479,7 @@
         # edit
         new_about = u'Changed about'
         new_password = u'testpass'
+        new_openid = u'http://mynewopenid.com/'
         offset = url_for(controller='user', action='edit', id=user.id)
         res = self.app.get(offset, status=200, extra_environ={'REMOTE_USER':username})
         main_res = self.main_div(res)
@@ -480,6 +487,7 @@
         assert about in main_res, main_res
         fv = res.forms['user-edit']
         fv['about'] = new_about
+        fv['openid'] = new_openid
         fv['password1'] = new_password
         fv['password2'] = new_password
 
@@ -491,6 +499,9 @@
         assert 'testedit' in main_res, main_res
         assert new_about in main_res, main_res
 
+        updated_user = model.User.by_name(unicode(username))
+        assert_equal(updated_user.openid, new_openid)
+
         # read, not logged in
         offset = url_for(controller='user', action='read', id=user.id)
         res = self.app.get(offset, status=200)
@@ -508,7 +519,8 @@
         user = model.User.by_name(unicode(username))
         if not user:
             model.Session.add(model.User(name=unicode(username), about=about,
-                                         password='letmein'))
+                email=u'me at test.org',
+                password='letmein'))
             model.repo.commit_and_remove()
             user = model.User.by_name(unicode(username))
 


http://bitbucket.org/okfn/ckan/changeset/ceb0b2b6f519/
changeset:   ceb0b2b6f519
branch:      release-v1.5
user:        dread
date:        2011-10-14 14:25:55
summary:     [tests]: #1386 transplant of cset:8afbf99512c8.
affected #:  1 file (-1 bytes)

--- a/ckan/tests/functional/api/test_action.py	Fri Oct 14 13:25:14 2011 +0100
+++ b/ckan/tests/functional/api/test_action.py	Fri Oct 14 13:25:55 2011 +0100
@@ -256,6 +256,7 @@
     def test_09_user_create(self):
         user_dict = {'name':'test_create_from_action_api',
                       'about': 'Just a test user',
+                      'email': 'me at test.org',
                       'password':'testpass'}
 
         postparams = '%s=1' % json.dumps(user_dict)
@@ -286,6 +287,7 @@
             'error': {
                 '__type': 'Validation Error',
                 'name': ['Missing value'],
+                'email': ['Missing value'],
                 'password': ['Missing value']
             },
             'help': 'Creates a new user',
@@ -294,6 +296,7 @@
 
     def test_11_user_create_wrong_password(self):
         user_dict = {'name':'test_create_from_action_api_2',
+                'email':'me at test.org',
                       'password':'tes'} #Too short
 
         postparams = '%s=1' % json.dumps(user_dict)
@@ -314,10 +317,12 @@
     def test_12_user_update(self):
         normal_user_dict = {'id': self.normal_user.id,
                             'fullname': 'Updated normal user full name',
+                            'email': 'me at test.org',
                             'about':'Updated normal user about'}
 
         sysadmin_user_dict = {'id': self.sysadmin_user.id,
                             'fullname': 'Updated sysadmin user full name',
+                            'email': 'me at test.org',
                             'about':'Updated sysadmin user about'} 
 
         #Normal users can update themselves


http://bitbucket.org/okfn/ckan/changeset/577a88d032ff/
changeset:   577a88d032ff
branch:      release-v1.5
user:        dread
date:        2011-10-14 14:51:14
summary:     [i18n]: Updated the latest strings from Transifex.
affected #:  2 files (-1 bytes)

Binary file ckan/i18n/fr/LC_MESSAGES/ckan.mo has changed


--- a/ckan/i18n/fr/LC_MESSAGES/ckan.po	Fri Oct 14 13:25:55 2011 +0100
+++ b/ckan/i18n/fr/LC_MESSAGES/ckan.po	Fri Oct 14 13:51:14 2011 +0100
@@ -11,7 +11,7 @@
 "Project-Id-Version: CKAN (Comprehensive Knowledge Archive Network)\n"
 "Report-Msgid-Bugs-To: http://www.ckan.org/\n"
 "POT-Creation-Date: 2011-10-12 15:40+0100\n"
-"PO-Revision-Date: 2011-10-12 21:09+0000\n"
+"PO-Revision-Date: 2011-10-14 08:03+0000\n"
 "Last-Translator: keronos <aka.keronos at gmail.com>\n"
 "Language-Team: French (http://www.transifex.net/projects/p/ckan/team/fr/)\n"
 "MIME-Version: 1.0\n"
@@ -270,9 +270,8 @@
 "<span class=\"new-dataset\">Congratulations, your dataset has been created. "
 "<a href=\"%s\">Upload or link some data now »</a></span>"
 msgstr ""
-"<span class=\"new-dataset\">Félicitations, votre jeu de données a été créé. "
-"<a href=\"%s\">Vous pouvez transférer ou lier des données maintenant "
-"»</a></span>"
+"Félicitations, votre jeu de données a été créé. <a href=\"%s\">Vous pouvez "
+"transférer ou lier des données maintenant"
 
 #: ckan/controllers/revision.py:42
 msgid "CKAN Repository Revision History"
@@ -598,20 +597,19 @@
 " file format in which the data is supplied. <br /><b>Description</b> Any "
 "information you want to add to describe the resource.<br />"
 msgstr ""
-"<br />Vous pouvez répéter ce champ autant de fois que nécessaire. Par "
-"exemple, si les données sont disponibles dans plusieurs formats, ou "
-"réparties en périodes ou zones géographiques différentes, chaque fichier est"
-" une \"ressource\" différente qui doit être décrite différemment. Elles "
-"apparaîtront ensemble sur la page du jeu de données dans CKAN.<br /><br /> "
-"<b>URL:</b> saisissez le lien qui manèe directement à la donnée - en "
-"sélectionnant ce lien dans un navigateur Internet, l'utilisateur "
-"téléchargera directement le jeu de donnée intégralement. Notez que les jeux "
-"de données ne sont pas hébergés sur ce site, mais par l'éditeur de la "
-"donnée. Alternativement, l'URL peut pointer vers un serveur d'API tel qu'un "
-"point d'accès SPARQL ou un service JSON-P.<br /><b>Format:</b> saisissez "
-"ici le format dans lequel le jeu de données est mis à disposition. <br "
-"/><b>Description:</b> saisissez ici toute information utile que vous "
-"souhaiteriez ajouter à la description de la ressource à télécharger.<br />"
+"Vous pouvez répéter ce champ autant de fois que nécessaire. Par exemple, si "
+"les données sont disponibles dans plusieurs formats, ou réparties en "
+"périodes ou zones géographiques différentes, chaque fichier est une "
+"\"ressource\" différente qui doit être décrite différemment. Elles "
+"apparaîtront ensemble sur la page du jeu de données dans CKAN.URL: saisissez"
+" le lien qui manèe directement à la donnée - en sélectionnant ce lien dans "
+"un navigateur Internet, l'utilisateur téléchargera directement le jeu de "
+"donnée intégralement. Notez que les jeux de données ne sont pas hébergés sur"
+" ce site, mais par l'éditeur de la donnée. Alternativement, l'URL peut "
+"pointer vers un serveur d'API tel qu'un point d'accès SPARQL ou un service "
+"JSON-P.Format: saisissez ici le format dans lequel le jeu de données est mis"
+" à disposition. Description: saisissez ici toute information utile que vous "
+"souhaiteriez ajouter à la description de la ressource à télécharger."
 
 #: ckan/forms/package.py:76
 msgid ""
@@ -1580,7 +1578,7 @@
 "          [1:authorization group] can be set-up and users can be added to it."
 msgstr ""
 "Au lieu de définir les droits d'utilisateurs particuliers sur un jeu de données ou un groupe,\n"
-"          Vous pouvez également définir un ensemble d'utilisateurs qui partageront les mêmes droits. POur achever cela, un    \n"
+"          Vous pouvez également définir un ensemble d'utilisateurs qui partageront les mêmes droits. Pour achever cela, un    \n"
 "          [1:groupe d'autorisation] peut être créé et des utilisateurs peuvent lui être ajoutés."
 
 #: ckan/templates/authorization_group/layout.html:28
@@ -1796,7 +1794,7 @@
 "CKAN is the Comprehensive Knowledge Archive Network, a [1:registry] of [2:open knowledge] datasets and projects\n"
 "    (and a few closed ones)."
 msgstr ""
-"CKAN est le Réseau d'Archives de la Connaissance Compréhensible, un [1:registry] de jeux de données et de projets [2:open knowledge]  \n"
+"CKAN est le Réseau d'Archives de la Connaissance Compréhensible, un [1:catalogue] de jeux de données et de projets de [2:connaissances ouvertes]  \n"
 "    (et de quelque uns fermés)."
 
 #: ckan/templates/home/about.html:15
@@ -1805,8 +1803,8 @@
 "      content and data], especially in ways that are machine\n"
 "      automatable."
 msgstr ""
-"CKAN facilite la [1:find, share and reuse open\n"
-"      content and data], en offrant notamment des accès programmatiques."
+"CKAN facilite la [1:trouver, partager et réutiliser des données et du "
+"contenu ouverts], en offrant notamment des accès programmatiques."
 
 #: ckan/templates/home/about.html:20
 msgid ""
@@ -1824,8 +1822,8 @@
 "\t\tcontent resources. However it adds to a simple registry in key ways."
 msgstr ""
 "Comme l'indique ce diagramme, CKAN combine les fonctionnalités d'un listing/catalogue,\n"
-"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span>un index de jeux de données et un wiki. En tant que catalogue il se comporte comme [1:freshmeat] mais pour ce qui concerne les données ouvertes et les\n"
-"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span>ressources de contenu. Cependant, il ajoute aux fonctionnalités d'un simple catalogue de plusieurs manières."
+"»» un index de jeux de données et un wiki. En tant que catalogue il se comporte comme [1:freshmeat] mais pour ce qui concerne les données ouvertes et les\n"
+"»» ressources de contenu. Cependant, il ajoute aux fonctionnalités d'un simple catalogue de plusieurs manières."
 
 #: ckan/templates/home/about.html:29
 msgid ""
@@ -1837,13 +1835,13 @@
 "\t\tagain for [4:open data and content]\n"
 "\t\tnot code."
 msgstr ""
-"Premièrement, grâce à son socle [1:versioned domain model] CKAN bénéficie d'une\n"
-"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span>interface de type wiki qui permet à chacun d'ajouter et de compléter le contenu disponible. Ensuite,\n"
-"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span>contrairement à un wiki, CKAN peut stocker de l'information \"structurée\", qui lui permet de\n"
-"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span>fournir des fonctionnalités de type \"index\"comme le référencement automatique, la découverte\n"
-"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span>et l'installation de matériaux. De ce point de vue, il se comporte comme [2:CPAN] ou [3:PyPI] dans le monde du logiciel -- mais\n"
-"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span>pour [4:open data and content]\n"
-"<span class=\"whitespace other\" title=\"Tab\">»</span><span class=\"whitespace other\" title=\"Tab\">»</span>et pas le code."
+"Premièrement, grâce à son socle [1:modèle de version de domaine] CKAN bénéficie d'une\n"
+"»» interface de type wiki qui permet à chacun d'ajouter et de compléter le contenu disponible. Ensuite,\n"
+"»» contrairement à un wiki, CKAN peut stocker de l'information \"structurée\", qui lui permet de\n"
+"»» fournir des fonctionnalités de type \"index\"comme le référencement automatique, la découverte\n"
+"»» et l'installation de matériaux. De ce point de vue, il se comporte comme [2:CPAN] ou [3:PyPI] dans le monde du logiciel -- mais\n"
+"»» pour [4:les données et le contenu ouverts]\n"
+"»» et pas le code."
 
 #: ckan/templates/home/about.html:40
 msgid ""
@@ -1851,8 +1849,8 @@
 "    be found in [1:these\n"
 "      slides]."
 msgstr ""
-"Plus d'information à propos de CKAN, et l'historique de sa création peut être trouvée dans [1:these\n"
-"      slides]."
+"Plus d'information à propos de CKAN, et l'historique de sa création peut "
+"être trouvée dans [1:ces diapositives]."
 
 #: ckan/templates/home/index.html:6
 msgid "Welcome"
@@ -1994,8 +1992,8 @@
 "editing this page if you are [4:not] happy to do this."
 msgstr ""
 "[1:Important:] En soumettant du contenu, vous acceptez de publier vos "
-"contributions sous [2:Open Database License]. Merci de vous  [3:refrain] de "
-"modifier cette page si vous n'êtes [4:not] d'accord."
+"contributions sous [2:Licence Base de données Ouvertes]. Merci de vous  "
+"[3:restreindre] de modifier cette page si vous n'êtes [4:pas] d'accord."
 
 #: ckan/templates/package/history.html:7
 msgid "History:"
@@ -2108,7 +2106,7 @@
 "    [1:Click here to sign in] before saving (opens in new window)."
 msgstr ""
 "Comme vous ne vous êtes pas identifié, seule votre adresse IP apparaîtra.\n"
-"    [1:Click here to sign in] avant de sauvegarder (ouvre une nouvelle fenêtre)."
+"    [1:Cliquez ici pour vous connecter] avant de sauvegarder (ouvre une nouvelle fenêtre)."
 
 #: ckan/templates/package/read.html:14
 msgid "- Datasets"
@@ -2278,7 +2276,7 @@
 "[1:There was an error while searching.] \n"
 "            Please try again."
 msgstr ""
-"[1:There was an error while searching.] \n"
+"[1:Une erreur est survenue pendant la recherche.] \n"
 "            Merci d'essayer à nouveau."
 
 #: ckan/templates/package/search.html:55
@@ -2288,7 +2286,7 @@
 
 #: ckan/templates/package/search.html:58
 msgid "Would you like to [1:create a new dataset?]"
-msgstr "Voulez-vous créer un [1:create a new dataset?]"
+msgstr "Voulez-vous [1:créer un nouveau jeu de données?]"
 
 #: ckan/templates/package/search_form.html:9
 msgid "Search..."
@@ -2524,9 +2522,11 @@
 "          OpenID enabled account]. Probably the simplest way is sign up with a\n"
 "          free OpenID provider such as [3:https://www.myopenid.com/]."
 msgstr ""
-"OpenID est un service qui permet de s'identifier avec une identité unique dans des sites web différents. Apprenez en [1:more\n"
-"          about OpenID] et [2:how to get an\n"
-"          OpenID enabled account]. Le moyen le plus simple est probablement de vous inscrire avec un fournisseur d'OpenID gratuit comme [3:https://www.myopenid.com/]."
+"OpenID est un service qui permet de s'identifier avec une identité unique "
+"dans des sites web différents. Apprenez en [1:plus sur l'OpenID] et "
+"[2:comment obtenir un compte openID fonctionnel]. Le moyen le plus simple "
+"est probablement de vous inscrire avec un fournisseur d'OpenID gratuit comme"
+" [3:https://www.myopenid.com/]."
 
 #: ckan/templates/user/logout.html:5
 msgid "Logout - User"

Repository URL: https://bitbucket.org/okfn/ckan/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.




More information about the ckan-changes mailing list