diff --git a/UI/MailerUI/German.lproj/Localizable.strings b/UI/MailerUI/German.lproj/Localizable.strings
index d63ff5946..1bc77d77d 100644
--- a/UI/MailerUI/German.lproj/Localizable.strings
+++ b/UI/MailerUI/German.lproj/Localizable.strings
@@ -165,7 +165,7 @@
"InboxFolderName" = "Posteingang";
"DraftsFolderName" = "Entwürfe";
"SieveFolderName" = "Filter";
-"OtherUsersFolderName" = "Andere Benutzer";
+"OtherUsersFolderName" = "Andere Benutzer";
"SharedFoldersName" = "Gemeinsame Ordner";
"Folders" = "Ordner"; /* title line */
@@ -284,3 +284,8 @@
"error_validationfailed" = "Prüfung ist fehlgeschlagen!";
"error_missingsubject" = "Der Betreff fehlt!";
"error_missingrecipients" = "Der Empfänger fehlt!";
+
+/* Message sending */
+"cannot send message: (smtp) all recipients discarded" = "Cannot send message: all recipients are invalid.";
+"cannot send message (smtp) - recipients discarded:" = "Cannot send message. The following addresses are invalid:";
+"cannot send message: (smtp) error when connecting" = "Cannot send message: error when connecting to the SMTP server.";
diff --git a/UI/MailerUI/Spanish.lproj/Localizable.strings b/UI/MailerUI/Spanish.lproj/Localizable.strings
index 56ca60c46..fea4d0a05 100644
--- a/UI/MailerUI/Spanish.lproj/Localizable.strings
+++ b/UI/MailerUI/Spanish.lproj/Localizable.strings
@@ -91,7 +91,7 @@
"To" = "Para";
"Cc" = "Cc";
"Bcc" = "CCo";
-"Reply-To" = "Responder A";
+"Reply-To" = "Responder A";
"Add address" = "Añadir dirección";
"Attachments:" = "Adjuntos:";
@@ -166,7 +166,7 @@
"DraftsFolderName" = "Borradores";
"SieveFolderName" = "Filtros";
"OtherUsersFolderName" = "Otros usuarios";
-"SharedFoldersName" = "Carpetas compartidas";
+"SharedFoldersName" = "Carpetas compartidas";
"Folders" = "Carpetas"; /* title line */
/* MailMoveToPopUp */
diff --git a/UI/MainUI/BrazilianPortuguese.lproj/Localizable.strings b/UI/MainUI/BrazilianPortuguese.lproj/Localizable.strings
index c4589a7a3..94235dacb 100644
--- a/UI/MainUI/BrazilianPortuguese.lproj/Localizable.strings
+++ b/UI/MainUI/BrazilianPortuguese.lproj/Localizable.strings
@@ -46,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Your account was locked due to an expired password.";
"Login failed due to unhandled error case: " = "Login failed due to unhandled error case: ";
"Change your Password" = "Change your Password";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Your password has expired, please enter a new one below:";
"Password must not be empty." = "Password must not be empty.";
"The passwords do not match. Please try again." = "The passwords do not match. Please try again.";
diff --git a/UI/MainUI/Catalan.lproj/Localizable.strings b/UI/MainUI/Catalan.lproj/Localizable.strings
index 936673562..2f9426abc 100644
--- a/UI/MainUI/Catalan.lproj/Localizable.strings
+++ b/UI/MainUI/Catalan.lproj/Localizable.strings
@@ -46,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "El vostre compte ha estat bloquejat perquè la contrasenya ha caducat.";
"Login failed due to unhandled error case: " = "Connexió fallida a causa d'un error inesperat: ";
"Change your Password" = "Canvieu la contrasenya";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "La contrasenya ha caducat; introduïu-ne una de nova:";
"Password must not be empty." = "Heu d'escriure la contrasenya.";
"The passwords do not match. Please try again." = "Les contrasenyes no coincideixen. Torneu-ho a intentar.";
diff --git a/UI/MainUI/Czech.lproj/Localizable.strings b/UI/MainUI/Czech.lproj/Localizable.strings
index b89f353bb..1eb25adb1 100644
--- a/UI/MainUI/Czech.lproj/Localizable.strings
+++ b/UI/MainUI/Czech.lproj/Localizable.strings
@@ -46,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Váš účet byl zablokován z důvodu expirovaného hesla.";
"Login failed due to unhandled error case: " = "Přihlášení selhalo z důvodu chyby: ";
"Change your Password" = "Změňte své heslo";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Vaše heslo expirovalo, prosím zadejte nové:";
"Password must not be empty." = "Heslo nesmí být prázdné.";
"The passwords do not match. Please try again." = "Hesla se neshodují. Prosím zadejte znovu.";
diff --git a/UI/MainUI/Dutch.lproj/Localizable.strings b/UI/MainUI/Dutch.lproj/Localizable.strings
index afc578db4..0495d89af 100644
--- a/UI/MainUI/Dutch.lproj/Localizable.strings
+++ b/UI/MainUI/Dutch.lproj/Localizable.strings
@@ -46,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Your account was locked due to an expired password.";
"Login failed due to unhandled error case: " = "Login failed due to unhandled error case: ";
"Change your Password" = "Change your Password";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Your password has expired, please enter a new one below:";
"Password must not be empty." = "Password must not be empty.";
"The passwords do not match. Please try again." = "The passwords do not match. Please try again.";
diff --git a/UI/MainUI/English.lproj/Localizable.strings b/UI/MainUI/English.lproj/Localizable.strings
index 23ff73048..2cc33df23 100644
--- a/UI/MainUI/English.lproj/Localizable.strings
+++ b/UI/MainUI/English.lproj/Localizable.strings
@@ -46,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Your account was locked due to an expired password.";
"Login failed due to unhandled error case: " = "Login failed due to unhandled error case: ";
"Change your Password" = "Change your Password";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Your password has expired, please enter a new one below:";
"Password must not be empty." = "Password must not be empty.";
"The passwords do not match. Please try again." = "The passwords do not match. Please try again.";
diff --git a/UI/MainUI/French.lproj/Localizable.strings b/UI/MainUI/French.lproj/Localizable.strings
index 663b2f43a..43fd8c2cc 100644
--- a/UI/MainUI/French.lproj/Localizable.strings
+++ b/UI/MainUI/French.lproj/Localizable.strings
@@ -46,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Votre compte a été bloqué car votre mot de passe est expiré.";
"Login failed due to unhandled error case: " = "Authentification a échouée pour une raison inconnue: ";
"Change your Password" = "Changez votre mot de passe";
+"The password was changed successfully." = "Votre mot de passe a bien été changé.";
"Your password has expired, please enter a new one below:" = "Votre mot de passe est expiré, veuillez entrer un nouveau mot de passe:";
"Password must not be empty." = "Le mot de passe ne doit pas être vide.";
"The passwords do not match. Please try again." = "Les mots de passe ne sont pas identiques. Essayez de nouveau.";
diff --git a/UI/MainUI/German.lproj/Localizable.strings b/UI/MainUI/German.lproj/Localizable.strings
index cacbe76fb..7b41adace 100644
--- a/UI/MainUI/German.lproj/Localizable.strings
+++ b/UI/MainUI/German.lproj/Localizable.strings
@@ -4,6 +4,7 @@
"Username:" = "Benutzername:";
"Password:" = "Passwort:";
+"Domain:" = "Domain:";
"Connect" = "Anmelden";
@@ -24,8 +25,10 @@
"French" = "Français";
"German" = "Deutsch";
"Hungarian" = "Magyar";
+"Icelandic" = "Íslenska";
"Italian" = "Italiano";
"Norwegian" = "Norsk";
+"Polish" = "Polski";
"BrazilianPortuguese" = "Português brasileiro";
"Russian" = "Русский";
"Spanish" = "Español";
@@ -43,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Ihr Konto wurde wegen eines abgelaufenen Passworts gesperrt.";
"Login failed due to unhandled error case: " = "Die Anmeldung ist aufgrund eines unbehandelten Fehlers fehlgeschlagen: ";
"Change your Password" = "Passwort ändern";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Ihr Passwort ist abgelaufen. Bitte geben Sie ein neues an:";
"Password must not be empty." = "Passwort darf nicht leer sein.";
"The passwords do not match. Please try again." = "Die Passwörter stimmen nicht überein. Bitte noch einmal eingeben.";
diff --git a/UI/MainUI/Hungarian.lproj/Localizable.strings b/UI/MainUI/Hungarian.lproj/Localizable.strings
index ab4f11934..24f2907d6 100644
--- a/UI/MainUI/Hungarian.lproj/Localizable.strings
+++ b/UI/MainUI/Hungarian.lproj/Localizable.strings
@@ -46,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Your account was locked due to an expired password.";
"Login failed due to unhandled error case: " = "Login failed due to unhandled error case: ";
"Change your Password" = "Change your Password";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Your password has expired, please enter a new one below:";
"Password must not be empty." = "Password must not be empty.";
"The passwords do not match. Please try again." = "The passwords do not match. Please try again.";
diff --git a/UI/MainUI/Icelandic.lproj/Localizable.strings b/UI/MainUI/Icelandic.lproj/Localizable.strings
index e6617b14c..10842de26 100644
--- a/UI/MainUI/Icelandic.lproj/Localizable.strings
+++ b/UI/MainUI/Icelandic.lproj/Localizable.strings
@@ -46,6 +46,7 @@ Sjá þessa síðu
"Your account was locked due to an expired password." = "Your account was locked due to an expired password.";
"Login failed due to unhandled error case: " = "Login failed due to unhandled error case: ";
"Change your Password" = "Breyta lykilorði";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Your password has expired, please enter a new one below:";
"Password must not be empty." = "Password must not be empty.";
"The passwords do not match. Please try again." = "The passwords do not match. Please try again.";
diff --git a/UI/MainUI/Italian.lproj/Localizable.strings b/UI/MainUI/Italian.lproj/Localizable.strings
index 833b56e9c..a2d33d482 100644
--- a/UI/MainUI/Italian.lproj/Localizable.strings
+++ b/UI/MainUI/Italian.lproj/Localizable.strings
@@ -46,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Account bloccato per password scaduta.";
"Login failed due to unhandled error case: " = "Login fallito a causa di un errore non gestito: ";
"Change your Password" = "Cambia la tua password";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "La tua password è scaduta, prego inserire la nuova password qui sotto:";
"Password must not be empty." = "La password non può essere vuota.";
"The passwords do not match. Please try again." = "Le password non coincidono. Prego riprovare.";
diff --git a/UI/MainUI/Norwegian.lproj/Localizable.strings b/UI/MainUI/Norwegian.lproj/Localizable.strings
index 6dd94532a..8f1410690 100644
--- a/UI/MainUI/Norwegian.lproj/Localizable.strings
+++ b/UI/MainUI/Norwegian.lproj/Localizable.strings
@@ -46,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Din konto har blitt låst fordi ditt passord er utløpt.";
"Login failed due to unhandled error case: " = "Login failed due to unhandled error case: ";
"Change your Password" = "Endre ditt passord";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Ditt passord har utløpt, vennligst fyll ut et nytt under:";
"Password must not be empty." = "Passordet må ikke være tomt.";
"The passwords do not match. Please try again." = "Passordene stemmer ikke overens. Vennligst prøv igjen.";
diff --git a/UI/MainUI/Polish.lproj/Localizable.strings b/UI/MainUI/Polish.lproj/Localizable.strings
index e72d9d1c8..8f9ad0604 100644
--- a/UI/MainUI/Polish.lproj/Localizable.strings
+++ b/UI/MainUI/Polish.lproj/Localizable.strings
@@ -46,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Twoje konto zostało zblokowane z powodu wygaśnięcia ważności hasła.";
"Login failed due to unhandled error case: " = "Logowanie nie powiodło się z powodu niezidentyfikowanego błędu: ";
"Change your Password" = "Zmień swoje hasło";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Ważność twojego hasła wygasła, wprowadź niżej nowe hasło:";
"Password must not be empty." = "Hasło nie może być puste.";
"The passwords do not match. Please try again." = "Hasła nie są zgodne. Spróbuj jeszcze raz.";
diff --git a/UI/MainUI/Russian.lproj/Localizable.strings b/UI/MainUI/Russian.lproj/Localizable.strings
index df5f442e8..57579579e 100644
--- a/UI/MainUI/Russian.lproj/Localizable.strings
+++ b/UI/MainUI/Russian.lproj/Localizable.strings
@@ -4,6 +4,7 @@
"Username:" = "Логин:";
"Password:" = "Пароль:";
+"Domain:" = "Domain:";
"Connect" = "Соединение";
@@ -24,8 +25,10 @@
"French" = "Français";
"German" = "Deutsch";
"Hungarian" = "Magyar";
+"Icelandic" = "Íslenska";
"Italian" = "Italiano";
"Norwegian" = "Norsk";
+"Polish" = "Polski";
"BrazilianPortuguese" = "Português brasileiro";
"Russian" = "Русский";
"Spanish" = "Español";
@@ -43,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Your account was locked due to an expired password.";
"Login failed due to unhandled error case: " = "Login failed due to unhandled error case: ";
"Change your Password" = "Change your Password";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Your password has expired, please enter a new one below:";
"Password must not be empty." = "Password must not be empty.";
"The passwords do not match. Please try again." = "The passwords do not match. Please try again.";
diff --git a/UI/MainUI/Spanish.lproj/Localizable.strings b/UI/MainUI/Spanish.lproj/Localizable.strings
index 48a9aad5b..a6c48c54b 100644
--- a/UI/MainUI/Spanish.lproj/Localizable.strings
+++ b/UI/MainUI/Spanish.lproj/Localizable.strings
@@ -4,6 +4,7 @@
"Username:" = "Usuario:";
"Password:" = "Contraseña:";
+"Domain:" = "Domain:";
"Connect" = "Conectar";
@@ -24,8 +25,10 @@
"French" = "Français";
"German" = "Deutsch";
"Hungarian" = "Magyar";
+"Icelandic" = "Íslenska";
"Italian" = "Italiano";
"Norwegian" = "Norsk";
+"Polish" = "Polski";
"BrazilianPortuguese" = "Português brasileiro";
"Russian" = "Русский";
"Spanish" = "Español";
@@ -43,6 +46,7 @@ Ver esta página pa
"Your account was locked due to an expired password." = "Su cuenta ha sido bloqueada debido a una contraseña caducada.";
"Login failed due to unhandled error case: " = "Conexión fallida debido a un error desconocido: ";
"Change your Password" = "Cambie su contraseña";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Su contraseña ha caducado, por favor, introduzca una nueva abajo:";
"Password must not be empty." = "La contraseña no puede estar vacía.";
"The passwords do not match. Please try again." = "La contraseña no es igual. Por favor, intentelo de nuevo.";
diff --git a/UI/MainUI/Swedish.lproj/Localizable.strings b/UI/MainUI/Swedish.lproj/Localizable.strings
index f5e16963e..3ae07ac27 100644
--- a/UI/MainUI/Swedish.lproj/Localizable.strings
+++ b/UI/MainUI/Swedish.lproj/Localizable.strings
@@ -46,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Ditt konto är spärrat pga att lösenordet har slutat gälla.";
"Login failed due to unhandled error case: " = "Inloggningen misslyckades pga ett okänt fel: ";
"Change your Password" = "Ändra ditt lösenord";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Ditt lösenord har slutat gälla, mata in ett nytt lösenord nedan:";
"Password must not be empty." = "Lösenordet får inte vara tomt.";
"The passwords do not match. Please try again." = "Felaktigt lösenord. Försök igen.";
diff --git a/UI/MainUI/Ukrainian.lproj/Localizable.strings b/UI/MainUI/Ukrainian.lproj/Localizable.strings
index cdd491d55..50c7b6a8e 100644
--- a/UI/MainUI/Ukrainian.lproj/Localizable.strings
+++ b/UI/MainUI/Ukrainian.lproj/Localizable.strings
@@ -49,6 +49,7 @@ SOGo забезпечує зручний веб-інтерфейс на осно
"Your account was locked due to an expired password." = "Ваш обліковий запис заблоковано, оскільки закінчився термін дії пароля.";
"Login failed due to unhandled error case: " = "Невдала спроба авторизація через невизначену помилку: ";
"Change your Password" = "Змініть Ваш пароль";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Закінчився термін дії Вашого пароля, будь ласка, введіть новий нижче:";
"Password must not be empty." = "Пароль не може бути порожнім.";
"The passwords do not match. Please try again." = "Паролі не співпадають. Будь ласка, спробуйте ще раз.";
diff --git a/UI/MainUI/Welsh.lproj/Localizable.strings b/UI/MainUI/Welsh.lproj/Localizable.strings
index 1eab0dc5a..81eabedf5 100644
--- a/UI/MainUI/Welsh.lproj/Localizable.strings
+++ b/UI/MainUI/Welsh.lproj/Localizable.strings
@@ -46,6 +46,7 @@ See this page for v
"Your account was locked due to an expired password." = "Your account was locked due to an expired password.";
"Login failed due to unhandled error case: " = "Login failed due to unhandled error case: ";
"Change your Password" = "Change your Password";
+"The password was changed successfully." = "The password was changed successfully.";
"Your password has expired, please enter a new one below:" = "Your password has expired, please enter a new one below:";
"Password must not be empty." = "Password must not be empty.";
"The passwords do not match. Please try again." = "The passwords do not match. Please try again.";
diff --git a/UI/Scheduler/Russian.lproj/Localizable.strings b/UI/Scheduler/Russian.lproj/Localizable.strings
index 7fc198506..ae0b045de 100644
--- a/UI/Scheduler/Russian.lproj/Localizable.strings
+++ b/UI/Scheduler/Russian.lproj/Localizable.strings
@@ -537,6 +537,7 @@ vtodo_class2 = "(Конфиденциальное задание)";
"Show tasks" = "Показать задания";
"Links to this Calendar" = "Ссылки на этот календарь";
+"Authenticated User Access" = "Authenticated User Access";
"CalDAV URL" = "CalDAV url";
"WebDAV ICS URL" = "WebDAV ICS URL";
"WebDAV XML URL" = "WebDAV XML URL";
@@ -549,6 +550,7 @@ vtodo_class2 = "(Конфиденциальное задание)";
"yearFieldInvalid" = "Пожалуйста, укажите числовое значение в поле лет, большее или равное 1.";
"appointmentFieldInvalid" = "Пожалуйста, укажите числовое значение в поле встреч, большее или равное 1.";
"recurrenceUnsupported" = "Этот тип повторений пока не поддерживается.";
+"Please specify a calendar name." = "Please specify a calendar name.";
"tagNotDefined" = "Вы должны указать метку (tag) если хотите синхронизировать этот календарь.";
"tagAlreadyExists" = "Указанная метка уже используется в другом календаре.";
"tagHasChanged" = "Если Вы смените метку в этом календаре, то будет необходимо заново синхронизировать данные на Вашем мобильном устройстве. \nПродолжить?";
@@ -561,6 +563,7 @@ vtodo_class2 = "(Конфиденциальное задание)";
"Mark Completed" = "Пометить как завершенное";
"Delete Task" = "Удалить задачу";
"Delete Event" = "Удалить событие";
+"Copy event to my calendar" = "Copy event to my calendar";
"Subscribe to a web calendar..." = "Подписаться на калентарь в сети...";
"URL of the Calendar" = "URL of the Calendar";
diff --git a/UI/Scheduler/Spanish.lproj/Localizable.strings b/UI/Scheduler/Spanish.lproj/Localizable.strings
index e3861427a..6b38df5e2 100644
--- a/UI/Scheduler/Spanish.lproj/Localizable.strings
+++ b/UI/Scheduler/Spanish.lproj/Localizable.strings
@@ -550,6 +550,7 @@ vtodo_class2 = "(Tarea confidencial)";
"yearFieldInvalid" = "Por favor, especificar un valor númerico en el campo año superior o igual a 1.";
"appointmentFieldInvalid" = "Por favor, especificar un valor númerico en el campo cita(s) superior o igual a 1.";
"recurrenceUnsupported" = "Este tipo de frecuencia no esta soportado.";
+"Please specify a calendar name." = "Please specify a calendar name.";
"tagNotDefined" = "Tiene que especificar un marcador si quiere sincronizar este calendario.";
"tagAlreadyExists" = "El marcador especificado ya esta asociado a otro calendario.";
"tagHasChanged" = "Si cambia el marcador de este calendario, necesitara recargar los datos en su teléfono móvil.\n¿Continuar?";
diff --git a/UI/Scheduler/UIxComponentEditor.m b/UI/Scheduler/UIxComponentEditor.m
index 821e68027..2e1b84c87 100644
--- a/UI/Scheduler/UIxComponentEditor.m
+++ b/UI/Scheduler/UIxComponentEditor.m
@@ -2280,12 +2280,7 @@ RANGE(2);
*) clientObject
{
SoSecurityManager *sm;
- NSString *toolbarFilename, *adminToolbar;
-
- if ([clientObject isKindOfClass: [SOGoAppointmentObject class]])
- adminToolbar = @"SOGoAppointmentObject.toolbar";
- else
- adminToolbar = @"SOGoTaskObject.toolbar";
+ NSString *toolbarFilename;
sm = [SoSecurityManager sharedSecurityManager];