diff --git a/src/main/java/org/olat/admin/user/imp/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/admin/user/imp/_i18n/LocalStrings_de.properties index f9977098623d3e2558b6ed4a2c67bcb085c767a1..77f0cb56d70a47072af53f4b7eeff3790beab119 100644 --- a/src/main/java/org/olat/admin/user/imp/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/admin/user/imp/_i18n/LocalStrings_de.properties @@ -11,7 +11,7 @@ error.lengthorformat=Fehler auf Zeile {0} in Spalte {1}\: {2} error.login=Fehler auf Zeile {0}\: {1} error.login.douplicate=Fehler auf Zeile {0}\: Der Benutzername "{1}" ist mehrfach in der Liste vorhanden, sollte jedoch einmalig sein. error.mandatory=Fehler auf Zeile {0}\: die Angabe von "{1}" ist obligatorisch. -error.pwd=Fehler auf Zeile {0}\: Das Password ist nicht g\u00FCltig.{1} +error.pwd=Fehler auf Zeile {0}\: Das Passwort ist nicht g\u00FCltig.{1} error.shibbolet.name.inuse=Fehler auf Zeile {0}\: dieser Shibboleth-Identifikator "{1}" wird bereits in einem bestehenden Konto benutzt. form.importdata=Kopierte Zeilen aus Excel form.pwd.intro=Das neue Passwort muss folgende Kriterien erf\u00FCllen: diff --git a/src/main/java/org/olat/core/commons/services/sms/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/commons/services/sms/ui/_i18n/LocalStrings_de.properties index 7770a224b45c9113566b8eac7c7cbd800cbd0bea..a11522e0fc4ef4510929d2a25768f99446d1d865 100644 --- a/src/main/java/org/olat/core/commons/services/sms/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/core/commons/services/sms/ui/_i18n/LocalStrings_de.properties @@ -17,7 +17,7 @@ no.service.provider=Kein Provider angew\u00E4hlt on=ein on.first.login=Fehlende SMS Telefonnummer bei erstem Login konfigurieren on.sms=mit SMS Code -reset.password=Password zur\u00FCcksetzen +reset.password=Passwort zur\u00FCcksetzen service=Dienst sms.phone.number=Telephon Mobil sms.phone.number.example=Sie m\u00FCssen Ihre Telefonnummer im internationalen Format angeben (+41 12 345 67 89). diff --git a/src/main/java/org/olat/login/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/login/_i18n/LocalStrings_de.properties index 43a68812fbed05f35b53843193fb683197e58030..53d21ad8ce6d88f9a6329f0cc85ee56eadc37734 100644 --- a/src/main/java/org/olat/login/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/login/_i18n/LocalStrings_de.properties @@ -90,12 +90,18 @@ max.age.administrator=... Administrator max.age.sysadmin=... Systemadministrator password.change.valid.until.gui=G\u00FCltigkeitsdauer Passwort\u00E4nderung in Stunden (GUI) password.change.valid.until.rest=G\u00FCltigkeitsdauer Passwort\u00E4nderung in Stunden (REST) -password.rule.at.least.digits=Das Password muss mindestens {0} Ziffern beinhalten. -password.rule.at.least.digits.specials=Das Password muss mindestens {0} Ziffern oder Sonderzeichen beinhalten. -password.rule.at.least.letters=Das Password muss mindestens {0} Buchstaben beinhalten. -password.rule.at.least.letters.lowercase=Das Password muss mindestens {0} Kleinbuchstaben beinhalten. -password.rule.at.least.letters.uppercase=Das Password muss mindestens {0} Grossbuchstaben beinhalten. -password.rule.at.least.specials=Das Password muss mindestens {0} Sonderzeichen beinhalten. +password.rule.at.least.digits=Das Passwort muss mindestens {0} Ziffern beinhalten. +password.rule.at.least.digit=Das Passwort muss mindestens {0} Ziffer beinhalten. +password.rule.at.least.digits.specials=Das Passwort muss mindestens {0} Ziffern oder Sonderzeichen beinhalten. +password.rule.at.least.digit.special=Das Passwort muss mindestens {0} Ziffer oder Sonderzeichen beinhalten. +password.rule.at.least.letters=Das Passwort muss mindestens {0} Buchstaben beinhalten. +password.rule.at.least.letter=Das Passwort muss mindestens {0} Buchstabe beinhalten. +password.rule.at.least.letters.lowercase=Das Passwort muss mindestens {0} Kleinbuchstaben beinhalten. +password.rule.at.least.letter.lowercase=Das Passwort muss mindestens {0} Kleinbuchstabe beinhalten. +password.rule.at.least.letters.uppercase=Das Passwort muss mindestens {0} Grossbuchstaben beinhalten. +password.rule.at.least.letter.uppercase=Das Passwort muss mindestens {0} Grossbuchstabe beinhalten. +password.rule.at.least.special=Das Passwort muss mindestens {0} Sonderzeichen beinhalten. +password.rule.at.least.specials=Das Passwort muss mindestens {0} Sonderzeichen beinhalten. password.rule.forbidden.digits=Das Passwort darf keine Ziffern beinhalten. password.rule.forbidden.digits.specials=Das Passwort darf keine Ziffern und keine Sonderzeichen beinhalten. password.rule.forbidden.letters=Das Passwort darf keine Buchstaben beinhalten. @@ -106,7 +112,7 @@ password.rule.forbidden.username=Das Passwort darf nicht den Benutzernamen beinh password.rule.forbidden.user.firstname=Das Passwort darf nicht den Vornamen beinhalten. password.rule.forbidden.user.lastname=Das Passwort darf nicht den Nachnamen beinhalten. password.rule.history=Sie d\u00FCrfen nicht ein Passwort, das Sie schon hatten, wieder verwenden. -password.rule.length=Das Password muss insgesamt zwischen {0} und {1} Zeichen lang sein. +password.rule.length=Das Passwort muss insgesamt zwischen {0} und {1} Zeichen lang sein. password.rule.permitted.digits.specials=Ziffern und Sonderzeichen sind zul\u00E4ssig. password.rule.permitted.digits=Ziffern sind zul\u00E4ssig. password.rule.permitted.letters.lowercase=Kleinbuchstaben sind zul\u00E4ssig. diff --git a/src/main/java/org/olat/login/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/login/_i18n/LocalStrings_en.properties index 76e2645d912718bee44245bdd79b67afa1b15c80..d415de0fd679ed20305c97593a586991e233262b 100644 --- a/src/main/java/org/olat/login/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/login/_i18n/LocalStrings_en.properties @@ -91,10 +91,16 @@ max.age.sysadmin=... for system administrator password.change.valid.until.gui=Password change validity period in hours (GUI) password.change.valid.until.rest=Password change validity period in hours (REST) password.rule.at.least.digits.specials=The password has to contain at least {0} digits or special signs. +password.rule.at.least.digit.special=The password has to contain at least {0} digit or special sign. password.rule.at.least.digits=The password has to contain at least {0} digits. +password.rule.at.least.digit=The password has to contain at least {0} digit. +password.rule.at.least.letter.lowercase=The password has to contain at least {0} lowercase letter. password.rule.at.least.letters.lowercase=The password has to contain at least {0} lowercase letters. +password.rule.at.least.letter.uppercase=The password has to contain at least {0} uppercase letter. password.rule.at.least.letters.uppercase=The password has to contain at least {0} uppercase letters. password.rule.at.least.letters=The password has to contain at least {0} letters. +password.rule.at.least.letter=The password has to contain at least {0} letter. +password.rule.at.least.special=The password has to contain at least {0} special sign. password.rule.at.least.specials=The password has to contain at least {0} special signs. password.rule.forbidden.digits.specials=The password must not contain any digits or special characters. password.rule.forbidden.digits=The password must not contain any digits. diff --git a/src/main/java/org/olat/login/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/login/_i18n/LocalStrings_fr.properties index 82959639dcb848e8759b2a00f4186d2cceefcb41..2e80cac387ebc10211ee79b716345da0014b5954 100644 --- a/src/main/java/org/olat/login/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/login/_i18n/LocalStrings_fr.properties @@ -162,11 +162,17 @@ password.after=pour {0} changements password.change.valid.until.gui=Dur\u00E9e de validit\u00E9 des mots de passes (UI) password.change.valid.until.rest=Dur\u00E9e de validit\u00E9 des mots de passes (REST) password.history=Pr\u00E9venir la r\u00E9utilisation des mots de passes pr\u00E9c\u00E9dants +password.rule.at.least.digit=Le mot de passe doit contenir au moins {0} chiffre. password.rule.at.least.digits=Le mot de passe doit contenir au moins {0} chiffres. +password.rule.at.least.digit.special=Le mot de passe doit contenir au moins {0} chiffre ou caract\u00E8re sp\u00E9cial. password.rule.at.least.digits.specials=Le mot de passe doit contenir au moins {0} chiffres ou caract\u00E8res sp\u00E9ciaux. password.rule.at.least.letters=Le mot de passe doit contenir au moins {0} caract\u00E8res. +password.rule.at.least.letter=Le mot de passe doit contenir au moins {0} caract\u00E8re. +password.rule.at.least.letter.lowercase=Le mot de passe doit contenir au moins {0} caract\u00E8re en minuscule. password.rule.at.least.letters.lowercase=Le mot de passe doit contenir au moins {0} caract\u00E8res en minuscule. +password.rule.at.least.letter.uppercase=Le mot de passe doit contenir au moins {0} caract\u00E8re majuscule. password.rule.at.least.letters.uppercase=Le mot de passe doit contenir au moins {0} caract\u00E8res majuscules. +password.rule.at.least.special=Le mot de passe doit contenir au moins {0} caract\u00E8re sp\u00E9cial. password.rule.at.least.specials=Le mot de passe doit contenir au moins {0} caract\u00E8res sp\u00E9ciaux. password.rule.forbidden.digits=Le mot de passe ne doit pas contenir de chiffres. password.rule.forbidden.digits.specials=Le mot de passe ne doit contenir aucuns chiffres ou caract\u00E8res sp\u00E9ciaux. diff --git a/src/main/java/org/olat/login/validation/PasswordValidationRuleFactory.java b/src/main/java/org/olat/login/validation/PasswordValidationRuleFactory.java index 26a238f5ec3d028876c787ab78fcfae386e278d6..af7d319d57cc9545c83f34892cae35c2221b50cf 100644 --- a/src/main/java/org/olat/login/validation/PasswordValidationRuleFactory.java +++ b/src/main/java/org/olat/login/validation/PasswordValidationRuleFactory.java @@ -49,27 +49,32 @@ public class PasswordValidationRuleFactory { } public ValidationRule createAtLeastLettersRule(int min) { - ValidationDescription description = createDescription("password.rule.at.least.letters", min); + String i18nKey = min > 1 ? "password.rule.at.least.letters" : "password.rule.at.least.letter"; + ValidationDescription description = createDescription(i18nKey, min); return new AtLeastCharacterRule(description, Character::isLetter, min); } public ValidationRule createAtLeastLettersUppercaseRule(int min) { - ValidationDescription description = createDescription("password.rule.at.least.letters.uppercase", min); + String i18nKey = min > 1 ? "password.rule.at.least.letters.uppercase" : "password.rule.at.least.letter.uppercase"; + ValidationDescription description = createDescription(i18nKey, min); return new AtLeastCharacterRule(description, Character::isUpperCase, min); } public ValidationRule createAtLeastLettersLowercaseRule(int min) { - ValidationDescription description = createDescription("password.rule.at.least.letters.lowercase", min); + String i18nKey = min > 1 ? "password.rule.at.least.letters.lowercase" : "password.rule.at.least.letter.lowercase"; + ValidationDescription description = createDescription(i18nKey, min); return new AtLeastCharacterRule(description, Character::isLowerCase, min); } public ValidationRule createAtLeastDigitsRule(int min) { - ValidationDescription description = createDescription("password.rule.at.least.digits", min); + String i18nKey = min > 1 ? "password.rule.at.least.digits" : "password.rule.at.least.digit"; + ValidationDescription description = createDescription(i18nKey, min); return new AtLeastCharacterRule(description, Character::isDigit, min); } public ValidationRule createAtLeastSpecialSignsRule(int min) { - ValidationDescription description = createDescription("password.rule.at.least.specials", min); + String i18nKey = min > 1 ? "password.rule.at.least.specials" : "password.rule.at.least.special"; + ValidationDescription description = createDescription(i18nKey, min); // at least 2: .*\\W.*\\W.* String regex = Stream.generate(() -> ".*").limit(min + 1).collect(Collectors.joining("[_|\\W]")); Pattern pattern = Pattern.compile(regex, UNICODE_CHARACTER_CLASS); @@ -77,7 +82,8 @@ public class PasswordValidationRuleFactory { } public ValidationRule createAtLeastDigitsOrSpecialSignsRule(int min) { - ValidationDescription description = createDescription("password.rule.at.least.digits.specials", min); + String i18nKey = min > 1 ? "password.rule.at.least.digits.specials" : "password.rule.at.least.digit.special"; + ValidationDescription description = createDescription(i18nKey, min); String regex = Stream.generate(() -> ".*").limit(min + 1).collect(Collectors.joining("[_|\\d|\\W]")); Pattern pattern = Pattern.compile(regex, UNICODE_CHARACTER_CLASS); return new RegexRule(description, pattern); diff --git a/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties index e2560073d58169227c65f3d22cbdf1c5568c20f9..48b6bbed3645348e59a89ee8c9c3cc73bda272a0 100644 --- a/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/user/_i18n/LocalStrings_de.properties @@ -23,7 +23,7 @@ error.change.email.time=Dieser Aktivierungs-Link hat eine G\u00FCltigkeitsdauer error.change.email.unexpected=Ihre E-Mail Adresse konnte nicht ge\u00C4ndert werden. Ein unerwarteter Fehler ist aufgetreten. error.no.props.found=Es wurden keine Properties f\u00FCr diesen Benutzer gefunden error.password.empty=Geben Sie Ihr bisheriges Passwort an -error.password.invalid=Das Password ist nicht g\u00FCltig.{0} +error.password.invalid=Das Passwort ist nicht g\u00FCltig.{0} error.password.noauth=Ihr bisheriges Passwort ist nicht korrekt error.password.nomatch=Die beiden neuen Passw\u00F6rter stimmen nicht \u00FCberein. error.user.logged.in=Diese \u00C4nderung kann nicht vorgenommen werden da der Benutzer {0} zur Zeit eingeloggt ist. Warten Sie bis der Benutzer sich ausloggt und versuchen Sie es erneut.