diff --git a/SoObjects/SOGo/SOGoPasswordPolicy.m b/SoObjects/SOGo/SOGoPasswordPolicy.m index e5201bb16..94b681105 100644 --- a/SoObjects/SOGo/SOGoPasswordPolicy.m +++ b/SoObjects/SOGo/SOGoPasswordPolicy.m @@ -60,7 +60,7 @@ static const NSString *SPECIAL_SYMBOL_ALLOWED = @"%$&*(){}!?\\@#.,:;+="; return [NSArray arrayWithObjects: [NSString stringWithFormat:@"(.*[a-z].*){%i}", [count intValue]], [NSString stringWithFormat:@"(.*[A-Z].*){%i}", [count intValue]], [NSString stringWithFormat:@"(.*[0-9].*){%i}", [count intValue]], - [NSString stringWithFormat:@"([%%%@].*){%i,}", SPECIAL_SYMBOL_ALLOWED, [count intValue]], + [NSString stringWithFormat:@"([%@].*){%i,}", SPECIAL_SYMBOL_ALLOWED, [count intValue]], [NSString stringWithFormat:@".{%i,}", [count intValue]], nil]; } @@ -99,25 +99,17 @@ static const NSString *SPECIAL_SYMBOL_ALLOWED = @"%$&*(){}!?\\@#.,:;+="; if ([[self policies] containsObject: label]) { NSNumber *value = [policy objectForKey:@"value"]; if (0 < value) { - if (![POLICY_MIN_SPECIAL_SYMBOLS isEqualToString: label]) { - NSString *newLabel = [[translations objectForKey: label] - stringByReplacingOccurrencesOfString: @"%{0}" - withString: [value stringValue]]; - [userTranslatedPasswordPolicy addObject:[NSDictionary dictionaryWithObjectsAndKeys: - newLabel, @"label", - [policy objectForKey:@"regex"], @"regex", - nil]]; - } else { - NSString *newLabel = [[[[translations objectForKey: label] - stringByReplacingOccurrencesOfString: @"%{0}" - withString: [value stringValue]] - stringByAppendingString: @" "] - stringByAppendingString: SPECIAL_SYMBOL_ALLOWED]; - [userTranslatedPasswordPolicy addObject:[NSDictionary dictionaryWithObjectsAndKeys: - newLabel, @"label", - [policy objectForKey:@"regex"], @"regex", - nil]]; + NSString *newLabel = [[translations objectForKey: label] + stringByReplacingOccurrencesOfString: @"%{0}" + withString: [value stringValue]]; + if ([POLICY_MIN_SPECIAL_SYMBOLS isEqualToString: label]) { + newLabel = [[newLabel stringByAppendingString: @" "] + stringByAppendingString: SPECIAL_SYMBOL_ALLOWED]; } + [userTranslatedPasswordPolicy addObject:[NSDictionary dictionaryWithObjectsAndKeys: + newLabel, @"label", + [policy objectForKey:@"regex"], @"regex", + nil]]; } else { // Do nothing } diff --git a/UI/PreferencesUI/English.lproj/Localizable.strings b/UI/PreferencesUI/English.lproj/Localizable.strings index b85473ceb..adc792bf2 100644 --- a/UI/PreferencesUI/English.lproj/Localizable.strings +++ b/UI/PreferencesUI/English.lproj/Localizable.strings @@ -260,7 +260,7 @@ "POLICY_MIN_LOWERCASE_LETTER" = "Minimum of %{0} lowercase letter"; "POLICY_MIN_UPPERCASE_LETTER" = "Minimum of %{0} uppercase letter"; "POLICY_MIN_DIGIT" = "Minimum of %{0} digit"; -"POLICY_MIN_SPECIAL_SYMBOLS" = "Minimum of %{0}special symbols"; +"POLICY_MIN_SPECIAL_SYMBOLS" = "Minimum of %{0} special symbols"; "POLICY_MIN_LENGTH" = "Minimum length of %{0} characters"; diff --git a/UI/Scheduler/English.lproj/Localizable.strings b/UI/Scheduler/English.lproj/Localizable.strings index 924a8b48f..a503b3d05 100644 --- a/UI/Scheduler/English.lproj/Localizable.strings +++ b/UI/Scheduler/English.lproj/Localizable.strings @@ -565,7 +565,7 @@ vtodo_class2 = "(Confidential task)"; "CalDAV URL" = "CalDAV URL "; "WebDAV ICS URL" = "WebDAV ICS URL"; "WebDAV XML URL" = "WebDAV XML URL"; -"Clipboard" = "Copy to clipboard"; +"Copy to clipboard" = "Copy to clipboard"; /* Error messages */ "dayFieldInvalid" = "Please specify a numerical value in the Days field greater or equal to 1."; diff --git a/UI/Scheduler/French.lproj/Localizable.strings b/UI/Scheduler/French.lproj/Localizable.strings index 536268822..4d09808ba 100644 --- a/UI/Scheduler/French.lproj/Localizable.strings +++ b/UI/Scheduler/French.lproj/Localizable.strings @@ -565,6 +565,7 @@ vtodo_class2 = "(Tâche confidentielle)"; "CalDAV URL" = "Accès en CalDAV "; "WebDAV ICS URL" = "Représentation ICS en WebDAV"; "WebDAV XML URL" = "Représentation XML en WebDAV"; +"Copy to clipboard" = "Copier dans le presse-papier"; /* Error messages */ "dayFieldInvalid" = "Veuillez spécifier un chiffre supérieur ou égal à 1 dans le champ Jours."; diff --git a/UI/Templates/SchedulerUI/UIxCalendarFolderLinksTemplate.wox b/UI/Templates/SchedulerUI/UIxCalendarFolderLinksTemplate.wox index 4da4785af..520409a5a 100644 --- a/UI/Templates/SchedulerUI/UIxCalendarFolderLinksTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxCalendarFolderLinksTemplate.wox @@ -39,7 +39,7 @@ - + content_copy @@ -47,7 +47,7 @@ - + content_copy @@ -55,7 +55,7 @@ - + content_copy @@ -68,7 +68,7 @@ - + content_copy @@ -76,7 +76,7 @@ - + content_copy @@ -84,7 +84,7 @@ - + content_copy diff --git a/UI/WebServerResources/js/Scheduler/sgCalendarListItem.directive.js b/UI/WebServerResources/js/Scheduler/sgCalendarListItem.directive.js index 935eb27be..5ed3df350 100644 --- a/UI/WebServerResources/js/Scheduler/sgCalendarListItem.directive.js +++ b/UI/WebServerResources/js/Scheduler/sgCalendarListItem.directive.js @@ -300,7 +300,7 @@ } function clipboard(elem_id) { - let linkUrl = document.getElementById(elem_id); + var linkUrl = document.getElementById(elem_id); navigator.clipboard.writeText(linkUrl.value); } }