Merge pull request #223 from inverse-inc/v2

SOGo v2.3.4
This commit is contained in:
Enrique J. Hernández
2015-12-29 22:41:02 +01:00
299 changed files with 5366 additions and 11083 deletions

View File

@@ -101,7 +101,7 @@ static NSArray *asElementArray = nil;
int i, count;
if (!asElementArray)
asElementArray = [[NSArray alloc] initWithObjects: @"Attendee", @"Category", nil];
asElementArray = [[NSArray alloc] initWithObjects: @"Attendee", @"Category", @"Exception", nil];
data = [NSMutableDictionary dictionary];

View File

@@ -2573,7 +2573,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
NSString *fullName, *email;
const char *bytes;
int i, len;
int i, e, len;
BOOL found_header;
// We get the mail's data
@@ -2622,6 +2622,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
{
found_header = YES;
i = i + 2; // \r\n
bytes = bytes + 2;
break;
}
@@ -2629,12 +2630,26 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
i++;
}
// We search for the first \r\n AFTER the From: header to get the length of the string to replace.
e = i;
while (e < len)
{
if ((*bytes == '\r') && (*(bytes+1) == '\n'))
{
e = e + 2;
break;
}
bytes++;
e++;
}
// Update/Add the From header in the MIMEBody of the SendMail request.
// Any other way to modify the mail body would break s/mime emails.
if (found_header)
{
// Change the From header
[data replaceBytesInRange: NSMakeRange(i, [[message headerForKey: @"from"] length]+8) // start of the From header found - length of the parsed from-header-value + 8 (From:+\r\n+1)
[data replaceBytesInRange: NSMakeRange(i, (NSUInteger)(e-i))
withBytes: [new_from_header bytes]
length: [new_from_header length]];
}
@@ -3160,7 +3175,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
nil]];
#endif
s = [NSString stringWithFormat: @"Date: %@\n%@", value, [theRequest contentAsString]];
s = [NSString stringWithFormat: @"Date: %@\r\n%@", value, [theRequest contentAsString]];
}
else
{

View File

@@ -472,6 +472,32 @@ struct GlobalObjectId {
return d;
}
//
//
//
- (BOOL) _sanitinizeNeeded: (NSArray *) theParts
{
NSString *encoding, *charset;
int i;
for (i = 0; i < [theParts count]; i++)
{
encoding = [[theParts objectAtIndex: i ] objectForKey: @"encoding"];
charset = [[[theParts objectAtIndex: i ] objectForKey: @"parameterList"] objectForKey: @"charset"];
if (encoding && [encoding caseInsensitiveCompare: @"8bit"] == NSOrderedSame &&
charset && ![charset caseInsensitiveCompare: @"utf-8"] == NSOrderedSame
&& ![charset caseInsensitiveCompare: @"us-ascii"] == NSOrderedSame)
{
return YES;
}
if ([self _sanitinizeNeeded: [[theParts objectAtIndex: i ] objectForKey: @"parts"]])
return YES;
}
return NO;
}
//
//
//
@@ -481,7 +507,7 @@ struct GlobalObjectId {
{
NSString *type, *subtype, *encoding;
NSData *d;
BOOL isSMIME;
BOOL isSMIME, sanitinizeNeeded;
type = [[[self bodyStructure] valueForKey: @"type"] lowercaseString];
subtype = [[[self bodyStructure] valueForKey: @"subtype"] lowercaseString];
@@ -546,10 +572,10 @@ struct GlobalObjectId {
}
else if (theType == 4 || isSMIME)
{
// We sanitize the content *ONLY* for Outlook clients and if the content-transfer-encoding is 8bit. Outlook has strange issues
// with quoted-printable/base64 encoded text parts. It just doesn't decode them.
encoding = [[self lookupInfoForBodyPart: @""] objectForKey: @"encoding"];
if ((encoding && ([encoding caseInsensitiveCompare: @"8bit"] == NSOrderedSame)) && !isSMIME)
// We sanitize the content if the content-transfer-encoding is 8bit and charset is not utf-8 or us-ascii.
sanitinizeNeeded = [self _sanitinizeNeeded: [NSArray arrayWithObject: [self bodyStructure]]];
if (sanitinizeNeeded && !isSMIME)
d = [self _sanitizedMIMEMessage];
else
d = [self content];

View File

@@ -38,6 +38,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#import <Foundation/NSTimeZone.h>
#import <NGExtensions/NSString+misc.h>
#import <NGExtensions/NSCalendarDate+misc.h>
#import <NGExtensions/NSObject+Logs.h>
#import <NGObjWeb/WOContext.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <NGObjWeb/WORequest.h>
@@ -45,11 +47,16 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#import <NGCards/iCalCalendar.h>
#import <NGCards/iCalDateTime.h>
#import <NGCards/iCalPerson.h>
#import <NGCards/NSCalendarDate+NGCards.h>
#import <NGCards/NSString+NGCards.h>
#import <NGCards/iCalCalendar.h>
#import <SOGo/SOGoUser.h>
#import <SOGo/SOGoUserDefaults.h>
#import <SOGo/WORequest+SOGo.h>
#import <Appointments/iCalEntityObject+SOGo.h>
#import <Appointments/iCalRepeatableEntityObject+SOGo.h>
#include "iCalAlarm+ActiveSync.h"
#include "iCalRecurrenceRule+ActiveSync.h"
@@ -98,10 +105,13 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
else if ([self created])
[s appendFormat: @"<DTStamp xmlns=\"Calendar:\">%@</DTStamp>", [[self created] activeSyncRepresentationWithoutSeparatorsInContext: context]];
// Timezone
tz = [(iCalDateTime *)[self firstChildWithTag: @"dtstart"] timeZone];
// StartTime -- http://msdn.microsoft.com/en-us/library/ee157132(v=exchg.80).aspx
if ([self startDate])
{
if ([self isAllDay])
if ([self isAllDay] && !tz)
[s appendFormat: @"<StartTime xmlns=\"Calendar:\">%@</StartTime>",
[[[self startDate] dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
@@ -114,7 +124,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// EndTime -- http://msdn.microsoft.com/en-us/library/ee157945(v=exchg.80).aspx
if ([self endDate])
{
if ([self isAllDay])
if ([self isAllDay] && !tz)
[s appendFormat: @"<EndTime xmlns=\"Calendar:\">%@</EndTime>",
[[[self endDate] dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
@@ -124,9 +134,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
[s appendFormat: @"<EndTime xmlns=\"Calendar:\">%@</EndTime>", [[self endDate] activeSyncRepresentationWithoutSeparatorsInContext: context]];
}
// Timezone
tz = [(iCalDateTime *)[self firstChildWithTag: @"dtstart"] timeZone];
if (!tz)
tz = [iCalTimeZone timeZoneForName: [userTimeZone name]];
@@ -226,9 +233,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//[s appendFormat: @"<Importance xmlns=\"Calendar:\">%d</Importance>", v];
// UID -- http://msdn.microsoft.com/en-us/library/ee159919(v=exchg.80).aspx
if ([[self uid] length])
if (![self recurrenceId] && [[self uid] length])
[s appendFormat: @"<UID xmlns=\"Calendar:\">%@</UID>", [self uid]];
// Sensitivity
if ([[self accessClass] isEqualToString: @"PRIVATE"])
v = 2;
@@ -251,7 +258,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
[s appendFormat: @"</Categories>"];
}
// Reminder -- http://msdn.microsoft.com/en-us/library/ee219691(v=exchg.80).aspx
// TODO: improve this to handle more alarm types
if ([self hasAlarms])
@@ -265,7 +271,74 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Recurrence rules
if ([self isRecurrent])
{
NSMutableArray *components, *exdates;
iCalEvent *current_component;
NSString *recurrence_id;
unsigned int count, max, i;
[s appendString: [[[self recurrenceRules] lastObject] activeSyncRepresentationInContext: context]];
components = [NSMutableArray arrayWithArray: [[self parent] events]];
max = [components count];
if (max > 1 || [self hasExceptionDates])
{
exdates = [NSMutableArray arrayWithArray: [self exceptionDates]];
[s appendString: @"<Exceptions xmlns=\"Calendar:\">"];
for (count = 1; count < max; count++)
{
current_component = [components objectAtIndex: count] ;
if ([self isAllDay])
{
recurrence_id = [NSString stringWithFormat: @"%@",
[[[current_component recurrenceId] dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
seconds: -[userTimeZone secondsFromGMTForDate:
[current_component recurrenceId]]]
activeSyncRepresentationWithoutSeparatorsInContext: context]];
}
else
{
recurrence_id = [NSString stringWithFormat: @"%@", [[current_component recurrenceId]
activeSyncRepresentationWithoutSeparatorsInContext: context]];
}
[s appendString: @"<Exception>"];
[s appendFormat: @"<Exception_StartTime xmlns=\"Calendar:\">%@</Exception_StartTime>", recurrence_id];
[s appendFormat: @"%@", [current_component activeSyncRepresentationInContext: context]];
[s appendString: @"</Exception>"];
}
for (i = 0; i < [exdates count]; i++)
{
[s appendString: @"<Exception>"];
[s appendString: @"<Exception_Deleted>1</Exception_Deleted>"];
if ([self isAllDay])
{
recurrence_id = [NSString stringWithFormat: @"%@",
[[[[exdates objectAtIndex: i] asCalendarDate] dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
seconds: -[userTimeZone secondsFromGMTForDate:
[[exdates objectAtIndex: i] asCalendarDate]]]
activeSyncRepresentationWithoutSeparatorsInContext: context]];
}
else
{
recurrence_id = [NSString stringWithFormat: @"%@", [[[exdates objectAtIndex: i] asCalendarDate]
activeSyncRepresentationWithoutSeparatorsInContext: context]];
}
[s appendFormat: @"<Exception_StartTime xmlns=\"Calendar:\">%@</Exception_StartTime>", recurrence_id];
[s appendString: @"</Exception>"];
}
[s appendString: @"</Exceptions>"];
}
}
// Comment
@@ -291,7 +364,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
}
}
[s appendFormat: @"<NativeBodyType xmlns=\"AirSyncBase:\">%d</NativeBodyType>", 1];
if (![self recurrenceId])
[s appendFormat: @"<NativeBodyType xmlns=\"AirSyncBase:\">%d</NativeBodyType>", 1];
return s;
}
@@ -337,13 +411,19 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- (void) takeActiveSyncValues: (NSDictionary *) theValues
inContext: (WOContext *) context
{
iCalDateTime *start, *end;
iCalDateTime *start, *end; //, *oldstart;
NSCalendarDate *oldstart;
NSTimeZone *userTimeZone;
iCalTimeZone *tz;
id o;
int deltasecs;
BOOL isAllDay;
NSMutableArray *occurences;
occurences = [NSMutableArray arrayWithArray: [[self parent] events]];
if ((o = [theValues objectForKey: @"UID"]))
[self setUid: o];
@@ -356,6 +436,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
{
isAllDay = YES;
}
else if ([occurences count] && !([theValues objectForKey: @"AllDayEvent"]))
{
// If the occurence has no AllDay tag use it from master.
isAllDay = [[occurences objectAtIndex: 0] isAllDay];
}
//
// 0- free, 1- tentative, 2- busy and 3- out of office
@@ -422,6 +507,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
{
o = [o calendarDate];
start = (iCalDateTime *) [self uniqueChildWithTag: @"dtstart"];
oldstart = [start dateTime];
[start setTimeZone: tz];
if (isAllDay)
@@ -433,6 +519,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
{
[start setDateTime: o];
}
// Calculate delta if start date has been changed.
if (oldstart)
deltasecs = [[start dateTime ] timeIntervalSinceDate: oldstart] * -1;
else
deltasecs = 0;
}
if ((o = [theValues objectForKey: @"EndTime"]))
@@ -491,6 +583,177 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
RELEASE(rule);
[rule takeActiveSyncValues: o inContext: context];
// Exceptions
if ((o = [theValues objectForKey: @"Exceptions"]) && [o isKindOfClass: [NSArray class]])
{
NSCalendarDate *recurrenceId, *adjustedRecurrenceId, *currentId;
NSMutableArray *exdates, *exceptionstouched;
iCalEvent *currentOccurence;
NSDictionary *exception;
unsigned int i, count, max;
[self removeAllExceptionDates];
exdates = [NSMutableArray array];
exceptionstouched = [NSMutableArray array];
for (i = 0; i < [o count]; i++)
{
exception = [o objectAtIndex: i];
if (![[exception objectForKey: @"Exception_Deleted"] intValue])
{
recurrenceId = [[exception objectForKey: @"Exception_StartTime"] asCalendarDate];
if (isAllDay)
recurrenceId = [recurrenceId dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
seconds: [userTimeZone secondsFromGMTForDate:recurrenceId]];
// When moving the calendar entry (i.e. changing the startDate) iOS and Android sometimes send a value for
// Exception_StartTime which is not what we expect.
// With this we make sure the recurrenceId is always correct.
//
// iOS problem - If the master is a no-allday-event but the exception is, an invalid Exception_StartTime is in the request.
// e.g. it sends 20150409T040000Z instead of 20150409T060000Z;
// This might be a special case since iPhone doesn't allow an allday-exception on a non-allday-event.
if (!([[start dateTime] compare: [[start dateTime] hour:[recurrenceId hourOfDay] minute:[recurrenceId minuteOfHour]]] == NSOrderedSame))
recurrenceId = [recurrenceId hour:[[start dateTime] hourOfDay] minute:[[start dateTime] minuteOfHour]];
// We need to store the recurrenceIds and exception dates adjusted by deltasecs.
// This ensures that the adjustment in SOGoCalendarComponent->updateComponent->_updateRecurrenceIDsWithEvent gives the correct dates.
adjustedRecurrenceId = [recurrenceId dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0 seconds: deltasecs];
// search for an existing occurence and update it
max = [occurences count];
currentOccurence = nil;
count = 1;
while (count < max)
{
currentOccurence = [occurences objectAtIndex: count] ;
currentId = [currentOccurence recurrenceId];
if ([currentId compare: adjustedRecurrenceId] == NSOrderedSame)
{
[exceptionstouched addObject: adjustedRecurrenceId];
[currentOccurence takeActiveSyncValues: exception inContext: context];
break;
}
count++;
currentOccurence = nil;
}
// Create a new occurence if we found none to update.
if (!currentOccurence)
{
iCalDateTime *recid;
currentOccurence = [self mutableCopy];
[currentOccurence removeAllRecurrenceRules];
[currentOccurence removeAllExceptionRules];
[currentOccurence removeAllExceptionDates];
[[self parent] addToEvents: currentOccurence];
[currentOccurence takeActiveSyncValues: exception inContext: context];
recid = (iCalDateTime *)[currentOccurence uniqueChildWithTag: @"recurrence-id"];
if (isAllDay)
[recid setDate: adjustedRecurrenceId];
else
[recid setDateTime: adjustedRecurrenceId];
[exceptionstouched addObject: [recid dateTime]];
}
}
else if ([[exception objectForKey: @"Exception_Deleted"] intValue])
{
recurrenceId = [[exception objectForKey: @"Exception_StartTime"] asCalendarDate];
if (isAllDay)
recurrenceId = [recurrenceId dateByAddingYears: 0 months: 0
days: 0 hours: 0 minutes: 0
seconds: [userTimeZone secondsFromGMTForDate:recurrenceId]];
// We add only valid exception dates.
if ([self doesOccurOnDate: recurrenceId] &&
([[start dateTime] compare: [[start dateTime] hour:[recurrenceId hourOfDay]
minute:[recurrenceId minuteOfHour]]] == NSOrderedSame))
{
// We need to store the recurrenceIds and exception dates adjusted by deltasecs.
// This ensures that the adjustment in SOGoCalendarComponent->updateComponent->_updateRecurrenceIDsWithEvent gives the correct dates.
[exdates addObject: [recurrenceId dateByAddingYears: 0 months: 0 days: 0 hours: 0 minutes: 0 seconds: deltasecs]];
}
}
}
// Update exception dates in master event.
max = [exdates count];
if (max > 0)
{
for (count = 0; count < max; count++)
{
if (([exceptionstouched indexOfObject: [exdates objectAtIndex: count]] == NSNotFound))
[self addToExceptionDates: [exdates objectAtIndex: count]];
}
}
// Remove all exceptions included in the request.
max = [occurences count];
count = 1; // skip the master event
while (count < max)
{
currentOccurence = [occurences objectAtIndex: count] ;
currentId = [currentOccurence recurrenceId];
// Delete all occurences which are not touched (modified/added).
if (([exceptionstouched indexOfObject: currentId] == NSNotFound))
[[[self parent] children] removeObject: currentOccurence];
count++;
}
}
else if ([self isRecurrent])
{
// We have no exceptions in request but there is a recurrence rule.
// Remove all excpetions and exception dates.
iCalEvent *currentOccurence;
unsigned int count, max;
[self removeAllExceptionDates];
max = [occurences count];
count = 1; // skip the master event
while (count < max)
{
currentOccurence = [occurences objectAtIndex: count];
[[[self parent] children] removeObject: currentOccurence];
count++;
}
}
}
else if ([self isRecurrent])
{
// We have no recurrence rule in request.
// Remove all exceptions, exception dates and recurrence rules.
iCalEvent *currentOccurence;
unsigned int count, max;
[self removeAllRecurrenceRules];
[self removeAllExceptionRules];
[self removeAllExceptionDates];
max = [occurences count];
count = 1; // skip the master event
while (count < max)
{
currentOccurence = [occurences objectAtIndex: count];
[[[self parent] children] removeObject: currentOccurence];
count++;
}
}
// Organizer - we don't touch the value unless we're the organizer
@@ -498,7 +761,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
([self userIsOrganizer: [context activeUser]] || [[context activeUser] hasEmail: o]))
{
iCalPerson *person;
person = [iCalPerson elementWithTag: @"organizer"];
[person setEmail: o];
[person setCn: [theValues objectForKey: @"Organizer_Name"]];

View File

@@ -70,8 +70,8 @@ ProxyPass /SOGo http://127.0.0.1:20000/SOGo retry=0
<Proxy http://127.0.0.1:20000/SOGo>
## adjust the following to your configuration
RequestHeader set "x-webobjects-server-port" "443"
RequestHeader set "x-webobjects-server-name" "yourhostname"
RequestHeader set "x-webobjects-server-url" "https://yourhostname"
# RequestHeader set "x-webobjects-server-name" "yourhostname"
# RequestHeader set "x-webobjects-server-url" "https://yourhostname"
## When using proxy-side autentication, you need to uncomment and
## adjust the following line:
@@ -90,5 +90,6 @@ ProxyPass /SOGo http://127.0.0.1:20000/SOGo retry=0
<IfModule rewrite_module>
RewriteEngine On
RewriteRule ^/.well-known/caldav/?$ /SOGo/dav [R=301]
RewriteRule ^/.well-known/carddav/?$ /SOGo/dav [R=301]
</IfModule>

643
ChangeLog
View File

@@ -1,3 +1,646 @@
commit 5dfbfe827dc7d7ebdf0384fd57d041764b9aedea
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Tue Dec 15 14:24:12 2015 -0500
Preparation for release 2.3.4
M Documentation/SOGoInstallationGuide.asciidoc
M Documentation/docinfo.xml
M Documentation/includes/global-attributes.asciidoc
M NEWS
M Version
commit 6ddb40fd2b0bf7de415ea7c566bbeeaad607ce7b
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Tue Dec 15 14:20:57 2015 -0500
Update CKEditor to version 4.5.6
M UI/WebServerResources/ckeditor/build-config.js
M UI/WebServerResources/ckeditor/ckeditor.js
M UI/WebServerResources/ckeditor/lang/eu.js
M UI/WebServerResources/ckeditor/plugins/clipboard/dialogs/paste.js
M UI/WebServerResources/ckeditor/plugins/link/dialogs/link.js
M UI/WebServerResources/ckeditor/plugins/scayt/dialogs/options.js
commit 37f29c06ea007f12eca03b8a9047225da20475c2
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Tue Dec 15 13:18:06 2015 -0500
Localization
M SoObjects/Appointments/Catalan.lproj/Localizable.strings
M SoObjects/Appointments/Macedonian.lproj/Localizable.strings
M SoObjects/Appointments/Polish.lproj/Localizable.strings
M UI/AdministrationUI/BrazilianPortuguese.lproj/Localizable.strings
M UI/AdministrationUI/Catalan.lproj/Localizable.strings
M UI/AdministrationUI/Finnish.lproj/Localizable.strings
M UI/AdministrationUI/Hungarian.lproj/Localizable.strings
M UI/AdministrationUI/Macedonian.lproj/Localizable.strings
M UI/AdministrationUI/Polish.lproj/Localizable.strings
M UI/AdministrationUI/Russian.lproj/Localizable.strings
M UI/AdministrationUI/SpanishSpain.lproj/Localizable.strings
M UI/Common/BrazilianPortuguese.lproj/Localizable.strings
M UI/Common/Catalan.lproj/Localizable.strings
M UI/Common/Finnish.lproj/Localizable.strings
M UI/Common/Hungarian.lproj/Localizable.strings
M UI/Common/Macedonian.lproj/Localizable.strings
M UI/Common/Polish.lproj/Localizable.strings
M UI/Common/Russian.lproj/Localizable.strings
M UI/Common/SpanishSpain.lproj/Localizable.strings
M UI/Contacts/BrazilianPortuguese.lproj/Localizable.strings
M UI/Contacts/Catalan.lproj/Localizable.strings
M UI/Contacts/Finnish.lproj/Localizable.strings
M UI/Contacts/Hungarian.lproj/Localizable.strings
M UI/Contacts/Macedonian.lproj/Localizable.strings
M UI/Contacts/Polish.lproj/Localizable.strings
M UI/Contacts/Russian.lproj/Localizable.strings
M UI/Contacts/SpanishSpain.lproj/Localizable.strings
M UI/MailPartViewers/BrazilianPortuguese.lproj/Localizable.strings
M UI/MailPartViewers/Catalan.lproj/Localizable.strings
M UI/MailPartViewers/Finnish.lproj/Localizable.strings
M UI/MailPartViewers/Hungarian.lproj/Localizable.strings
M UI/MailPartViewers/Macedonian.lproj/Localizable.strings
M UI/MailPartViewers/Polish.lproj/Localizable.strings
M UI/MailPartViewers/Russian.lproj/Localizable.strings
M UI/MailPartViewers/SpanishSpain.lproj/Localizable.strings
M UI/MailerUI/BrazilianPortuguese.lproj/Localizable.strings
M UI/MailerUI/Catalan.lproj/Localizable.strings
M UI/MailerUI/Finnish.lproj/Localizable.strings
M UI/MailerUI/Hungarian.lproj/Localizable.strings
M UI/MailerUI/Macedonian.lproj/Localizable.strings
M UI/MailerUI/Polish.lproj/Localizable.strings
M UI/MailerUI/Russian.lproj/Localizable.strings
M UI/MailerUI/SpanishSpain.lproj/Localizable.strings
M UI/MainUI/BrazilianPortuguese.lproj/Localizable.strings
M UI/MainUI/Catalan.lproj/Localizable.strings
M UI/MainUI/Finnish.lproj/Localizable.strings
M UI/MainUI/Hungarian.lproj/Localizable.strings
M UI/MainUI/Macedonian.lproj/Localizable.strings
M UI/MainUI/Polish.lproj/Localizable.strings
M UI/MainUI/Russian.lproj/Localizable.strings
M UI/MainUI/SpanishSpain.lproj/Localizable.strings
M UI/PreferencesUI/BrazilianPortuguese.lproj/Localizable.strings
M UI/PreferencesUI/Catalan.lproj/Localizable.strings
M UI/PreferencesUI/Finnish.lproj/Localizable.strings
M UI/PreferencesUI/Hungarian.lproj/Localizable.strings
M UI/PreferencesUI/Macedonian.lproj/Localizable.strings
M UI/PreferencesUI/Polish.lproj/Localizable.strings
M UI/PreferencesUI/Russian.lproj/Localizable.strings
M UI/PreferencesUI/SpanishSpain.lproj/Localizable.strings
M UI/Scheduler/BrazilianPortuguese.lproj/Localizable.strings
M UI/Scheduler/Catalan.lproj/Localizable.strings
M UI/Scheduler/Finnish.lproj/Localizable.strings
M UI/Scheduler/Hungarian.lproj/Localizable.strings
M UI/Scheduler/Macedonian.lproj/Localizable.strings
M UI/Scheduler/Polish.lproj/Localizable.strings
M UI/Scheduler/Russian.lproj/Localizable.strings
M UI/Scheduler/SpanishSpain.lproj/Localizable.strings
commit 248892c394c658f0acb9f31455e72cf544485b10
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Tue Dec 15 11:14:58 2015 -0500
(fix) small fix over previous commit
M SoObjects/Appointments/SOGoAppointmentObject.m
commit b4e4b9c29f345abb6b78957115d9825ed4e3564f
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Tue Dec 15 11:08:30 2015 -0500
(fix) avoid duplicating attendees when accepting event using a different identity over CalDAV
M NEWS
M SoObjects/Appointments/SOGoAppointmentObject.m
M SoObjects/Appointments/iCalEntityObject+SOGo.h
M SoObjects/Appointments/iCalEntityObject+SOGo.m
commit e94b4416f873918457d414f857bdcc00f3c041b0
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Tue Dec 15 10:05:21 2015 -0500
Localization cleanup
M SoObjects/Mailer/SOGoMailForward.h
M SoObjects/Mailer/SOGoMailForward.m
M SoObjects/Mailer/SOGoMailReply.h
M SoObjects/Mailer/SOGoMailReply.m
commit 8d19ec4aff246d918bc8b52ae29fccc67adebdaf
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Wed Dec 9 15:14:34 2015 -0500
Remove duplicate key in MainUI localization
M UI/MainUI/English.lproj/Localizable.strings
commit 980db7a980c0ac127fe04f162ab44aab3633b064
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Fri Dec 11 14:50:26 2015 -0500
(fix #127) fallback to "work" when export as ldif
M SoObjects/Contacts/NGVCard+SOGo.m
commit c5c6ff33d82d2fd06af0c52418905aa6a1c7144a
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Fri Dec 11 14:10:39 2015 -0500
(fix #119) disable servername and url by default
M Apache/SOGo.conf
commit 7e1bbe34dc95dd72e6565b94221251be5418c30a
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Fri Dec 11 14:02:59 2015 -0500
(fix #118) handle /.well-known/carddav
M Apache/SOGo.conf
commit f9884e3f55423114be529f26b1447e1dd7b76653
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Thu Dec 10 14:12:33 2015 -0500
(fix) added new strings from v3
M UI/Contacts/English.lproj/Localizable.strings
M UI/MailerUI/English.lproj/Localizable.strings
M UI/Scheduler/English.lproj/Localizable.strings
commit 15ab0f851dca306eb8200558369da3bbfc294103
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Tue Dec 8 10:05:19 2015 -0500
Localization
M UI/PreferencesUI/English.lproj/Localizable.strings
commit 1f98d7ccedb2a57cf96cdda4740dfd617cca04ab
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Thu Dec 3 15:40:38 2015 -0500
(fix) fixed broken translations
M UI/MailerUI/German.lproj/Localizable.strings
M UI/MailerUI/Italian.lproj/Localizable.strings
commit 2755a83e652132e72357bc626fd3c0d56d5ec160
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Thu Dec 3 15:02:01 2015 -0500
(fix) remove trailing semicolon everywhere
M SoObjects/Appointments/Arabic.lproj/Localizable.strings
M SoObjects/Appointments/Basque.lproj/Localizable.strings
M SoObjects/Appointments/BrazilianPortuguese.lproj/Localizable.strings
M SoObjects/Appointments/Catalan.lproj/Localizable.strings
M SoObjects/Appointments/ChineseTaiwan.lproj/Localizable.strings
M SoObjects/Appointments/Czech.lproj/Localizable.strings
M SoObjects/Appointments/Danish.lproj/Localizable.strings
M SoObjects/Appointments/Dutch.lproj/Localizable.strings
M SoObjects/Appointments/English.lproj/Localizable.strings
M SoObjects/Appointments/Finnish.lproj/Localizable.strings
M SoObjects/Appointments/French.lproj/Localizable.strings
M SoObjects/Appointments/German.lproj/Localizable.strings
M SoObjects/Appointments/Hungarian.lproj/Localizable.strings
M SoObjects/Appointments/Icelandic.lproj/Localizable.strings
M SoObjects/Appointments/Italian.lproj/Localizable.strings
M SoObjects/Appointments/Macedonian.lproj/Localizable.strings
M SoObjects/Appointments/NorwegianBokmal.lproj/Localizable.strings
M SoObjects/Appointments/NorwegianNynorsk.lproj/Localizable.strings
M SoObjects/Appointments/Polish.lproj/Localizable.strings
M SoObjects/Appointments/Portuguese.lproj/Localizable.strings
M SoObjects/Appointments/Russian.lproj/Localizable.strings
M SoObjects/Appointments/Slovak.lproj/Localizable.strings
M SoObjects/Appointments/Slovenian.lproj/Localizable.strings
M SoObjects/Appointments/SpanishArgentina.lproj/Localizable.strings
M SoObjects/Appointments/SpanishSpain.lproj/Localizable.strings
M SoObjects/Appointments/Swedish.lproj/Localizable.strings
M SoObjects/Appointments/Ukrainian.lproj/Localizable.strings
M SoObjects/Appointments/Welsh.lproj/Localizable.strings
M UI/AdministrationUI/Arabic.lproj/Localizable.strings
M UI/AdministrationUI/Basque.lproj/Localizable.strings
M UI/AdministrationUI/BrazilianPortuguese.lproj/Localizable.strings
M UI/AdministrationUI/Catalan.lproj/Localizable.strings
M UI/AdministrationUI/ChineseTaiwan.lproj/Localizable.strings
M UI/AdministrationUI/Czech.lproj/Localizable.strings
M UI/AdministrationUI/Danish.lproj/Localizable.strings
M UI/AdministrationUI/Dutch.lproj/Localizable.strings
M UI/AdministrationUI/English.lproj/Localizable.strings
M UI/AdministrationUI/Finnish.lproj/Localizable.strings
M UI/AdministrationUI/French.lproj/Localizable.strings
M UI/AdministrationUI/German.lproj/Localizable.strings
M UI/AdministrationUI/Hungarian.lproj/Localizable.strings
M UI/AdministrationUI/Icelandic.lproj/Localizable.strings
M UI/AdministrationUI/Italian.lproj/Localizable.strings
M UI/AdministrationUI/Macedonian.lproj/Localizable.strings
M UI/AdministrationUI/NorwegianBokmal.lproj/Localizable.strings
M UI/AdministrationUI/NorwegianNynorsk.lproj/Localizable.strings
M UI/AdministrationUI/Polish.lproj/Localizable.strings
M UI/AdministrationUI/Portuguese.lproj/Localizable.strings
M UI/AdministrationUI/Russian.lproj/Localizable.strings
M UI/AdministrationUI/Slovak.lproj/Localizable.strings
M UI/AdministrationUI/Slovenian.lproj/Localizable.strings
M UI/AdministrationUI/SpanishArgentina.lproj/Localizable.strings
M UI/AdministrationUI/SpanishSpain.lproj/Localizable.strings
M UI/AdministrationUI/Swedish.lproj/Localizable.strings
M UI/AdministrationUI/Ukrainian.lproj/Localizable.strings
M UI/AdministrationUI/Welsh.lproj/Localizable.strings
M UI/Common/Arabic.lproj/Localizable.strings
M UI/Common/Basque.lproj/Localizable.strings
M UI/Common/BrazilianPortuguese.lproj/Localizable.strings
M UI/Common/Catalan.lproj/Localizable.strings
M UI/Common/ChineseTaiwan.lproj/Localizable.strings
M UI/Common/Czech.lproj/Localizable.strings
M UI/Common/Danish.lproj/Localizable.strings
M UI/Common/Dutch.lproj/Localizable.strings
M UI/Common/English.lproj/Localizable.strings
M UI/Common/Finnish.lproj/Localizable.strings
M UI/Common/French.lproj/Localizable.strings
M UI/Common/German.lproj/Localizable.strings
M UI/Common/Hungarian.lproj/Localizable.strings
M UI/Common/Icelandic.lproj/Localizable.strings
M UI/Common/Italian.lproj/Localizable.strings
M UI/Common/Macedonian.lproj/Localizable.strings
M UI/Common/NorwegianBokmal.lproj/Localizable.strings
M UI/Common/NorwegianNynorsk.lproj/Localizable.strings
M UI/Common/Polish.lproj/Localizable.strings
M UI/Common/Portuguese.lproj/Localizable.strings
M UI/Common/Russian.lproj/Localizable.strings
M UI/Common/Slovak.lproj/Localizable.strings
M UI/Common/Slovenian.lproj/Localizable.strings
M UI/Common/SpanishArgentina.lproj/Localizable.strings
M UI/Common/SpanishSpain.lproj/Localizable.strings
M UI/Common/Swedish.lproj/Localizable.strings
M UI/Common/Ukrainian.lproj/Localizable.strings
M UI/Common/Welsh.lproj/Localizable.strings
M UI/Contacts/Arabic.lproj/Localizable.strings
M UI/Contacts/Basque.lproj/Localizable.strings
M UI/Contacts/BrazilianPortuguese.lproj/Localizable.strings
M UI/Contacts/Catalan.lproj/Localizable.strings
M UI/Contacts/ChineseTaiwan.lproj/Localizable.strings
M UI/Contacts/Czech.lproj/Localizable.strings
M UI/Contacts/Danish.lproj/Localizable.strings
M UI/Contacts/Dutch.lproj/Localizable.strings
M UI/Contacts/English.lproj/Localizable.strings
M UI/Contacts/Finnish.lproj/Localizable.strings
M UI/Contacts/French.lproj/Localizable.strings
M UI/Contacts/German.lproj/Localizable.strings
M UI/Contacts/Hungarian.lproj/Localizable.strings
M UI/Contacts/Icelandic.lproj/Localizable.strings
M UI/Contacts/Italian.lproj/Localizable.strings
M UI/Contacts/Macedonian.lproj/Localizable.strings
M UI/Contacts/NorwegianBokmal.lproj/Localizable.strings
M UI/Contacts/NorwegianNynorsk.lproj/Localizable.strings
M UI/Contacts/Polish.lproj/Localizable.strings
M UI/Contacts/Portuguese.lproj/Localizable.strings
M UI/Contacts/Russian.lproj/Localizable.strings
M UI/Contacts/Slovak.lproj/Localizable.strings
M UI/Contacts/Slovenian.lproj/Localizable.strings
M UI/Contacts/SpanishArgentina.lproj/Localizable.strings
M UI/Contacts/SpanishSpain.lproj/Localizable.strings
M UI/Contacts/Swedish.lproj/Localizable.strings
M UI/Contacts/Ukrainian.lproj/Localizable.strings
M UI/Contacts/Welsh.lproj/Localizable.strings
M UI/MailPartViewers/Arabic.lproj/Localizable.strings
M UI/MailPartViewers/Basque.lproj/Localizable.strings
M UI/MailPartViewers/BrazilianPortuguese.lproj/Localizable.strings
M UI/MailPartViewers/Catalan.lproj/Localizable.strings
M UI/MailPartViewers/ChineseTaiwan.lproj/Localizable.strings
M UI/MailPartViewers/Czech.lproj/Localizable.strings
M UI/MailPartViewers/Danish.lproj/Localizable.strings
M UI/MailPartViewers/Dutch.lproj/Localizable.strings
M UI/MailPartViewers/English.lproj/Localizable.strings
M UI/MailPartViewers/Finnish.lproj/Localizable.strings
M UI/MailPartViewers/French.lproj/Localizable.strings
M UI/MailPartViewers/German.lproj/Localizable.strings
M UI/MailPartViewers/Hungarian.lproj/Localizable.strings
M UI/MailPartViewers/Icelandic.lproj/Localizable.strings
M UI/MailPartViewers/Italian.lproj/Localizable.strings
M UI/MailPartViewers/Macedonian.lproj/Localizable.strings
M UI/MailPartViewers/NorwegianBokmal.lproj/Localizable.strings
M UI/MailPartViewers/NorwegianNynorsk.lproj/Localizable.strings
M UI/MailPartViewers/Polish.lproj/Localizable.strings
M UI/MailPartViewers/Portuguese.lproj/Localizable.strings
M UI/MailPartViewers/Russian.lproj/Localizable.strings
M UI/MailPartViewers/Slovak.lproj/Localizable.strings
M UI/MailPartViewers/Slovenian.lproj/Localizable.strings
M UI/MailPartViewers/SpanishArgentina.lproj/Localizable.strings
M UI/MailPartViewers/SpanishSpain.lproj/Localizable.strings
M UI/MailPartViewers/Swedish.lproj/Localizable.strings
M UI/MailPartViewers/Ukrainian.lproj/Localizable.strings
M UI/MailPartViewers/Welsh.lproj/Localizable.strings
M UI/MailerUI/Arabic.lproj/Localizable.strings
M UI/MailerUI/Basque.lproj/Localizable.strings
M UI/MailerUI/BrazilianPortuguese.lproj/Localizable.strings
M UI/MailerUI/Catalan.lproj/Localizable.strings
M UI/MailerUI/ChineseTaiwan.lproj/Localizable.strings
M UI/MailerUI/Czech.lproj/Localizable.strings
M UI/MailerUI/Danish.lproj/Localizable.strings
M UI/MailerUI/Dutch.lproj/Localizable.strings
M UI/MailerUI/English.lproj/Localizable.strings
M UI/MailerUI/Finnish.lproj/Localizable.strings
M UI/MailerUI/French.lproj/Localizable.strings
M UI/MailerUI/German.lproj/Localizable.strings
M UI/MailerUI/Hungarian.lproj/Localizable.strings
M UI/MailerUI/Icelandic.lproj/Localizable.strings
M UI/MailerUI/Italian.lproj/Localizable.strings
M UI/MailerUI/Macedonian.lproj/Localizable.strings
M UI/MailerUI/NorwegianBokmal.lproj/Localizable.strings
M UI/MailerUI/NorwegianNynorsk.lproj/Localizable.strings
M UI/MailerUI/Polish.lproj/Localizable.strings
M UI/MailerUI/Portuguese.lproj/Localizable.strings
M UI/MailerUI/Russian.lproj/Localizable.strings
M UI/MailerUI/Slovak.lproj/Localizable.strings
M UI/MailerUI/Slovenian.lproj/Localizable.strings
M UI/MailerUI/SpanishArgentina.lproj/Localizable.strings
M UI/MailerUI/SpanishSpain.lproj/Localizable.strings
M UI/MailerUI/Swedish.lproj/Localizable.strings
M UI/MailerUI/Ukrainian.lproj/Localizable.strings
M UI/MailerUI/Welsh.lproj/Localizable.strings
M UI/MainUI/Arabic.lproj/Localizable.strings
M UI/MainUI/Basque.lproj/Localizable.strings
M UI/MainUI/BrazilianPortuguese.lproj/Localizable.strings
M UI/MainUI/Catalan.lproj/Localizable.strings
M UI/MainUI/ChineseTaiwan.lproj/Localizable.strings
M UI/MainUI/Czech.lproj/Localizable.strings
M UI/MainUI/Danish.lproj/Localizable.strings
M UI/MainUI/Dutch.lproj/Localizable.strings
M UI/MainUI/English.lproj/Localizable.strings
M UI/MainUI/Finnish.lproj/Localizable.strings
M UI/MainUI/French.lproj/Localizable.strings
M UI/MainUI/German.lproj/Localizable.strings
M UI/MainUI/Hungarian.lproj/Localizable.strings
M UI/MainUI/Icelandic.lproj/Localizable.strings
M UI/MainUI/Italian.lproj/Localizable.strings
M UI/MainUI/Macedonian.lproj/Localizable.strings
M UI/MainUI/NorwegianBokmal.lproj/Localizable.strings
M UI/MainUI/NorwegianNynorsk.lproj/Localizable.strings
M UI/MainUI/Polish.lproj/Localizable.strings
M UI/MainUI/Portuguese.lproj/Localizable.strings
M UI/MainUI/Russian.lproj/Localizable.strings
M UI/MainUI/Slovak.lproj/Localizable.strings
M UI/MainUI/Slovenian.lproj/Localizable.strings
M UI/MainUI/SpanishArgentina.lproj/Localizable.strings
M UI/MainUI/SpanishSpain.lproj/Localizable.strings
M UI/MainUI/Swedish.lproj/Localizable.strings
M UI/MainUI/Ukrainian.lproj/Localizable.strings
M UI/MainUI/Welsh.lproj/Localizable.strings
M UI/PreferencesUI/Arabic.lproj/Localizable.strings
M UI/PreferencesUI/Basque.lproj/Localizable.strings
M UI/PreferencesUI/BrazilianPortuguese.lproj/Localizable.strings
M UI/PreferencesUI/Catalan.lproj/Localizable.strings
M UI/PreferencesUI/ChineseTaiwan.lproj/Localizable.strings
M UI/PreferencesUI/Czech.lproj/Localizable.strings
M UI/PreferencesUI/Danish.lproj/Localizable.strings
M UI/PreferencesUI/Dutch.lproj/Localizable.strings
M UI/PreferencesUI/English.lproj/Localizable.strings
M UI/PreferencesUI/Finnish.lproj/Localizable.strings
M UI/PreferencesUI/French.lproj/Localizable.strings
M UI/PreferencesUI/German.lproj/Localizable.strings
M UI/PreferencesUI/Hungarian.lproj/Localizable.strings
M UI/PreferencesUI/Icelandic.lproj/Localizable.strings
M UI/PreferencesUI/Italian.lproj/Localizable.strings
M UI/PreferencesUI/Macedonian.lproj/Localizable.strings
M UI/PreferencesUI/NorwegianBokmal.lproj/Localizable.strings
M UI/PreferencesUI/NorwegianNynorsk.lproj/Localizable.strings
M UI/PreferencesUI/Polish.lproj/Localizable.strings
M UI/PreferencesUI/Portuguese.lproj/Localizable.strings
M UI/PreferencesUI/Russian.lproj/Localizable.strings
M UI/PreferencesUI/Slovak.lproj/Localizable.strings
M UI/PreferencesUI/Slovenian.lproj/Localizable.strings
M UI/PreferencesUI/SpanishArgentina.lproj/Localizable.strings
M UI/PreferencesUI/SpanishSpain.lproj/Localizable.strings
M UI/PreferencesUI/Swedish.lproj/Localizable.strings
M UI/PreferencesUI/Ukrainian.lproj/Localizable.strings
M UI/PreferencesUI/Welsh.lproj/Localizable.strings
M UI/Scheduler/Arabic.lproj/Localizable.strings
M UI/Scheduler/Basque.lproj/Localizable.strings
M UI/Scheduler/BrazilianPortuguese.lproj/Localizable.strings
M UI/Scheduler/Catalan.lproj/Localizable.strings
M UI/Scheduler/ChineseTaiwan.lproj/Localizable.strings
M UI/Scheduler/Czech.lproj/Localizable.strings
M UI/Scheduler/Danish.lproj/Localizable.strings
M UI/Scheduler/Dutch.lproj/Localizable.strings
M UI/Scheduler/English.lproj/Localizable.strings
M UI/Scheduler/Finnish.lproj/Localizable.strings
M UI/Scheduler/French.lproj/Localizable.strings
M UI/Scheduler/German.lproj/Localizable.strings
M UI/Scheduler/Hungarian.lproj/Localizable.strings
M UI/Scheduler/Icelandic.lproj/Localizable.strings
M UI/Scheduler/Italian.lproj/Localizable.strings
M UI/Scheduler/Macedonian.lproj/Localizable.strings
M UI/Scheduler/NorwegianBokmal.lproj/Localizable.strings
M UI/Scheduler/NorwegianNynorsk.lproj/Localizable.strings
M UI/Scheduler/Polish.lproj/Localizable.strings
M UI/Scheduler/Portuguese.lproj/Localizable.strings
M UI/Scheduler/Russian.lproj/Localizable.strings
M UI/Scheduler/Slovak.lproj/Localizable.strings
M UI/Scheduler/Slovenian.lproj/Localizable.strings
M UI/Scheduler/SpanishArgentina.lproj/Localizable.strings
M UI/Scheduler/SpanishSpain.lproj/Localizable.strings
M UI/Scheduler/Swedish.lproj/Localizable.strings
M UI/Scheduler/Ukrainian.lproj/Localizable.strings
M UI/Scheduler/Welsh.lproj/Localizable.strings
M UI/Templates/ContactsUI/UIxContactEditor.wox
M UI/Templates/MailerUI/UIxMailEditor.wox
M UI/Templates/SchedulerUI/UIxAttendeesEditor.wox
M UI/WebServerResources/UIxFilterEditor.js
commit 9936477f079f85454464f852a368d35723c3cadf
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Dec 3 13:09:24 2015 -0500
Update translations
M SoObjects/Appointments/BrazilianPortuguese.lproj/Localizable.strings
M UI/MailerUI/BrazilianPortuguese.lproj/Localizable.strings
M UI/MailerUI/Czech.lproj/Localizable.strings
M UI/MailerUI/Finnish.lproj/Localizable.strings
M UI/MailerUI/German.lproj/Localizable.strings
M UI/MailerUI/Polish.lproj/Localizable.strings
M UI/MailerUI/Russian.lproj/Localizable.strings
M UI/MailerUI/SpanishSpain.lproj/Localizable.strings
M UI/PreferencesUI/BrazilianPortuguese.lproj/Localizable.strings
M UI/PreferencesUI/Polish.lproj/Localizable.strings
M UI/Scheduler/BrazilianPortuguese.lproj/Localizable.strings
M UI/Scheduler/Czech.lproj/Localizable.strings
M UI/Scheduler/Finnish.lproj/Localizable.strings
M UI/Scheduler/German.lproj/Localizable.strings
M UI/Scheduler/Polish.lproj/Localizable.strings
M UI/Scheduler/Russian.lproj/Localizable.strings
M UI/Scheduler/SpanishSpain.lproj/Localizable.strings
commit 8c0ef9cf50ff1ac2aabc4c1379cd15d3ca045ce8
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Tue Dec 1 11:42:02 2015 -0500
(fix) proper fix for #3389
M UI/WebServerResources/UIxAttendeesEditor.js
commit 8456d4968695cacef614f96da9984b56b487df83
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Tue Dec 1 11:39:07 2015 -0500
Revert "(fix) fixed addressbrook-only source entires having a c_uid set"
This reverts commit ef7de7c10d6d0b722850347e88fb3d620588a66b.
M NEWS
M SoObjects/Contacts/SOGoContactSourceFolder.m
commit 5a3cafbbb03dffaa11a4ec9750e8aa2ac874a9b1
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Tue Dec 1 09:26:52 2015 -0500
(fix) prevent characters in calendar component UID causing issues during import process
M NEWS
M SoObjects/Appointments/SOGoAppointmentFolder.m
commit dc085789e7d3b5f232545a559a5c3e508c6a522f
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Mon Nov 30 09:19:01 2015 -0500
(feat) Initial support for EAS calendar exceptions
M ActiveSync/NGDOMElement+ActiveSync.m
M ActiveSync/iCalEvent+ActiveSync.m
M NEWS
commit bbdb27e75e9eb12a5ba701677125c2702a195d8f
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Fri Nov 27 08:36:34 2015 -0500
(css) Enlarge max width of toolbar buttons
M UI/WebServerResources/generic.css
commit 1279629e86b7c6cd31711c49be1a5e82ecd7613b
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Wed Nov 25 15:53:08 2015 -0500
(fix) correctly handle all-day event exceptions when the master event changes
M NEWS
M SOPE/NGCards/iCalEntityObject.m
commit f7d748ea986bcd9116d02bc99d8f9b5213cda411
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Wed Nov 25 15:08:24 2015 -0500
(fix) EAS fix on qp-encoded subjects (#3390)
M ActiveSync/SOGoActiveSyncDispatcher.m
M NEWS
commit 2d1a4b320c928bd44ed080e2d4277e7edbf8db78
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Wed Nov 25 10:56:39 2015 -0500
(fix) adjust doc and packaging regarding oc cleanup script
M Documentation/SOGoNativeOutlookConfigurationGuide.asciidoc
D Scripts/openchange_user_cleanup
M packaging/debian-multiarch/rules
M packaging/debian/rules
M packaging/rhel/sogo.spec
commit 8df311547f74b685fa55fae8c19b526e4aea1962
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Mon Nov 23 18:07:50 2015 -0500
(fix) EAS fix for wrong charset being used (#3392)
M ActiveSync/SOGoMailObject+ActiveSync.m
M NEWS
commit f42d6f5f4ae5502641562961eb14f60ccc205489
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Mon Nov 23 13:29:02 2015 -0500
Enlarge size of event/task editor window
Fixes #3381
M UI/WebServerResources/SchedulerUI.js
commit 01642eca3e1f08b23d474dc6992e6530b62563bf
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Mon Nov 23 13:20:55 2015 -0500
(fix) fixed one unit test
M Tests/Unit/TestNGMailAddressParser.m
commit 2ae8c6f8b2fdadf3fb3ba293f3b3800fa8d8bc27
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Mon Nov 23 07:07:37 2015 -0500
Add missing tooltips on buttons of toolbars
M UI/AdministrationUI/Toolbars/UIxAdministration.toolbar
M UI/PreferencesUI/Toolbars/UIxPreferences.toolbar
M UI/Scheduler/Toolbars/SOGoAppointmentObject.toolbar
M UI/Scheduler/Toolbars/SOGoComponentClose.toolbar
M UI/Scheduler/Toolbars/SOGoTaskObject.toolbar
commit 31deae11b4eed6b213062c7a005d2ba135500c35
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
Date: Fri Nov 20 11:21:38 2015 -0500
(fix) domain in doc
M Documentation/SOGoNativeOutlookConfigurationGuide.asciidoc
commit 19676593eaaf462c02c8bf1f7cc5edf21d038d8e
Author: extrafu <lmarcotte@inverse.ca>
Date: Thu Nov 19 17:57:04 2015 -0500
(fix) allow getting password from context for OC
M OpenChange/MAPIStoreAuthenticator.h
M OpenChange/MAPIStoreAuthenticator.m
commit 4a27beabddd506c2b43b0cacfad42d8443176394
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Nov 19 09:46:07 2015 -0500
(css) Limit toolbar buttons min/max width
M NEWS
M UI/WebServerResources/generic.css
commit 8dae5faaa101d0412baf3fca2f7d6bfc80d69cf9
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Nov 19 09:41:36 2015 -0500
Localization
M UI/Scheduler/English.lproj/Localizable.strings
commit 85ce41dc6865c0d08912a2108c855029b0d78c45
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Thu Nov 19 09:22:31 2015 -0500
(fix) JS exception when printing calendars
Fixes #3203
M NEWS
M UI/WebServerResources/generic.js
commit 70157137413247ae0dd13bcc55ff99323e2c39e5
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Wed Nov 18 09:43:02 2015 -0500
Update ChangeLog
M ChangeLog
commit 7644d6fb4dcd75559c5b93b920ca3c3fd5820880
Author: Francis Lachapelle <flachapelle@inverse.ca>
Date: Wed Nov 18 09:42:05 2015 -0500

View File

@@ -1,5 +1,7 @@
Installation and Configuration Guide
====================================
:toc: left
:icons: font
////
@@ -54,7 +56,7 @@ at http://www.sogo.nu/
Architecture and Compatibility
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
image::images/architecture.png[System Architecture]
image::images/architecture.png[System Architecture, 400, 964]
Standard protocols such as CalDAV, CardDAV, GroupDAV, HTTP, IMAP and
SMTP are used to communicate with the SOGo platform or its
@@ -179,7 +181,7 @@ standard distribution. For example, if you are using Red Hat Enterprise
Linux 5, you have to be subscribed to the Red Hat Network before
continuing with the SOGo software installation.
This document covers the installation of SOGo under RHEL 6.
NOTE: This document covers the installation of SOGo under RHEL 6.
For installation instructions on Debian and Ubuntu, please refer
directly to the SOGo website at http://www.sogo.nu/.
@@ -294,7 +296,7 @@ associated to a domain is limited to access only the users data from the
same domain. Consequently, the configuration parameters of SOGo are
defined on three levels:
image::images/preferences-hierarchy.png[Preferences Hierarchy]
image::images/preferences-hierarchy.png[Preferences Hierarchy, 400, 400]
Each level inherits the preferences of the parent level. Therefore,
domain preferences define the defaults values of the user preferences,
@@ -1125,7 +1127,7 @@ fax number, one could map it to the _facsimiletelephonenumber_ attribute
like this:
----
mapping = \{
mapping = {
  facsimiletelephonenumber = ("fax", "facsimiletelephonenumber");
};
----

View File

@@ -818,9 +818,8 @@ can be ignored for now. This feature is currently not supported.
remove any data associated with the user from the SOGo server and
recreate a Microsoft Outlook profile.
To remove any data associated to a user, use
the `openchange_user_cleanup` script distributed with SOGo. The script
can be found in `/usr/share/doc/sogo/` (`/usr/share/sogo-VERSION/` on
RHEL).
the `openchange_user_cleanup` script distributed with OpenChange. The script
can be found in `/usr/share/openchange/`.
To reset a user, run the script as root:
`openchange_user_cleanup username`. See the usage output for additional options.
* The "Out of Office Assistant" will not currently work. This feature

View File

@@ -1,7 +1,7 @@
<!-- TODO have the build system take care of this -->
<releaseinfo>Version 2.3.3 - November 2015</releaseinfo>
<subtitle>for version 2.3.3</subtitle>
<date>2015-11-11</date>
<releaseinfo>Version 2.3.4 - December 2015</releaseinfo>
<subtitle>for version 2.3.4</subtitle>
<date>2015-12-15</date>
<legalnotice>
<para>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".</para>

View File

@@ -13,6 +13,6 @@
// TODO have the build system take care of this
:release_version: 2.3.3
:release_version: 2.3.4
// vim: set syntax=asciidoc tabstop=2 shiftwidth=2 expandtab:

19
NEWS
View File

@@ -1,15 +1,25 @@
2.3.4 (YYYY-MM-DD)
2.3.5 (2016-MM-DD)
------------------
Bug fixes
- properly compute the last week number for the year (#1010)
2.3.4 (2015-12-15)
------------------
New features
-
- initial support for EAS calendar exceptions
Enhancements
- limit the maximum width of toolbar buttons
- limit the maximum width of toolbar buttons (#3381)
Bug fixes
- JavaScript exception when printing events from calendars with no assigned color (#3203)
- EAS fix for wrong charset being used (#3392)
- EAS fix on qp-encoded subjects (#3390)
- correctly handle all-day event exceptions when the master event changes
- prevent characters in calendar component UID causing issues during import process
- avoid duplicating attendees when accepting event using a different identity over CalDAV
2.3.3a (2015-11-18)
-------------------
@@ -54,7 +64,6 @@ Bug fixes
- fixed wrong comparison of meta vs. META tag in HTML mails
- fixed popup menu position when moved to the left (#3381)
- fixed dialog position when at the bottom of the window (#2646, #3378)
- fixed addressbrook-only source entires having a c_uid set
2.3.2 (2015-09-16)
------------------

View File

@@ -27,6 +27,7 @@
#import "NSCalendarDate+NGCards.h"
#import "iCalAlarm.h"
#import "iCalCalendar.h"
#import "iCalDateTime.h"
#import "iCalEntityObject.h"
#import "iCalEvent.h"
@@ -268,9 +269,12 @@
- (void) setRecurrenceId: (NSCalendarDate *) newRecId
{
iCalDateTime* recurrenceId;
BOOL isMasterAllDay;
isMasterAllDay = [[[[self parent] events] objectAtIndex: 0] isAllDay];
recurrenceId = (iCalDateTime *) [self uniqueChildWithTag: @"recurrence-id"];
if ([self isKindOfClass: [iCalEvent class]] && [(iCalEvent *)self isAllDay])
if ([self isKindOfClass: [iCalEvent class]] && isMasterAllDay)
[recurrenceId setDate: newRecId];
else
[recurrenceId setDateTime: newRecId];

View File

@@ -1,312 +0,0 @@
#!/usr/bin/env python
import getopt
import imaplib
import ldb
import plistlib
import os
import re
import shutil
import subprocess
import sys
from samba.param import LoadParm
imaphost = '127.0.0.1'
imapport = 143
samba_lp = LoadParm()
sambaprivate = samba_lp.get("private dir")
mapistorefolder = samba_lp.private_path("mapistore")
sogoSysDefaultsFile = "/etc/sogo/sogo.conf"
sogoUserDefaultsFile = os.path.expanduser("~sogo/GNUstep/Defaults/.GNUstepDefaults")
# - takes a username and optionally its password
# - removes the entry in samba's ldap tree via ldbedit (NOTYET)
# - remove the user's directory under mapistore/ and mapistore/SOGo
# - cleanup Junk Folders and Sync Issues imap folders
# - Delete the sogo_cache_folder_ table for the username.
def usage():
print """
%s [-i imaphost] ] [-p imapport] [-s sambaprivate] username [password]
-i imaphost IMAP host to connect to [%s]
-p imappost IMAP port to use [%d]
-s sambaprivate samba private directory [%s]
""" % (os.path.basename(sys.argv[0]), imaphost, imapport, sambaprivate)
def main():
global sambaprivate
global mapistorefolder
global imaphost
global imapport
try:
opts, args = getopt.getopt(sys.argv[1:], "i:p:s:")
except getopt.GetoptError, err:
print str(err)
usage()
sys.exit(2)
for o, a in opts:
if o == "-i":
imaphost = a
elif o == "-p":
imapport = a
elif o == "-s":
sambaprivate = a
mapistorefolder = "%s/mapistore" % (sambaprivate)
else:
assert False, "unhandled option"
argslen = len(args)
if (argslen == 2):
username = args[0]
userpass = args[1]
elif (argslen == 1):
username = args[0]
userpass = username
print "Using username as password"
else:
usage()
print "Specify a user (and optionally the password)"
sys.exit(2)
# cleanup starts here
try:
imapCleanup(imaphost, imapport, username, userpass)
except Exception as e:
print "Error during imapCleanup, continuing: %s" % str(e)
try:
mapistoreCleanup(mapistorefolder, username)
except (shutil.Error, OSError) as e:
print "Error during mapistoreCleanup, continuing: %s" % str(e)
try:
ldbCleanup(sambaprivate, username)
except ldb.LdbError as e:
print "Error during ldbCleanup, continuing: %s" % str(e)
try:
sqlCleanup(username)
except Exception as e:
print "Error during sqlCleanup, continuing: %s" % str(e)
def getsep(client):
seq = None
(code, data) = client.list("", "")
if code == "OK" and data is not None:
# yes this is ugly but it works on cyrus and dovecot.
# (\\Noinferiors \\HasNoChildren) "/" INBOX
m = re.search(".*\s+[\"\']?(.)[\"\']?\s+[\"\']?.*[\"\']?$", data[0])
sep = m.group(1)
return sep
def extractmb(si):
inparen = False
inquote = False
part = []
parts = []
for char in si:
if inparen:
if char == ")":
inparen = False
parts.append("".join(part))
else:
part.append(char)
elif inquote:
if char == "\"":
inquote = False
parts.append("".join(part))
else:
part.append(char)
else:
if char == "(":
inparen = True
elif char == "\"":
inquote = True
elif char == " ":
part = []
else:
part.append(char)
return parts[-1]
def cleanupmb(mb, sep, client):
(code, data) = client.list("%s%s" % (mb, sep), "%")
if code == "OK":
for si in data:
if si is not None:
submb = extractmb(si)
cleanupmb(submb, sep, client)
else:
raise Exception, "Failure while cleaning up '%s'" % mb
client.unsubscribe(mb)
(code, data) = client.delete(mb)
if code == "OK":
print "mailbox '%s' deleted" % mb
else:
print "mailbox '%s' coult NOT be deleted (code = '%s')" % (mb, code)
def imapCleanup(imaphost, imapport, username, userpass):
print "Starting IMAP cleanup"
client = imaplib.IMAP4(imaphost, imapport)
(code, data) = client.login(username, userpass)
if code != "OK":
raise Exception, "Login failure"
print "Logged in as '%s'" % username
sep = getsep(client)
if not sep:
client.logout()
return
for foldername in ("Sync Issues", "Junk E-mail",
"INBOX%sSync Issues" % sep, "INBOX%sJunk E-mail" % sep,
"Probl&AOg-mes de synchronisation"):
(code, data) = client.list(foldername, "%")
if code == "OK":
for si in data:
if si is not None:
mb = extractmb(si)
cleanupmb(mb, sep, client)
client.logout()
def mapistoreCleanup(mapistorefolder, username):
print "Starting MAPIstore cleanup"
# delete the user's folder under the mapistore and under mapistore/SOGo
mapistoreUserDir = "%s/%s" % (mapistorefolder, username)
for dirpath, dirnames, filenames in os.walk(mapistoreUserDir):
for f in filenames:
if f != "password":
os.unlink("%s/%s" % (dirpath,f))
break #one level only
shutil.rmtree("%s/SOGo/%s" % (mapistorefolder, username), ignore_errors=True)
def ldbCleanup(sambaprivate, username):
conn = ldb.Ldb("%s/openchange.ldb" % (sambaprivate))
# find the DN of the user
entries = conn.search(None, expression="(cn=%s)" % (username), scope=ldb.SCOPE_SUBTREE)
if not entries:
print "cn = %s not found in openchange.ldb" %(username)
return
for entry in entries:
# search again, but with the user's DN as a base
subentries = conn.search(entry.dn.extended_str(), expression="(distinguishedName=*)", scope=ldb.SCOPE_SUBTREE)
for subentry in subentries:
print "Deleting %s" % (subentry.dn)
conn.delete(subentry.dn)
def mysqlCleanup(dbhost, dbport, dbuser, dbpass, dbname, username):
try:
import MySQLdb
except ImportError:
msg ="""The python 'MySQLdb' module is not available
On Debian based distro, install it using 'apt-get install python-mysqlbd'
On RHEL, install it using 'yum install MySQL-python'"""
raise Exception(msg)
conn = MySQLdb.connect(host=dbhost, port=int(dbport), user=dbuser, passwd=dbpass, db=dbname)
c=conn.cursor()
tablename="sogo_cache_folder_%s" % (username)
c.execute("TRUNCATE TABLE %s" % tablename)
print "Table %s emptied" % tablename
def postgresqlCleanup(dbhost, dbport, dbuser, dbpass, dbname, username):
try:
import pg
except ImportError:
msg ="""The python 'pg' module is not available
On Debian based distro, install it using 'apt-get install python-pygresql'
On RHEL, install it using 'yum install python-pgsql'"""
raise Exception(msg)
conn = pg.connect(host=dbhost, port=int(dbport), user=dbuser, passwd=dbpass, dbname=dbname)
tablename = "sogo_cache_folder_%s" % username
conn.query("DELETE FROM %s" % tablename)
print "Table '%s' emptied" % tablename
def getOCSFolderInfoURL():
global sogoSysDefaultsFile, sogoUserDefaultsFile
OCSFolderInfoURL = ""
# read defaults from defaults files
# order is important, user defaults must have precedence
for f in [sogoSysDefaultsFile, sogoUserDefaultsFile]:
if os.path.exists(f):
# FIXME: this is ugly, we should have a python plist parser
# plistlib only supports XML plists.
# the following magic replaces this shell pipeline:
# sogo-tool dump-defaults -f %s | awk -F\\" '/ OCSFolderInfoURL =/ {print $2}'
p1 = subprocess.Popen(["sogo-tool", "dump-defaults", "-f", f], stdout=subprocess.PIPE)
p2 = subprocess.Popen(["awk", "-F\"", "/ OCSFolderInfoURL =/ {print $2}"], stdin=p1.stdout, stdout=subprocess.PIPE)
p1.stdout.close() # Allow p1 to receive a SIGPIPE if p2 exits.
tmp = p2.communicate()[0]
if tmp: OCSFolderInfoURL = tmp
return OCSFolderInfoURL
def asCSSIdentifier(inputString):
cssEscapingCharMap = {"_" : "_U_",
"." : "_D_",
"#" : "_H_",
"@" : "_A_",
"*" : "_S_",
":" : "_C_",
"," : "_CO_",
" " : "_SP_",
"'" : "_SQ_",
"&" : "_AM_",
"+" : "_P_"}
newChars = []
if str.isdigit(inputString[0]):
newChars.append("_")
for c in inputString:
if c in cssEscapingCharMap:
newChars.append(cssEscapingCharMap[c])
else:
newChars.append(c)
return "".join(newChars)
def sqlCleanup(username):
print "Starting SQL cleanup"
OCSFolderInfoURL = getOCSFolderInfoURL()
if OCSFolderInfoURL is None:
raise Exception("Couldn't fetch OCSFolderInfoURL or it is not set. the sogo_cache_folder_%s table should be truncated manually" % (username))
# postgresql://sogo:sogo@127.0.0.1:5432/sogo/sogo_folder_info
m = re.search("(.+)://(.+):(.+)@(.+):(\d+)/(.+)/(.+)", OCSFolderInfoURL)
if not m:
raise Exception("Unable to parse OCSFolderInfoURL: %s" % OCSFolderInfoURL)
proto = m.group(1)
dbuser = m.group(2)
dbpass = m.group(3)
dbhost = m.group(4)
dbport = m.group(5)
dbname = m.group(6)
# 7 is folderinfo table
encodedUserName = asCSSIdentifier(username)
if (proto == "postgresql"):
postgresqlCleanup(dbhost, dbport, dbuser, dbpass, dbname, encodedUserName)
elif (proto == "mysql"):
mysqlCleanup(dbhost, dbport, dbuser, dbpass, dbname, encodedUserName)
else:
raise Exception("Unknown sql proto: %s" % (proto))
if __name__ == "__main__":
main()

View File

@@ -6,7 +6,6 @@ vevent_class2 = "(حدث سري)";
vtodo_class0 = "(مهمة عامة)";
vtodo_class1 = "(مهمة خاصة)";
vtodo_class2 = "(مهمة سرية)";
/* Receipts */
"The event \"%{Summary}\" was created" = "أُنشِئ الحدث \"%{Summary}\"";
"The event \"%{Summary}\" was deleted" = "حُذِفَ الحدث \"%{Summary}\"";
@@ -14,7 +13,6 @@ vtodo_class2 = "(مهمة سرية)";
"The following attendees(s) were notified" = "تم ابلاغ المدعو (المدعويين) الأتي أسماءهم";
"The following attendees(s) were added" = "تم أضافة المدعو (المدعويين) الأتي أسماءهم";
"The following attendees(s) were removed" = "تم مسح المدعو (المدعويين) الأتي أسماءهم";
/* IMIP messages */
"calendar_label" = "التقويم";
"startDate_label" = "البداية";
@@ -23,20 +21,17 @@ vtodo_class2 = "(مهمة سرية)";
"location_label" = "المكان";
"summary_label" = "الملخص:";
"comment_label" = "التعليق:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "دعوة الحدث: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(أرسلت بواسطة٪ {SentBy})";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "وقد دعت%{Organizer} %{SentByText} الى %{Summary} . ⏎\n⏎\nبداية:٪ {StartDate} ⏎\nنهاية:%{EndDate}⏎\nالوصف:%{Description}\n";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}قام بدعوتك %{Summary}. ⏎\n⏎\nبداية:٪ {StartDate} في {٪ StartTime} ⏎\nالغاية: {٪ EndDate} في {٪ EndTime} ⏎\nالوصف:%{Description}\n";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "الحدث الغي : \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "ألغى%{Organizer} %{SentByText} هذا الحدث:.%{Summary} ⏎\n⏎\nبداية:٪ {StartDate} ⏎\nنهاية:%{EndDate} ⏎\nالوصف:%{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}قام بإلغاء هذا الحدث: %{Summary}.⏎\n⏎\nبداية:٪ {StartDate} في {٪ StartTime} ⏎\nالغاية: {٪ EndDate} في {٪ EndTime} ⏎\nالوصف:%{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "موعد \"%{Summary}\" بتاريخ %{OldStartDate} قد تغير";
@@ -46,7 +41,6 @@ vtodo_class2 = "(مهمة سرية)";
= " لقد تغيرت المحددات التالية في الاجتماع \"%{Summary}\":";
"Please accept or decline those changes."
= "يرجى قبول أو رفض تلك التغييرات.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "دعوةٌ مقبولة: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "دعوةٌ مرفوضة: \"%{Summary}\"";
@@ -60,7 +54,6 @@ vtodo_class2 = "(مهمة سرية)";
= "وقد فوض%{Attendee} %{SentByText} الدعوة إلى %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText} لم يقرر حتى الآن حضورهذا الحدث الخاص بك.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "لا يمكن الوصول إلى الموارد: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "الحد الأقصى لعدد الحجوزات في وقت واحد (%{NumberOfSimultaneousBookings}) وصلت للموارد \"%{Cn} %{SystemEmail}\" . الحدث المتضارب في الموعد هو \"٪ {EventTitle}\"، ويبدأ فى٪ {StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Isilpeko ekitaldia)";
vtodo_class0 = "(Zeregin publikoa)";
vtodo_class1 = "(Zeregin pribatua)";
vtodo_class2 = "(Isilpeko egitekoa)";
/* Receipts */
"The event \"%{Summary}\" was created" = "\"%{Summary}\" ekitaldia sortu da";
"The event \"%{Summary}\" was deleted" = "\"%{Summary}\" ekitaldia ezabatu da";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Isilpeko egitekoa)";
"The following attendees(s) were notified" = "Ondorengo partaidea(k) jakinarazi d(ir)a";
"The following attendees(s) were added" = "Ondorengo partaidea(k) gehitu d(ir)a";
"The following attendees(s) were removed" = "Ondorengo partaidea(k) ezabatu d(ir)a";
/* IMIP messages */
"calendar_label" = "Egutegia";
"startDate_label" = "Hasi";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Isilpeko egitekoa)";
"location_label" = "Kokapena";
"summary_label" = "Laburpena:";
"comment_label" = "Iruzkina:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Ekitaldirako gonbidapena: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(%{SentBy}-k bidalia) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}-k gonbidatu zaitu %{Summary}.-ra\n\nHasiera: %{StartDate}\nAmaiera: %{EndDate}\nDeskribapena: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}-k gonbidatu zaitu %{Summary}-ra \n\nHasiera: %{StartDate}-an, %{StartTime}-tan\nEnd: %{EndDate}-an, %{EndTime}-tan\nDeskribapena: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Ekitaldia bertan behera utzi da: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} ekitaldi hau bertan behera utzi du: %{Summary}.\n\nHasiera: %{StartDate}\nAmaiera: %{EndDate}\nDEskribapena: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}-k honako ekitaldia bertan behera utzi du: %{Summary}.\n\nHasiera: %{StartDate}-an, %{StartTime}-tan\nAmaiera: %{EndDate}-an %{EndTime}-tan\nDeskribapena: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "%{OldStartDate} eguneko \"%{Summary}\" hitzordua aldatu da";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Isilpeko egitekoa)";
= " \"%{Summary}\" bilerako ondorengo parametroak aldatu dira:";
"Please accept or decline those changes."
= "Mesedez, onartu edo ezetsi ondorengo aldaketak.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Gonbidapena onartua: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Ezetzitako gonbidapena: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Isilpeko egitekoa)";
= "%{Attendee} %{SentByText}-k zure gonbidapena %{Delegate}-ri delegatu dio.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}-k ez du oraindik zure gonbidapenari buruz erabakirik hartu.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Ezin da honako baliabidea atzitu: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "\"%{Cn} %{SystemEmail}\" baliabidearentzako gehienezko erreserba kopurura (%{NumberOfSimultaneousBookings}) iritsi gara. Gatazka sortu duen ekitaldia \"%{EventTitle}\" da, eta %{StartDate}-n hasten da.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Evento Confidencial)";
vtodo_class0 = "(Tarefa Pública)";
vtodo_class1 = "(Tarefa Privada)";
vtodo_class2 = "(Tarefa Confidencial)";
/* Receipts */
"The event \"%{Summary}\" was created" = "O evento \"%{Summary}\" foi criado";
"The event \"%{Summary}\" was deleted" = "O evento \"%{Summary}\" foi removido";
@@ -15,29 +14,25 @@ vtodo_class2 = "(Tarefa Confidencial)";
"The following attendees(s) were notified" = "Estes participantes foram notificados";
"The following attendees(s) were added" = "Estes participantes foram adicionados";
"The following attendees(s) were removed" = "Estes participantes foram removidos";
/* IMIP messages */
"calendar_label" = "Calendário";
"startDate_label" = "Início";
"endDate_label" = "Fim";
"due_label" = "Data de Vencimento:";
"location_label" = "Local";
"location_label" = "Localização";
"summary_label" = "Resumo:";
"comment_label" = "Comentário:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Convite do Evento: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(enviado por %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}convidou você para %{Summary}.\n\nInicio: %{StartDate}\nFim: %{EndDate}\nDescrição: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} convidou você para %{Summary}.\n\nInício: %{StartDate} as %{StartTime}\nFim: %{EndDate} as %{EndTime}\nDescrição: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Evento Cancelado: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}cancelou este evento: %{Summary}.\n\nInicio: %{StartDate}\nFim: %{EndDate}\nDescrição: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} cancelou este evento: %{Summary}.\n\nInício: %{StartDate} as %{StartTime}\nFim: %{EndDate} as %{EndTime}\nDescrição: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "O compromisso \"%{Summary}\" de %{OldStartDate} mudou";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Tarefa Confidencial)";
= "Os seguintes parâmetros mudaram na reunião \"%{Summary}\" :\n\n";
"Please accept or decline those changes."
= "Por favor, aceitar ou recusar as alterações.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Convite aceito: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Convite recusado: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Tarefa Confidencial)";
= "%{Attendee} %{SentByText} delegou o convite para %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}foi ainda não decidiu seu convite ao evento.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Não foi possível acessar o recurso: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "O número máximo de reservas simultaneas (%{NumberOfSimultaneousBookings}) acabou para o recurso \"%{Cn} %{SystemEmail}\". O evento conflitante é \"%{EventTitle}\", e inicia em %{StartDate}.";

View File

@@ -7,37 +7,32 @@ vevent_class2 = "(Esdeveniment confidencial)";
vtodo_class0 = "(Tasca pública)";
vtodo_class1 = "(Tasca privada)";
vtodo_class2 = "(Tasca confidencial)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Es va crear l'esdeveniment \"%{Summary}\" ";
"The event \"%{Summary}\" was deleted" = "Es va esborrar l'esdeveniment \"%{Summary}\" ";
"The event \"%{Summary}\" was updated" = "Es va modificar l'esdeveniment \"%{Summary}\" ";
"The following attendees(s) were notified" = "I va notificar als següents participants ";
"The following attendees(s) were added" = "Es van agregar els següents participants ";
"The following attendees(s) were added" = "S'han afegit els següents participants";
"The following attendees(s) were removed" = "Heu suprimit els assistents següents";
/* IMIP messages */
"calendar_label" = "Calendari";
"startDate_label" = "Inici";
"endDate_label" = "Final";
"due_label" = "Data límit:";
"due_label" = "Data de venciment";
"location_label" = "Lloc";
"summary_label" = "Resum:";
"comment_label" = "Comentari:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Invitació a l'esdeveniment: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(enviada per %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText} us ha invitat a %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} us ha invitat a %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Esdeveniment suspès: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}ha suspès aquest esdeveniment: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}ha suspès aquest esdeveniment: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "La cita \"%{Summary}\" per al dia %{OldStartDate} ha canviat";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Tasca confidencial)";
= "Els paràmetres següents han canviat en la reunió \"%{Summary}\":";
"Please accept or decline those changes."
= "Si us plau, accepteu o rebutgeu aquests canvis.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Invitació acceptada: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Invitació rebutjada; \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Tasca confidencial)";
= "%{Attendee} %{SentByText}ha delegat la invitació en %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}encara no s'ha decidit sobre la invitació a l'esdeveniment.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "No es pot accedir al recurs: \"%{Cn} %{SystemEmail}\" ";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Nombre màxim de reserves simultànies (%{NumberOfSimultaneousBookings}) assolit per al recurs \"%{Cn} %{SystemEmail}\". L'esdeveniment que entra en conflicte és \"%{EventTitle}\", i comença el %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(機密事件)";
vtodo_class0 = "(公開任務)";
vtodo_class1 = "(私人任務)";
vtodo_class2 = "(機密任務)";
/* Receipts */
"The event \"%{Summary}\" was created" = "事件 \"%{Summary}\" 已建立";
"The event \"%{Summary}\" was deleted" = "事件\"%{Summary}\" 已刪除";
@@ -15,7 +14,6 @@ vtodo_class2 = "(機密任務)";
"The following attendees(s) were notified" = "已通知下列出席者";
"The following attendees(s) were added" = "已增加下列出席者";
"The following attendees(s) were removed" = "已移除下列出席者";
/* IMIP messages */
"calendar_label" = "行事曆";
"startDate_label" = "開始";
@@ -24,20 +22,17 @@ vtodo_class2 = "(機密任務)";
"location_label" = "地點";
"summary_label" = "事件主題:";
"comment_label" = "備註:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "邀請事件: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(來自 %{SentBy})";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText} 邀請您參加 %{Summary}。\n\n起始日期: %{StartDate}\n結束日期: %{EndDate}\n備註說明: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} 邀請您參加 %{Summary}。\n\n起始時間: %{StartDate} %{StartTime}\n結束時間: %{EndDate} %{EndTime}\n備註說明: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "取消事件 : \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} 己取消事件: %{Summary}。\n\n起始日期: %{StartDate}\n結束日期: %{EndDate}\n備註說明: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} 己取消了事件: %{Summary}。\n\n起始時間: %{StartDate} %{StartTime}\n結束時間: %{EndDate} %{EndTime}\n備註說明: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= " 安排於%{OldStartDate} 的事件 \"%{Summary}\" 已變更";
@@ -47,7 +42,6 @@ vtodo_class2 = "(機密任務)";
= "已變更會議 \"%{Summary}\" 下列參數:";
"Please accept or decline those changes."
= "請接受或拒絶這些變更。";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "接受邀請: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "拒絶邀請: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(機密任務)";
= "\"%{Attendee} %{SentByText}已將您的邀請委任給%{Delegate}。";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}還沒有決定是否接受您的邀請。";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "無法讀取資源: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "\"%{Cn} %{SystemEmail}\" 的衝突事件己達上限 ( %{NumberOfSimultaneousBookings} )。衝突事件 \"%{EventTitle}\" 的起始日期為 %{StartDate}。";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Skrytá událost)";
vtodo_class0 = "(Veřejný úkol)";
vtodo_class1 = "(Soukromý úkol)";
vtodo_class2 = "(Skrytý úkol)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Událost \"%{Summary}\" byla vytvořena";
"The event \"%{Summary}\" was deleted" = "Událost \"%{Summary}\" byla smazána";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Skrytý úkol)";
"The following attendees(s) were notified" = "Následující účastníci byli upozorněni";
"The following attendees(s) were added" = "Následující účastníci byli přidáni";
"The following attendees(s) were removed" = "Následující účastníci byli odebráni";
/* IMIP messages */
"calendar_label" = "Kalendář";
"startDate_label" = "Začátek";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Skrytý úkol)";
"location_label" = "Místo";
"summary_label" = "Název:";
"comment_label" = "Komentář:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Pozvání na událost: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(poslal/a %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}Vás pozval/a na %{Summary}.\n\nZačátek: %{StartDate}\nKonec: %{EndDate}\nPopis: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}Vás pozval/a na %{Summary}.\n\nZačátek: %{StartDate} v %{StartTime}\nKonec: %{EndDate} v %{EndTime}\nPopis: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Zrušení události: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}zrušil/a událost: %{Summary}.\n\nZačátek: %{StartDate}\nKonec: %{EndDate}\nPopis: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}zrušil/a událost: %{Summary}.\n\nZačátek: %{StartDate} v %{StartTime}\nKonec: %{EndDate} v %{EndTime}\nPopis: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Schůzka \"%{Summary}\" na %{OldStartDate} byla změněna";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Skrytý úkol)";
= "Následující parametry byly ve schůzce \"%{Summary}\" změněny:";
"Please accept or decline those changes."
= "Prosím přijměte nebo odmítněte tyto změny.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Přijaté pozvání: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Odmítnuté pozvání: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Skrytý úkol)";
= "%{Attendee} %{SentByText}delegoval/a Vaše pozvání na %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}dosud o Vašem pozvání k události nerozhodl/a.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Nedostupný zdroj: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Byl dosažen maximální počet současných rezervací\n(%{NumberOfSimultaneousBookings}) pro zdroj \"%{Cn} %{SystemEmail}\". Konfliktní událost je \"%{EventTitle}\" a začíná %{StartDate}.";

View File

@@ -6,7 +6,6 @@ vevent_class2 = "(Hemmelig begivenhed)";
vtodo_class0 = "(Offentlig opgave)";
vtodo_class1 = "(Privat opgave)";
vtodo_class2 = "(Hemmelig opgave)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Begivenheden \"%{Summary}\" blev oprettet";
"The event \"%{Summary}\" was deleted" = "Begivenheden \"%{Summary}\" blev slettet";
@@ -14,7 +13,6 @@ vtodo_class2 = "(Hemmelig opgave)";
"The following attendees(s) were notified" = "Følgende deltager(e) blev underrettet";
"The following attendees(s) were added" = "Følgende deltager(e) blev tilføjet";
"The following attendees(s) were removed" = "Følgende deltager(e) blev fjernet";
/* IMIP messages */
"calendar_label" = "Kalender";
"startDate_label" = "Start";
@@ -23,20 +21,17 @@ vtodo_class2 = "(Hemmelig opgave)";
"location_label" = "Sted";
"summary_label" = "Resumé:";
"comment_label" = "Kommentér:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Begivenhed Invitation: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(Sendt af%{SentBy})";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}har inviteret dig til %{Summary}.\n\nStart: %{StartDate}\nSlut: %{EndDate}\nBeskrivelse: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer}%{SentByText} har inviteret dig til%{Summary}.\n\nStart:%{StartDate}ved%{StartTime}\nEnd:%{EndDate}ved%{endTime}\nDescription:%{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Begivenhed Annulleret: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}har aflyst denne begivenhed: %{Summary}.\n\nStart: %{StartDate}\nSlut: %{EndDate}\nBeskrivelse: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}har annulleret denne begivenhed: %{Summary}.\n\nStart: %{StartDate} %{StartTime}\nSlut: %{EndDate} %{EndTime}\nBeskrivelse: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Aftalen \"%{Summary}\" for %{OldStartDate} er ændret";
@@ -46,7 +41,6 @@ vtodo_class2 = "(Hemmelig opgave)";
= "Følgende parametre har ændret sig i \"%{Summary}\" møde:";
"Please accept or decline those changes."
= "Venligst acceptér eller afvis disse ændringer.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Accepterede invitationen: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Afslåede invitationen: \"%{Summary}\"";
@@ -60,7 +54,6 @@ vtodo_class2 = "(Hemmelig opgave)";
= "%{Attendee} %{SentByText} har delegeret en invitation til %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText} har endnu ikke taget stilling til din begivenhedsinvitation.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Kan ikke tilgå ressourcen: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Maksimalt antal tilladte indkaldelser (%{NumberOfSimultaneousBookings}) er nået for ressource \"%{Cn} %{SystemEmail}\". Konflikter med begivenheden \"%{EventTitle}\", som starter %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Vertrouwelijke afspraak)";
vtodo_class0 = "(Publieke taak)";
vtodo_class1 = "(Privétaak)";
vtodo_class2 = "(Vertrouwelijke taak)";
/* Receipts */
"The event \"%{Summary}\" was created" = "De gebeurtenis \"%{Summary}\" is aangemaakt";
"The event \"%{Summary}\" was deleted" = "De gebeurtenis \"%{Summary}\" is verwijderd";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Vertrouwelijke taak)";
"The following attendees(s) were notified" = "De volgende deelnemers zijn in kennis gesteld";
"The following attendees(s) were added" = "De volgende deelnemers zijn toegevoegd";
"The following attendees(s) were removed" = "De volgende deelnemers zijn verwijderd";
/* IMIP messages */
"calendar_label" = "Agenda";
"startDate_label" = "Start";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Vertrouwelijke taak)";
"location_label" = "Locatie";
"summary_label" = "Samenvatting:";
"comment_label" = "Commentaar:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Uitnodiging voor gebeurtenis: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(Verzonden door %{SentBy})";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}heeft u uitgenodigd voor: %{Summary}.\n\nBegin: %{StartDate}\nEinde: %{EndDate}\nBeschrijving: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}heeft u uitgenodigd voor %{Summary}.\n\nStart: %{StartDate} om %{StartTime}\nEinde: %{EndDate} om %{EndTime}\nOmschrijving: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Gebeurtenis geannuleerd: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}heeft deze gebeurtenis afgezegd: %{Summary}.\n\nBegin: %{StartDate}\nEinde: %{EndDate}\nBeschrijving: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}heeft de gebeurtenis: %{Summary} geannuleerd.\n\nStart: %{StartDate} om %{StartTime}\nEinde: %{EndDate} om %{EndTime}\nOmschrijving: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "De gebeurtenis \"%{Summary}\" op %{OldStartDate} is veranderd.";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Vertrouwelijke taak)";
= "De volgende parameters zijn veranderd in de \"%{Summary}\" vergadering:";
"Please accept or decline those changes."
= "Accepteer deze wijzigingen of wijs ze af.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Uitnodiging aanvaard: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Uitnodiging afgewezen: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Vertrouwelijke taak)";
= "%{Attendee} %{SentByText}heeft de uitnodiging gedelegeerd aan %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}heeft nog niet gereageerd op uw uitnodiging.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Kan bron \"%{Cn} %{SystemEmail}\" niet benaderen";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Het maximale aantal gelijktijdige reserveringen (%{NumberOfSimultaneousBookings}) voor \"%{Cn} %{SystemEmail}\" is bereikt. De conflicterende gebeurtenis is \"%{EventTitle}\" en begint op %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Confidential event)";
vtodo_class0 = "(Public task)";
vtodo_class1 = "(Private task)";
vtodo_class2 = "(Confidential task)";
/* Receipts */
"The event \"%{Summary}\" was created" = "The event \"%{Summary}\" was created";
"The event \"%{Summary}\" was deleted" = "The event \"%{Summary}\" was deleted";
@@ -15,29 +14,25 @@ vtodo_class2 = "(Confidential task)";
"The following attendees(s) were notified" = "The following attendee(s) were notified";
"The following attendees(s) were added" = "The following attendee(s) were added";
"The following attendees(s) were removed" = "The following attendee(s) were removed";
/* IMIP messages */
"calendar_label" = "Calendar";
"startDate_label" = "Start";
"endDate_label" = "End";
"due_label" = "Due Date:";
"due_label" = "Due Date";
"location_label" = "Location";
"summary_label" = "Summary:";
"comment_label" = "Comment:";
"summary_label" = "Summary";
"comment_label" = "Comment";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Event Invitation: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(sent by %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}";
"%{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}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Event Cancelled: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{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}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "The appointment \"%{Summary}\" for the %{OldStartDate} has changed";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Confidential task)";
= "The following parameters have changed in the \"%{Summary}\" meeting:";
"Please accept or decline those changes."
= "Please accept or decline those changes.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Accepted invitation: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Declined invitation: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Confidential task)";
= "%{Attendee} %{SentByText}has delegated the invitation to %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}has not yet decided upon your event invitation.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Cannot access resource: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Luottamuksellinen tapahtuma)";
vtodo_class0 = "(Julkinen tehtävä)";
vtodo_class1 = "(Yksityinen tehtävä)";
vtodo_class2 = "(Luottamuksellinen tehtävä)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Tapahtuma \"%{Summary}\" luotiin";
"The event \"%{Summary}\" was deleted" = "Tapahtuma \"%{Summary}\" poistettiin";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Luottamuksellinen tehtävä)";
"The following attendees(s) were notified" = "Seuraava(t) osallistuja(t) on informoitu";
"The following attendees(s) were added" = "Seuraava(t) osalllistuja(t) on lisätty";
"The following attendees(s) were removed" = "Seuraava(t) osalllistuja(t) poistettiin";
/* IMIP messages */
"calendar_label" = "Kalenteri";
"startDate_label" = "Alkaa";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Luottamuksellinen tehtävä)";
"location_label" = "Sijainti";
"summary_label" = "Yhteenveto:";
"comment_label" = "Kommentti:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Tapahtumakutsu: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(lähettäjä %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}on kutsunut sinut %{Summary}n.⏎ ⏎ Alkaa: %{StartDate}⏎ Loppuu: %{EndDate}⏎ Kuvaus: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}on kutsunut sinut %{Summary}n.⏎ ⏎ Alkaa: %{StartDate} klo %{StartTime}⏎ Loppuu: %{EndDate} klo %{EndTime}⏎ Kuvaus: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Tapahtuma peruttu: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}on perunut tapahtuman: %{Summary}.⏎ ⏎ Alkaa: %{StartDate}⏎ Loppuu: %{EndDate}⏎ Kuvaus: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}on peruuttanut tapahtuman: %{Summary}.⏎ ⏎ Alkaa: %{StartDate}klot %{StartTime}⏎ Loppuu: %{EndDate} klo %{EndTime}⏎ Kuvaus: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Tapaaminen \"%{Summary}\" %{OldStartDate} on muuttunut";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Luottamuksellinen tehtävä)";
= "Seuraavat tiedot ovat muuttuneet tapaamisessa \"%{Summary}\":";
"Please accept or decline those changes."
= "Ole hyvä ja hyväksy tai hylkää muutokset.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Hyväksytty kutsu: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Hylätty kutsu: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Luottamuksellinen tehtävä)";
= "%{Attendee} %{SentByText} on lähettänyt kutsusi edelleen osoitteeseen %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText} ei vielä ole tehnyt päätöstä tapahtumakutsustasi.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Ei pääsyä resurssiin: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Maksimimäärä yhtäaikaisia varauksia\n(%{NumberOfSimultaneousBookings}) saavutettu resurssille \"%{Cn} %{SystemEmail}\". Ristiriitainen tapahtuma: \"%{EventTitle}\" alkaa %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Événement confidentiel)";
vtodo_class0 = "(Tâche publique)";
vtodo_class1 = "(Tâche privée)";
vtodo_class2 = "(Tâche confidentielle)";
/* Receipts */
"The event \"%{Summary}\" was created" = "L'événement «%{Summary}» a été créé";
"The event \"%{Summary}\" was deleted" = "L'événement «%{Summary}» a été effacé";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Tâche confidentielle)";
"The following attendees(s) were notified" = "Les invités suivants ont été avisés ";
"The following attendees(s) were added" = "Les invités suivants ont été ajoutés ";
"The following attendees(s) were removed" = "Les invités suivants ont été supprimés ";
/* IMIP messages */
"calendar_label" = "Agenda ";
"startDate_label" = "Début ";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Tâche confidentielle)";
"location_label" = "Lieu ";
"summary_label" = "Titre :";
"comment_label" = "Description :";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Invitation à la réunion : «%{Summary}»";
"(sent by %{SentBy}) " = "(envoyé par %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}vous a invité à la réunion « %{Summary} ».\n\nDébut: %{StartDate}\nFin: %{EndDate}\nDescription: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}vous a invité à la réunion « %{Summary} ».\n\nDébut: %{StartDate} à %{StartTime}\nFin: %{EndDate} à %{EndTime}\nDescription: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Réunion annulée : « %{Summary} »";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}a annulé cette réunion : « %{Summary} ».\n\nDébut: %{StartDate}\nFin: %{EndDate}\nDescription: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}a annulé cette réunion : « %{Summary} ».\n\nDébut: %{StartDate} à %{StartTime}\nFin: %{EndDate} à %{EndTime}\nDescription: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "La réunion « %{Summary} » de %{OldStartDate} a été modifiée";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Tâche confidentielle)";
= "Les paramètres suivants ont été modifiés pour la réunion « %{Summary} » :";
"Please accept or decline those changes."
= "Veuillez reconfirmer ou annuler votre présence.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Invitation acceptée : «%{Summary}»";
"Declined invitation: \"%{Summary}\"" = "Invitation refusée : «%{Summary}»";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Tâche confidentielle)";
= "%{Attendee} %{SentByText}a délégué votre invitation à %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}choisit de reporter sa décision par rapport à votre invitation.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Impossible d'accéder à la ressource suivante: %{Cn} %{SystemEmail}";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Le nombre maximal de réservations simultanées (%{NumberOfSimultaneousBookings}) est atteint pour la ressource «%{Cn} %{SystemEmail}». L'événement en conflit est «%{EventTitle}» et débute le %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Vertraulicher Termin)";
vtodo_class0 = "(Öffentliche Aufgabe)";
vtodo_class1 = "(Private Aufgabe)";
vtodo_class2 = "(Vertrauliche Aufgabe)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Der Termin \"%{Summary}\" wurde angelegt";
"The event \"%{Summary}\" was deleted" = "Der Termin \"%{Summary}\" wurde gelöscht";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Vertrauliche Aufgabe)";
"The following attendees(s) were notified" = "Die folgenden Teilnehmer wurden benachrichtigt";
"The following attendees(s) were added" = "Die folgenden Teilnehmer wurden hinzugefügt";
"The following attendees(s) were removed" = "Die folgenden Teilnehmer wurden entfernt";
/* IMIP messages */
"calendar_label" = "Kalender";
"startDate_label" = "Beginn";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Vertrauliche Aufgabe)";
"location_label" = "Ort";
"summary_label" = "Zusammenfassung:";
"comment_label" = "Kommentar:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Termineinladung: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(gesendet von %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText} Hat Sie eingeladen zu \"%{Summary}\".\n\nBeginn: %{StartDate}\nEnde: %{EndDate}\nBeschreibung: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} hat Sie eingeladen zu \"%{Summary}\".\n\nBeginn: %{StartDate} um %{StartTime}\nEnde: %{EndDate} um %{EndTime}\nBeschreibung: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Termin abgesagt: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} hat den folgenden Termin abgesagt: \"%{Summary}\".\n\nBeginn: %{StartDate}\nEnde: %{EndDate}\nBeschreibung: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} hat diesen Termin abgesagt: \"%{Summary}\".\n\nBeginn: %{StartDate} um %{StartTime}\nEnde: %{EndDate} um %{EndTime}\nBeschreibung: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Die Verabredung \"%{Summary}\" am %{OldStartDate} wurde geändert";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Vertrauliche Aufgabe)";
= "Folgendes wurde am Termin \"%{Summary}\" geändert:";
"Please accept or decline those changes."
= "Bitte akzeptieren Sie diese Änderung oder lehnen Sie diese ab.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Einladung zugestimmt: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Einladung abgelehnt: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Vertrauliche Aufgabe)";
= "%{Attendee} %{SentByText} hat die Einladung delegiert an %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText} hat noch nicht über Ihre Termineinladung entschieden.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Kann auf folgende Ressource nicht zugreifen: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Die maximale Anzahl von gleichzeitigen Buchungen (%{NumberOfSimultaneousBookings}) für die Ressource \"%{Cn} %{SystemEmail}\" ist erreicht. Der kollidierende Termin ist \"%{EventTitle}\", und beginnt am %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Bizalmas esemény)";
vtodo_class0 = "(Nyilvános feladat)";
vtodo_class1 = "(Magán feladat)";
vtodo_class2 = "(Bizalmas feladat)";
/* Receipts */
"The event \"%{Summary}\" was created" = "A \"%{Summary}\" esemény létre lett hozva";
"The event \"%{Summary}\" was deleted" = "A \"%{Summary}\" esemény törölve lett";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Bizalmas feladat)";
"The following attendees(s) were notified" = "Az alábbi résztvevők lettek értesítve";
"The following attendees(s) were added" = "Az alábbi résztvevők lettek hozzáadva";
"The following attendees(s) were removed" = "Az alábbi résztvevők lettek eltávolítva";
/* IMIP messages */
"calendar_label" = "Naptár";
"startDate_label" = "Kezdete";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Bizalmas feladat)";
"location_label" = "Hely";
"summary_label" = "Összegzés:";
"comment_label" = "Megjegyzés:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Meghívás eseményre: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(%{SentBy} által elküldve) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText} meghívta Önt a(z) %{Summary} tárgyú eseményre.\n\nKezdete: %{StartDate}: \nVége: %{EndDate}\nLeírása: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} meghívta Önt erre az eseményre: %{Summary}.\n\nKezdete: %{StartDate} at %{StartTime}\nVége: %{EndDate} at %{EndTime}\nLeírás: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Az esemény törölve lett: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} törlte az alábbi eseményt: %{Summary}.\n\nKzdete: %{StartDate}\nVége: %{EndDate}\nLeírás: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} törölte az alábbi eseményt: %{Summary}.\n\nKezdete: %{StartDate} at %{StartTime}\nVége: %{EndDate} at %{EndTime}\nLeírás: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "A(z) \"%{Summary}\" tárgyú, %{OldStartDate} időpontra tervezett esemény módosult.";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Bizalmas feladat)";
= "A \"%{Summary}\" tárgyú találkozó következő adatai módosultak:";
"Please accept or decline those changes."
= "Kérem fogadja el vagy utasítsa vissza a változásokat.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Elfogadott meghivás: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Elutasított meghívás: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Bizalmas feladat)";
= "%{Attendee} %{SentByText} átruházta a meghívást az alábbi személynek %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}még meggondolja a meghívását.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Az alábbi elem nem elérhető: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "A maximális egyidejű foglalás számát (%{NumberOfSimultaneousBookings}) elérte a(z) \"%{Cn} %{SystemEmail}\" elem esetében. Az ütköző esemény a(z) \"%{EventTitle}\", a kezdeti időpontja %{StartDate}.";

View File

@@ -6,24 +6,19 @@ vevent_class2 = "(Viðburður er trúnaðarmál)";
vtodo_class0 = "(Almennt verkefni)";
vtodo_class1 = "(Einkaverkefni)";
vtodo_class2 = "(Verkefni er trúnaðarmál)";
/* Receipts */
"Title:" = "Titill:";
"Start:" = "Byrjun:";
"End:" = "Endir:";
"Receipt: users invited to a meeting" = "Móttakandi: notendur boðnir á fund";
"You have invited the following attendees(s):" = "Eftirfarandi þáttakanda/þáttakendum hefur verið boðið:";
"... to attend the following event:" = "... að vera viðstaddir eftirfarandi viðburð:";
"Receipt: invitation updated" = "Móttakandi: uppfærður boðsmiði";
"The following attendees(s):" = "Eftirfarandi þáttakandi/Þáttakendur:";
"... have been notified of the changes to the following event:" = "... hafa fengið upplýsingar um breytingarnar á eftirfarandi viðburði:";
"Receipt: attendees removed from an event" = "Móttakandi: þáttakendur fjarlægðir af viðburði";
"You have removed the following attendees(s):" = "Eftirfarandi þáttakandi/þáttakendur hafa verið fjarlægðir:";
"... from the following event:" = "... af eftirfarandi viðburði:";
/* IMIP messages */
"startDate_label" = "Byrjun";
"endDate_label" = "Endir";
@@ -31,17 +26,14 @@ vtodo_class2 = "(Verkefni er trúnaðarmál)";
"location_label" = "Staðsetning";
"summary_label" = "Samantekt:";
"comment_label" = "Athugasemd:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Boð á viðburð: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(%{SentBy} sendi þetta) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}hefur boðið þér á þennan viðburð: %{Summary}.\n\nByrjun: %{StartDate} at %{StartTime}\nEndir: %{EndDate} at %{EndTime}\nLýsing: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Viðburði aflýst: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}hefur aflýst þessum viðburði: %{Summary}.\n\nByrjun: %{StartDate} kl. %{StartTime}\nEndir: %{EndDate} kl. %{EndTime}\nLýsing: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "Tímapöntunin \"%{Summary}\" sem var þann %{OldStartDate} kl. %{OldStartTime} hefur breyst.";
@@ -49,7 +41,6 @@ vtodo_class2 = "(Verkefni er trúnaðarmál)";
= "Eftirfarandi atriði hafa breyst varðandi fundinn: \"%{Summary}\"";
"Please accept or decline those changes."
= "Þessar breytingar þarf að samþykkja eða hafna.";
/* Reply */
"%{Attendee} %{SentByText}has accepted your event invitation."
= "%{Attendee} %{SentByText}hefur samþykkt boð þitt á viðburð.";
@@ -59,6 +50,5 @@ vtodo_class2 = "(Verkefni er trúnaðarmál)";
= "%{Attendee} %{SentByText}hefur skipað sem fulltrúa sinn %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}hefur ekki enn tekið ákvörðun varðandi boð þitt.";
/* Resources */
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\"." = "Hámarksfjöldi samtímabókana (%{NumberOfSimultaneousBookings}) hefur verið náð varðandi aðfangið \"%{Cn} %{SystemEmail}\".";

View File

@@ -6,24 +6,19 @@ vevent_class2 = "(Evento confidenziale)";
vtodo_class0 = "(Attività pubblica)";
vtodo_class1 = "(Attività privata)";
vtodo_class2 = "(Attività confidenziale)";
/* Receipts */
"Title:" = "Titolo: ";
"Start:" = "Inizio: ";
"End:" = "Fine: ";
"Receipt: users invited to a meeting" = "Notifica: utenti invitati al meeting";
"You have invited the following attendees(s):" = "Hai invitato i seguenti partecipanti:";
"... to attend the following event:" = "... a partecipare al seguente evento:";
"Receipt: invitation updated" = "Notifica: invito aggiornato";
"The following attendees(s):" = "I seguenti partecipanti:";
"... have been notified of the changes to the following event:" = "... hanno ricevuto una notifica di cambiamento relativa al seguente evento:";
"Receipt: attendees removed from an event" = "Notifica: partecipanti rimossi dall'evento";
"You have removed the following attendees(s):" = "Hai rimosso i seguenti partecipanti:";
"... from the following event:" = "... dal seguente evento:";
/* IMIP messages */
"startDate_label" = "Inizio";
"endDate_label" = "Fine";
@@ -31,17 +26,14 @@ vtodo_class2 = "(Attività confidenziale)";
"location_label" = "Luogo";
"summary_label" = "Summario:";
"comment_label" = "Commento:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Invito Evento: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(inviato da %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}ti ha invitato al %{Summary}.\n\nInizio: %{StartDate} alle %{StartTime}\nFine: %{EndDate} alle %{EndTime}\nDescrizione: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Evento cancellato: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}ha cancellato questo evento: %{Summary}.\n\nInizio: %{StartDate} alle %{StartTime}\nFine: %{EndDate} alle %{EndTime}\nDescrizione: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "L'appuntamento \"%{Summary}\" per la data %{OldStartDate} all'ora %{OldStartTime} è cambiato";
@@ -49,7 +41,6 @@ vtodo_class2 = "(Attività confidenziale)";
= "I seguenti dati sono cambiati nell'appuntamento \"%{Summary}\" :";
"Please accept or decline those changes."
= "Prego accettare o rifiutare questi cambiamenti";
/* Reply */
"%{Attendee} %{SentByText}has accepted your event invitation."
= "%{Attendee} %{SentByText}ha accettato il tuo invito al evento.";
@@ -59,6 +50,5 @@ vtodo_class2 = "(Attività confidenziale)";
= "%{Attendee} %{SentByText}ha delegato l'invito a %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}non ha ancora deciso riguardo il tuo invito all'evento.";
/* Resources */
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\"." = "Numero massimo di prenotazioni simultanee (%{NumberOfSimultaneousBookings}) raggiunto per la risorsa \"%{Cn} %{SystemEmail}\".";

View File

@@ -7,15 +7,13 @@ vevent_class2 = "(Доверлив настан)";
vtodo_class0 = "(Јавна задача)";
vtodo_class1 = "(Приватна задача)";
vtodo_class2 = "(Доверлива задача)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Настанот \"%{Summary}\" беше креиран";
"The event \"%{Summary}\" was deleted" = "Настанот \"%{Summary}\" беше избришан";
"The event \"%{Summary}\" was updated" = "Настанот \"%{Summary}\" беше освежен";
"The following attendees(s) were notified:" = "Следниот учесник(ци) се известени:";
"The following attendees(s) were added:" = "Следните учесници беа додадени:";
"The following attendees(s) were removed:" = "Следните учесници беа отстранети:";
"The following attendees(s) were notified" = "Следните учесници беа известини";
"The following attendees(s) were added" = "Следните учесници беа додадени";
"The following attendees(s) were removed" = "Следните учесници беа отстранети";
/* IMIP messages */
"calendar_label" = "Календар:";
"startDate_label" = "Почеток:";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Доверлива задача)";
"location_label" = "Локација:";
"summary_label" = "Резиме:";
"comment_label" = "Коментар:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Покана за настанот: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(испратено од %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}ве покани на %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}ве покани на %{Summary}.\n\nПочеток: %{StartDate} во %{StartTime}\nКрај: %{EndDate} во %{EndTime}\nОпис: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Настанот е откажан: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}ја откажа поканата: %{Summary}.\n\nПочеток: %{StartDate}\nКрај: %{EndDate}\nОпис: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}го откажа настанот: %{Summary}.\n\nПочеток: %{StartDate} во %{StartTime}\nКрај: %{EndDate} во %{EndTime}\nОпис: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Состанокот \"%{Summary}\" за %{OldStartDate} е променет";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Доверлива задача)";
= "Следните параметри се променија во \"%{Summary}\" состанок:";
"Please accept or decline those changes."
= "Прифатете ги ли отфрлете ги измените.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Прифатена покана: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Одбиена покана: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Доверлива задача)";
= "%{Attendee} %{SentByText}ја делегираше поканата на %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}уште нема одлучено по вашата покана.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Не можам да ги пристапам ресурсите: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Максималниот број на едновремени закажувања (%{NumberOfSimultaneousBookings}) е постигнат за ресурсот \"%{Cn} %{SystemEmail}\". Конфликтниот настан е \"%{EventTitle}\", и почнува на %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Konfidensiell hendelse)";
vtodo_class0 = "(Offentlig oppgave)";
vtodo_class1 = "(Privat oppgave)";
vtodo_class2 = "(Konfidensiell oppgave)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Hendelsen \"%{Summary}\" ble opprettet";
"The event \"%{Summary}\" was deleted" = "Hendelsen \"%{Summary}\" ble slettet";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Konfidensiell oppgave)";
"The following attendees(s) were notified" = "Følgende deltaker(e) ble varslet";
"The following attendees(s) were added" = "Følgende deltaker(e) ble lagt til";
"The following attendees(s) were removed" = "Følgende deltaker(e) ble fjernet";
/* IMIP messages */
"calendar_label" = "Kalender";
"startDate_label" = "Start";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Konfidensiell oppgave)";
"location_label" = "Sted";
"summary_label" = "Sammendrag:";
"comment_label" = "Kommentar:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Hendelseinvitasjon: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(sendt av %{SentBy})";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText} har invitert deg til %{Summary}.\n\nStart: %{StartDate}\nSlutt: %{EndDate}\nBeskrivelse: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} har invitert deg til %{Summary}.\n\nStart: %{StartDate} klokken %{StartTime}\nSlutt: %{EndDate} klokken %{EndTime}\nBeskrivelse: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Hendelse avlyst: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} har avlyst hendelsen: %{Summary}.\n\nStart: %{StartDate}\nSlutt: %{EndDate}\nBeskrivelse: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} har avlyst : %{Summary}.\n\nStart: %{StartDate} klokken %{StartTime}\nEnd: %{EndDate} klokken %{EndTime}\nBeskrivelse: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Avtalen \"%{Summary}\", %{OldStartDate} har endret seg";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Konfidensiell oppgave)";
= "Følgende parametre har endret seg for \"%{Summary}\" møtet:";
"Please accept or decline those changes."
= "Vennligst godta eller avvis endringene.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Aksepterte invitasjonen: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Avviste invitasjonen: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Konfidensiell oppgave)";
= "%{Attendee} %{SentByText} har delegert invitasjonen til %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText} har enda ikke svart på invitasjonen din.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Har ikke tilgang til ressurs: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Maksimum antall samtidige reservasjoner (%{NumberOfSimultaneousBookings}) er nådd for ressursen \"%{Cn} %{SystemEmail}\". Den kolliderende hendelsen er \"%{EventTitle}\", og starter %{StartDate}.";

View File

@@ -6,24 +6,19 @@ vevent_class2 = "(Konfidensiell hendelse)";
vtodo_class0 = "(Offentlig oppgave)";
vtodo_class1 = "(Privat oppgave)";
vtodo_class2 = "(Konfidensiell oppgave)";
/* Receipts */
"Title:" = "Tittel:";
"Start:" = "Start:";
"End:" = "Slutt:";
"Receipt: users invited to a meeting" = "Kvittering: brukere invitert til et møte";
"You have invited the following attendees(s):" = "Du har invitert følende deltagere:";
"... to attend the following event:" = "... til å delta i følgende hendelse:";
"Receipt: invitation updated" = "Kvittering: invitasjon oppdatert";
"The following attendees(s):" = "Følgende deltager(e):";
"... have been notified of the changes to the following event:" = "... har blitt informert om endringene i følgende hendelse:";
"Receipt: attendees removed from an event" = "Kvittering: deltagere fjernet fra en hendelse";
"You have removed the following attendees(s):" = "Du har tatt bort følgende deltagere:";
"... from the following event:" = "... fra følgende hendelse:";
/* IMIP messages */
"startDate_label" = "Start";
"endDate_label" = "End";
@@ -31,17 +26,14 @@ vtodo_class2 = "(Konfidensiell oppgave)";
"location_label" = "Location";
"summary_label" = "Summary:";
"comment_label" = "Comment:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Event Invitation: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(sent by %{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}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Event Cancelled: \"%{Summary}\"";
"%{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}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed";
@@ -49,7 +41,6 @@ vtodo_class2 = "(Konfidensiell oppgave)";
= "The following parameters have changed in the \"%{Summary}\" meeting:";
"Please accept or decline those changes."
= "Please accept or decline those changes.";
/* Reply */
"%{Attendee} %{SentByText}has accepted your event invitation."
= "%{Attendee} %{SentByText}has accepted your event invitation.";
@@ -59,6 +50,5 @@ vtodo_class2 = "(Konfidensiell oppgave)";
= "%{Attendee} %{SentByText}has delegated the invitation to %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}has not yet decided upon your event invitation.";
/* Resources */
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\"." = "Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\".";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Wydarzenie poufne)";
vtodo_class0 = "(Zadanie publiczne)";
vtodo_class1 = "(Zadanie prywatne)";
vtodo_class2 = "(Zadanie poufne)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Utworzono wydarzenie \"%{Summary}\"";
"The event \"%{Summary}\" was deleted" = "Skasowano wydarzenie \"%{Summary}\"";
@@ -15,29 +14,25 @@ vtodo_class2 = "(Zadanie poufne)";
"The following attendees(s) were notified" = "Następujący uczestnicy zostali powiadomieni";
"The following attendees(s) were added" = "Następujący uczestnicy zostali dodani";
"The following attendees(s) were removed" = "Następujący uczestnicy zostali usunięci";
/* IMIP messages */
"calendar_label" = "Kalendarz";
"startDate_label" = "Początek";
"endDate_label" = "Koniec";
"due_label" = "Termin:";
"due_label" = "Termin";
"location_label" = "Miejsce";
"summary_label" = "Podsumowanie:";
"comment_label" = "Komentarz:";
"summary_label" = "Podsumowanie";
"comment_label" = "Komentarz";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Zaproszenie na wydarzenie: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(wysłane przez %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}zaprosił Cię na %{Summary}.⏎ ⏎ Początek: %{StartDate}⏎ Koniec: %{EndDate}⏎ Opis: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}zaprosił cię na %{Summary}.\n\nPoczątek: %{StartDate} o %{StartTime}\nKoniec: %{EndDate} o %{EndTime}\nOpis: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Wydarzenie anulowane: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} anulował(a) to wydarzenie: %{Summary}.⏎⏎ Początek: %{StartDate}⏎ Koniec: %{EndDate}⏎ Opis: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}anulował(a) to wydarzenie: %{Summary}.\n\nPoczątek: %{StartDate} o %{StartTime}\nKoniec: %{EndDate} o %{EndTime}\nOpis: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Wydarzenie \"%{Summary}\" z dnia %{OldStartDate} zmieniło się";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Zadanie poufne)";
= "Zmienione zostały poniższe parametry spotkania \"%{Summary}\":";
"Please accept or decline those changes."
= "Zaakceptuj lub odrzuć te zmiany.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Zaakceptowano zaproszenie: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Odrzucono zaproszenie: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Zadanie poufne)";
= "%{Attendee} %{SentByText}oddelegował(a) %{Delegate} na twoje wydarzenie.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}jeszcze nie zdecydował(a) o obecności na twoim wydarzeniu.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Nie ma dostępu do: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Osiągnięto maksymalną liczbę równoległych rezerwacji (%{NumberOfSimultaneousBookings}) dla \"%{Cn} %{SystemEmail}\". Problem wywołuje wydarzenie \"%{EventTitle}\" zaczynające się w %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Evento Confidencial)";
vtodo_class0 = "(Tarefa Pública)";
vtodo_class1 = "(Tarefa Privada)";
vtodo_class2 = "(Tarefa Confidencial)";
/* Receipts */
"The event \"%{Summary}\" was created" = "O evento \"%{Summary}\" foi criado";
"The event \"%{Summary}\" was deleted" = "O evento \"%{Summary}\" foi removido";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Tarefa Confidencial)";
"The following attendees(s) were notified:" = "Os seguintes participantes foram notificados:";
"The following attendees(s) were added:" = "Os seguintes participantes foram adicionados:";
"The following attendees(s) were removed:" = "Os seguintes participantes foram removidos:";
/* IMIP messages */
"calendar_label" = "Calendário:";
"startDate_label" = "Início:";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Tarefa Confidencial)";
"location_label" = "Local:";
"summary_label" = "Resumo:";
"comment_label" = "Comentário:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Convite do Evento: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(enviado por %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}convidou-o para %{Summary}.\n\nInicio: %{StartDate}\nFim: %{EndDate}\nDescrição: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} convidou-o para %{Summary}.\n\nInício: %{StartDate} as %{StartTime}\nFim: %{EndDate} as %{EndTime}\nDescrição: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Evento Cancelado: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}cancelou este evento: %{Summary}.\n\nInicio: %{StartDate}\nFim: %{EndDate}\nDescrição: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} cancelou este evento: %{Summary}.\n\nInício: %{StartDate} às %{StartTime}\nFim: %{EndDate} as %{EndTime}\nDescrição: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "O compromisso \"%{Summary}\" de %{OldStartDate} mudou";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Tarefa Confidencial)";
= "Os seguintes parâmetros mudaram na reunião \"%{Summary}\" :\n\n";
"Please accept or decline those changes."
= "Por favor, aceitar ou recusar as alterações.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Convite aceite: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Convite recusado: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Tarefa Confidencial)";
= "%{Attendee} %{SentByText} delegou o convite para %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText} ainda não decidiu seu convite ao evento.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Não foi possível aceder ao recurso: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "O número máximo de reservas simultâneas (%{NumberOfSimultaneousBookings}) acabou para o recurso \"%{Cn} %{SystemEmail}\". O evento em conflito é \"%{EventTitle}\", e inicia em %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Конфиденциальное событие)";
vtodo_class0 = "(Публичная задача)";
vtodo_class1 = "(Личная задача)";
vtodo_class2 = "(Конфиденциальная задача)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Было создано мероприятие \"%{Summary}\"";
"The event \"%{Summary}\" was deleted" = "Мероприятие \"%{Summary}\" было удалено";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Конфиденциальная задача)";
"The following attendees(s) were notified" = "Следующие приглашенные были оповещены";
"The following attendees(s) were added" = "Следующие люди были добавлены в список приглашенных";
"The following attendees(s) were removed" = "Следующие люди были исключены из списка приглашенных";
/* IMIP messages */
"calendar_label" = "Календарь";
"startDate_label" = "Начало";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Конфиденциальная задача)";
"location_label" = "Местонахождение";
"summary_label" = "Краткое содержание:";
"comment_label" = "Комментарий:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Приглашение на мероприятие: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(послал %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}пригласил вас на %{Summary}.\n\nНачало: %{StartDate}\nОкончание: %{EndDate}\nОписание: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} пригласил вас на %{Summary}.\n\Начало: %{StartDate} в %{StartTime}\nКонец: %{EndDate} в %{EndTime}\nОписание: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Мероприятие отменено: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}отменил эту встречу: %{Summary}.\n\nНачало: %{StartDate}\nОкончание: %{EndDate}\nОписание: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} отменил это мероприятие: %{Summary}.\n\nНачало: %{StartDate} в %{StartTime}\nКонец: %{EndDate} в %{EndTime}\nОписание: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Встреча \"%{Summary}\" назначенная на %{OldStartDate} была изменена";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Конфиденциальная задача)";
= "в мероприятии \"%{Summary}\" изменены следующие параметры:";
"Please accept or decline those changes."
= "Пожалуйста подтвердите или отмените эти изменения.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Принятое приглашение: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Отклонённое приглашение: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Конфиденциальная задача)";
= "%{Attendee} %{SentByText}делегировал приглашение %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}не определился с желанием участвовать в запланированном мероприятии.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Нет доступа к ресурсу: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Достигнуто предельное число заявок (%{NumberOfSimultaneousBookings}) на ресурс \"%{Cn} %{SystemEmail}\". Конкурирующее событие называется \"%{EventTitle}\", оно начинается %{StartDate}.";

View File

@@ -3101,19 +3101,29 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir
NSMutableString *content;
NSString *uid;
// We first look if there's an event with the same UID in our calendar. If not,
// let's reuse what is in the event, otherwise generate a new GUID and use it.
// We first look if the event has any / or + in its UID. If that's the case
// we generate a new UID based on a GUID
uid = [event uid];
object = [self lookupName: uid
inContext: context
acquire: NO];
if (object && ![object isKindOfClass: [NSException class]])
if ([uid rangeOfCharacterFromSet: [NSCharacterSet characterSetWithCharactersInString: @"+/"]].location != NSNotFound)
{
uid = [self globallyUniqueObjectId];
[event setUid: uid];
}
else
{
// We also look if there's an event with the same UID in our calendar. If not,
// let's reuse what is in the event, otherwise generate a new GUID and use it.
object = [self lookupName: uid
inContext: context
acquire: NO];
if (object && ![object isKindOfClass: [NSException class]])
{
uid = [self globallyUniqueObjectId];
[event setUid: uid];
}
}
object = [SOGoAppointmentObject objectWithName: uid
inContainer: self];

View File

@@ -2171,13 +2171,43 @@ inRecurrenceExceptionsForEvent: (iCalEvent *) theEvent
{
iCalPerson *attendee, *delegate;
NSString *delegateEmail;
#if 1
attendee = [newEvent userAsAttendee: [SOGoUser userWithLogin: owner]];
#else
attendee = [oldEvent userAsAttendee: [SOGoUser userWithLogin: owner]];
if (!attendee)
attendee = [newEvent userAsAttendee: [SOGoUser userWithLogin: owner]];
else
{
// We must do an extra check here since Bob could have invited Alice
// using alice@example.com but she would have accepted with ATTENDEE set
// to sexy@example.com. That would duplicate the ATTENDEE and set the
// participation status to ACCEPTED for sexy@example.com but leave it
// to NEEDS-ACTION to alice@example. This can happen in Mozilla Thunderbird/Lightning
// when a user with multiple identities accepts an event invitation to one
// of its identity (which is different than the email address associated with
// the mail account) prior doing a calendar refresh.
NSMutableArray *attendees;
iCalPerson *participant;
attendees = [NSMutableArray arrayWithArray: [newEvent attendeesWithoutUser: [SOGoUser userWithLogin: owner]]];
participant = [newEvent participantForUser: [SOGoUser userWithLogin: owner]
attendee: attendee];
[attendee setPartStat: [participant partStat]];
[attendee setDelegatedFrom: [participant delegatedFrom]];
[attendee setDelegatedTo: [participant delegatedTo]];
[attendees addObject: attendee];
[newEvent setAttendees: attendees];
}
#endif
// We first check of the sequences are alright. We don't accept attendees
// accepting "old" invitations. If that's the case, we return a 403
if ([[newEvent sequence] intValue] < [[oldEvent sequence] intValue])
return [NSException exceptionWithHTTPStatus:403
return [NSException exceptionWithHTTPStatus: 403
reason: @"sequences don't match"];
// Remove the RSVP attribute, as an action from the attendee

View File

@@ -6,7 +6,6 @@ vevent_class2 = "(Dôverná udalosť)";
vtodo_class0 = "(Verejná úloha)";
vtodo_class1 = "(Súkromná úloha)";
vtodo_class2 = "(Dôverná úloha)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Udalosť \"%{Summary}\" bola vytvorená";
"The event \"%{Summary}\" was deleted" = "Udalosť \"%{Summary}\" bola vymazaná";
@@ -14,7 +13,6 @@ vtodo_class2 = "(Dôverná úloha)";
"The following attendees(s) were notified" = "Nasledujúci účastník(ci) bol upozornený";
"The following attendees(s) were added" = "Nasledujúci účastník(ci) bol pridaný";
"The following attendees(s) were removed" = "Nasledujúci účastník(ci) bol odstránený";
/* IMIP messages */
"calendar_label" = "Kalendár";
"startDate_label" = "Začiatok";
@@ -23,20 +21,17 @@ vtodo_class2 = "(Dôverná úloha)";
"location_label" = "Miesto";
"summary_label" = "Zhrnutie:";
"comment_label" = "Komentár:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Pozvánka na udalosť: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(odoslané %{SentBy})";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}Vás pozval na %{Summary}.⏎ ⏎ Začiatok: %{StartDate}⏎ Koniec: %{EndDate}⏎ Podrobnosti: %{Description}";
"%{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}.⏎ ⏎ Start: %{StartDate} at %{StartTime}⏎ End: %{EndDate} at %{EndTime}⏎ Description: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Udalosť zrušená: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}zrušil túto udalosť: %{Summary}.⏎ ⏎ Začiatok: %{StartDate}⏎ Koniec: %{EndDate}⏎ Podrobnosti: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}zrušil túto udalosť: %{Summary}.⏎ ⏎\nZačiatok: %{StartDate} o %{StartTime}⏎ Koniec: %{EndDate} o %{EndTime}⏎ \nPopis: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Stretnutie \"%{Summary}\" z %{OldStartDate} bolo zmenené";
@@ -46,7 +41,6 @@ vtodo_class2 = "(Dôverná úloha)";
= "Nasledujúce parametre boli zmenené v \"%{Summary}\" stretnutie:";
"Please accept or decline those changes."
= "Prosím prijmite alebo odmietnite tieto zmeny.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Prijatá pozvánka: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Zamietnutá pozvánka: \"%{Summary}\"";
@@ -60,7 +54,6 @@ vtodo_class2 = "(Dôverná úloha)";
= "%{Attendee} %{SentByText}delegoval pozvánku na %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}zatiaľ nerozhodol o Vašej pozvánke.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Zdroj nedostupný: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Maximálny počet súčasných rezervácií (%{NumberOfSimultaneousBookings}) prekročil zdroje \"%{Cn} %{SystemEmail}\". Konfliktná udalosť je \"%{EventTitle}\", začínajúca %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Zaupni dogodek)";
vtodo_class0 = "(Javno opravilo)";
vtodo_class1 = "(Osebno opravilo)";
vtodo_class2 = "(Zaupno opravilo)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Dogodek \"%{Summary}\" je bil ustvarjen";
"The event \"%{Summary}\" was deleted" = "Dogodek \"%{Summary}\" je bil izbrisan";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Zaupno opravilo)";
"The following attendees(s) were notified" = "Naslednji udeleženci so bili obveščeni";
"The following attendees(s) were added" = "Naslednji udeleženci so bili dodani";
"The following attendees(s) were removed" = "Naslednji udeleženci so bili odstranjeni";
/* IMIP messages */
"calendar_label" = "Koledar";
"startDate_label" = "Začetek";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Zaupno opravilo)";
"location_label" = "Mesto";
"summary_label" = "Povzetek:";
"comment_label" = "Komentar:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Povabila na dogodek: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(posladno od %{SentBy})";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText} te je povabil na %{Summary}.\n\n\nZačetek: %{StartDate}\nKonec: %{EndDate}\nOpis: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} te je povabil na %{Summary}.\n\n\nZačetek: %{StartDate} at %{StartTime}\nKonec: %{EndDate} at %{EndTime}\nOpis: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Dogodek odpovedan: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} je odpovedal ta dogodek: %{Summary}.\n\n\nZačetek: %{StartDate}\nKonec: %{EndDate}\nOpis: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} je odpovedal ta dogodek: %{Summary}.\n\n\nZačetek: %{StartDate} at %{StartTime}\nKonec: %{EndDate} at %{EndTime}\nOpis: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Sestanek \"%{Summary}\" za %{OldStartDate} se je spremenil";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Zaupno opravilo)";
= "Naslednji parametri so se spremenil v \"%{Summary}\" srečanju:";
"Please accept or decline those changes."
= "Prosim sprejmi ali zavrni te spremembe.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Sprejeto povabilo: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Zavrnjeno povabilo: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Zaupno opravilo)";
= "%{Attendee} %{SentByText} je posredoval povabilo k %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText} se še ni odločil glede tvojega povabila.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Ne morem dostopati do vira: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Doseženo je največje število sočasnih rezervacij (%{NumberOfSimultaneousBookings}) za vir \"%{Cn} %{SystemEmail}\". Konfliktni dogodek je \"%{EventTitle}\", začel se je %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Evento confidencial)";
vtodo_class0 = "(Tarea pública)";
vtodo_class1 = "(Tarea privada)";
vtodo_class2 = "(Tarea confidencial)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Se creó el evento \"%{Summary}\"";
"The event \"%{Summary}\" was deleted" = "Se borró el evento \"%{Summary}\"";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Tarea confidencial)";
"The following attendees(s) were notified" = "Se notificó a los siguientes participantes";
"The following attendees(s) were added" = "Se agregaron los siguientes participantes";
"The following attendees(s) were removed" = "Se removieron los siguientes participantes";
/* IMIP messages */
"calendar_label" = "Calendario";
"startDate_label" = "Inicio";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Tarea confidencial)";
"location_label" = "Lugar";
"summary_label" = "Resumen:";
"comment_label" = "Comentario:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Invitación al evento: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(enviado por %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}lo ha invitado a %{Summary}.\n\nComienzo: %{StartDate}\nFin: %{EndDate}\nDescripción: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}lo ha invitado %{Summary}.\n\nComienzo: %{StartDate} a las %{StartTime}\nFinalización: %{EndDate} a las %{EndTime}\nDescripción: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Evento cancelado: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}ha cancelado este evento: %{Summary}.\n\nComienzo: %{StartDate}\nFin: %{EndDate}\nDescripcción: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}ha cancelado este evento: %{Summary}.\n\nComienzo: %{StartDate} a las %{StartTime}\nFinalización: %{EndDate} a las %{EndTime}\nDescripción: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "El evento \"%{Summary}\" para el %{OldStartDate} ha cambiado";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Tarea confidencial)";
= "Los siguientes parametros han cambiados en la cita \"%{Summary}\":";
"Please accept or decline those changes."
= "Por favor, acepte o rechace estos cambios.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Invitación acepatada: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Invitación rechazada: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Tarea confidencial)";
= "%{Attendee} %{SentByText}ha delegado la invitación a %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}no ha tomado tadavia una decision respecto a esta cita.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "No se puede acceder a este recurso: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = " Número máximo de reservas simultáneas\n(%{NumberOfSimultaneousBookings}) reservas para el recurso \"%{Cn} %{SystemEmail}\". El evento que entra en conflicto es \"%{EventTitle}\", y comienza el %{StartDate}.";

View File

@@ -7,7 +7,6 @@ vevent_class2 = "(Evento confidencial)";
vtodo_class0 = "(Tarea pública)";
vtodo_class1 = "(Tarea privada)";
vtodo_class2 = "(Tarea confidencial)";
/* Receipts */
"The event \"%{Summary}\" was created" = "El evento \"%{Summary}\" ha sido creado";
"The event \"%{Summary}\" was deleted" = "El evento \"%{Summary}\" ha sido borrado";
@@ -15,7 +14,6 @@ vtodo_class2 = "(Tarea confidencial)";
"The following attendees(s) were notified" = "Los invitados siguientes han sido notificado";
"The following attendees(s) were added" = "Los invitados siguientes han sido añadido";
"The following attendees(s) were removed" = "Los invitados siguientes han sido quitado";
/* IMIP messages */
"calendar_label" = "Calendario";
"startDate_label" = "Inicio";
@@ -24,20 +22,17 @@ vtodo_class2 = "(Tarea confidencial)";
"location_label" = "Localización";
"summary_label" = "Resumen:";
"comment_label" = "Comentario:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Invitación al evento: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(enviado por %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}le ha invitado a %{Summary}.\n\nInicio: %{StartDate}\nFin: %{EndDate}\nDescripción: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}le ha invitado a %{Summary}.\n\nInicio: %{StartDate} a las %{StartTime}\nFin: %{EndDate} a las %{EndTime}\nDescripción: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Evento Cancelado: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}ha cancelado este evento: %{Summary}.\n\nInicio: %{StartDate}\nFin: %{EndDate}\nDescripción: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} ha cancelado este evento: %{Summary}.\n\nInicio: %{StartDate} a las %{StartTime}\nFin:%{EndDate} a las {EndTime}\nDescripción: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "El evento \"%{Summary}\" del %{OldStartDate} ha cambiado";
@@ -47,7 +42,6 @@ vtodo_class2 = "(Tarea confidencial)";
= "Los siguientes parametros han cambiados enla cita \"%{Summary}\":";
"Please accept or decline those changes."
= "Por favor, acepta o rechaza estos cambios.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Invitación aceptada: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Invitación rechazada: \"%{Summary}\"";
@@ -61,7 +55,6 @@ vtodo_class2 = "(Tarea confidencial)";
= "%{Attendee} %{SentByText}has delegado la invitación para %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}no ha tomado tadavia una decision sobre esta cita.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "No se puede acceder al recurso: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Numero maximo de reserva simultánea (%{NumberOfSimultaneousBookings}) alcanzada para el recurso \"%{Cn} %{SystemEmail}\". El evento generando el conflicto es \"%{EventTitle}\", y empeza el %{StartDate}.";

View File

@@ -6,24 +6,19 @@ vevent_class2 = "(Konfidentiell händelse)";
vtodo_class0 = "(Publik uppgift)";
vtodo_class1 = "(Privat uppgift)";
vtodo_class2 = "(Konfidentiell uppgift)";
/* Receipts */
"Title:" = "Titel:";
"Start:" = "Start:";
"End:" = "Slut:";
"Receipt: users invited to a meeting" = "Kvitto: användare inbjudna till ett möte";
"You have invited the following attendees(s):" = "Du har bjudit in följande deltagare:";
"... to attend the following event:" = "... att delta i följande händelse:";
"Receipt: invitation updated" = "Kvitto: inbjudan uppdaterad";
"The following attendees(s):" = "Följande deltagare:";
"... have been notified of the changes to the following event:" = "... har blivit informerade om ändringarna i följande händelse:";
"Receipt: attendees removed from an event" = "Kvitto: deltagare bottagna från en händelse";
"You have removed the following attendees(s):" = "Du har tagit bort följande deltagare:";
"... from the following event:" = "... från följande händelse:";
/* IMIP messages */
"startDate_label" = "Startdatum";
"endDate_label" = "Slutdatum";
@@ -31,17 +26,14 @@ vtodo_class2 = "(Konfidentiell uppgift)";
"location_label" = "Plats";
"summary_label" = "Sammanfattning:";
"comment_label" = "Kommentar:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Mötesinbjudan: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(skickad av %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}har bjudit in dig till %{Summary}.\n\nStart: %{StartDate} kl %{StartTime}\nSlut: %{EndDate} kl %{EndTime}\nBeskrivning: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Möte inställt: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}har ställt in detta möte: %{Summary}.\n\nStart: %{StartDate} kl %{StartTime}\nSlut: %{EndDate} kl %{EndTime}\nBeskrivning: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "Mötet \"%{Summary}\" den %{OldStartDate} kl %{OldStartTime} har ändrats";
@@ -49,7 +41,6 @@ vtodo_class2 = "(Konfidentiell uppgift)";
= "Följande har ändrats i \"%{Summary}\" mötet:";
"Please accept or decline those changes."
= "Acceptera eller avböj dessa ändringar.";
/* Reply */
"%{Attendee} %{SentByText}has accepted your event invitation."
= "%{Attendee} %{SentByText}har accepterat din mötesinbjudan.";
@@ -59,6 +50,5 @@ vtodo_class2 = "(Konfidentiell uppgift)";
= "%{Attendee} %{SentByText}har delegerat din inbjudan till %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}har inte än bestämt sig om din mötesinbjudan.";
/* Resources */
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\"." = "Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\".";

View File

@@ -6,24 +6,19 @@ vevent_class2 = "(Конфіденційна подія)";
vtodo_class0 = "(Спільне завдання)";
vtodo_class1 = "(Особисте завдання)";
vtodo_class2 = "(Конфіденційне завдання)";
/* Receipts */
"Title:" = "Назва:";
"Start:" = "Початок:";
"End:" = "Кінець:";
"Receipt: users invited to a meeting" = "Повідомлення: запрошення на зустріч";
"You have invited the following attendees(s):" = "Ви запросили учасника(ів):";
"... to attend the following event:" = "... взяти участь у події:";
"Receipt: invitation updated" = "Повідомлення: оновлено статус запрошення";
"The following attendees(s):" = "Учасника(ів):";
"... have been notified of the changes to the following event:" = "... було повідомлено про зміни в події:";
"Receipt: attendees removed from an event" = "Повідомлення: учасників вилучено з участі в події";
"You have removed the following attendees(s):" = "Ви вилучити учасника(ів):";
"... from the following event:" = "... з участі в події:";
/* IMIP messages */
"startDate_label" = "Початок";
"endDate_label" = "Кінець";
@@ -31,20 +26,17 @@ vtodo_class2 = "(Конфіденційне завдання)";
"location_label" = "Місце";
"summary_label" = "Резюме:";
"comment_label" = "Коментар:";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Запрошення на подію: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(надіслано %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText} запросив Вас до участі у %{Summary}.⏎ ⏎ Початок: %{StartDate}⏎ Кінець: %{EndDate}⏎ Опис: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} запросив вас до %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Подію скасовано: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} скасував цю подію: %{Summary}.⏎ ⏎ Початок: %{StartDate}⏎ Кінець: %{EndDate}⏎ Опис: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} скасував подію: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Запрошення до участі у \"%{Summary}\" %{OldStartDate} було змінено";
@@ -54,7 +46,6 @@ vtodo_class2 = "(Конфіденційне завдання)";
= "Змінились такі умови \"%{Summary}\" зустрічі:";
"Please accept or decline those changes."
= "Будь ласка, прийміть або відхіліть ці зміни.";
/* Reply */
"%{Attendee} %{SentByText}has accepted your event invitation."
= "%{Attendee} %{SentByText} прийняв Ваше запрошення на участь у події.";
@@ -64,6 +55,5 @@ vtodo_class2 = "(Конфіденційне завдання)";
= "%{Attendee} %{SentByText} пененаправив запрошення %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText} поки не визначився з участю в події.";
/* Resources */
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\"." = "Максимальне число одночасного резервування (%{NumberOfSimultaneousBookings}) для ресурсу досягло \"%{Cn} %{SystemEmail}\".";

View File

@@ -6,24 +6,19 @@ vevent_class2 = "(Digwyddiad cyfrinachol)";
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:";
/* IMIP messages */
"startDate_label" = "Start";
"endDate_label" = "End";
@@ -31,17 +26,14 @@ vtodo_class2 = "(Tasg gyfrinachol)";
"location_label" = "Location";
"summary_label" = "Summary:";
"comment_label" = "Comment:";
/* 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}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Event Cancelled: \"%{Summary}\"";
"%{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}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed";
@@ -49,7 +41,6 @@ vtodo_class2 = "(Tasg gyfrinachol)";
= "The following parameters have changed in the \"%{Summary}\" meeting:";
"Please accept or decline those changes."
= "Please accept or decline those changes.";
/* Reply */
"%{Attendee} %{SentByText}has accepted your event invitation."
= "%{Attendee} %{SentByText}wedi derbyn.";
@@ -59,6 +50,5 @@ vtodo_class2 = "(Tasg gyfrinachol)";
= "%{Attendee} %{SentByText}has delegated the invitation to %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}heb benderfynu 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}\".";

View File

@@ -39,6 +39,8 @@ extern NSNumber *iCalDistantFutureNumber;
- (iCalPerson *) userAsAttendee: (SOGoUser *) user;
- (iCalPerson *) participantForUser: (SOGoUser *) theUser
attendee: (iCalPerson *) theAttendee;
- (NSArray *) attendeeUIDs;
- (BOOL) isStillRelevant;

View File

@@ -85,8 +85,8 @@ NSNumber *iCalDistantFutureNumber = nil;
- (iCalPerson *) userAsAttendee: (SOGoUser *) user
{
NSEnumerator *attendees;
iCalPerson *currentAttendee, *userAttendee;
NSEnumerator *attendees;
userAttendee = nil;
@@ -99,6 +99,34 @@ NSNumber *iCalDistantFutureNumber = nil;
return userAttendee;
}
- (iCalPerson *) participantForUser: (SOGoUser *) theUser
attendee: (iCalPerson *) theAttendee
{
iCalPerson *currentAttendee;
NSEnumerator *attendees;
NSMutableArray *a;
a = [NSMutableArray array];
attendees = [[self attendees] objectEnumerator];
while ((currentAttendee = [attendees nextObject]))
if ([theUser hasEmail: [currentAttendee rfc822Email]])
{
// If the attendee is the same but the partStat is
// different, we prioritize this one.
if ([[currentAttendee rfc822Email] caseInsensitiveCompare: [theAttendee rfc822Email]] == NSOrderedSame &&
[[currentAttendee partStat] caseInsensitiveCompare: [theAttendee partStat]] != NSOrderedSame)
[a insertObject: currentAttendee atIndex: 0];
else if ([[currentAttendee rfc822Email] caseInsensitiveCompare: [theAttendee rfc822Email]] != NSOrderedSame)
[a addObject: currentAttendee];
}
if ([a count] > 0)
return [a objectAtIndex: 0];
return theAttendee;
}
- (BOOL) userIsOrganizer: (SOGoUser *) user
{
NSString *mail;

View File

@@ -513,31 +513,6 @@ convention:
flattenedValuesForKey: @""]
inLDIFRecord: ldifRecord];
elements = [self childrenWithTag: @"adr"
andAttribute: @"type" havingValue: @"work"];
if (elements && [elements count] > 0)
{
element = [elements objectAtIndex: 0];
[self _setValue: @"mozillaworkstreet2"
to: [element flattenedValueAtIndex: 1 forKey: @""]
inLDIFRecord: ldifRecord];
[self _setValue: @"street"
to: [element flattenedValueAtIndex: 2 forKey: @""]
inLDIFRecord: ldifRecord];
[self _setValue: @"l"
to: [element flattenedValueAtIndex: 3 forKey: @""]
inLDIFRecord: ldifRecord];
[self _setValue: @"st"
to: [element flattenedValueAtIndex: 4 forKey: @""]
inLDIFRecord: ldifRecord];
[self _setValue: @"postalcode"
to: [element flattenedValueAtIndex: 5 forKey: @""]
inLDIFRecord: ldifRecord];
[self _setValue: @"c"
to: [element flattenedValueAtIndex: 6 forKey: @""]
inLDIFRecord: ldifRecord];
}
elements = [self childrenWithTag: @"adr"
andAttribute: @"type" havingValue: @"home"];
if (elements && [elements count] > 0)
@@ -563,6 +538,35 @@ convention:
inLDIFRecord: ldifRecord];
}
elements = [self childrenWithTag: @"adr"
andAttribute: @"type" havingValue: @"work"];
if (!elements || [elements count] == 0)
elements = [self childrenWithTag: @"adr"];
if (elements && [elements count] > 0)
{
element = [elements objectAtIndex: 0];
[self _setValue: @"mozillaworkstreet2"
to: [element flattenedValueAtIndex: 1 forKey: @""]
inLDIFRecord: ldifRecord];
[self _setValue: @"street"
to: [element flattenedValueAtIndex: 2 forKey: @""]
inLDIFRecord: ldifRecord];
[self _setValue: @"l"
to: [element flattenedValueAtIndex: 3 forKey: @""]
inLDIFRecord: ldifRecord];
[self _setValue: @"st"
to: [element flattenedValueAtIndex: 4 forKey: @""]
inLDIFRecord: ldifRecord];
[self _setValue: @"postalcode"
to: [element flattenedValueAtIndex: 5 forKey: @""]
inLDIFRecord: ldifRecord];
[self _setValue: @"c"
to: [element flattenedValueAtIndex: 6 forKey: @""]
inLDIFRecord: ldifRecord];
}
elements = [self childrenWithTag: @"url"];
[self _setValue: @"mozillaworkurl"
to: [self _simpleValueForType: @"work" inArray: elements

View File

@@ -47,7 +47,6 @@
#import <SOGo/NSObject+DAV.h>
#import <SOGo/SOGoPermissions.h>
#import <SOGo/SOGoSource.h>
#import <SOGo/SOGoUserManager.h>
#import <SOGo/SOGoUserSettings.h>
#import <SOGo/SOGoSystemDefaults.h>
#import <SOGo/WORequest+SOGo.h>
@@ -227,16 +226,8 @@
NSObject <SOGoSource> *recordSource;
newRecord = [NSMutableDictionary dictionaryWithCapacity: 8];
// We set the c_uid only for authentication sources. SOGoUserSources set
// with canAuthenticate = NO and isAddressBook = YES have absolutely *NO REASON*
// to have entries with a c_uid. These can collide with real uids.
if ([[[[SOGoUserManager sharedUserManager] metadataForSourceID: [source sourceID]] objectForKey: @"canAuthenticate"] boolValue])
{
[newRecord setObject: [oldRecord objectForKey: @"c_uid"]
forKey: @"c_uid"];
}
[newRecord setObject: [oldRecord objectForKey: @"c_uid"]
forKey: @"c_uid"];
[newRecord setObject: [oldRecord objectForKey: @"c_name"]
forKey: @"c_name"];

View File

@@ -1,6 +1,6 @@
/* SOGoMailForward.h - this file is part of SOGo
*
* Copyright (C) 2007-2013 Inverse inc.
* Copyright (C) 2007-2015 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -91,6 +91,12 @@
@interface SOGoMailNorwegianNynorskForward : SOGoMailForward
@end
@interface SOGoMailPolishForward : SOGoMailForward
@end
@interface SOGoMailPortugueseForward : SOGoMailForward
@end
@interface SOGoMailSpanishSpainForward : SOGoMailForward
@end
@@ -100,12 +106,6 @@
@interface SOGoMailSwedishForward : SOGoMailForward
@end
@interface SOGoMailPolishForward : SOGoMailForward
@end
@interface SOGoMailPortugueseForward : SOGoMailForward
@end
@interface SOGoMailRussianForward : SOGoMailForward
@end

View File

@@ -1,6 +1,6 @@
/* SOGoMailForward.m - this file is part of SOGo
*
* Copyright (C) 2007-2013 Inverse inc.
* Copyright (C) 2007-2015 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -302,6 +302,12 @@
@implementation SOGoMailNorwegianNynorskForward
@end
@implementation SOGoMailPolishForward
@end
@implementation SOGoMailPortugueseForward
@end
@implementation SOGoMailSpanishSpainForward
@end
@@ -311,12 +317,6 @@
@implementation SOGoMailSwedishForward
@end
@implementation SOGoMailPolishForward
@end
@implementation SOGoMailPortugueseForward
@end
@implementation SOGoMailRussianForward
@end

View File

@@ -1,6 +1,6 @@
/* SOGoMailReply.h - this file is part of SOGo
*
* Copyright (C) 2007-2013 Inverse inc.
* Copyright (C) 2007-2015 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -90,6 +90,12 @@
@interface SOGoMailNorwegianNynorskReply : SOGoMailReply
@end
@interface SOGoMailPolishReply : SOGoMailReply
@end
@interface SOGoMailPortugueseReply : SOGoMailReply
@end
@interface SOGoMailSpanishSpainReply : SOGoMailReply
@end
@@ -99,12 +105,6 @@
@interface SOGoMailSwedishReply : SOGoMailReply
@end
@interface SOGoMailPolishReply : SOGoMailReply
@end
@interface SOGoMailPortugueseReply : SOGoMailReply
@end
@interface SOGoMailRussianReply : SOGoMailReply
@end

View File

@@ -1,6 +1,6 @@
/* SOGoMailReply.m - this file is part of SOGo
*
* Copyright (C) 2007-2013 Inverse inc.
* Copyright (C) 2007-2015 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -140,6 +140,12 @@
@implementation SOGoMailNorwegianNynorskReply
@end
@implementation SOGoMailPolishReply
@end
@implementation SOGoMailPortugueseReply
@end
@implementation SOGoMailSpanishSpainReply
@end
@@ -149,12 +155,6 @@
@implementation SOGoMailSwedishReply
@end
@implementation SOGoMailPolishReply
@end
@implementation SOGoMailPortugueseReply
@end
@implementation SOGoMailRussianReply
@end

View File

@@ -514,15 +514,26 @@
- (unsigned int) weekNumberForDate: (NSCalendarDate *) date
{
NSCalendarDate *firstWeek;
NSCalendarDate *firstWeek, *previousWeek;
unsigned int weekNumber;
firstWeek = [self firstWeekOfYearForDate: date];
if ([firstWeek earlierDate: date] == firstWeek)
weekNumber = ([date timeIntervalSinceDate: firstWeek]
/ (86400 * 7) + 1);
{
weekNumber = ([date timeIntervalSinceDate: firstWeek] / (86400 * 7) + 1);
}
else
weekNumber = 0;
{
// Date is within the last week of the previous year;
// Compute the previous week number to find the week number of the requested date.
// The number will either be 52 or 53.
previousWeek = [date dateByAddingYears: 0
months: 0
days: -7];
firstWeek = [self firstWeekOfYearForDate: previousWeek];
weekNumber = ([previousWeek timeIntervalSinceDate: firstWeek] / (86400 * 7) + 1);
weekNumber += 1;
}
return weekNumber;
}

View File

@@ -37,8 +37,8 @@
@"<johndown@test.com>", // email between brackets
@"\"<johndown@test.com>\" <johndown@test.com>", // doubled
// @"\"johndown@inverse.ca\" <johndown@test.com>", // with and without br.
@"=?utf-8?q?=C3=80=C3=B1in=C3=A9oblabla?= <wolfgang@test.com>", // accented full name
@"=?utf-8?q?=C3=80=C3=B1in=C3=A9oblabla_Bla_Bl=C3=A9?= <wolfgang@test.com>", // accented and multiword
@"=?utf-8?q?=C3=80=C3=B1in=C3=A9oblabla?= <johndown@test.com>", // accented full name
@"=?utf-8?q?=C3=80=C3=B1in=C3=A9oblabla_Bla_Bl=C3=A9?= <johndown@test.com>", // accented and multiword
@"John Down \"Bla Bla\" <johndown@test.com>", // partly quoted
@"John Down <johndown@test.com>", // full name + email
@"John, Down <johndown@test.com>", // full name with comma + email

View File

@@ -2,14 +2,10 @@
"Help" = "مساعدة";
"Close" = "اغلاق";
"Modules" = "وحدات";
/* Modules short names */
"ACLs" = "قوائم الصلاحيات";
/* Modules titles */
"ACLs_title" = "إدارة صلاحيات مجلدات المستخدمين";
/* Modules descriptions */
"ACLs_description" = "<p>وحدة إدارة قوائم الصلاحيات تسمح بتعديل صلاحيات تقويم ودفتر العناوين لكل مستخدم.</p><p>لتعديل قائمة صلاحيات خاصة بمجلد مستخدم, اكتب اسم المستخدم في حقل البحث في الجزء العلوي من النافذة واضغط مرتين على المجلد المطلوب.</p>";

View File

@@ -2,14 +2,10 @@
"Help" = "Laguntza";
"Close" = "Itxi";
"Modules" = "Moduluak";
/* Modules short names */
"ACLs" = "ACL-ak";
/* Modules titles */
"ACLs_title" = "Erabiltzaileen karpeten ACL-en kudeaketa";
/* Modules descriptions */
"ACLs_description" = "<p>\"Access Control List\" administrazio moduluak erabiltzaile bakoitzaren egutegi eta helbide liburuen ACL-ak aldatzea baimentzen du.</p><p>Erabiltzaile baten karpetaren ACL-ak aldatzeko idatzi erabiltzailearen izena leihoaren gainaldeko bilaketa eremuan eta klik bikoitza egin gogoko karpetan.</p>";

View File

@@ -2,14 +2,25 @@
"Help" = "Ajuda";
"Close" = "Fechar";
"Modules" = "Módulos";
/* Modules short names */
"ACLs" = "ACLs";
/* Modules titles */
"ACLs_title" = "Gerenciamento de ACLs para Usuários";
/* Modules descriptions */
"ACLs_description" = "<p>O módulo administrativo das Listas de Controle de Acesso permitem alterar as ACLs de Calendário e Catálogo de cada usuário.</p><p>Para modificar as ACLs do usuário, digite o nome no campo de busca, no topo da janela e dê um duplo-click na opção desejada.</p>";
"Name or Email" = "Nome ou Email";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Inicie uma pesquisa para editar as permissões";
/* Rights module: Empty search result */
"No matching user" = "Nenhum usuário correspondente";
/* Rights module: no selection */
"No resource selected" = "Sem recurso selecionado";
"Add User" = "Adicionar Usuário";
"Subscribe User" = "Inscrever Usuário";
"Rights" = "Permissões";
"Search Users" = "Pesquisar Usuários";
"users found" = "usuários encontrados";
"No resource" = "Nenhum recurso";
"Any Authenticated User" = "Qualquer Usuário Autenticado";
"Public Access" = "Acesso Público";

View File

@@ -2,14 +2,25 @@
"Help" = "Ajuda";
"Close" = "Tancar";
"Modules" = "Mòduls";
/* Modules short names */
"ACLs" = "ACL";
/* Modules titles */
"ACLs_title" = "Gestió de llistes de control d'accés (ACL) d'objectes d'usuari";
/* Modules descriptions */
"ACLs_description" = "<p>El mòdul administratiu de llistes de control d'accés (ACL) permet canviar les ACL dels calendaris i llibretes d'adreces de cada usuari.</p><p>Per modificar l'ACL de l'objecte d'un usuari, cal escriure el nom de l'usuari en el camp de cerca a la part superior de la finestra i clicar dues vegades sobre l'objecte desitjat.</p>";
"Name or Email" = "Nom o E-mail";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Començar una recerca per editar els drets";
/* Rights module: Empty search result */
"No matching user" = "Cap usuari coincident";
/* Rights module: no selection */
"No resource selected" = "Cap recurs seleccionat";
"Add User" = "Afegir usuari";
"Subscribe User" = "Subscriu usuari";
"Rights" = "Drets";
"Search Users" = "Cercar usuaris";
"users found" = "Trobar usuaris";
"No resource" = "Cap recurs";
"Any Authenticated User" = "Qualsevol usuari autenticat";
"Public Access" = "Accés públic";

View File

@@ -2,14 +2,10 @@
"Help" = "幫助";
"Close" = "關閉";
"Modules" = "模組";
/* Modules short names */
"ACLs" = "存取控制清單";
/* Modules titles */
"ACLs_title" = "使用者資料匣存取控制清單";
/* Modules descriptions */
"ACLs_description" = "\"<p>存取控制清單管理模組允許異動每個使用者行事曆及通訊錄的使用權限。</p><p>如要修改使用者資料匣的使用權限,請在視窗上方的搜尋欄位輸入使用者名稱後,將遊標移到要修改的資料匣上連續按兩下滑鼠。</p>";

View File

@@ -2,14 +2,10 @@
"Help" = "Nápověda";
"Close" = "Zavřít";
"Modules" = "Moduly";
/* Modules short names */
"ACLs" = "Přístupová práva";
/* Modules titles */
"ACLs_title" = "Managenent přístupových práv složek uživatelů";
/* Modules descriptions */
"ACLs_description" = "<p>Administrační modul přístupových práv umožňuje nastavovat přístupová práva ke kalendářům a adresářům každého uživatele.</p><p>Chcete-li změnit přístupová práva ke složkám uživatele, zadejte jeho uživatelské jméno do vyhledávacího pole v horní části okna, rozbalte stromovou strukturu jeho složek a na požadované složce udělejte dvojkliknutí.</p>";

View File

@@ -2,14 +2,10 @@
"Help" = "Hjælp";
"Close" = "Luk";
"Modules" = "Moduler";
/* Modules short names */
"ACLs" = "ACL'er";
/* Modules titles */
"ACLs_title" = "Users folders ACLs management";
/* Modules descriptions */
"ACLs_description" = "<p>The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.</p><p>To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.</p>";

View File

@@ -2,14 +2,10 @@
"Help" = "Help";
"Close" = "Sluiten";
"Modules" = "Modules";
/* Modules short names */
"ACLs" = "ACLs";
/* Modules titles */
"ACLs_title" = "ACL-beheer gebruikersmappen ";
/* Modules descriptions */
"ACLs_description" = "<p>De Access Control Lists-beheer-module maakt het mogelijk om de ACLs van de agenda's en adresboeken van elke gebruiker te wijzigen.</p><p>Als u de ACLs van de map van een gebruiker wilt wijzigen, typt u de naam van de gebruiker in het zoekveld bovenaan het venster en dubbelklikt u op de gewenste map.</p>";

View File

@@ -2,14 +2,25 @@
"Help" = "Help";
"Close" = "Close";
"Modules" = "Modules";
/* Modules short names */
"ACLs" = "ACLs";
/* Modules titles */
"ACLs_title" = "Users folders ACLs management";
/* Modules descriptions */
"ACLs_description" = "<p>The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.</p><p>To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.</p>";
"Name or Email" = "Name or Email";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Start a search to edit the rights";
/* Rights module: Empty search result */
"No matching user" = "No matching user";
/* Rights module: no selection */
"No resource selected" = "No resource selected";
"Add User" = "Add User";
"Subscribe User" = "Subscribe User";
"Rights" = "Rights";
"Search Users" = "Search Users";
"users found" = "users found";
"No resource" = "No resource";
"Any Authenticated User" = "Any Authenticated User";
"Public Access" = "Public Access";

View File

@@ -2,14 +2,25 @@
"Help" = "Apua";
"Close" = "Sulje";
"Modules" = "Modulit";
/* Modules short names */
"ACLs" = "ACL:t";
/* Modules titles */
"ACLs_title" = "Käyttäjähakemistojen oikeuksien hallinta ACL";
/* Modules descriptions */
"ACLs_description" = "<p>Access Control Lists hallintamoduli mahdollistaa käyttäjien kalentereiden ja osoitekirjojen muuttamisen.</p><p>Muokataksesi käyttäjähakemiston oikeuksia, kirjoita käyttäjän nimi sivun ylälaidan hakukenttään ja kaksoisnapsauta haluamaasi hakemistoa.</p>";
"Name or Email" = "Nimi tai sähköposti";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Aloita haku oikeuksien muuttamiseksi";
/* Rights module: Empty search result */
"No matching user" = "Ei vastaavaa käyttäjää";
/* Rights module: no selection */
"No resource selected" = "Ei valittua resurssia";
"Add User" = "Lisää käyttäjä";
"Subscribe User" = "Tilaa käyttäjä";
"Rights" = "Oikeudet";
"Search Users" = "Etsi käyttäjiä";
"users found" = "käyttäjää löytynyt";
"No resource" = "Ei resurssia";
"Any Authenticated User" = "Kuka tahansa kirjautunut käyttäjä";
"Public Access" = "Julkinen pääsy";

View File

@@ -2,14 +2,10 @@
"Help" = "Aide";
"Close" = "Fermer";
"Modules" = "Modules";
/* Modules short names */
"ACLs" = "Droits";
/* Modules titles */
"ACLs_title" = "Gestion des droits d'accès pour les dossiers utilisateurs";
/* Modules descriptions */
"ACLs_description" = "<p>Le module de gestion des droits d'accès (ACL) vous permet de changer les ACL des calendriers et carnets d'adresses des utilisateurs.</p><p>Pour modifier les ACL sur un dossier, recherchez un utilisateur et double-clickez sur le dossier souhaité.</p>";

View File

@@ -2,14 +2,10 @@
"Help" = "Hilfe";
"Close" = "Schließen";
"Modules" = "Module";
/* Modules short names */
"ACLs" = "ACLs";
/* Modules titles */
"ACLs_title" = "Benutzerordner ACL-Management";
/* Modules descriptions */
"ACLs_description" = "<p>Dieses Modul ermöglicht die Verwaltung der Zugriffsrechte (ACLs) für die Kalender und Adressbücher jedes Benutzer.</p><p>Zum Ändern der Zugriffsrechte geben Sie den Namen des jeweiligen Benutzers in das Suchfeld ein. Wählen Sie den zu ändernden Ordner mit einem Doppelklick aus der Liste aus.</p>";

View File

@@ -2,14 +2,25 @@
"Help" = "Súgó";
"Close" = "Bezárás";
"Modules" = "Modulok";
/* Modules short names */
"ACLs" = "ACL-ek";
/* Modules titles */
"ACLs_title" = "Felhaszálói mappák ACL kezelése";
/* Modules descriptions */
"ACLs_description" = "<p>A hozzáférést szabályzó lista (ACL) rendszerfelügyeleti modul lehetővé teszi bármely felhasználó naptár és címjegyzék hozzáférhetőségének módosítását.</p><p>A felhasználói mappa ACL-ek módosításához gépelje be a felhasználó nevét a kereső mezőbe az ablak tetején, majd kattintson duplán a kívánt mappára. </p>";
"Name or Email" = "Név vagy email";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Indítson egy keresést a jogosultságok szerkesztéséhez";
/* Rights module: Empty search result */
"No matching user" = "Nincs megfelelő felhasználó";
/* Rights module: no selection */
"No resource selected" = "Nincs kijelölt erőforrás";
"Add User" = "Felhasználó hozzáadása";
"Subscribe User" = "Felhasználót felirathat";
"Rights" = "Jogok";
"Search Users" = "Felhasználók keresése";
"users found" = "felhasználó";
"No resource" = "Nincs erőforrás";
"Any Authenticated User" = "Bármely azonosított felhasználó";
"Public Access" = "Nyilvános hozzáférés";

View File

@@ -2,14 +2,10 @@
"Help" = "Help";
"Close" = "Close";
"Modules" = "Modules";
/* Modules short names */
"ACLs" = "ACLs";
/* Modules titles */
"ACLs_title" = "Users folders ACLs management";
/* Modules descriptions */
"ACLs_description" = "<p>The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.</p><p>To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.</p>";

View File

@@ -2,14 +2,10 @@
"Help" = "Aiuto";
"Close" = "Chiudi";
"Modules" = "Moduli";
/* Modules short names */
"ACLs" = "ACLs";
/* Modules titles */
"ACLs_title" = "Amministrazione ACL risorse utenti";
/* Modules descriptions */
"ACLs_description" = "<p>Il modulo di amministrazione delle ACL permette di cambiare le ACL di tutti i Calendari e le Rubriche degli utenti.</p><p>Per modificare le ACL relative ad una risorsa di un utente, scrivere il nome del utente nel campo di ricerca e fare doppio click sulla risorsa desiderata.</p>";

View File

@@ -2,14 +2,25 @@
"Help" = "Помош";
"Close" = "Затвори";
"Modules" = "Модули";
/* Modules short names */
"ACLs" = "КПЛа";
/* Modules titles */
"ACLs_title" = "Управување со КПЛа за кориснички папки";
/* Modules descriptions */
"ACLs_description" = "<p>Модулот за администрацијата на контролните пристапни листи овозможува да се променат КПЛ на секој кориснички календар и адресна книга.</p><p>Да се промени КПЛа на корисничка папка, откуцај го името на корисникот во полето за пребарување на врвот од прозорецот и двојно кликни на посакуваната папка.</p>";
"Name or Email" = "Име или електронска адреса";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Започни пребарување за да ги уредиш правата";
/* Rights module: Empty search result */
"No matching user" = "Не е пронајдено совпаѓање на корисник";
/* Rights module: no selection */
"No resource selected" = "Не е избран ресурс";
"Add User" = "Додади корисник";
"Subscribe User" = "Запиши го корисникот";
"Rights" = "Права";
"Search Users" = "Пребарај корисници";
"users found" = "пронајдени корисници";
"No resource" = "Нема ресурси";
"Any Authenticated User" = "Било кој автентициран корисник";
"Public Access" = "Јавен пристап";

View File

@@ -2,14 +2,10 @@
"Help" = "Hjelp";
"Close" = "Lukk";
"Modules" = "Moduler";
/* Modules short names */
"ACLs" = "Adgangsrettigheter";
/* Modules titles */
"ACLs_title" = "Håndtering av adgangsrettigheter for brukermapper";
/* Modules descriptions */
"ACLs_description" = "<p>Administrasjonsmodulen for adgangsrettigheter muliggjør endring av adgangsrettigheter for brukerens kalendre og adressebøker.</p><p>For å endre adgangsrettigheter for en bruker sin mappe, skriv brukernavnet i søkefeltet i toppen vinduet og dobbelklikk på den ønskede mappen.</p>";

View File

@@ -2,14 +2,10 @@
"Help" = "Hjelp";
"Close" = "Lukk";
"Modules" = "Moduler";
/* Modules short names */
"ACLs" = "Adgangsrettigheter";
/* Modules titles */
"ACLs_title" = "Håntering av adgangsrettigheter for brukermapper";
/* Modules descriptions */
"ACLs_description" = "<p>Administrasjonsmodulen for adgangsrettigheter muliggjør endring av adgangsrettigheter for brukerens kalendre og adressebøker.</p><p>For å endre adgangsrettigheter på en brukermappe, skriv brukernavnet i søkefeltet oppe i vinduet og dobbelklikk på ønskede mappe.</p>";

View File

@@ -2,14 +2,25 @@
"Help" = "Pomoc";
"Close" = "Zamknij";
"Modules" = "Moduły";
/* Modules short names */
"ACLs" = "ACLe";
/* Modules titles */
"ACLs_title" = "Zarządzanie uprawnieniami ACL folderów użytkowników";
/* Modules descriptions */
"ACLs_description" = "<p>Moduł zarządzania uprawnieniami ACL (ang. Access Control Lists) pozwala zmienić uprawnienia ACL na folderach poczty i książkach adresowych każdego użytkownika.</p><p>Aby zmodyfikować uprawnienie ACL foldera użytkownika, wpisz nazwę tego użytkownika w pole wyszukiwania w górnej części okna i kliknij podwójnie na wybranym folderze.</p>";
"Name or Email" = "Nazwa lub e-mail";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Rozpocznij wyszukiwanie, by zmienić uprawnienia";
/* Rights module: Empty search result */
"No matching user" = "Żaden użytkownik nie pasuje";
/* Rights module: no selection */
"No resource selected" = "Nie wybrano zasobu";
"Add User" = "Dodaj użytkownika";
"Subscribe User" = "Subskrybuj użytkownika";
"Rights" = "Uprawnienia";
"Search Users" = "Wyszukaj użytkowników";
"users found" = "wyszukanych użytkowników";
"No resource" = "Brak zasobu";
"Any Authenticated User" = "Dowolny zalogowany użytkownik";
"Public Access" = "Dostęp publiczny";

View File

@@ -2,14 +2,10 @@
"Help" = "Ajuda";
"Close" = "Fechar";
"Modules" = "Módulos";
/* Modules short names */
"ACLs" = "ACLs";
/* Modules titles */
"ACLs_title" = "Gerenciamento de ACLs para Utilizadores";
/* Modules descriptions */
"ACLs_description" = "<p>O módulo administrativo das Listas de Controlo de Acessos permitem alterar os ACLs de Calendário e Contactos de cada utilizador.</p><p>Para modificar as ACLs do utilizador, digite o nome no campo de pesquisa, no topo da janela e dê um duplo-click na opção desejada.</p>";

View File

@@ -2,14 +2,25 @@
"Help" = "Помощь";
"Close" = "Закрыть";
"Modules" = "Модули";
/* Modules short names */
"ACLs" = "Списки доступа (ACL)";
/* Modules titles */
"ACLs_title" = "Управление списками доступа к пользовательским папкам (ACL)";
/* Modules descriptions */
"ACLs_description" = "<p> Списки контроля доступа модуль администрирования позволяет изменять списки ACL календарей каждого пользователя и адрес книги. </p><p> Чтобы изменить списки ACL папки пользователя, введите имя пользователя в поле поиска в верхней части окна и дважды щелкнуть по нужной папке. </p>";
"Name or Email" = "Имя или Email";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Начать поиск для редактирования прав";
/* Rights module: Empty search result */
"No matching user" = "Нет соотвествующего пользователя";
/* Rights module: no selection */
"No resource selected" = "Ресурс не выбран";
"Add User" = "Добавить пользователя";
"Subscribe User" = "Подписать пользователя";
"Rights" = "Права";
"Search Users" = "Поиск пользователей";
"users found" = "пользователей найдено";
"No resource" = "Нет ресурса";
"Any Authenticated User" = "Любой авторизованный пользователь";
"Public Access" = "Публичный доступ";

View File

@@ -2,14 +2,10 @@
"Help" = "Pomoc";
"Close" = "Zavrieť";
"Modules" = "Moduly";
/* Modules short names */
"ACLs" = "ACL";
/* Modules titles */
"ACLs_title" = "Spravovanie ACL zložiek uzívateľov";
/* Modules descriptions */
"ACLs_description" = "<p>Administrácia kontroly prístupových práv (ACL) dovoluje spravovať ACLs kalendárov a adresárov pre všetkých užívateľov.</p><p>Pre úpravu ACL zložky užívateľa, napíšte meno užívateľa v kolonke hľadaj hore v okne a dvojklikom potvrďte výber zložky.</p>";

View File

@@ -2,14 +2,10 @@
"Help" = "Pomoč";
"Close" = "Zapri";
"Modules" = "Moduli";
/* Modules short names */
"ACLs" = "ACLi";
/* Modules titles */
"ACLs_title" = "Urejanje uporabniških pravic na mapah";
/* Modules descriptions */
"ACLs_description" = "<p>The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.</p><p>To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.</p>";

View File

@@ -2,14 +2,10 @@
"Help" = "Ayuda";
"Close" = "Cerrar";
"Modules" = "Módulos";
/* Modules short names */
"ACLs" = "ACL's";
/* Modules titles */
"ACLs_title" = "Gestión de ALC's de las carpetas de usuarios";
/* Modules descriptions */
"ACLs_description" = "<p>El módulo de administración de Listas de Control de Acceso (ACL) permite cambiar las ACL's del Calendario o de la Libreta de Direcciones de cada usuario</p><p>Para modificar las ACL's de la carpeta de un usuario, ingrese el nombre del usuario en el cuadro de búsqueda ubicado en la parte superior de la ventana y haga dobe click en la carpeta deseada.</p>";

View File

@@ -2,14 +2,25 @@
"Help" = "Ayuda";
"Close" = "Cerrar";
"Modules" = "Módulos";
/* Modules short names */
"ACLs" = "ACLs";
/* Modules titles */
"ACLs_title" = "Gestión de ALCs para carpetas de usuarios";
/* Modules descriptions */
"ACLs_description" = "<p>El módulo administrativo de ACL (Listas de Control de Acceso por su siglas inglés) permite cambiar los ACLs de las Agendas y Libreta de Direcciones de cada usuario.</p><p>Para modificar los ACLs de las carpetas de un usuario, teclea el nombre de usuario en el campo de búsqueda arriba de la ventana y haz un doble-click sobre la carpeta deseada.</p>";
"Name or Email" = "Nombre o Correo";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Iniciar una búsqueda para modificar los derechos";
/* Rights module: Empty search result */
"No matching user" = "No resultado encontrado";
/* Rights module: no selection */
"No resource selected" = "No recurso seleccionado";
"Add User" = "Añadir usuario";
"Subscribe User" = "Suscribir Usuario";
"Rights" = "Derechos de accesos";
"Search Users" = "Buscar usuarios";
"users found" = "Usuarios encontrados";
"No resource" = "No recursos";
"Any Authenticated User" = "Cualquier Usuario Autenticado ";
"Public Access" = "Acceso publico";

View File

@@ -2,14 +2,10 @@
"Help" = "Hjälp";
"Close" = "Stäng";
"Modules" = "Moduler";
/* Modules short names */
"ACLs" = "Åtkomsträttigheter";
/* Modules titles */
"ACLs_title" = "Hantering av åtkomsträttigheter för användarmappar";
/* Modules descriptions */
"ACLs_description" = "<p>Administrationsmodulen för åtkomsträttigheter möjliggör ändring av åtkomsträttigheter för användarens kalendrar och adressböcker.</p><p>För att ändra åtkomsträttigheter på en användarmapp, skriv användarnamnet i sökfältet uppe i fönstret och dubbelklicka på önskad mapp.</p>";

View File

@@ -1,6 +1,7 @@
( /* the toolbar groups -*-cperl-*- */
( { link = "#";
label = "Help";
tooltip = "Help";
onclick = "help(this);";
image = "properties.png"; }
)

View File

@@ -2,14 +2,10 @@
"Help" = "Допомога";
"Close" = "Закрити";
"Modules" = "Модулі";
/* Modules short names */
"ACLs" = "Доступи";
/* Modules titles */
"ACLs_title" = "Керування доступами до тек користувачів";
/* Modules descriptions */
"ACLs_description" = "<p>Адміністративний модуль списків доступів дозволяє змінювати доступи до календаря та адресної книги кожного окремого користувача.</p><p>Щоб змінити список доступу теки користувача, введіть ім’я користувача в полі пошуку нагорі цього вікни та натисніть двічі на потрібній теці.</p>";

View File

@@ -2,14 +2,10 @@
"Help" = "Help";
"Close" = "Close";
"Modules" = "Modules";
/* Modules short names */
"ACLs" = "ACLs";
/* Modules titles */
"ACLs_title" = "Users folders ACLs management";
/* Modules descriptions */
"ACLs_description" = "<p>The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.</p><p>To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.</p>";

View File

@@ -4,7 +4,6 @@
"Save" = "احفظ";
"Close" = "أغلق";
"Edit User Rights" = "حرِّر صلاحيات المستخدم";
"Home" = "الصفحة الرئيسية";
"Calendar" = "التقويم";
"Address Book" = "دفتر العناوين";
@@ -14,30 +13,21 @@
"Disconnect" = "قطع الاتصال";
"Right Administration" = "حق الإدارة";
"Log Console (dev.)" = "سجل وحدة التحكم (برمجة)";
"User" = "مستخدم";
"Vacation message is enabled" = "فُعِّلت رسالة العُطْلة";
"Help" = "المساعدة";
"noJavascriptError" = "سوجو يتطلب جافا سكريبت للتشغيل. يرجى التأكد من هذا الخيار متاح ضمن تفضيلات المتصفح.";
"noJavascriptRetry" = "إعادة المحاولة";
"Owner:" = "المالك:";
"Owner" = "المالك";
"Publish the Free/Busy information" = "نشر معلومات متوفر / مشغول";
"Add..." = "إضافة ...";
"Remove" = "إزالة";
"Subscribe User" = "اشتراك المستخدم";
"Any Authenticated User" = "أي مستخدم مسجل";
"Public Access" = "وصول الجمهور";
"Any user not listed above" = "أي مستخدم غير مذكور أعلاه";
"Anybody accessing this resource from the public area" = "أي شخص يدخل على هذه الموارد من منطقة عامة";
"Sorry, the user rights can not be configured for that object." = "آسف، لا يمكن أن يتم تكوين حقوق المستخدم لذلك الكائن.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "إن أي مستخدم لديه حساب على هذا النظام سيكون قادرا على الوصول إلى صندوق البريد الخاص بك \"٪ {0}\". هل أنت متأكد من أنك تثق بهم؟";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +40,6 @@
= "يحتمل أن يتمكن أي شخص على الإنترنت من الوصول إلى دفنرالعناوين الخاص بك \"٪ {0}\"، حتى لو لم يكن لديه حساب على هذا النظام. هل هذه المعلومات مناسبة لشبكة الانترنت العامة؟";
"Give Access" = "منح حق الوصول";
"Keep Private" = "إبقاءه مخفي";
/* generic.js */
"Unable to subscribe to that folder!"
= "غير قادر على الاشتراك في هذا المجلد!";
@@ -69,17 +58,14 @@
"You cannot create a list in a shared address book."
= "لا يمكنك إنشاء قائمة في دفتر العناوين المشترك.";
"Warning" = "تحذير";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "لا يسمح لك بالوصول إلى هذه الوحدة أو هذا النظام. الرجاء الاتصال بمسؤول النظام.";
"You don't have the required privileges to perform the operation."
= "ليس لديك الصلاحيات المطلوبة لتنفيذ العملية.";
"noEmailForDelegation" = "يجب تحديد العنوان الذي تريد تفويضه بدعوتك.";
"delegate is organizer" = "المفوض هو المنظم. يرجى تحديد مفوض مختلف.";
"delegate is a participant" = "المفوض هو بالفعل أحد المشاركين.";
"delegate is a group" = "العنوان المحدد يناظر مجموعة من العناوين. يمكنك فقط أن تفوض شخص معين.";
"Snooze for " = "تأجيل الى";
"5 minutes" = "5 دقائق";
"10 minutes" = "10 دقائق";
@@ -87,28 +73,22 @@
"30 minutes" = "30 دقيقة";
"45 minutes" = "45 دقيقة";
"1 hour" = "1 ساعة";
/* common buttons */
"OK" = "موافق";
"Cancel" = "إلغاء";
"Yes" = "نعم";
"No" = "لا";
/* alarms */
"Reminder:" = "تذكير:";
"Start:" = "البداية:";
"Due Date:" = "تاريخ الاستحقاق:";
"Location:" = "الموقع:";
"Reminder" = "تذكير";
"Start" = "البداية";
"Due Date" = "تاريخ الاستحقاق";
"Location" = "الموقع";
/* Mail labels */
"Important" = "مهم";
"Work" = "عمل";
"Work" = "عمل";
"Personal" = "شخصي";
"To Do" = "تفعل";
"Later" = "لاحقا";
"a2_Sunday" = "ح";
"a2_Monday" = "ن";
"a2_Tuesday" = "ث";

View File

@@ -4,7 +4,6 @@
"Save" = "Gorde";
"Close" = "Itxi";
"Edit User Rights" = "Erabiltzailearen baimenak aldatu";
"Home" = "Hasiera";
"Calendar" = "Egutegia";
"Address Book" = "Helbide liburua";
@@ -14,30 +13,21 @@
"Disconnect" = "Deskonektatu";
"Right Administration" = "Baimenen kudeaketa";
"Log Console (dev.)" = "Erregistro kontsola (garap.)";
"User" = "Erabiltzailea";
"Vacation message is enabled" = "\"Oporretan nago\" mezua gaituta dago";
"Help" = "Laguntza";
"noJavascriptError" = "SOGo-k javascript beharrezkoa du. Mesedez ziurtatu zure nabigatzailearen aukeratan aktibatua dagoela.";
"noJavascriptRetry" = "Berriz saiatu";
"Owner:" = "Jabea:";
"Owner" = "Jabea";
"Publish the Free/Busy information" = "Argitaratu Libre/Lanpetu informazioa";
"Add..." = "Gehitu...";
"Remove" = "Ezabatu";
"Subscribe User" = "Erabiltzailea harpidetu";
"Any Authenticated User" = "Autentifikatutako edozein erabiltzaile";
"Public Access" = "Atzipen publikoa";
"Any user not listed above" = "Goian zerrendatu gabeko edozein erabiltzaile";
"Anybody accessing this resource from the public area" = "Eremu publikotik baliabidea atzitzen duen edonork";
"Sorry, the user rights can not be configured for that object." = "Barkatu, erabiltzailearen baimenak ezin dira objetu horretarako konfiguratu.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Sistema honetan kontua daukan edonor zure \"%{0}\" postontzia atzitzeko gai izango da. Ziur zaude hori nahi duzula? ";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +40,6 @@
= "Internet-eko edonor zure \"%{0}\" helbide liburua atzitzeko gai izango da, naiz eta sistema honetan konturik ez eduki. Informazio hau egokia da internet publikorako?";
"Give Access" = "Baimendu atzipena";
"Keep Private" = "Pribatua mantendu";
/* generic.js */
"Unable to subscribe to that folder!"
= "Ezin da karpeta hori harpidetu!";
@@ -70,17 +59,14 @@
= "Ezin duzu zerrenda bat sortu partekatutako helbide liburu batean";
"Warning" = "Oharra";
"Can't contact server" = "Errore gertatu da zerbitzariarekin konektatzerakoan. Mesedez saiatu beranduago.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Ez daukazu modulu edo sistema honetarako atzipen baimenik. Mesedez, jarri harremanetan sistemaren administratzailearekin.";
"You don't have the required privileges to perform the operation."
= "Ez daukazu eragiketa egiteko beharrezko baimenik.";
"noEmailForDelegation" = "Zure gonbidapena delegatu nahi duzun email helbidea zehaztu behar duzu.";
"delegate is organizer" = "Delegatua antolatzailea da. Mesedez, aukeratu beste delegatu bat.";
"delegate is a participant" = "DElegatua parte-hartzailea da jada.";
"delegate is a group" = "Zehaztutako helbidea talde bati dagokio. Pertsona baten gain bakarrik delega dezakezu.";
"Snooze for " = "Errepikatu ";
"5 minutes" = "5 minutu";
"10 minutes" = "10 minutu";
@@ -89,26 +75,22 @@
"45 minutes" = "45 minutu";
"1 hour" = "1 ordu";
"1 day" = "1 egun";
/* common buttons */
"OK" = "Onartu";
"Cancel" = "Ezeztatu";
"Yes" = "Bai";
"No" = "Ez";
/* alarms */
"Reminder:" = "Ohartarazpena:";
"Start:" = "Hasi:";
"Due Date:" = "Epemuga:";
"Reminder" = "Ohartarazpena";
"Start" = "Hasi";
"Due Date" = "Epemuga";
"Location:" = "Kokapen";
/* mail labels */
"Important" = "Garrantzitsua";
"Work" = "Lana";
"Personal" = "Pertsonala";
"To Do" = "Egitekoa";
"Later" = "Beranduago";
"a2_Sunday" = "Ig";
"a2_Monday" = "Al";
"a2_Tuesday" = "As";

View File

@@ -4,7 +4,6 @@
"Save" = "Salvar";
"Close" = "Fechar";
"Edit User Rights" = "Editar Direitos do Usuário";
"Home" = "Início";
"Calendar" = "Calendário";
"Address Book" = "Catálogo";
@@ -12,32 +11,24 @@
"Preferences" = "Preferências";
"Administration" = "Administração";
"Disconnect" = "Desconectar";
"Toggle Menu" = "Alternar Menu";
"Right Administration" = "Administração de Direitos";
"Log Console (dev.)" = "Log Console (dev.)";
"User" = "Usuário";
"Vacation message is enabled" = "Mensagem de ausência está ativa";
"Help" = "Ajuda";
"noJavascriptError" = "SOGo requer Javascript para rodar. Por favor, certifique-se que a opção está disponível e habilitada nas preferências de seu navegador.";
"noJavascriptRetry" = "Repetir";
"Owner:" = "Dono:";
"Owner" = "Dono";
"Publish the Free/Busy information" = "Divulgar a informação Livre/Ocupado";
"Add..." = "Adicionar...";
"Remove" = "Remover";
"Subscribe User" = "Usuário Inscrito";
"Any Authenticated User" = "Qualquer Usuário Autenticado";
"Public Access" = "Acesso Público";
"Any user not listed above" = "Qualquer usuário não listado abaixo";
"Anybody accessing this resource from the public area" = "Ninguém acessando este recurso de uma área pública";
"Sorry, the user rights can not be configured for that object." = "Desculpe, os direitos de usuário não podem ser modificados para este objeto.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Qualquer usuário com uma conta neste sistema será capaz de acessar sua caixa postal \"% {0}\". Tem a certeza que confia em todos?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +41,6 @@
= "Qualquer pessoa na Internet será capaz de acessar seu catálogo de endereços \"% {0}\", mesmo se não tiver uma conta no sistema. Esta informação pode ser tornar pública na Internet?";
"Give Access" = "Conceder Acesso";
"Keep Private" = "Manter Privado";
/* generic.js */
"Unable to subscribe to that folder!"
= "Não foi possível inscrever-se nesta pasta!";
@@ -70,17 +60,14 @@
= "Você não pode criar uma lista em um catálogo público";
"Warning" = "Aviso";
"Can't contact server" = "Um erro ocorreu na conexão com o servidor. Por favor, tente mais tarde.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Você não está liberado para acessar este módulo ou este sistema. Por favor, contate seu administrador de sistemas.";
"You don't have the required privileges to perform the operation."
= "Você não tem os privilégios requeridos para realizar esta operação.";
"noEmailForDelegation" = "Você deve informar o endereço ao qual deseja delegar seu convite.";
"delegate is organizer" = "O delegado é o organizador. Por favor, especifique um delegado diferente.";
"delegate is a participant" = "O delegado já é um participante.";
"delegate is a group" = "O endereço especificado corresponde a um grupo. Você só pode delegar a uma pessoa única.";
"Snooze for " = "Uma pausa de";
"5 minutes" = "5 minutos";
"10 minutes" = "10 minutos";
@@ -89,26 +76,22 @@
"45 minutes" = "45 minutos";
"1 hour" = "1 hora";
"1 day" = "1 dia";
/* common buttons */
"OK" = "OK";
"Cancel" = "Cancelar";
"Yes" = "Sim";
"No" = "Não";
/* alarms */
"Reminder:" = "Lembrete:";
"Start:" = "Inicio:";
"Due Date:" = "Data:";
"Location:" = "Localização:";
"Reminder" = "Lembrete";
"Start" = "Inicio";
"Due Date" = "Data";
"Location" = "Localização";
/* mail labels */
"Important" = "Importante";
"Work" = "Trabalho";
"Personal" = "Pessoal";
"To Do" = "Tarefa";
"Later" = "Adiar";
"a2_Sunday" = "Dom";
"a2_Monday" = "Seg";
"a2_Tuesday" = "Ter";
@@ -116,3 +99,10 @@
"a2_Thursday" = "Qui";
"a2_Friday" = "Sex";
"a2_Saturday" = "Sab";
"Access Rights" = "Permissões de Acesso";
"Add User" = "Adicionar Usuário";
"Loading" = "Carregando";
"No such user." = "Usuário não existe.";
"You cannot (un)subscribe to a folder that you own!" = "Você não pode (des)inscrever uma pasta que você é dono!";
"SOGo" = "SOGo";
"Modules" = "Módulos";

View File

@@ -4,7 +4,6 @@
"Save" = "Desar";
"Close" = "Tancar";
"Edit User Rights" = "Modificar permisos";
"Home" = "Inici";
"Calendar" = "Calendari";
"Address Book" = "Llibreta d'adreces";
@@ -12,32 +11,24 @@
"Preferences" = "Preferències";
"Administration" = "Administració";
"Disconnect" = "Tancar sessió";
"Toggle Menu" = "Canviar menú";
"Right Administration" = "Administració de permisos";
"Log Console (dev.)" = "Registre d'activitat";
"User" = "Usuari";
"Vacation message is enabled" = "El missatge d'absència està activat";
"Help" = "Ajuda";
"noJavascriptError" = "SOGo requereix Javascript. Si us plau, activeu Javascript en el navegador.";
"noJavascriptRetry" = "Torneu-ho a intentar";
"Owner:" = "Propietari:";
"Owner" = "Propietari";
"Publish the Free/Busy information" = "Publicar informació de disponibilitat";
"Add..." = "Afegir...";
"Remove" = "Esborrar";
"Subscribe User" = "Subscriure usuari";
"Any Authenticated User" = "Qualsevol usuari autenticat";
"Public Access" = "Accés públic";
"Any user not listed above" = "Qualsevol usuari no llistat més amunt";
"Anybody accessing this resource from the public area" = "Qualsevol amb accés a aquest recurs des de l'àrea pública";
"Sorry, the user rights can not be configured for that object." = "Els permisos d'accés no es poden configurar per a aquest objecte.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Qualsevol usuari amb un compte en el sistema tindrà accés a la seua bústia de correu \"%{0}\". Està segur de voler donar accés a qualsevol usuari en el sistema? ";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +41,6 @@
= "Qualsevol usuari amb un compte en el sistema tindrà accés a la seua llibreta d'adreces \"%{0}\". Està segur de voler donar accés a qualsevol usuari en el sistema? ";
"Give Access" = "Donar accés";
"Keep Private" = "Mantenir en privat";
/* generic.js */
"Unable to subscribe to that folder!"
= "No us podeu subscriure a aquesta carpeta!";
@@ -70,17 +60,14 @@
= "No podeu crear una llista en una agenda compartida.";
"Warning" = "Atenció";
"Can't contact server" = "Ha ocorregut un error en contactar amb el servidor. Per favor, intenti-ho més tarda.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "No teniu permís per a accedir a aquest mòdul o sistema. Contacteu amb l'administrador.";
"You don't have the required privileges to perform the operation."
= "No disposeu dels permisos necessaris per a fer aquesta operació.";
"noEmailForDelegation" = "Especifiqueu l'adreça de correu a la qual voleu delegar la invitació.";
"delegate is organizer" = "El delegat és l'organitzador. Si us plau, especifiqueu un altre delegat.";
"delegate is a participant" = "El delegat ja és un participant.";
"delegate is a group" = "L'adreça especificada correspon a un grup. Només podeu delegar en una persona.";
"Snooze for " = "Posposar ";
"5 minutes" = "5 minuts";
"10 minutes" = "10 minuts";
@@ -88,27 +75,23 @@
"30 minutes" = "30 minuts";
"45 minutes" = "45 minuts";
"1 hour" = "1 hora";
"1 day" = "1 dia";
/* common buttons */
"OK" = "D'acord";
"Cancel" = "Cancel·lar";
"Yes" = "Sí";
"No" = "No";
/* alarms */
"Reminder:" = "Recordatori:";
"Start:" = "Inici:";
"Due Date:" = "Data límit:";
"Location:" = "Lloc:";
"Reminder" = "Recordatori";
"Start" = "Inici";
"Due Date" = "Data de venciment";
"Location" = "Lloc";
/* mail labels */
"Important" = "Important";
"Work" = "Feina";
"Personal" = "Personal";
"To Do" = "Per fer";
"Later" = "Més tard";
"a2_Sunday" = "dg";
"a2_Monday" = "dl";
"a2_Tuesday" = "dm";
@@ -116,3 +99,10 @@
"a2_Thursday" = "dj";
"a2_Friday" = "dv";
"a2_Saturday" = "ds";
"Access Rights" = "Drets d'accés";
"Add User" = "Afegir usuari";
"Loading" = "Carregant";
"No such user." = "No existeix aquest usuari";
"You cannot (un)subscribe to a folder that you own!" = "No es pot (des)subscriure a una carpeta pròpia!";
"SOGo" = "SOGo";
"Modules" = "Mòduls";

View File

@@ -4,7 +4,6 @@
"Save" = "儲存";
"Close" = "關閉";
"Edit User Rights" = "編輯使用者權限";
"Home" = "首頁";
"Calendar" = "行事曆";
"Address Book" = "通訊錄";
@@ -14,30 +13,21 @@
"Disconnect" = "離線";
"Right Administration" = "管理權限";
"Log Console (dev.)" = "登錄控制台(dev.)";
"User" = "使用者";
"Vacation message is enabled" = "啟用休假自動回覆訊息功能";
"Help" = "幫助";
"noJavascriptError" = "SOGo 需要執行Javascript指令。請確定您的瀏覽器偏好設定該選項是開啟的。";
"noJavascriptRetry" = "重試";
"Owner:" = "擁有者";
"Publish the Free/Busy information" = "公開空閒/忙錄的訊息";
"Add..." = "增加...";
"Remove" = "移除";
"Subscribe User" = "訂閱者";
"Any Authenticated User" = "任何授權使用者";
"Public Access" = "公開存取";
"Any user not listed above" = "列表以外的使用者";
"Anybody accessing this resource from the public area" = "由公開區域存取資源的任何人";
"Sorry, the user rights can not be configured for that object." = "對不起, 使用者的權限無法操作這個項目。";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "這個系統的所有帳號都能存取您的郵件信箱\"%{0}\"。您確定所有帳號都可以信任嗎?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +40,6 @@
= "任何人都可以存取您的通訊錄 \"%{0}\", 且不限定只有同系統的帳號。確定要在網路上公開通訊錄嗎?";
"Give Access" = "允許存取";
"Keep Private" = "保持隱私";
/* generic.js */
"Unable to subscribe to that folder!"
= "無法訂閱這個資料匣!";
@@ -70,17 +59,14 @@
= "您無法在共用的通訊錄新增列表。";
"Warning" = "警告";
"Can't contact server" = "連接伺服器失敗。請稍後再試。";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "您沒有權限存取這個模組或系統。請聯絡您的系統管理者。";
"You don't have the required privileges to perform the operation."
= "您沒有權限執行這項操作。";
"noEmailForDelegation" = "您必須指定代理人的電子郵件地址。";
"delegate is organizer" = "您指定的代理人是組織;請另外指定。";
"delegate is a participant" = "您指定的代理人己經是受邀者。";
"delegate is a group" = "您指定的電子郵件帳號為群組。您必須指定代理人的電子郵件帳號。";
"Snooze for " = "提醒";
"5 minutes" = "5分鐘";
"10 minutes" = "10分鐘";
@@ -89,26 +75,22 @@
"45 minutes" = "45分鐘";
"1 hour" = " 1小時";
"1 day" = "1天";
/* common buttons */
"OK" = "確定";
"Cancel" = "取消";
"Yes" = "是";
"No" = "不是";
/* alarms */
"Reminder:" = "提醒";
"Start:" = "開始:";
"Due Date:" = "到期日:";
"Location:" = "地點:";
"Start" = "開始";
"Due Date" = "到期日";
"Location" = "地點";
/* mail labels */
"Important" = "重要等級";
"Work" = "工作";
"Personal" = "私人";
"To Do" = "待辦";
"Later" = "稍後";
"a2_Sunday" = "星期日";
"a2_Monday" = "星期一";
"a2_Tuesday" = "星期二";

View File

@@ -4,7 +4,6 @@
"Save" = "Uložit";
"Close" = "Zavřít";
"Edit User Rights" = "Upravit uživatelská oprávnění";
"Home" = "Domů";
"Calendar" = "Kalendář";
"Address Book" = "Adresář";
@@ -14,30 +13,21 @@
"Disconnect" = "Odhlásit";
"Right Administration" = "Administrace";
"Log Console (dev.)" = "Konzole (dev.)";
"User" = "Uživatel";
"Vacation message is enabled" = "Odpověď v nepřítomnosti je zapnuta";
"Help" = "Nápověda";
"noJavascriptError" = "SOGo vyžaduje JavaScript. Ujistěte se prosím, že je povolen a aktivován v rámci nastavení Vašeho prohlížeče.";
"noJavascriptRetry" = "Znovu";
"Owner:" = "Vlastník:";
"Owner" = "Vlastník";
"Publish the Free/Busy information" = "Zveřejni informace o Volno/Není volno";
"Add..." = "Přidat...";
"Remove" = "Odebrat";
"Subscribe User" = "Odebírat";
"Any Authenticated User" = "Všichni ověření uživatelé";
"Public Access" = "Veřejný přístup";
"Any user not listed above" = "Ostatní uživatelé neuvedení výše";
"Anybody accessing this resource from the public area" = "Každý, kdo k tomuto zdroji přistupuje z veřejného prostoru";
"Sorry, the user rights can not be configured for that object." = "Omlouváme se, ale uživatelská práva pro tento objekt nemohou být nastavena.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Všichni uživatelé tohoto systému budou mít přístup k vaší složce \"%{0}\". Jste si jistí, že důvěřujete jim všem?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +40,6 @@
= "Potenciálně kdokoliv v Internetu bude mít přístup k vašemu adresáři \"%{0}\", i když není uživatelem tohoto systému. Jsou tyto informace vhodné pro veřejný Internet?";
"Give Access" = "Umožnit přístup";
"Keep Private" = "Ponechat soukromým";
/* generic.js */
"Unable to subscribe to that folder!"
= "Není možné se přihlásit k odebírání této složky!";
@@ -70,17 +59,14 @@
= "Nemůžete vytvořit seznam ve sdíleném adresáři.";
"Warning" = "Upozornění";
"Can't contact server" = "Při připojení k serveru došlo k chybě. Prosím zkuste to později.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Nemáte oprávnění pro přístup k tomuto modulu nebo systému. Kontaktujte prosím svého systémového administrátora.";
"You don't have the required privileges to perform the operation."
= "Nemáte dostatečná práva k provedení této operace.";
"noEmailForDelegation" = "Musíte určit adresu, na kterou chcete delegovat své pozvání.";
"delegate is organizer" = "Delegovaný je organizátor. Prosím určete jiného delegovaného.";
"delegate is a participant" = "Delegovaný je již účastníkem.";
"delegate is a group" = "Určená adresa odpovídá skupině. Delegovat můžete pouze na osobu.";
"Snooze for " = "Odložit o ";
"5 minutes" = "5 minut";
"10 minutes" = "10 minut";
@@ -89,26 +75,22 @@
"45 minutes" = "45 minut";
"1 hour" = "1 hodinu";
"1 day" = "1 den";
/* common buttons */
"OK" = "OK";
"Cancel" = "Storno";
"Yes" = "Ano";
"No" = "Ne";
/* alarms */
"Reminder:" = "Upomínka:";
"Start:" = "Začátek:";
"Due Date:" = "Do dne:";
"Location:" = "Místo:";
"Reminder" = "Upomínka";
"Start" = "Začátek";
"Due Date" = "Do dne";
"Location" = "Místo";
/* mail labels */
"Important" = "Důležitý";
"Work" = "Pracovní";
"Personal" = "Osobní";
"To Do" = "Třeba udělat";
"Later" = "Později";
"a2_Sunday" = "Ne";
"a2_Monday" = "Po";
"a2_Tuesday" = "Út";

View File

@@ -4,7 +4,6 @@
"Save" = "Gem";
"Close" = "Luk";
"Edit User Rights" = "Redigér brugerrettigheder";
"Home" = "Hjem";
"Calendar" = "Kalender";
"Address Book" = "Adressebog";
@@ -14,30 +13,21 @@
"Disconnect" = "Afbryd";
"Right Administration" = "Rettighedsadministration";
"Log Console (dev.)" = "Log konsol (dev.)";
"User" = "Bruger";
"Vacation message is enabled" = "Ferie meddelelse er aktiv";
"Help" = "Hjælp";
"noJavascriptError" = "Sogo kræver Javascript for at køre. Sørg for, at denne mulighed er tilgængelig og aktiveret i din browsers indstillinger.";
"noJavascriptRetry" = "Prøv igen";
"Owner:" = "Ejer:";
"Owner" = "Ejer";
"Publish the Free/Busy information" = "Offentliggør ledig/optaget information";
"Add..." = "Tilføj ...";
"Remove" = "Fjern";
"Subscribe User" = "Tilmeld bruger";
"Any Authenticated User" = "Enhver godkendt bruger";
"Public Access" = "Offentlig adgang";
"Any user not listed above" = "Enhver bruger, som ikke er nævnt ovenfor";
"Anybody accessing this resource from the public area" = "Enhver adgang til denne ressource fra det offentlige rum";
"Sorry, the user rights can not be configured for that object." = "Beklager, brugerrettighederne kan ikke konfigureres for dette emne";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Alle brugere med en konto på dette system vil få adgang til din mail \"%{0}\". Er du sikker på at du har tillid til dem alle?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +40,6 @@
= "Potentielt alle på internettet vil være i stand til at få adgang til din adressebog \"%{0}\", selv om de ikke har en konto på dette system. Er disse oplysninger egnet til det offentlige internet?";
"Give Access" = "Giv adgang";
"Keep Private" = "Forbliv privat";
/* generic.js */
"Unable to subscribe to that folder!"
= "Det er ikke muligt at abonnere på denne mappe!";
@@ -69,17 +58,14 @@
"You cannot create a list in a shared address book."
= "Du kan ikke oprette en liste i en delt adressebog.";
"Warning" = "Advarsel";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Du har ikke adgang til dette modul eller dette system. Kontakt venligst din systemadministrator.";
"You don't have the required privileges to perform the operation."
= "Du har ikke de nødvendige privilegier til at udføre handlingen.";
"noEmailForDelegation" = "Du skal angive den adresse, som du ønsker sende din invitation til.";
"delegate is organizer" = "Den inviterede er arrangør. Angiv en anden.";
"delegate is a participant" = "Den inviterede er allerede en deltager.";
"delegate is a group" = "Den angivne adresse svarer til en gruppe. Du kan kun invitere en enkelt person.";
"Snooze for " = "Udsæt i ";
"5 minutes" = "5 minutter";
"10 minutes" = "10 minutter";
@@ -87,28 +73,22 @@
"30 minutes" = "30 minutter";
"45 minutes" = "45 minutter";
"1 hour" = "1 time";
/* common buttons */
"OK" = "OK";
"Cancel" = "Annullér";
"Yes" = "Ja";
"No" = "Nej";
/* alarms */
"Reminder:" = "Påmindelse:";
"Start:" = "Start:";
"Due Date:" = "Forfaldsdato:";
"Location:" = "Sted:";
"Reminder" = "Påmindelse";
"Start" = "Start";
"Due Date" = "Forfaldsdato";
"Location" = "Sted";
/* Mail labels */
"Important" = "Vigtigt";
"Work" = "Arbejde";
"Work" = "Arbejde";
"Personal" = "Privat";
"To Do" = "To Do";
"Later" = "Senere";
"a2_Sunday" = "Sø";
"a2_Monday" = "Ma";
"a2_Tuesday" = "Ti";

View File

@@ -4,7 +4,6 @@
"Save" = "Opslaan";
"Close" = "Sluiten";
"Edit User Rights" = "Machtigingen aanpassen";
"Home" = "Start";
"Calendar" = "Agenda";
"Address Book" = "Adresboek";
@@ -14,30 +13,21 @@
"Disconnect" = "Uitloggen";
"Right Administration" = "Machtigingen beheren";
"Log Console (dev.)" = "Log Console (dev.)";
"User" = "Gebruiker";
"Vacation message is enabled" = "Afwezigheidsbericht is ingeschakeld";
"Help" = "Help";
"noJavascriptError" = "SOGo heeft Javascript nodig om te functioneren. U dient Javascript in uw browser in te schakelen.";
"noJavascriptRetry" = "Opnieuw proberen";
"Owner:" = "Eigenaar:";
"Owner" = "Eigenaar";
"Publish the Free/Busy information" = "Beschikbaarheidsinformatie publiceren";
"Add..." = "Toevoegen...";
"Remove" = "Verwijderen";
"Subscribe User" = "Gebruiker abonneren";
"Any Authenticated User" = "Elke geauthenticeerde gebruiker";
"Public Access" = "Publieke toegang";
"Any user not listed above" = "Elke niet hierboven vermelde gebruiker";
"Anybody accessing this resource from the public area" = "Iedereen die dit hulpmiddel uit het publieke gedeelte benadert";
"Sorry, the user rights can not be configured for that object." = "De machtigingen kunnen niet worden ingesteld voor dit object.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Iedereen met een gebruikersaccount voor dit systeem zal toegang hebben tot uw mailbox \"%{0}\". Weet u zeker dat u iedereen kan vertrouwen?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +40,6 @@
= "Iedereen op het Internet toegang kunnen krijgen tot uw adresboek \"%{0}\", zelfs als diegenen geen gebruikersaccount hebben voor dit systeem. Is de informatie geschikt voor het openbare Internet?";
"Give Access" = "Toegang geven";
"Keep Private" = "Privé houden";
/* generic.js */
"Unable to subscribe to that folder!"
= "Het is niet mogelijk om te abonneren op deze map.";
@@ -70,17 +59,14 @@
= "U kunt geen lijst maken in een gedeeld adresboek.";
"Warning" = "Waarschuwing";
"Can't contact server" = "Bij het verbinden met de server is een fout opgetreden, probeer het alter opnieuw.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "U heeft geen toegang tot deze module of dit systeem. Neem contact op met uw systeembeheerder.";
"You don't have the required privileges to perform the operation."
= "U heeft niet de benodigde rechten voor deze actie.";
"noEmailForDelegation" = "U moet het adres opgeven waarnaar u uw uitnodiging wilt delegeren.";
"delegate is organizer" = "De gedelegeerde is de organisator. Geef een andere gedelegeerde op.";
"delegate is a participant" = "De gedelegeerde is al een deelnemer.";
"delegate is a group" = "U heeft een groepsadres opgegeven. U kunt alleen delegeren aan een uniek persoon.";
"Snooze for " = "Sluimer nog ";
"5 minutes" = "5 minuten";
"10 minutes" = "10 minuten";
@@ -89,26 +75,22 @@
"45 minutes" = "45 minuten";
"1 hour" = "1 uur";
"1 day" = "1 dag";
/* common buttons */
"OK" = "OK";
"Cancel" = "Annuleren";
"Yes" = "Ja";
"No" = "Nee";
/* alarms */
"Reminder:" = "Alarm:";
"Start:" = "Begin:";
"Due Date:" = "Verloopdatum:";
"Location:" = "Plaats:";
"Reminder" = "Alarm";
"Start" = "Begin";
"Due Date" = "Verloopdatum";
"Location" = "Plaats";
/* mail labels */
"Important" = "Belangrijk";
"Work" = "Werk";
"Personal" = "Persoonlijk";
"To Do" = "Te doen";
"Later" = "Later";
"a2_Sunday" = "Zo";
"a2_Monday" = "Ma";
"a2_Tuesday" = "Di";

View File

@@ -4,7 +4,6 @@
"Save" = "Save";
"Close" = "Close";
"Edit User Rights" = "Edit User Rights";
"Home" = "Home";
"Calendar" = "Calendar";
"Address Book" = "Address Book";
@@ -12,32 +11,24 @@
"Preferences" = "Preferences";
"Administration" = "Administration";
"Disconnect" = "Disconnect";
"Toggle Menu" = "Toggle Menu";
"Right Administration" = "Right Administration";
"Log Console (dev.)" = "Log Console (dev.)";
"User" = "User";
"Vacation message is enabled" = "Vacation message is enabled";
"Help" = "Help";
"noJavascriptError" = "SOGo requires Javascript to run. Please make sure this option is available and activated within your browser preferences.";
"noJavascriptRetry" = "Retry";
"Owner:" = "Owner:";
"Owner" = "Owner";
"Publish the Free/Busy information" = "Publish the Free/Busy information";
"Add..." = "Add...";
"Remove" = "Remove";
"Subscribe User" = "Subscribe User";
"Any Authenticated User" = "Any Authenticated User";
"Public Access" = "Public Access";
"Any user not listed above" = "Any user not listed above";
"Anybody accessing this resource from the public area" = "Anybody accessing this resource from the public area";
"Sorry, the user rights can not be configured for that object." = "Sorry, the user rights can not be configured for that object.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +41,6 @@
= "Potentially anyone on the Internet will be able to access your address book \"%{0}\", even if they do not have an account on this system. Is this information suitable for the public Internet?";
"Give Access" = "Give Access";
"Keep Private" = "Keep Private";
/* generic.js */
"Unable to subscribe to that folder!"
= "Unable to subscribe to that folder!";
@@ -70,17 +60,14 @@
= "You cannot create a list in a shared address book.";
"Warning" = "Warning";
"Can't contact server" = "An error occurred while contacting the server. Please try again later.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "You are not allowed to access this module or this system. Please contact your system administrator.";
"You don't have the required privileges to perform the operation."
= "You don't have the required privileges to perform the operation.";
"noEmailForDelegation" = "You must specify the address to which you want to delegate your invitation.";
"delegate is organizer" = "The delegate is the organizer. Please specify a different delegate.";
"delegate is a participant" = "The delegate is already a participant.";
"delegate is a group" = "The specified address corresponds to a group. You can only delegate to a unique person.";
"Snooze for " = "Snooze for ";
"5 minutes" = "5 minutes";
"10 minutes" = "10 minutes";
@@ -89,26 +76,22 @@
"45 minutes" = "45 minutes";
"1 hour" = "1 hour";
"1 day" = "1 day";
/* common buttons */
"OK" = "OK";
"Cancel" = "Cancel";
"Yes" = "Yes";
"No" = "No";
/* alarms */
"Reminder:" = "Reminder:";
"Start:" = "Start:";
"Due Date:" = "Due Date:";
"Location:" = "Location:";
"Reminder" = "Reminder";
"Start" = "Start";
"Due Date" = "Due Date";
"Location" = "Location";
/* mail labels */
"Important" = "Important";
"Work" = "Work";
"Personal" = "Personal";
"To Do" = "To Do";
"Later" = "Later";
"a2_Sunday" = "Su";
"a2_Monday" = "Mo";
"a2_Tuesday" = "Tu";
@@ -116,3 +99,10 @@
"a2_Thursday" = "Th";
"a2_Friday" = "Fr";
"a2_Saturday" = "Sa";
"Access Rights" = "Access Rights";
"Add User" = "Add User";
"Loading" = "Loading";
"No such user." = "No such user.";
"You cannot (un)subscribe to a folder that you own!" = "You cannot (un)subscribe to a folder that you own!";
"SOGo" = "SOGo";
"Modules" = "Modules";

View File

@@ -4,7 +4,6 @@
"Save" = "Tallenna";
"Close" = "Sulje";
"Edit User Rights" = "Muokkaa käyttäjän oikeuksia";
"Home" = "Koti";
"Calendar" = "Kalenteri";
"Address Book" = "Osoitekirja";
@@ -12,32 +11,24 @@
"Preferences" = "Asetukset";
"Administration" = "Hallinto";
"Disconnect" = "Kirjaudu ulos";
"Toggle Menu" = "Vaihda valikkoa";
"Right Administration" = "Oikeuksien hallinta";
"Log Console (dev.)" = "Lokikonsoli (laite)";
"User" = "Käyttäjä";
"Vacation message is enabled" = "Lomaviesti on aktivoitu";
"Help" = "Apua";
"noJavascriptError" = "SOGo vaatii Javascriptin toimiakseen. Ole hyvä ja varmista että tämä toiminne on käytettävissä ja otettu käyttöön selaimesi asetuksissa.";
"noJavascriptRetry" = "Yritä uudelleen";
"Owner:" = "Omistaja:";
"Owner" = "Omistaja";
"Publish the Free/Busy information" = "Julkaise Vapaa/Varattu tieto";
"Add..." = "Lisää...";
"Remove" = "Poista";
"Subscribe User" = "Tilaa käyttäjä";
"Any Authenticated User" = "Kuka tahansa kirjautunut käyttäjä";
"Public Access" = "Julkinen pääsy";
"Any user not listed above" = "Kuka tahansa yllä listaamaton käyttäjä";
"Anybody accessing this resource from the public area" = "Kuka tahansa joka käyttää resurssia julkiselta alueelta";
"Sorry, the user rights can not be configured for that object." = "Pahoittelen, kohteen käyttäjäoikeudet eivät ole muokattavissa.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Kenellä tahansa käyttäjällä, jolla on oikeudet tähän järjestelmään, on pääsyoikeus sähköpostiisi \"%{0}\". Luotatko varmasti heistä jokaiseen?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +41,6 @@
= "Jokaisella Internet käyttäjällä on mahdollisuus käyttää osoitekirjaasi \"%{0}\" ilman tunnuksia tähän järjestelmään. Ovatko nämä tiedot sopivia julkiseen Internetiin? ";
"Give Access" = "Salli pääsy";
"Keep Private" = "Pidä yksityisenä";
/* generic.js */
"Unable to subscribe to that folder!"
= "Hakemistoon kirjautuminen ei onnistu!";
@@ -70,17 +60,14 @@
= "Et voi luoda listaa jaettuun osoitekirjaan.";
"Warning" = "Varoitus";
"Can't contact server" = "Virhe palvelinyhteydessä. Yritä myöhemmin uudelleen.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Sinulla ei ole pääsyoikeuksia tähän moduliin tai järjestelmään. Ole hyvä ja ota yhteyttä järjestelmänvalvojaan. ";
"You don't have the required privileges to perform the operation."
= "Sinulla ei ole vaadittavia oikeuksia toiminnon suorittamiseksi.";
"noEmailForDelegation" = "Sinun tarvitsee antaa osoite johon haluat lähettää valtuutuksen.";
"delegate is organizer" = "Valtuutettu on järjestäjä. Ole hyvä ja valitse toinen valtuutettu.";
"delegate is a participant" = "Valtuutettu on jo osallistuja.";
"delegate is a group" = "Annettu osoite on ryhmäosoite. Voit valtuuttaa vain yksittäisiä henkilöitä.";
"Snooze for " = "Torku";
"5 minutes" = "5 minuuttia";
"10 minutes" = "10 minuuttia";
@@ -89,26 +76,22 @@
"45 minutes" = "45 minuuttia";
"1 hour" = "1 tunti";
"1 day" = "1 päivä";
/* common buttons */
"OK" = "OK";
"Cancel" = "Peruuta";
"Yes" = "Kyllä";
"No" = "Ei";
/* alarms */
"Reminder:" = "Muistutus:";
"Start:" = "Alkaa:";
"Due Date:" = "Päättyy:";
"Location:" = "Sijainti:";
"Reminder" = "Muistutus";
"Start" = "Alkaa";
"Due Date" = "Päättyy";
"Location" = "Sijainti";
/* mail labels */
"Important" = "Tärkeä";
"Work" = "Työ";
"Personal" = "Henkilökohtainen";
"To Do" = "Tehtävä";
"Later" = "Myöhemmin";
"a2_Sunday" = "Su";
"a2_Monday" = "Ma";
"a2_Tuesday" = "Ti";
@@ -116,3 +99,10 @@
"a2_Thursday" = "To";
"a2_Friday" = "Pe";
"a2_Saturday" = "La";
"Access Rights" = "Pääsyoikeudet";
"Add User" = "Lisää käyttäjä";
"Loading" = "Lataa";
"No such user." = "Käyttäjää ei löydy.";
"You cannot (un)subscribe to a folder that you own!" = "Et voi (ulos)kirjautua itse omistamaasi hakemistoon!";
"SOGo" = "SOGo";
"Modules" = "Modulit";

View File

@@ -4,7 +4,6 @@
"Save" = "Enregistrer";
"Close" = "Fermer";
"Edit User Rights" = "Édition des droits";
"Home" = "Accueil";
"Calendar" = "Agenda";
"Address Book" = "Carnet d'adresses";
@@ -14,30 +13,21 @@
"Disconnect" = "Quitter";
"Right Administration" = "Partage";
"Log Console (dev.)" = "Journal (dév.)";
"User" = "Utilisateur";
"Vacation message is enabled" = "Votre message d'absence prolongée est activé";
"Help" = "Aide";
"noJavascriptError" = "SOGo requiert l'utilisation de Javascript. Veuillez vous assurer que cette option est disponible et activée dans votre fureteur.";
"noJavascriptRetry" = "Réessayer";
"Owner:" = "Propriétaire :";
"Owner" = "Propriétaire";
"Publish the Free/Busy information" = "Publier l'occupation du temps";
"Add..." = "Ajouter...";
"Remove" = "Enlever";
"Subscribe User" = "Abonner l'utilisateur";
"Any Authenticated User" = "Tout utilisateur identifié";
"Public Access" = "Accès public";
"Any user not listed above" = "Tout utilisateur du système non-listé ci-dessus";
"Anybody accessing this resource from the public area" = "Quiconque accède à cette ressource via l'espace public";
"Sorry, the user rights can not be configured for that object." = "Désolé, les droits d'accès ne peuvent être configurés pour cet objet.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Tout utilisateur ayant un compte sur ce système aura accès à votre boîte «%{0}». Voulez-vous vraiment faire confiance à tous ces utilisateurs?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +40,6 @@
= "N'importe quel internaute aura potentiellement accès à votre carnet d'adresses «%{0}», même s'il n'a pas de compte sur ce système. Est-ce que le contenu de votre calendrier est adapté à une telle visibilité?";
"Give Access" = "Appliquer les droits";
"Keep Private" = "Garder privé";
/* generic.js */
"Unable to subscribe to that folder!"
= "Impossible de s'abonner à ce dossier.";
@@ -70,17 +59,14 @@
= "Impossible de créer une liste dans un dossier partagé.";
"Warning" = "Avertissement";
"Can't contact server" = "Une erreur est survenue lors de la connexion au serveur. Veuillez réessayer plus tard.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Vous n'êtes pas autorisé à accéder à ce module ou ce système. Veuillez contacter votre administrateur système.";
"You don't have the required privileges to perform the operation."
= "Vous n'avez pas les privilèges requis pour effectuer cette opération.";
"noEmailForDelegation" = "Vous devez spécifier l'adresse de la personne à qui vous voulez déléguez votre invitation.";
"delegate is organizer" = "L'adresse spécifiée correspond à l'organisateur. Veuillez entrer un autre délégué.";
"delegate is a participant" = "Le délégué est déjà un participant.";
"delegate is a group" = "L'adresse spécifiée correspond à un groupe. Vous ne pouvez déléguer qu'à une personne.";
"Snooze for " = "Rappel dans ";
"5 minutes" = "5 minutes";
"10 minutes" = "10 minutes";
@@ -89,26 +75,22 @@
"45 minutes" = "45 minutes";
"1 hour" = "1 heure";
"1 day" = "1 jour";
/* common buttons */
"OK" = "OK";
"Cancel" = "Annuler";
"Yes" = "Oui";
"No" = "Non";
/* alarms */
"Reminder:" = "Rappel :";
"Start:" = "Début :";
"Due Date:" = "Échéance :";
"Location:" = "Lieu :";
"Reminder" = "Rappel";
"Start" = "Début";
"Due Date" = "Échéance";
"Location" = "Lieu";
/* mail labels */
"Important" = "Important";
"Work" = "Travail";
"Personal" = "Personnel";
"To Do" = "À faire";
"Later" = "Peut attendre";
"a2_Sunday" = "Di";
"a2_Monday" = "Lu";
"a2_Tuesday" = "Ma";

View File

@@ -4,7 +4,6 @@
"Save" = "Speichern";
"Close" = "Schließen";
"Edit User Rights" = "Benutzerrechte bearbeiten";
"Home" = "Start";
"Calendar" = "Kalender";
"Address Book" = "Adressbuch";
@@ -14,30 +13,21 @@
"Disconnect" = "Beenden";
"Right Administration" = "Rechteadministration";
"Log Console (dev.)" = "Journal (Entwickler)";
"User" = "Benutzer";
"Vacation message is enabled" = "Abwesenheitsmeldung ist eingeschaltet";
"Help" = "Hilfe";
"noJavascriptError" = "SOGo benötigt Javascript. Bitte aktivieren Sie Javascript in Ihrem Browser.";
"noJavascriptRetry" = "Erneut versuchen";
"Owner:" = "Besitzer:";
"Owner" = "Besitzer";
"Publish the Free/Busy information" = "Verfügbarkeitsinformationen veröffentlichen";
"Add..." = "Hinzufügen...";
"Remove" = "Löschen";
"Subscribe User" = "Für den Benutzer abonnieren";
"Any Authenticated User" = "Alle authentifizierten Benutzer";
"Public Access" = "Öffentlicher Zugang";
"Any user not listed above" = "Jeder andere Benutzer";
"Anybody accessing this resource from the public area" = "Jeder, der diese Ressource öffentlich erreicht";
"Sorry, the user rights can not be configured for that object." = "Leider können die Benutzerrechte für dieses Objekt nicht konfiguriert werden.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Jeder Benutzer mit einem Konto auf diesem System wird in der Lage sein auf Ihren E-Mail-Ordner \"%{0}\" zuzugreifen. Sind Sie sicher, dass Sie allen vertrauen?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +40,6 @@
= "Jeder im Internet wird in der Lage sein auf Ihr Adressbuch \"%{0}\" zuzugreifen, selbst wenn diese kein Konto auf diesem System haben. Ist diese Information passend für das öffentliche Internet?";
"Give Access" = "Allen Zugriff gewähren";
"Keep Private" = "Privat halten";
/* generic.js */
"Unable to subscribe to that folder!"
= "Es ist nicht möglich, diesen Ordner zu abonnieren!";
@@ -70,17 +59,14 @@
= "Sie können keine Liste in einem gemeinsamen Adressbuch erstellen.";
"Warning" = "Warnung";
"Can't contact server" = "Beim Verbindungsaufbau mit dem Server ist ein Fehler aufgetreten. Bitte versuchen Sie es später noch einmal.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Sie sind nicht berechtigt auf dieses Modul oder System zuzugreifen. Bitte kontaktieren Sie ihren Systemadministrator.";
"You don't have the required privileges to perform the operation."
= "Sie haben nicht die benötigten Berechtigungen für diesen Befehl.";
"noEmailForDelegation" = "Sie müssen eine Adresse angeben, an die Sie Ihre Einladung delegieren möchten.";
"delegate is organizer" = "Der Vertreter ist der Organisator. Bitte einen anderen Vertreter angeben.";
"delegate is a participant" = "Der Vertreter ist bereits ein Teilnehmer.";
"delegate is a group" = "Die angegebene Adresse gehört einer Gruppe. Es kann nur an eine einzelne Person delegiert werden.";
"Snooze for " = "Erneut erinnern nach ";
"5 minutes" = "5 Minuten";
"10 minutes" = "10 Minuten";
@@ -89,26 +75,22 @@
"45 minutes" = "45 Minuten";
"1 hour" = "1 Stunde";
"1 day" = "1 Tag";
/* common buttons */
"OK" = "OK";
"Cancel" = "Abbrechen";
"Yes" = "Ja";
"No" = "Nein";
/* alarms */
"Reminder:" = "Alarm:";
"Start:" = "Beginn:";
"Due Date:" = "Fällig:";
"Location:" = "Ort:";
"Reminder" = "Alarm";
"Start" = "Beginn";
"Due Date" = "Fällig";
"Location" = "Ort";
/* mail labels */
"Important" = "Wichtig";
"Work" = "Geschäftlich";
"Personal" = "Persönlich";
"To Do" = "To-Do";
"Later" = "Später";
"a2_Sunday" = "So";
"a2_Monday" = "Mo";
"a2_Tuesday" = "Di";

View File

@@ -4,7 +4,6 @@
"Save" = "Mentés";
"Close" = "Bezárás";
"Edit User Rights" = "Felhasználói jogosultságok";
"Home" = "Nyitólap";
"Calendar" = "Naptár";
"Address Book" = "Címjegyzék";
@@ -12,32 +11,24 @@
"Preferences" = "Beállítások";
"Administration" = "Rendszerfelügyelet";
"Disconnect" = "Kilépés";
"Toggle Menu" = "Menüt összecsuk";
"Right Administration" = "Jogosultság szerkesztése";
"Log Console (dev.)" = "Napló konzol (fejl.)";
"User" = "Felhasználó";
"Vacation message is enabled" = "Távollét üzenet bekapcsolva";
"Help" = "Súgó";
"noJavascriptError" = "A SOGo-nak Javascript futtatási környezetre van szüksége. Kérem győződjön meg, hogy böngészője támogatja-e, illetve be van-e kapcsolva ez az opció.";
"noJavascriptRetry" = "Újra";
"Owner:" = "Tulajdonos";
"Owner" = "Tulajdonos";
"Publish the Free/Busy information" = "Foglaltsági információ nyilvánossá tétele";
"Add..." = "Hozzáadás...";
"Remove" = "Törlés";
"Subscribe User" = "Felhasználót felirathat";
"Any Authenticated User" = "Bejelentkezett felhasználók";
"Public Access" = "Nyilvános hozzáférés";
"Any user not listed above" = "Az összes fel nem sorolt felhasználó";
"Anybody accessing this resource from the public area" = "Bárki, aki a publikus tartományból az erőforrást elérheti";
"Sorry, the user rights can not be configured for that object." = "Sajnálom, erre az objektumra nem állíthatók be felhasználói jogosultságok.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "A rendszer bármely felhasználója el tudja érni az alábbi email fiókot: \"%{0}\". Biztos, hogy megbízik mindegyikükben?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +41,6 @@
= "Lényegében bárki az interneten el tudja érni a(z) \"%{0}\" címjegyzékét, még akkor is, ha nem rendelkezik fiókkal a rendszerben. Biztos, hogy a címjegyzék publikus adatokat tartalmaz?";
"Give Access" = "Hozzáférés biztosítása";
"Keep Private" = "Magán célúnak megtart";
/* generic.js */
"Unable to subscribe to that folder!"
= "A mappára nem lehet feliratkozni!";
@@ -70,17 +60,14 @@
= "Nem hozható létre lista egy megosztott címjegyzékben.";
"Warning" = "Figyelmeztetés";
"Can't contact server" = "Hiba történt a kiszolgálóhoz kapcsolódás során. Kérem próbálja újra később.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Önnek nem engedélyezett a hozzáférés ehhez a modulhoz vagy rendszerhez. Kérem lépjen kapcsolatba a rendszergazdával.";
"You don't have the required privileges to perform the operation."
= "Önnek nincs jogosultsága ehhez a művelethez.";
"noEmailForDelegation" = "Meg kell adnia a címet, amelyre a meghívását átruházza.";
"delegate is organizer" = "Az átruházott személy nem lehet a szervező, kérem adjon meg mást.";
"delegate is a participant" = "Az átruházott személy nem lehet résztvevő.";
"delegate is a group" = "A megadott cím egy csoporté, átruházni csak egy személyre lehet.";
"Snooze for " = "Szundi:";
"5 minutes" = "5 perc";
"10 minutes" = "10 perc";
@@ -89,26 +76,22 @@
"45 minutes" = "45 perc";
"1 hour" = "1 óra";
"1 day" = "1 nap";
/* common buttons */
"OK" = "Ok";
"Cancel" = "Mégse";
"Yes" = "Igen";
"No" = "Nem";
/* alarms */
"Reminder:" = "Emlékeztető:";
"Start:" = "Kezdés:";
"Due Date:" = "Lejárat dátuma:";
"Location:" = "Hely:";
"Reminder" = "Emlékeztető";
"Start" = "Kezdés";
"Due Date" = "Lejárat dátuma";
"Location" = "Hely";
/* mail labels */
"Important" = "Fontos";
"Work" = "Hivatalos";
"Personal" = "Személyes";
"To Do" = "Teendő";
"Later" = "Később";
"a2_Sunday" = "Va";
"a2_Monday" = "Hé";
"a2_Tuesday" = "Ke";
@@ -116,3 +99,10 @@
"a2_Thursday" = "Cs";
"a2_Friday" = "Pé";
"a2_Saturday" = "Sz";
"Access Rights" = "Hozzáférési jogok";
"Add User" = "Felhasználó hozzáadása";
"Loading" = "Betöltés";
"No such user." = "Nincs ilyen felhasználó";
"You cannot (un)subscribe to a folder that you own!" = "Saját tulajdonban lévő mappá(ra/ról) nem lehet feliratkozni, vagy leiratkozni.";
"SOGo" = "SOGo";
"Modules" = "Modulok";

View File

@@ -4,7 +4,6 @@
"Save" = "Vista";
"Close" = "Loka";
"Edit User Rights" = "Sýsla með notendaréttindi";
"Home" = "Heima";
"Calendar" = "Dagatal";
"Address Book" = "Nafnaskrá";
@@ -14,29 +13,20 @@
"Disconnect" = "Aftengjast";
"Right Administration" = "Umsjón réttinda";
"Log Console (dev.)" = "Log Console (dev.)";
"User" = "Notandi";
"Help" = "Hjálp";
"noJavascriptError" = "SOGo þarf Javaskrift til að virka. Tryggja þarf að þessi möguleiki sé til og virkur í stillingum vafrans.";
"noJavascriptRetry" = "Reyna aftur";
"Owner:" = "Eigandi:";
"Owner" = "Eigandi";
"Publish the Free/Busy information" = "Gefa út upplýsingar um Laust/Upptekið";
"Add..." = "Bæta við...";
"Remove" = "Fjarlægja";
"Subscribe User" = "Setja notanda í áskrift";
"Any Authenticated User" = "Sérhvern innskráðan notanda";
"Public Access" = "Opinber aðgangur";
"Any user not listed above" = "Sérhvern notanda sem ekki er tilgreindur að ofan";
"Anybody accessing this resource from the public area" = "Hver sem er sem hefur almennan aðgang að þessu tilfangi";
"Sorry, the user rights can not be configured for that object." = "Því miður, ekki er hægt að breyta notendaréttindum fyrir það viðfang.";
/* generic.js */
"Unable to subscribe to that folder!"
= "Ekki var hægt að gerast áskrifandi að þeirri möppu.";
@@ -55,37 +45,30 @@
"You cannot create a list in a shared address book."
= "Ekki er hægt að búa til lista í samnýttri nafnaskrá.";
"Warning" = "Viðvörun";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Þú hefur ekki aðgang að þessari einingu á þessu kerfi. Til þess þarftu að hafa samband við kerfisstjóra Reiknistofnunar HÍ.";
"You don't have the required privileges to perform the operation."
= "Þú hefur ekki nauðsynleg réttindi til að framkvæma þessa aðgerð.";
"noEmailForDelegation" = "Skrá þarf netfangið hjá þeim sem á að bjóða að gerast fulltrúi.";
"delegate is organizer" = "Ekki gengur að fulltrúinn sé sá sami og skipuleggjandinn. Tilgreina þarf annan annan fulltrúa.";
"delegate is a participant" = "Fulltrúinn er nú þegar þáttakandi.";
"delegate is a group" = "Uppgefna netfangið er fyrir hóp, en aðeins er hægt að bjóða manneskjum að gerast fulltrúar.";
/* common buttons */
"OK" = "Í lagi";
"Cancel" = "Hætta við";
"Yes" = "Já";
"No" = "Nei";
/* alarms */
"Reminder:" = "Áminning:";
"Start:" = "Byrjun:";
"Due Date:" = "Lokadagur:";
"Location:" = "Staðsetning:";
"Reminder" = "Áminning";
"Start" = "Byrjun";
"Due Date" = "Lokadagur";
"Location" = "Staðsetning";
/* Mail labels */
"Important" = "Mikilvægt";
"Work" = "Vinna";
"Work" = "Vinna";
"Personal" = "Persónulegt";
"To Do" = "Verkþáttur";
"Later" = "Seinna";
"a2_Sunday" = "Su";
"a2_Monday" = "Má";
"a2_Tuesday" = "Þr";

View File

@@ -4,7 +4,6 @@
"Save" = "Salva";
"Close" = "Chiudi";
"Edit User Rights" = "Modifica permessi";
"Home" = "Home";
"Calendar" = "Calendario";
"Address Book" = "Rubrica";
@@ -14,29 +13,20 @@
"Disconnect" = "Disconnetti";
"Right Administration" = "Amministrazione permessi";
"Log Console (dev.)" = "Log Console (dev.)";
"User" = "Utente";
"Help" = "Aiuto";
"noJavascriptError" = "SOGo ha bisogno di Javascript per essere eseguito. Verifica che questo elemento sia presente ed attivato nelle preferenze del browser";
"noJavascriptRetry" = "Riprova";
"Owner:" = "Proprietario:";
"Owner" = "Proprietario";
"Publish the Free/Busy information" = "Pubblica le informazioni sullo stato (libero/impegnato)";
"Add..." = "Aggiungi...";
"Remove" = "Rimuovi";
"Subscribe User" = "Sottoscrivi utente";
"Any Authenticated User" = "Utenti autenticati";
"Public Access" = "Accesso pubblico";
"Any user not listed above" = "Ogni utente non indicato sopra";
"Anybody accessing this resource from the public area" = "Chiunque acceda a questa risorsa da un area pubblica";
"Sorry, the user rights can not be configured for that object." = "Non è possibile configurare i permessi per questo oggetto.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Ogni utente con un account di sistema potrà accedere alla tua mailbox \"%{0}\". Sei sicuro di fidarti?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -49,7 +39,6 @@
= "Potenzialmente chiunque su internet può accedere alla tua rubrica \"%{0}\", anche se non ha alcun account di sistema. Questa informazione può essere resa pubblica su internet?";
"Give Access" = "Dai Accesso";
"Keep Private" = "Mantieni Privato";
/* generic.js */
"Unable to subscribe to that folder!"
= "Impossibile sottoscrivere la cartella!";
@@ -68,17 +57,14 @@
"You cannot create a list in a shared address book."
= "Non puoi creare una lista in una rubrica in sola lettura.";
"Warning" = "Attenzione";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Non sei abilitato ad accedere a questo modulo. Contatta il tuo amministratore di sistema.";
"You don't have the required privileges to perform the operation."
= "Non disponi dei privilegi richiesti per eseguire questa operazione.";
"noEmailForDelegation" = "E' necessario specificare l'indirizzo a cui vuoi delegare il tuo invito.";
"delegate is organizer" = "Il delato è l'organizzatore. Prego specificare un altro delegato.";
"delegate is a participant" = "Il delegato è già un partecipante.";
"delegate is a group" = "L'indirizzo specifico corrisponde ad un gruppo, puoi delegare solo una persona.";
"Snooze for " = "Posponi per";
"5 minutes" = "5 minuti";
"10 minutes" = "10 minuti";
@@ -86,28 +72,22 @@
"30 minutes" = "30 minuti";
"45 minutes" = "45 minuti";
"1 hour" = "1 ora";
/* common buttons */
"OK" = "OK";
"Cancel" = "Annulla";
"Yes" = "Sì";
"No" = "No";
/* alarms */
"Reminder:" = "Promemoria:";
"Start:" = "Inizio:";
"Due Date:" = "Scadenza:";
"Location:" = "Luogo:";
"Reminder" = "Promemoria";
"Start" = "Inizio";
"Due Date" = "Scadenza";
"Location" = "Luogo";
/* Mail labels */
"Important" = "Importante";
"Work" = "Lavoro";
"Work" = "Lavoro";
"Personal" = "Personale";
"To Do" = "Da fare";
"Later" = "Posponi";
"a2_Sunday" = "Do";
"a2_Monday" = "Lu";
"a2_Tuesday" = "Ma";

View File

@@ -4,40 +4,31 @@
"Save" = "Сними";
"Close" = "Затвори";
"Edit User Rights" = "Уреди ги корисничките права";
"Home" = "Дома";
"Calendar" = "Календар";
"Address Book" = "Адресна книга";
"Mail" = "Електронска пошта";
"Preferences" = "Подесувања";
"Administration" = "Администрација";
"Disconnect" = "Откачи";
"Disconnect" = "Излези";
"Toggle Menu" = "Промени го менито";
"Right Administration" = "Администрација на права";
"Log Console (dev.)" = "Конзола на логови (развој)";
"User" = "Корисник";
"Vacation message is enabled" = "Пораката за отсатност е активна";
"Help" = "Помош";
"noJavascriptError" = "SOGo бара Javascript за да работи. Бидете сигурни дека оваа поција е овозможена и активирана во вашиот прелистувач.";
"noJavascriptRetry" = "Обиди се повторно";
"Owner:" = "Сопственик:";
"Owner" = "Сопственик";
"Publish the Free/Busy information" = "Публикувај ја информацијата за слободното/зафатено време";
"Add..." = "Додади...";
"Remove" = "Отстрани";
"Subscribe User" = "Запиши го корисникот";
"Any Authenticated User" = "Било кој автентициран корисник";
"Public Access" = "јавен достап";
"Any user not listed above" = "Било кој корисник кој не долу излистан";
"Anybody accessing this resource from the public area" = "Било кој може да го пристапи ресурсот од јавната мрежа";
"Sorry, the user rights can not be configured for that object." = "Жалам, корисничките привилегии не можат да се конфигурираат за овој објект.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Секој корисник со сметка на овој систем ќе биде во можност да пристапува на вашето сандаче за пошта \"%{0}\". Дали сте сигурни дека можете да им верувате на сите?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +41,6 @@
= "Потенцијално било кој на интеернет ќе може да го достапи адресарот \"%{0}\", дури и ако нема сметка на системот. Дали оваа информација е погодна за јавен интернет?";
"Give Access" = "Дади пристап";
"Keep Private" = "Сочувај го приватно";
/* generic.js */
"Unable to subscribe to that folder!"
= "Не е можно да се претплатите на оваа папка!";
@@ -70,17 +60,14 @@
= "Не можете да креирате листа во споделен адресар.";
"Warning" = "Предупредување";
"Can't contact server" = "Настана грешка при контактирање на серверот. Подоцна обидете се повторно.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Вам не вие дозволено да го пристапите овој модул или овој систем. Контактирајте го вашиот систем администратор.";
"You don't have the required privileges to perform the operation."
= "Ги немате потребните привилегии за да ја извршите операцијата.";
"noEmailForDelegation" = "Морате да ја специфицирате адресата на која сакате да ги делегирате вашите покани.";
"delegate is organizer" = "Делегираниот е и организатор. Ве молиме одберете друг делегат.";
"delegate is a participant" = "Овој делегат е веќе учесник.";
"delegate is a group" = "Адресата не коренспондира со групата. Можете да делегирате на единствена личност.";
"Snooze for " = "Паузирај го за";
"5 minutes" = "5 минути";
"10 minutes" = "10 минути";
@@ -89,26 +76,22 @@
"45 minutes" = "45 минути";
"1 hour" = "1 час";
"1 day" = "1 ден";
/* common buttons */
"OK" = "Во ред";
"Cancel" = "Откажи";
"Yes" = "Да";
"No" = "Не";
/* alarms */
"Reminder:" = "Потсетник:";
"Start:" = "Почеток:";
"Due Date:" = "Краен датум:";
"Location:" = "Локација:";
"Reminder" = "Потсетник";
"Start" = "Почеток";
"Due Date" = "Краен датум";
"Location" = "Локација";
/* mail labels */
"Important" = "Важно";
"Work" = "Работа";
"Personal" = "Лично";
"To Do" = "Да се направи";
"Later" = "Подоцна";
"a2_Sunday" = "Нед";
"a2_Monday" = "Пон";
"a2_Tuesday" = "Вто";
@@ -116,3 +99,10 @@
"a2_Thursday" = "Чет";
"a2_Friday" = "Пет";
"a2_Saturday" = "Саб";
"Access Rights" = "Пристапни права";
"Add User" = "Додади корисник";
"Loading" = "Вчитувам";
"No such user." = "Нема таков корисник.";
"You cannot (un)subscribe to a folder that you own!" = "Не е можно да се запишете/отпишете од папката која е ваша!";
"SOGo" = "SOGo";
"Modules" = "Модули";

View File

@@ -4,7 +4,6 @@
"Save" = "Lagre";
"Close" = "Lukk";
"Edit User Rights" = "Endre brukerrettigheter";
"Home" = "Hjem";
"Calendar" = "Kalender";
"Address Book" = "Adressebok";
@@ -14,30 +13,21 @@
"Disconnect" = "Koble fra";
"Right Administration" = "Rettighetsinnstillinger";
"Log Console (dev.)" = "Loggkonsoll";
"User" = "Bruker";
"Vacation message is enabled" = "Fraværsmelding er aktivert";
"Help" = "Hjelp";
"noJavascriptError" = "SOGo krever Javascript for å kjøre. Vennligst kontroller at Javascript er tilgjengelig og aktivert i din nettlesers innstillinger.";
"noJavascriptRetry" = "Prøv på ny";
"Owner:" = "Eier:";
"Owner" = "Eier";
"Publish the Free/Busy information" = "Publiser ledig/opptatt-informasjon";
"Add..." = "Legg til...";
"Remove" = "Fjern";
"Subscribe User" = "Abonnér bruker";
"Any Authenticated User" = "Hvilken som helst autentiserte bruker";
"Public Access" = "Offentlig tilgang";
"Any user not listed above" = "Hvilken som heldst bruker som ikke er listet ovenfor";
"Anybody accessing this resource from the public area" = "Hvem som heldst som bruker denne ressursen fra det offentlige området";
"Sorry, the user rights can not be configured for that object." = "Beklager, brukerrettighetene kan ikke konfigureres for det objektet.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Hvilken som heldst bruker med konto på dette systemet vil kunne se mailboksen \"%{0}\". Er du sikker på at du stoler på alle sammen?";
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
@@ -50,7 +40,6 @@
= "Potensielt kan hvem som helst på Internett vil kunne se adresseboken \"%{0}\", selv om de ikke har konto på systemet. Er denne informasjonen passende for det åpne Internett?";
"Give Access" = "Gi tilgang";
"Keep Private" = "Behold privat";
/* generic.js */
"Unable to subscribe to that folder!"
= "Kan ikke abonnere på den mappen!";
@@ -70,17 +59,14 @@
= "Du kan ikke opprette en liste i en delt adressebok.";
"Warning" = "Advarsel";
"Can't contact server" = "Det oppstod en feil ved opprettelse av kontakt med serveren. Vennligst prøv igjen senere.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Du har ikke rettigheter til denne modulen eller dette systemet. Kontakt din systemadministrator.";
"You don't have the required privileges to perform the operation."
= "Du har ikke rettigheter til å utføre operasjonen.";
"noEmailForDelegation" = "Du må angi adressen du vil delegerer din invitasjon til.";
"delegate is organizer" = "Delegaten er arrangør. Vennligst angi en annen delegat.";
"delegate is a participant" = "Delegaten er allerede en deltaker.";
"delegate is a group" = "Den angitte adressen er en gruppe. Du kan kun delegere til en unik person.";
"Snooze for " = "Slumre i";
"5 minutes" = "5 minutter";
"10 minutes" = "10 minutter";
@@ -89,26 +75,22 @@
"45 minutes" = "45 minutter";
"1 hour" = "1 time";
"1 day" = "1 dag";
/* common buttons */
"OK" = "OK";
"Cancel" = "Avbryt";
"Yes" = "Ja";
"No" = "Nei";
/* alarms */
"Reminder:" = "Påminnelse:";
"Start:" = "Start:";
"Due Date:" = "Forfallsdato:";
"Location:" = "Sted:";
"Reminder" = "Påminnelse";
"Start" = "Start";
"Due Date" = "Forfallsdato";
"Location" = "Sted";
/* mail labels */
"Important" = "Viktig";
"Work" = "Arbeid";
"Personal" = "Personlig";
"To Do" = "Gjøremål";
"Later" = "Senere";
"a2_Sunday" = "Sø";
"a2_Monday" = "Ma";
"a2_Tuesday" = "Ti";

View File

@@ -4,7 +4,6 @@
"Save" = "Lagre";
"Close" = "Lukk";
"Edit User Rights" = "Endre brukerrettigheter";
"Home" = "Hjem";
"Calendar" = "Kalender";
"Address Book" = "Adressebok";
@@ -14,29 +13,20 @@
"Disconnect" = "Logg ut";
"Right Administration" = "Rettighetsinnstillinger";
"Log Console (dev.)" = "Loggkonsoll";
"User" = "Bruker";
"Help" = "Hjelp";
"noJavascriptError" = "SOGo krever at Javascript kan kjøres. Kontroll at Javascript kan kjøres og at det er aktivert i din nettlesers innstillinger.";
"noJavascriptRetry" = "Forsøk igjen";
"Owner:" = "Eier:";
"Owner" = "Eier";
"Publish the Free/Busy information" = "Publiser ledig/opptatt informasjon";
"Add..." = "Legg til...";
"Remove" = "Fjern";
"Subscribe User" = "Abonner bruker";
"Any Authenticated User" = "Enhver autentisert bruker";
"Public Access" = "Offentlig tilgang";
"Any user not listed above" = "Enhver bruker som ikke er listet ovenfor";
"Anybody accessing this resource from the public area" = "Enhver aksesserer denne ressursen fra det offentlige området";
"Sorry, the user rights can not be configured for that object." = "Beklager, brukerrettighetene kan ikke konfigureres for objektet.";
/* generic.js */
"Unable to subscribe to that folder!"
= "Du kan ikke abonnere på den mappen!";
@@ -55,37 +45,30 @@
"You cannot create a list in a shared address book."
= "Du kan ikke opprette en liste i en delt adressebok.";
"Warning" = "Advarsel";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Du har ikke rettigheter til modulen eller systemet. Kontakt din systemadministrator.";
"You don't have the required privileges to perform the operation."
= "Du har ikke rettigheter til å utføre operasjonen.";
"noEmailForDelegation" = "Du må angi adressen til personen du delegerer din invitasjon.";
"delegate is organizer" = "Personen du delegerer til er arrangør. Vennligst deleger til en annen person.";
"delegate is a participant" = "The delegate is already a participant.";
"delegate is a group" = "The specified address corresponds to a group. You can only delegate to a unique person.";
/* common buttons */
"OK" = "OK";
"Cancel" = "Avbryt";
"Yes" = "Ja";
"No" = "Nei";
/* alarms */
"Reminder:" = "Påminnelse:";
"Start:" = "Start:";
"Due Date:" = "Forfallsdato:";
"Location:" = "Lokasjon:";
"Reminder" = "Påminnelse";
"Start" = "Start";
"Due Date" = "Forfallsdato";
"Location" = "Lokasjon";
/* Mail labels */
"Important" = "Viktig";
"Work" = "Arbeid";
"Work" = "Arbeid";
"Personal" = "Personlig";
"To Do" = "Gjøremål";
"Later" = "Senere";
"a2_Sunday" = "Sø";
"a2_Monday" = "Ma";
"a2_Tuesday" = "Ti";

Some files were not shown because too many files have changed in this diff Show More