|
From: <pb...@fe...> - 2012-03-11 09:25:11
|
Author: pboy
Date: 2012-03-11 09:24:59 +0000 (Sun, 11 Mar 2012)
New Revision: 2288
Modified:
trunk/ccm-core/src/com/arsdigita/ui/login/ChangePasswordForm.java
trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources.properties
trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources_de.properties
trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources_en.properties
trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources_fr.properties
Log:
UI improvement, added intruductionary text and user name to changePassword form.
Modified: trunk/ccm-core/src/com/arsdigita/ui/login/ChangePasswordForm.java
===================================================================
--- trunk/ccm-core/src/com/arsdigita/ui/login/ChangePasswordForm.java 2012-03-11 09:22:35 UTC (rev 2287)
+++ trunk/ccm-core/src/com/arsdigita/ui/login/ChangePasswordForm.java 2012-03-11 09:24:59 UTC (rev 2288)
@@ -44,42 +44,43 @@
import com.arsdigita.web.URL;
import com.arsdigita.web.ReturnSignal;
import com.arsdigita.kernel.Kernel;
+import com.arsdigita.kernel.Party;
import com.arsdigita.kernel.User;
import com.arsdigita.kernel.UserAuthentication;
import com.arsdigita.kernel.security.RecoveryLoginModule;
import com.arsdigita.mail.Mail;
import com.arsdigita.util.UncheckedWrapperException;
+import java.lang.reflect.Array;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
/**
* A Form that allows a user to change their password by entering their old
- * password, a new password, and a confirmation of their new password.
- * Requires that the user is logged in. Requires that new password differ
- * from old and meet strong password requirements. If the user is
- * recovering from a lost password (UserContext.isRecovering() is true),
- * does not require or display the old password parameter and does not
- * require that new password differ from old. Mails the user to notify of
- * password change. Redirects user to workspace or return_url if set.
+ * password, a new password, and a confirmation of their new password. Requires
+ * that the user is logged in. Requires that new password differ from old and
+ * meet strong password requirements. If the user is recovering from a lost
+ * password (UserContext.isRecovering() is true), does not require or display
+ * the old password parameter and does not require that new password differ from
+ * old. Mails the user to notify of password change. Redirects user to workspace
+ * or return_url if set.
*
* @author Sameer Ajmani
- **/
+ *
+ */
public class ChangePasswordForm extends Form
- implements FormProcessListener,
- FormValidationListener {
+ implements FormProcessListener,
+ FormValidationListener {
private static final Logger s_log =
- Logger.getLogger(ChangePasswordForm.class.getName());
-
+ Logger.getLogger(ChangePasswordForm.class.getName());
final static String CHANGE_PASSWORD_FORM_NAME = "change-password";
final static String OLD_PASSWORD_PARAM_NAME = "old-password";
final static String NEW_PASSWORD_PARAM_NAME = "new-password";
final static String CONFIRM_PASSWORD_PARAM_NAME = "confirm-password";
final static String RETURN_URL_PARAM_NAME =
- LoginHelper.RETURN_URL_PARAM_NAME;
-
+ LoginHelper.RETURN_URL_PARAM_NAME;
private UserAuthenticationListener m_listener =
- new UserAuthenticationListener();
+ new UserAuthenticationListener();
private Hidden m_returnURL;
private Hidden m_recovery;
private Label m_oldPasswordLabel;
@@ -95,13 +96,14 @@
super.register(p);
p.addRequestListener(m_listener);
p.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- PageState state = e.getPageState();
- boolean visible = !isRecovering();
- m_oldPasswordLabel.setVisible(state, visible);
- m_oldPassword.setVisible(state, visible);
- }
- });
+
+ public void actionPerformed(ActionEvent e) {
+ PageState state = e.getPageState();
+ boolean visible = !isRecovering();
+ m_oldPasswordLabel.setVisible(state, visible);
+ m_oldPassword.setVisible(state, visible);
+ }
+ });
}
public ChangePasswordForm(Container panel) {
@@ -112,8 +114,7 @@
addProcessListener(this);
// save the recovery credential as a hidden parameter
- m_recovery = new Hidden(new StringParameter
- (RecoveryLoginModule.getParamName()));
+ m_recovery = new Hidden(new StringParameter(RecoveryLoginModule.getParamName()));
m_recovery.setPassIn(true);
add(m_recovery);
@@ -122,10 +123,28 @@
m_returnURL.setPassIn(true);
add(m_returnURL);
+
+ Party party = Kernel.getContext().getParty();
+
+ if (party != null && party instanceof User) {
+ User user = (User) party;
+ user.getPersonName().toString();
+
+ // Add a describtive text and the user name to the form for user comfort
+ Label greeting = new Label(
+ LoginHelper.getMessage("login.changePasswortForm.greeting",
+ new Object[] { user.getPersonName().toString() } )
+ );
+
+ greeting.setFontWeight(Label.BOLD);
+ greeting.setClassAttr("greeting");
+ add(greeting);
+ }
+
+ add(new Label(LoginHelper.getMessage("login.changePasswortForm.introText")));
+
// old password
- m_oldPasswordLabel = new Label
- (LoginHelper.getMessage
- ("login.changePasswordForm.oldPasswordLabel"));
+ m_oldPasswordLabel = new Label(LoginHelper.getMessage("login.changePasswordForm.oldPasswordLabel"));
add(m_oldPasswordLabel);
m_oldPassword = new Password(OLD_PASSWORD_PARAM_NAME);
// don't use NotNullValidationListener because
@@ -133,93 +152,79 @@
add(m_oldPassword);
// new password
- Object[] params = new Object[] {
- new Integer(PasswordValidationListener.MIN_LENGTH) };
- add(new Label(LoginHelper.getMessage
- ("login.changePasswordForm.newPasswordLabel", params)));
+ Object[] params = new Object[]{
+ new Integer(PasswordValidationListener.MIN_LENGTH)};
+ add(new Label(LoginHelper.getMessage("login.changePasswordForm.newPasswordLabel", params)));
m_newPassword = new Password(NEW_PASSWORD_PARAM_NAME);
- m_newPassword.addValidationListener
- (new PasswordValidationListener());
+ m_newPassword.addValidationListener(new PasswordValidationListener());
add(m_newPassword);
// confirm new password
- add(new Label(LoginHelper.getMessage
- ("login.changePasswordForm.confirmPasswordLabel")));
+ add(new Label(LoginHelper.getMessage("login.changePasswordForm.confirmPasswordLabel")));
m_confirmPassword = new Password(CONFIRM_PASSWORD_PARAM_NAME);
// don't use PasswordValidationListener to avoid duplicate errors
- m_confirmPassword.addValidationListener
- (new NotNullValidationListener());
+ m_confirmPassword.addValidationListener(new NotNullValidationListener());
add(m_confirmPassword);
// submit
- add(new Submit(LoginHelper.getMessage
- ("login.changePasswordForm.submit")),
- ColumnPanel.CENTER | ColumnPanel.FULL_WIDTH);
+ add(new Submit(LoginHelper.getMessage("login.changePasswordForm.submit")),
+ ColumnPanel.CENTER | ColumnPanel.FULL_WIDTH);
}
public void validate(FormSectionEvent event)
- throws FormProcessException {
+ throws FormProcessException {
PageState state = event.getPageState();
FormData data = event.getFormData();
try {
// get user object
if (!m_listener.isLoggedIn(state)) {
// this error should never appear
- data.addError(LoginHelper.localize
- ("login.changePasswordForm.noUserError",
- state.getRequest()));
+ data.addError(LoginHelper.localize("login.changePasswordForm.noUserError",
+ state.getRequest()));
return;
}
User user = m_listener.getUser(state);
// get parameter values
- String oldPassword = (String)m_oldPassword.getValue(state);
- String newPassword = (String)m_newPassword.getValue(state);
- String confirmPassword = (String)
- m_confirmPassword.getValue(state);
+ String oldPassword = (String) m_oldPassword.getValue(state);
+ String newPassword = (String) m_newPassword.getValue(state);
+ String confirmPassword = (String) m_confirmPassword.getValue(state);
// check old password unless recovering
if (!isRecovering()) {
try {
// The old password can never be null or contain leading or
// trailing slashes.
- if (oldPassword == null ||
- !oldPassword.trim().equals(oldPassword)) {
- data.addError
- (OLD_PASSWORD_PARAM_NAME, LoginHelper.localize
- ("login.changePasswordForm.badPasswordError",
- state.getRequest()));
+ if (oldPassword == null
+ || !oldPassword.trim().equals(oldPassword)) {
+ data.addError(OLD_PASSWORD_PARAM_NAME, LoginHelper.localize("login.changePasswordForm.badPasswordError",
+ state.getRequest()));
return;
}
// TODO: avoid loading UserAuthentication in both
// validate() and process() stages
UserAuthentication auth =
- UserAuthentication.retrieveForUser(user);
+ UserAuthentication.retrieveForUser(user);
if (!auth.isValidPassword(oldPassword)) {
- data.addError
- (OLD_PASSWORD_PARAM_NAME, LoginHelper.localize
- ("login.changePasswordForm.badPasswordError",
- state.getRequest()));
+ data.addError(OLD_PASSWORD_PARAM_NAME, LoginHelper.localize("login.changePasswordForm.badPasswordError",
+ state.getRequest()));
return;
}
} catch (DataObjectNotFoundException e) {
- throw new UncheckedWrapperException
- ("Could not get UserAuthentication", e);
+ throw new UncheckedWrapperException("Could not get UserAuthentication", e);
}
}
// check new password
if (newPassword.equals(oldPassword)) {
- data.addError(NEW_PASSWORD_PARAM_NAME, LoginHelper.localize
- ("login.changePasswordForm.mustDifferError",
- state.getRequest()));
+ data.addError(NEW_PASSWORD_PARAM_NAME, LoginHelper.localize("login.changePasswordForm.mustDifferError",
+ state.getRequest()));
return;
}
if (!newPassword.equals(confirmPassword)) {
- data.addError(CONFIRM_PASSWORD_PARAM_NAME, LoginHelper.localize
- ("login.changePasswordForm.mustMatchError",
- state.getRequest()));
+ data.addError(CONFIRM_PASSWORD_PARAM_NAME, LoginHelper.localize("login.changePasswordForm.mustMatchError",
+ state.getRequest()));
return;
}
} finally {
@@ -233,16 +238,15 @@
}
public void process(FormSectionEvent event)
- throws FormProcessException {
+ throws FormProcessException {
PageState state = event.getPageState();
FormData data = event.getFormData();
// get user object
if (!m_listener.isLoggedIn(state)) {
// this error should never appear (checked in validate)
- data.addError(LoginHelper.localize
- ("login.changePasswordForm.noUserError",
- state.getRequest()));
+ data.addError(LoginHelper.localize("login.changePasswordForm.noUserError",
+ state.getRequest()));
return;
}
User user = m_listener.getUser(state);
@@ -250,14 +254,13 @@
// set new password
try {
UserAuthentication auth =
- UserAuthentication.retrieveForUser(user);
- String newPassword = (String)m_newPassword.getValue(state);
+ UserAuthentication.retrieveForUser(user);
+ String newPassword = (String) m_newPassword.getValue(state);
auth.setPassword(newPassword);
s_log.debug("committing password change");
auth.save();
} catch (DataObjectNotFoundException e) {
- throw new UncheckedWrapperException
- ("Could not get UserAuthentication", e);
+ throw new UncheckedWrapperException("Could not get UserAuthentication", e);
}
// mail report to user
@@ -267,17 +270,17 @@
HttpServletRequest req = state.getRequest();
String to =
- user.getPrimaryEmail().toString();
+ user.getPrimaryEmail().toString();
String from =
- Kernel.getSecurityConfig().getAdminContactEmail();
+ Kernel.getSecurityConfig().getAdminContactEmail();
String name =
- user.getPersonName().getGivenName();
+ user.getPersonName().getGivenName();
String subject =
- LoginHelper.localize("login.changePasswordForm.mailSubject", req);
+ LoginHelper.localize("login.changePasswordForm.mailSubject", req);
String body =
- LoginHelper.localize("login.changePasswordForm.mailBody",
- new Object[] { name },
- req);
+ LoginHelper.localize("login.changePasswordForm.mailBody",
+ new Object[]{name},
+ req);
// try to send the message, but don't throw the exception
// if it fails so that the password change is comitted
@@ -289,9 +292,9 @@
s_log.error("Could not notify user of password change", e);
}
} else {
- s_log.debug("Could not notify user of password change: " +
- "null email, user ID: " +
- user.getID());
+ s_log.debug("Could not notify user of password change: "
+ + "null email, user ID: "
+ + user.getID());
}
final HttpServletRequest req = state.getRequest();
Modified: trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources.properties
===================================================================
--- trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources.properties 2012-03-11 09:22:35 UTC (rev 2287)
+++ trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources.properties 2012-03-11 09:24:59 UTC (rev 2288)
@@ -60,3 +60,5 @@
login.error.badEmail=Unrecognized email address
login.error.bannedEmail=User cannot currently access system
login.error.loginFail=Login failed
+login.changePasswortForm.greeting=Welcome {0}
+login.changePasswortForm.introText=To change your passwort please fill out this form.
Modified: trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources_de.properties
===================================================================
--- trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources_de.properties 2012-03-11 09:22:35 UTC (rev 2287)
+++ trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources_de.properties 2012-03-11 09:24:59 UTC (rev 2288)
@@ -1,10 +1,10 @@
login.userEditPage.title=Profil bearbeiten
-login.userEditPage.changePasswordLink=Passwort \u00E4ndern
-login.workspacePage.title=Ihr pers\u00F6nlicher Bereich
+login.userEditPage.changePasswordLink=Passwort \u00e4ndern
+login.workspacePage.title=Ihr pers\u00f6nlicher Bereich
login.explainCookiesPage.title=E-Mail Adresse und Passwort werden gesichert
login.userInfo.logoutLink=Abmelden
login.userInfo.editProfileLink=Profil bearbeiten
-login.userInfo.changePasswordLink=Passwort \u00E4ndern
+login.userInfo.changePasswordLink=Passwort \u00e4ndern
login.userRegistrationForm.title=Anmelden
login.userRegistrationForm.email=Ihre E-Mail Adresse\:
login.userRegistrationForm.screenName=Ihr Benutzername\:
@@ -14,49 +14,51 @@
login.userRegistrationForm.forgotPasswordLink=Passwort vergessen?
login.userRegistrationForm.newUserRegister=Neue Benutzer registrieren sich hier
login.userNewForm.title=Registrieren
-login.userNewForm.aboutYouSectionHeader=<h3>\u00DCber mich</h3>
+login.userNewForm.aboutYouSectionHeader=<h3>\u00dcber mich</h3>
login.userNewForm.securitySectionHeader=<h3>Sicherheit</h3>
-login.userNewForm.securityBlurb=Wie ben\u00F6tigen ein Passwort, um Ihre Identit\u00E4t und Beitr\u00E4ge zu Foren und anderen Aktivit\u00E4ten zu sch\u00FCtzen.
-login.userNewForm.passwordBlurb=W\u00E4hlen Sie ein Passwort aus Gru\u00DFbuchstaben, Kleinbuchstaben, Zahlen und anderen Zeichen. Wenn sie es vergessen, unterst\u00FCtzt Sie der Server bei der Festlegung eines neuen.
-login.userNewForm.questionBlurb=Wir ben\u00F6tigen eine individuelle Frage und Antwort um sicher zu gehen, dass nur Sie das Passwort \u00E4ndern k\u00F6nnen.
+login.userNewForm.securityBlurb=Wie ben\u00f6tigen ein Passwort, um Ihre Identit\u00e4t und Beitr\u00e4ge zu Foren und anderen Aktivit\u00e4ten zu sch\u00fctzen.
+login.userNewForm.passwordBlurb=W\u00e4hlen Sie ein Passwort aus Gru\u00dfbuchstaben, Kleinbuchstaben, Zahlen und anderen Zeichen. Wenn sie es vergessen, unterst\u00fctzt Sie der Server bei der Festlegung eines neuen.
+login.userNewForm.questionBlurb=Wir ben\u00f6tigen eine individuelle Frage und Antwort um sicher zu gehen, dass nur Sie das Passwort \u00e4ndern k\u00f6nnen.
login.changePasswordForm.oldPasswordLabel=Altes Passwort\:
login.changePasswordForm.newPasswordLabel=Neues Passwort (mindestens {0} Zeichen, keine Leertaste)\:
-login.changePasswordForm.confirmPasswordLabel=Passwort best\u00E4tigen\:
-login.changePasswordForm.submit=Ausf\u00FChren
+login.changePasswordForm.confirmPasswordLabel=Passwort best\u00e4tigen\:
+login.changePasswordForm.submit=Ausf\u00fchren
login.changePasswordForm.noUserError=Benutzer ist nicht angemeldet
login.changePasswordForm.badPasswordError=Falsches Passwort
login.changePasswordForm.mustDifferError=Das neue Passwort muss sich vom bisherigen unterscheiden
-login.changePasswordForm.mustMatchError=Die neuen Passw\u00F6rter m\u00FCssen gleich sein
-login.changePasswordForm.mailSubject=Ihr Passwort wurde ge\u00E4ndert.
-login.changePasswordForm.mailBody=Hallo {0},\n\nIhr Passwort wurde erfolgreich ge\u00E4ndert.\nWenn Sie Ihr Passwort nicht \u00E4ndern wollten,\nmelden Sie bitte diese Mail an uns.
-login.changePasswordPage.title=Passwort \u00C4nderung
-login.recoverPassword.mailSubject=\u00C4ndern Sie das Passwort
-login.recoverPassword.mailBody=Hallo {0},\n\nKlicken Sie auf diese URL oder kopieren Sie sie in Ihren Browser, um Ihr Passwort zu \u00E4ndern\:\n{1}
+login.changePasswordForm.mustMatchError=Die neuen Passw\u00f6rter m\u00fcssen gleich sein
+login.changePasswordForm.mailSubject=Ihr Passwort wurde ge\u00e4ndert.
+login.changePasswordForm.mailBody=Hallo {0},\n\nIhr Passwort wurde erfolgreich ge\u00e4ndert.\nWenn Sie Ihr Passwort nicht \u00e4ndern wollten,\nmelden Sie bitte diese Mail an uns.
+login.changePasswordPage.title=Passwort \u00c4nderung
+login.recoverPassword.mailSubject=\u00c4ndern Sie das Passwort
+login.recoverPassword.mailBody=Hallo {0},\n\nKlicken Sie auf diese URL oder kopieren Sie sie in Ihren Browser, um Ihr Passwort zu \u00e4ndern\:\n{1}
login.recoverPasswordPage.title=Passwort holen
login.loginExpiredPage.title=Anmeldung abgelaufen
-login.loginExpiredPage.before=Der Anmeldebildschirm ist nicht mehr g\u00FCltig
+login.loginExpiredPage.before=Der Anmeldebildschirm ist nicht mehr g\u00fcltig
login.loginExpiredPage.link=Anmeldung
login.loginExpiredPage.after= erneut.
login.passwordValidation.minLengthError=Passwort muss aus mindestens {0} Zeichen bestehen
login.passwordValidation.whitespaceError=Das Passwort darf kein Leerzeichen enthalten
-login.passwordValidation.minTypesError=Das Passwort muss aus {0} dieser 4 Typen gestehen\: Gro\u00DFbuchstaben, Kleinbuchstaben, Ziffern, andere Zeichen
-login.submit=Ausf\u00FChren
+login.passwordValidation.minTypesError=Das Passwort muss aus {0} dieser 4 Typen gestehen\: Gro\u00dfbuchstaben, Kleinbuchstaben, Ziffern, andere Zeichen
+login.submit=Ausf\u00fchren
login.primaryEmail=E-Mail Adresse\:
login.additionalEmail=Weitere E-Mail\:
login.firstName=Vorname\:
login.lastName=Nachname\:
login.password=Passwort (mindestens {0} Zeichen, kein Leerzeichen)\:
-login.passwordConfirm=Passwort best\u00E4tigen\:
+login.passwordConfirm=Passwort best\u00e4tigen\:
login.passwordQuestion=Frage\:
login.passwordAnswer=Antwort\:
-login.url=URL der pers\u00F6nlichen Homepage\:
+login.url=URL der pers\u00f6nlichen Homepage\:
login.screenName=Benutzername\:
login.bio=Biographie\:
login.error.duplicateScreenName=Ein anderer Benutzer verwendet diesen Namen
login.error.duplicateEmail=Ein anderer Nutzer verwendet diese E-Mail Adresse
-login.error.mismatchPassword=Die neuen Passw\u00F6rter m\u00FCssen gleich sein
+login.error.mismatchPassword=Die neuen Passw\u00f6rter m\u00fcssen gleich sein
login.error.badPassword=Falsches Passwort
login.error.badAnswer=Falsche Antwort
-login.error.badEmail=Ung\u00FCltige E-Mail Adresse
+login.error.badEmail=Ung\u00fcltige E-Mail Adresse
login.error.bannedEmail=Benutzer kann zur Zeit das System nicht nutzen
login.error.loginFail=Anmeldung nicht erfolgreich
+login.changePasswortForm.greeting=Willkommen {0}
+login.changePasswortForm.introText=Um ihr Passwort zu \u00e4ndern, f\u00fcllen sie bitte das folgende Formular aus.
Modified: trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources_en.properties
===================================================================
--- trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources_en.properties 2012-03-11 09:22:35 UTC (rev 2287)
+++ trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources_en.properties 2012-03-11 09:24:59 UTC (rev 2288)
@@ -60,3 +60,5 @@
login.error.badEmail=Unrecognized email address
login.error.bannedEmail=User cannot currently access system
login.error.loginFail=Login failed
+login.changePasswortForm.greeting=Welcome {0}
+login.changePasswortForm.introText=To change your passwort please fill out this form.
Modified: trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources_fr.properties
===================================================================
--- trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources_fr.properties 2012-03-11 09:22:35 UTC (rev 2287)
+++ trunk/ccm-core/src/com/arsdigita/ui/login/LoginResources_fr.properties 2012-03-11 09:24:59 UTC (rev 2288)
@@ -2,7 +2,7 @@
login.userEditPage.changePasswordLink=Modifier le mot de passe
login.workspacePage.title=Votre espace de travail
login.explainCookiesPage.title=Enregistrement de l'adresse de messagerie et du mot de passe
-login.userInfo.logoutLink=Dnnexion
+login.userInfo.logoutLink=D\u00e9connexion
login.userInfo.editProfileLink=Modifier ce profil
login.userInfo.changePasswordLink=Modifier le mot de passe
login.userRegistrationForm.title=Se connecter
@@ -11,49 +11,51 @@
login.userRegistrationForm.password=Votre mot de passe
login.userRegistrationForm.cookieOption=Retenir ce mot de passe?
login.userRegistrationForm.explainCookieLink=(aide)
-login.userRegistrationForm.forgotPasswordLink=Vous avez oubliotre mot de passe?
-login.userNewForm.title=Cr votre compte
+login.userRegistrationForm.forgotPasswordLink=Vous avez oubli\u00e9 votre mot de passe?
+login.userNewForm.title=Cr\u00e9er votre compte
login.userNewForm.aboutYouSectionHeader=<h3>A propos de vous</h3>
-login.userNewForm.securitySectionHeader=<h3>Securith3>
-login.userNewForm.securityBlurb=Merci de nous fournir un mot de passe afin que nous puissions protr votre indentitorsque vous participez aux Quiz, aux forum de discussions et aux autres activitcommunes sur notre site.
-login.userNewForm.passwordBlurb=Choisissez un mot de passe qui contienne un mnge de majuscules, de minuscules, de chiffres et d'autres caracts. Si vous oubliez votre mot de passe, notre serveur vous aidera e remplacer par un nouveau
-login.userNewForm.questionBlurb=Merci de nous indiquer une question (et sa rnse) aquelle vous seul pouvez rndre pour que nous puission nous assurer que vous serez le seul ouvoir changer votre mot de passe
+login.userNewForm.securitySectionHeader=<h3>Securit\u00e9</h3>
+login.userNewForm.securityBlurb=Merci de nous fournir un mot de passe afin que nous puissions prot\u00e9ger votre indentit\u00e9 lorsque vous participez aux Quiz, aux forum de discussions et aux autres activit\u00e9s communes sur notre site.
+login.userNewForm.passwordBlurb=Choisissez un mot de passe qui contienne un m\u00e9lange de majuscules, de minuscules, de chiffres et d'autres caract\u00e8res. Si vous oubliez votre mot de passe, notre serveur vous aidera \u00e0 le remplacer par un nouveau
+login.userNewForm.questionBlurb=Merci de nous indiquer une question (et sa r\u00e9ponse) \u00e0 laquelle vous seul pouvez r\u00e9pondre pour que nous puission nous assurer que vous serez le seul \u00e0 pouvoir changer votre mot de passe
login.changePasswordForm.oldPasswordLabel=Ancien mot de passe :
-login.changePasswordForm.newPasswordLabel=Nouveau mot de passe (au moins {0} caract et pas d'espace):
+login.changePasswordForm.newPasswordLabel=Nouveau mot de passe (au moins {0} caract\u00e8re et pas d'espace):
login.changePasswordForm.confirmPasswordLabel=Confirmation du nouveau mot de passe
login.changePasswordForm.submit=Soumettre
-login.changePasswordForm.noUserError=L'utilisateur n'est pas connectlogin.changePasswordForm.badPasswordError=Mot de passe erronlogin.changePasswordForm.mustDifferError=Le nouveau mot de passe doit e diffnt de l'ancien
-login.changePasswordForm.mustMatchError=Le nouveau mot de passe doit e identique dans la zone de confirmation
-login.changePasswordForm.mailSubject=Votre mot de passe a modifilogin.changePasswordForm.mailBody=Cher {0}, \n\n Votre mot de passe a modifivec succ\nSi vous n'avez pas souhaithanger votre mot de passe,\nmerci de rndre e message en faisant part de ce probl.
+login.changePasswordForm.noUserError=L'utilisateur n'est pas connect\u00e9
+login.changePasswordForm.badPasswordError=Mot de passe erron\u00e9
+login.changePasswordForm.mustDifferError=Le nouveau mot de passe doit \u00eatre diff\u00e9rent de l'ancien
+login.changePasswordForm.mustMatchError=Le nouveau mot de passe doit \u00eatre identique dans la zone de confirmation
+login.changePasswordForm.mailSubject=Votre mot de passe a \u00e9t\u00e9 modifi\u00e9
+login.changePasswordForm.mailBody=Cher {0}, \n\n Votre mot de passe a \u00e9t\u00e9 modifi\u00e9 avec succ\u00e8s.\nSi vous n'avez pas souhait\u00e9 changer votre mot de passe,\nmerci de r\u00e9pondre \u00e0 ce message en faisant part de ce probl\u00e8me.
login.changePasswordPage.title=Modifier le mot de passe
login.recoverPassword.mailSubject=Modifier votre mot de passe
login.recoverPassword.mailBody=Cher {0},\n\nCliquer sur cet URL ou recopiez le dans la barre d'adresse de votre navigateur pour modifier votre mot de passe:\n{1}
-login.recoverPasswordPage.title=Rpr le mot de passe
-login.loginExpiredPage.title=Votre connexion a expirlogin.loginExpiredPage.before=La page de connexion a expirMerci\u0020
+login.recoverPasswordPage.title=R\u00e9cup\u00e9rer le mot de passe
+login.loginExpiredPage.title=Votre connexion a expir\u00e9
+login.loginExpiredPage.before=La page de connexion a expir\u00e9. Merci\u0020
login.loginExpiredPage.link=de vous connecter
-login.loginExpiredPage.after=\u0020ouveau
-login.passwordValidation.minLengthError=Le mot de passe doit faire au minimum {0} caracts de long
+login.loginExpiredPage.after=\u0020\u00e0 nouveau
+login.passwordValidation.minLengthError=Le mot de passe doit faire au minimum {0} caract\u00e8res de long
login.passwordValidation.whitespaceError=Le mot de passe ne doit pas contenir d'espace
-login.passwordValidation.minTypesError=Le mot de passe doit contenir {0} de ces 4 types de caracts : majuscule, minuscule, chiffre ou autre symbole
+login.passwordValidation.minTypesError=Le mot de passe doit contenir {0} de ces 4 types de caract\u00e8res : majuscule, minuscule, chiffre ou autre symbole
login.submit=Soumettre
login.primaryEmail=Adresse de messagerie:
-login.additionalEmail=Adresse de messagerie supplntaire
-login.firstName=Prm:
+login.additionalEmail=Adresse de messagerie suppl\u00e9mentaire
+login.firstName=Pr\u00e9nom:
login.lastName=Nom:
-login.password=Mot de passe (au moins {0} caract et pas d'espace):
+login.password=Mot de passe (au moins {0} caract\u00e8re et pas d'espace):
login.passwordConfirm=Confirmation du mot de passe
login.passwordQuestion=Question:
-login.passwordAnswer=Rnse:
+login.passwordAnswer=R\u00e9ponse:
login.url=URL de votre site web personnel
login.screenName=Votre pseudonyme:
login.bio=Biographie:
-login.error.duplicateScreenName=Un autre utilisateur utilise d ce pseudonyme
-login.error.duplicateEmail=Un autre utilisateur nous a d donner cette adresse de messagerie
-login.error.mismatchPassword=Le nouveau mot de passe doit e identique dans la zone de confirmation
-login.error.badPassword=Mot de passe erronlogin.error.badAnswer=Rnse erron+login.error.duplicateScreenName=Un autre utilisateur utilise d\u00e9j\u00e0 ce pseudonyme
+login.error.duplicateEmail=Un autre utilisateur nous a d\u00e9j\u00e0 donner cette adresse de messagerie
+login.error.mismatchPassword=Le nouveau mot de passe doit \u00eatre identique dans la zone de confirmation
+login.error.badPassword=Mot de passe erron\u00e9
+login.error.badAnswer=R\u00e9ponse erron\u00e9e
login.error.badEmail=Cette adresse de messagerie est inconnue
+login.changePasswortForm.greeting=
+login.changePasswortForm.introText=
|