Merge to 2.3.22

This commit is contained in:
Francis Lachapelle
2017-07-20 14:03:59 -04:00
156 changed files with 2726 additions and 1155 deletions
@@ -18,6 +18,8 @@ vtodo_class2 = "(Vertrauliche Aufgabe)";
"calendar_label" = "Kalender";
"startDate_label" = "Beginn";
"endDate_label" = "Ende";
"time_label" = "Zeit";
"to_label" = "bis";
"due_label" = "Fälligkeit:";
"location_label" = "Ort";
"summary_label" = "Zusammenfassung:";
@@ -18,10 +18,14 @@ vtodo_class2 = "(משימה סודית)";
"calendar_label" = "לוח שנה";
"startDate_label" = "התחלה";
"endDate_label" = "סיום";
"time_label" = "זמן";
"to_label" = "עבור";
"due_label" = "תאריך להגשה";
"location_label" = "מיקום";
"summary_label" = "תקציר";
"comment_label" = "הערה";
"organizer_label" = "מארגן";
"attendee_label" = "משתתפים";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "הזמנה לאירוע: \"{Summary}%\"";
"(sent by %{SentBy}) " = "(מאת {SentBy}%)";
@@ -18,10 +18,14 @@ vtodo_class2 = "(Bizalmas feladat)";
"calendar_label" = "Naptár";
"startDate_label" = "Kezdete";
"endDate_label" = "Vége";
"time_label" = "Idő";
"to_label" = "-";
"due_label" = "Lejárat napja:";
"location_label" = "Hely";
"summary_label" = "Összegzés:";
"comment_label" = "Megjegyzés:";
"organizer_label" = "Szervező";
"attendee_label" = "Résztvevő";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Meghívás eseményre: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(%{SentBy} által elküldve) ";
@@ -18,10 +18,14 @@ vtodo_class2 = "(Доверлива задача)";
"calendar_label" = "Календар:";
"startDate_label" = "Почеток:";
"endDate_label" = "Крај:";
"time_label" = "Време";
"to_label" = "до";
"due_label" = "Краен датум:";
"location_label" = "Локација";
"summary_label" = "Резиме:";
"comment_label" = "Коментар:";
"organizer_label" = "Организатор";
"attendee_label" = "Учесник";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Покана за настанот: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(испратено од %{SentBy}) ";
@@ -18,10 +18,14 @@ vtodo_class2 = "(Конфиденциальная задача)";
"calendar_label" = "Календарь";
"startDate_label" = "Начало";
"endDate_label" = "Конец";
"time_label" = "Время";
"to_label" = "кому";
"due_label" = "Должно быть готово к:";
"location_label" = "Местонахождение";
"summary_label" = "Краткое содержание:";
"comment_label" = "Комментарий";
"organizer_label" = "Организатор";
"attendee_label" = "Участник";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Приглашение на мероприятие: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(послал %{SentBy}) ";
@@ -1,4 +1,4 @@
"Inviting the following persons is prohibited:" = "Bu kişileri davet etmek yasaklanmış:";
"Inviting the following persons is prohibited:" = "Bu kişileri davet etmek engellenmiş:";
"Personal Calendar" = "Kişisel Takvim";
vevent_class0 = "(Herkese açık etkinlik)";
vevent_class1 = "(Kişisel etkinlik)";
@@ -1,3 +1,4 @@
"Inviting the following persons is prohibited:" = "Ni chaniateir gwahodd y personau canlynol:";
"Personal Calendar" = "Calendr Personol";
vevent_class0 = "(Digwyddiad cyhoeddus)";
vevent_class1 = "(Digwyddiad preifat)";
@@ -7,48 +8,57 @@ vtodo_class0 = "(Tasg gyhoeddus)";
vtodo_class1 = "(Tasg breifat)";
vtodo_class2 = "(Tasg gyfrinachol)";
/* Receipts */
"Title:" = "Title:";
"Start:" = "Start:";
"End:" = "End:";
"Receipt: users invited to a meeting" = "Receipt: users invited to a meeting";
"You have invited the following attendees(s):" = "You have invited the following attendees(s):";
"... to attend the following event:" = "... to attend the following event:";
"Receipt: invitation updated" = "Receipt: invitation updated";
"The following attendees(s):" = "The following attendees(s):";
"... have been notified of the changes to the following event:" = "... have been notified of the changes to the following event:";
"Receipt: attendees removed from an event" = "Receipt: attendees removed from an event";
"You have removed the following attendees(s):" = "You have removed the following attendees(s):";
"... from the following event:" = "... from the following event:";
"The event \"%{Summary}\" was created" = "Crëwyd y digwyddiad \"%{Summary}\"";
"The event \"%{Summary}\" was deleted" = "Dilëwyd y digwyddiad \"%{Summary}\"";
"The event \"%{Summary}\" was updated" = "Diweddarwyd y digwyddiad \"%{Summary}\"";
"The following attendees(s) were notified" = "Hysbyswyd y mynychwr/mynychwyr canlynol";
"The following attendees(s) were added" = "Ychwanegwyd y mynychwr/mynychwyr canlynol";
"The following attendees(s) were removed" = "Dilëwyd y mynychwr/mynychwyr canlynol";
/* IMIP messages */
"startDate_label" = "Start";
"endDate_label" = "End";
"due_label" = "Due Date:";
"location_label" = "Location";
"summary_label" = "Summary:";
"comment_label" = "Comment:";
"calendar_label" = "Calendr";
"startDate_label" = "Dechrau";
"endDate_label" = "Diwedd";
"time_label" = "Amser";
"to_label" = "at";
"due_label" = "Dyddiad Disgwyliedig";
"location_label" = "Lleoliad";
"summary_label" = "Crynodeb";
"comment_label" = "Sylw";
"organizer_label" = "Trefnydd";
"attendee_label" = "Mynychwr";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Event Invitation: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(anfon gan %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}";
"Event Invitation: \"%{Summary}\"" = "Gwahoddiad i Ddigwyddiad: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(anfonwyd gan %{SentBy})";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "Mae %{Organizer} %{SentByText}wedi eich gwahodd i %{Summary}.\n\nDechrau: %{StartDate}\nDiwedd: %{EndDate}\nDisgrifiad: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "Mae %{Organizer} %{SentByText}wedi eich gwahodd i %{Summary}.\n\nDechrau: %{StartDate} am %{StartTime}\nDiwedd: %{EndDate} am %{EndTime}\nDisgrifiad: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Event Cancelled: \"%{Summary}\"";
"Event Cancelled: \"%{Summary}\"" = "Digwyddiad wedi'i Ganslo: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "Mae %{Organizer} %{SentByText}wedi canslo'r digwyddiad hwn: %{Summary}.\n\nDechrau: %{StartDate}\nDiwedd: %{EndDate}\nDisgrifiad: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}";
= "Mae %{Organizer} %{SentByText}wedi canslo'r digwyddiad hwn: %{Summary}.\n\nDechrau: %{StartDate} am %{StartTime}\nDiwedd: %{EndDate} am %{EndTime}\nDisgrifiad: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Mae'r apwyntiad \"%{Summary}\" ar gyfer %{OldStartDate} wedi newid";
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed";
= "Mae'r apwyntiad \"%{Summary}\" ar gyfer %{OldStartDate} am %{OldStartTime} wedi newid";
"The following parameters have changed in the \"%{Summary}\" meeting:"
= "The following parameters have changed in the \"%{Summary}\" meeting:";
= "Mae'r paramedrau canlynol wedi newid yng nghyfarfod \"%{Summary}\":";
"Please accept or decline those changes."
= "Please accept or decline those changes.";
= "Derbyniwch neu gwrthodwch y newidiadau hynny.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Wedi derbyn y gwahoddiad: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Wedi gwrthod y gwahoddiad: \"%{Summary}\"";
"Delegated invitation: \"%{Summary}\"" = "Wedi dirprwyo'r gwahoddiad: \"%{Summary}\"";
"Not yet decided on invitation: \"%{Summary}\"" = "Heb benderfynu ar y gwahoddiad eto: \"%{Summary}\"";
"%{Attendee} %{SentByText}has accepted your event invitation."
= "%{Attendee} %{SentByText}wedi derbyn.";
= "Mae %{Attendee} %{SentByText}wedi derbyn eich gwahoddiad.";
"%{Attendee} %{SentByText}has declined your event invitation."
= "%{Attendee} %{SentByText}wedi gwrthod.";
= "Mae %{Attendee} %{SentByText}wedi gwrthod eich gwahoddiad.";
"%{Attendee} %{SentByText}has delegated the invitation to %{Delegate}."
= "%{Attendee} %{SentByText}has delegated the invitation to %{Delegate}.";
= "Mae %{Attendee} %{SentByText}wedi dirprwyo eich gwahoddiad i %{Delegate}";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}heb benderfynu ar eich gwahoddiad eto.";
= "Dydy %{Attendee} %{SentByText}ddim wedi penderfynu ar eich gwahoddiad eto.";
/* Resources */
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\"." = "Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\".";
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Methu cael mynediad at adnodd: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Wedi cyrraedd uchafswm nifer yr achebion sy'n bosib ar yr un pryd (%{NumberOfSimultaneousBookings}) ar gyfer adnodd \"%{Cn} %{SystemEmail}\". Y digwyddiad sy'n cyd-daro yw \"%{EventTitle}\", sy'n dechrau ar %{StartDate}.";
@@ -1 +1,2 @@
"Personal Address Book" = "Llyfr Cyfeiriadau Personol";
"Collected Address Book" = "Llyfr Cyfeiriadau wedi'u Casglu";
@@ -1,2 +1,2 @@
"OtherUsersFolderName" = "משתשמשים אחרים";
"OtherUsersFolderName" = "משתמשים אחרים";
"SharedFoldersName" = "תיקיות משותפות";
+8 -1
View File
@@ -1158,7 +1158,14 @@ static NSString *userAgent = nil;
name = [name substringFromIndex: r.location + 1];
if (![self isValidAttachmentName: name])
return [self invalidAttachmentNameError: name];
{
if ([name rangeOfString: @"/"].length)
{
name = [name stringByReplacingOccurrencesOfString: @"/" withString: @"-"];
}
else
return [self invalidAttachmentNameError: name];
}
p = [self pathToAttachmentWithName: name];
if (![_attach writeToFile: p atomically: YES])
@@ -1,2 +1,2 @@
"SieveFolderName" = "Ffilteri";
"OtherUsersFolderName" = "Other Users";
"OtherUsersFolderName" = "Defnyddwyr Eraill";
"SharedFoldersName" = "Ffolderi a Rennir";
+3 -1
View File
@@ -447,7 +447,9 @@ static NSArray *childRecordFields = nil;
cache = [SOGoCache sharedCache];
record = [[cache valueForKey: _path] objectFromJSONString];
if (!record)
// We check if we got a cache miss or a potentially bogus
// entry from the cache
if (!record || ![record objectForKey: @"c_folder_type"])
{
record = [[self folderManager] recordAtPath: _path];
+2 -2
View File
@@ -397,11 +397,11 @@
}
if ([mailingMechanism isEqualToString: @"sendmail"])
result = [self _sendmailSendData: data
result = [self _sendmailSendData: cleaned_message
toRecipients: recipients
sender: [sender pureEMailAddress]];
else
result = [self _smtpSendData: data
result = [self _smtpSendData: cleaned_message
toRecipients: recipients
sender: [sender pureEMailAddress]
withAuthenticator: authenticator
+5 -2
View File
@@ -316,7 +316,7 @@ static SoSecurityManager *sm = nil;
NSMutableDictionary *folderDisplayNames;
NSMutableArray *subscribedReferences;
SOGoUserSettings *settings;
NSString *currentKey;
NSString *activeUser, *currentKey;
SOGoUser *ownerUser;
NSException *error;
id o;
@@ -332,6 +332,7 @@ static SoSecurityManager *sm = nil;
error = nil; /* we ignore non-DB errors at this time... */
dirty = NO;
activeUser = [[context activeUser] login];
ownerUser = [SOGoUser userWithLogin: owner];
settings = [ownerUser userSettings];
@@ -352,7 +353,9 @@ static SoSecurityManager *sm = nil;
// remove it from the current list.
[subscribedReferences removeObject: currentKey];
[folderDisplayNames removeObjectForKey: currentKey];
dirty = YES;
if ([owner isEqualToString: activeUser])
// Synchronize settings only if the subscription is owned by the active user
dirty = YES;
}
}
+2 -2
View File
@@ -94,8 +94,8 @@
- (int) maximumMessageSizeLimit;
- (int) maximumMessageSubmissionCount;
- (int) maximumRecipientCount;
- (NSUInteger) maximumMessageSubmissionCount;
- (NSUInteger) maximumRecipientCount;
- (int) maximumSubmissionInterval;
- (int) messageSubmissionBlockInterval;
+22 -4
View File
@@ -48,6 +48,10 @@ typedef void (*NSUserDefaultsInitFunction) ();
#define DIR_SEP "/"
#ifndef NSUIntegerMax
#define NSUIntegerMax UINTPTR_MAX
#endif
static void
BootstrapNSUserDefaults ()
{
@@ -576,14 +580,28 @@ _injectConfigurationFromFile (NSMutableDictionary *defaultsDict,
//
//
//
- (int) maximumMessageSubmissionCount
- (NSUInteger) maximumMessageSubmissionCount
{
return [self integerForKey: @"SOGoMaximumMessageSubmissionCount"];
NSUInteger v;
v = [self integerForKey: @"SOGoMaximumMessageSubmissionCount"];
if (!v)
return NSUIntegerMax;
return v;
}
- (int) maximumRecipientCount
- (NSUInteger) maximumRecipientCount
{
return [self integerForKey: @"SOGoMaximumRecipientCount"];
NSUInteger v;
v = [self integerForKey: @"SOGoMaximumRecipientCount"];
if (!v)
return NSUIntegerMax;
return v;
}
- (int) maximumSubmissionInterval