mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-09-23 06:00:32 +00:00
Merge to 2.3.22
This commit is contained in:
@@ -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" = "תיקיות משותפות";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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];
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -94,8 +94,8 @@
|
||||
|
||||
- (int) maximumMessageSizeLimit;
|
||||
|
||||
- (int) maximumMessageSubmissionCount;
|
||||
- (int) maximumRecipientCount;
|
||||
- (NSUInteger) maximumMessageSubmissionCount;
|
||||
- (NSUInteger) maximumRecipientCount;
|
||||
- (int) maximumSubmissionInterval;
|
||||
- (int) messageSubmissionBlockInterval;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user