Merge to 2.4.0

This commit is contained in:
Francis Lachapelle
2021-03-31 10:20:18 -04:00
302 changed files with 13949 additions and 4902 deletions

27
.versionrc.js Normal file
View File

@@ -0,0 +1,27 @@
const tracker = {
filename: "Version",
updater: require("./Scripts/standard-version-updater.js")
}
module.exports = {
tagPrefix: "SOGo-",
issueUrlFormat: "https://www.sogo.nu/bugs/view.php?id={{id}}",
compareUrlFormat: "{{host}}/{{owner}}/{{repository}}/compare/{{previousTag}}...{{currentTag}}",
types: [
{type: "feat", section: "Features"},
{type: "refactor", section: "Enhancements"},
{type: "perf", section: "Enhancements"},
{type: "i18n", section: "Localization"},
{type: "fix", section: "Bug Fixes"},
{type: "chore", hidden: true},
{type: "docs", hidden: true},
{type: "style", hidden: true},
{type: "test", hidden: true}
],
skip: {
commit: true,
tag: true
},
packageFiles: [tracker],
bumpFiles: [tracker]
}

2323
CHANGELOG.md Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1642,10 +1642,16 @@ are:
|D |SOGoSMTPServer
|The DNS name or IP address of the SMTP server used when
_SOGoMailingMechanism_ is set to `smtp`.
Supported formats are: `smtp://domain:port`, `smtps://domain`,
`domain:port`, `smtp://domain:port/?tls=YES`. Using the option
`tls=YES` will enforce using STARTTLS smtp connections. Thus,
`smtp://localhost:587/?tls=YES` would use the default MUA port
on localhost with STARTTLS enforced.
|D |SOGoSMTPAuthenticationType
|Activate SMTP authentication and specifies which type is in use.
Current, only `PLAIN` is supported and other values will be ignored.
Current, only `PLAIN` is supported and other values will cause
the authentication to fail.
|S |WOSendMail
|The path of the sendmail binary.
@@ -2214,7 +2220,7 @@ like this:
SOGoTrashFolderName = Trash;
SOGoJunkFolderName = Junk;
SOGoMailingMechanism = smtp;
SOGoSMTPServer = 127.0.0.1;
SOGoSMTPServer = "smtp://127.0.0.1";
SOGoUserSources = (
{
type = ldap;

View File

@@ -1,7 +1,7 @@
<!-- TODO have the build system take care of this -->
<releaseinfo>Version 2.3.23 - October 2017</releaseinfo>
<subtitle>for version 2.3.23</subtitle>
<date>2017-10-18</date>
<releaseinfo>Version 2.4.0 - March 2021</releaseinfo>
<subtitle>for version 2.4.0</subtitle>
<date>2021-03-31</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.23
:release_version: 2.4.0
// vim: set syntax=asciidoc tabstop=2 shiftwidth=2 expandtab:

2307
NEWS

File diff suppressed because it is too large Load Diff

View File

@@ -76,7 +76,7 @@
},
{
columnName = c_mail;
sqlType = "VARCHAR2(255)";
sqlType = "CLOB";
allowsNull = YES;
},
{
@@ -104,5 +104,10 @@
sqlType = "VARCHAR2(10)";
allowsNull = NO;
},
{
columnName = c_hascertificate;
sqlType = "INTEGER";
allowsNull = YES;
},
);
}

View File

@@ -76,7 +76,7 @@
},
{
columnName = c_mail;
sqlType = "VARCHAR(255)";
sqlType = "TEXT";
allowsNull = YES;
},
{
@@ -104,5 +104,10 @@
sqlType = "VARCHAR(10)";
allowsNull = NO;
},
{
columnName = c_hascertificate;
sqlType = "INT4";
allowsNull = YES;
},
);
}

View File

@@ -199,7 +199,7 @@ static inline id GetProperty(NSDictionary *_set, NSString *_name) {
if ([val respondsToSelector:@selector(descriptionWithCalendarFormat:)]) {
static NSTimeZone *gmt = nil;
if (gmt == nil) gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
if (gmt == nil) gmt = [NSTimeZone timeZoneForSecondsFromGMT: 0];
[val setTimeZone:gmt];
val = [val descriptionWithCalendarFormat:calfmt];
}

View File

@@ -32,7 +32,7 @@
static NSTimeZone *gmt = nil;
static inline void _setupGMT(void) {
if (gmt == nil)
gmt = [[NSTimeZone timeZoneWithAbbreviation:@"GMT"] retain];
gmt = [[NSTimeZone timeZoneForSecondsFromGMT: 0] retain];
}
@implementation NSCalendarDate(iCalRepresentation)

View File

@@ -340,7 +340,7 @@
second = 0;
}
utc = [NSTimeZone timeZoneWithAbbreviation: @"GMT"];
utc = [NSTimeZone timeZoneForSecondsFromGMT: 0];
date = [NSCalendarDate dateWithYear: year month: month
day: day hour: hour minute: minute
second: second

View File

@@ -107,7 +107,7 @@
NSCalendarDate *utcStart, *utcEnd;
NSTimeZone *uTZ;
uTZ = [NSTimeZone timeZoneWithAbbreviation: @"GMT"];
uTZ = [NSTimeZone timeZoneForSecondsFromGMT: 0];
utcStart = [start copy];
utcEnd = [end copy];
[utcStart setTimeZone: uTZ];

View File

@@ -26,7 +26,7 @@
//SOGoTrashFolderName = Trash;
//SOGoIMAPServer = localhost;
//SOGoSieveServer = sieve://127.0.0.1:4190;
//SOGoSMTPServer = 127.0.0.1;
//SOGoSMTPServer = "smtp://127.0.0.1";
//SOGoMailDomain = acme.com;
//SOGoMailingMechanism = smtp;
//SOGoForceExternalLoginWithEmail = NO;

View File

@@ -0,0 +1,82 @@
#!/bin/bash
set -e
# This script only works with MySQL - it does:
#
# 1- updates c_defaults and c_settings to longtext in the sogo_user_profile table
# to avoid truncation of data at 64k
# 2- increase the c_mail column to text to contact quick table
# 3- add the c_hascertificate column to contact quick table
defaultusername=$USER
defaulthostname=127.0.0.1
defaultdatabase=sogo
indextable=$(sogo-tool dump-defaults -f /etc/sogo/sogo.conf | awk -F\" '/ OCSFolderInfoURL =/ {print $2}' | awk -F/ '{print $NF}')
if [ -z "$indextable" ]; then
echo "Couldn't fetch OCSFolderInfoURL value, aborting" >&2
exit 1
fi
read -p "Username ($defaultusername): " username
read -p "Hostname ($defaulthostname): " hostname
read -p "Database ($defaultdatabase): " database
if [ -z "$username" ]
then
username=$defaultusername
fi
if [ -z "$hostname" ]
then
hostname=$defaulthostname
fi
if [ -z "$database" ]
then
database=$defaultdatabase
fi
sqlscript=""
function growUserProfile() {
oldIFS="$IFS"
IFS=" "
part="`echo -e \"ALTER TABLE sogo_user_profile MODIFY c_defaults LONGTEXT;\\n\"`";
sqlscript="$sqlscript$part"
part="`echo -e \"ALTER TABLE sogo_user_profile MODIFY c_settings LONGTEXT;\\n\"`";
sqlscript="$sqlscript$part"
IFS="$oldIFS"
}
function growMailInContactsQuick() {
oldIFS="$IFS"
IFS=" "
part="`echo -e \"ALTER TABLE $table MODIFY c_mail text;\\n\"`";
sqlscript="$sqlscript$part"
IFS="$oldIFS"
}
function addCertificateInContactsQuick() {
oldIFS="$IFS"
IFS=" "
part="`echo -e \"ALTER TABLE $table ADD c_hascertificate INT4 DEFAULT 0;\\n\"`";
sqlscript="$sqlscript$part"
IFS="$oldIFS"
}
echo "This script will ask for the database password twice" >&2
echo "Converting c_content from TEXT to LONGTEXT in the sogo_user_profile table" >&2
growUserProfile
echo "Converting c_mail from VARCHAR(255) to TEXT and add c_hascertificate in Contacts quick tables" >&2
tables=`mysql -p -s -u $username -h $hostname $database -e "select SUBSTRING_INDEX(c_quick_location, '/', -1) from $indextable where c_path3 = 'Contacts';"`
for table in $tables;
do
growMailInContactsQuick
addCertificateInContactsQuick
done
echo "$sqlscript" | mysql -p -f -s -u $username -h $hostname $database

View File

@@ -0,0 +1,64 @@
#!/bin/bash
set -e
# This script only works with PostgreSQL - it does:
#
# 1- increase the c_mail column to text to contact quick table
# 2- add the c_hascertificate column to contact quick table
defaultusername=$USER
defaulthostname=localhost
defaultdatabase=sogo
indextable=$(sogo-tool dump-defaults -f /etc/sogo/sogo.conf | awk -F\" '/ OCSFolderInfoURL =/ {print $2}' | awk -F/ '{print $NF}')
if [ -z "$indextable" ]; then
echo "Couldn't fetch OCSFolderInfoURL value, aborting" >&2
exit 1
fi
read -p "Username ($defaultusername): " username
read -p "Hostname ($defaulthostname): " hostname
read -p "Database ($defaultdatabase): " database
if [ -z "$username" ]
then
username=$defaultusername
fi
if [ -z "$hostname" ]
then
hostname=$defaulthostname
fi
if [ -z "$database" ]
then
database=$defaultdatabase
fi
sqlscript=""
function growMailInContactsQuick() {
oldIFS="$IFS"
IFS=" "
part="`echo -e \"ALTER TABLE $table ALTER COLUMN c_mail TYPE TEXT;\\n\"`";
sqlscript="$sqlscript$part"
IFS="$oldIFS"
}
function addCertificateInContactsQuick() {
oldIFS="$IFS"
IFS=" "
part="`echo -e \"ALTER TABLE $table ADD c_hascertificate INT4 DEFAULT 0;\\n\"`";
sqlscript="$sqlscript$part"
IFS="$oldIFS"
}
echo "This script will ask for the database password twice" >&2
echo "Converting c_mail from VARCHAR(255) to TEXT and add c_hascertificate in Contacts quick tables" >&2
tables=`psql -t -U $username -h $hostname $database -c "select split_part(c_quick_location, '/', 5) from $indextable where c_path3 = 'Contacts';"`
for table in $tables;
do
growMailInContactsQuick
addCertificateInContactsQuick
done
echo "$sqlscript" | psql -q -e -U $username -h $hostname $database

View File

@@ -0,0 +1,10 @@
module.exports.readVersion = function (contents) {
console.debug('readVersion = ' + contents.match(/([0-9]+)/mg).join('.'));
return contents.match(/([0-9]+)/mg).join('.');
};
module.exports.writeVersion = function (contents, version) {
console.debug('writeVersion = ' + version);
const versions = version.split('.');
return "MAJOR_VERSION=" + versions[0] + "\nMINOR_VERSION=" + versions[1] + "\nSUBMINOR_VERSION=" + versions[2];
};

View File

@@ -7,6 +7,7 @@ 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";
@@ -14,25 +15,33 @@ 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";
"time_label" = "Horário";
"to_label" = "para";
"due_label" = "Data de Vencimento:";
"location_label" = "Localização";
"summary_label" = "Resumo:";
"comment_label" = "Comentário:";
"organizer_label" = "Organizador";
"attendee_label" = "Participante";
/* 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";
@@ -42,6 +51,7 @@ 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}\"";
@@ -55,6 +65,15 @@ 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.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Lembrete: \"%{Summary}\" - %{StartDate}";
/* 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}.";
/* Participation role */
"Your participation is required to this event" = "Sua participação é necessária para este evento";
"Your participation is optional to this event" = "Sua participação é opcional para este evento";
"Your participation is not required to this event" = "Sua participação não é necessária para este evento";

View File

@@ -7,32 +7,41 @@ 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" = "S'han afegit els següents participants";
"The following attendees(s) were notified" = "S'han notificat els següents assistents ";
"The following attendees(s) were added" = "S'han afegit els següents assistents";
"The following attendees(s) were removed" = "Heu suprimit els assistents següents";
/* IMIP messages */
"calendar_label" = "Calendari";
"startDate_label" = "Inici";
"endDate_label" = "Final";
"time_label" = "Hora";
"to_label" = "a";
"due_label" = "Data de venciment";
"location_label" = "Lloc";
"summary_label" = "Resum:";
"comment_label" = "Comentari:";
"organizer_label" = "Organitzador";
"attendee_label" = "Assistent";
/* 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";
@@ -42,6 +51,7 @@ 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}\"";
@@ -55,6 +65,15 @@ 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.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Recordatori: \"%{Summary}\" - %{StartDate}";
/* 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}.";
/* Participation role */
"Your participation is required to this event" = "Es requereix la teva participació en aquest esdeveniment";
"Your participation is optional to this event" = "La teva participació és opcional en aquest esdeveniment";
"Your participation is not required to this event" = "No es requereix la teva participació en aquest esdeveniment";

View File

@@ -7,6 +7,7 @@ vevent_class2 = "(機密事件)";
vtodo_class0 = "(公開任務)";
vtodo_class1 = "(私人任務)";
vtodo_class2 = "(機密任務)";
/* Receipts */
"The event \"%{Summary}\" was created" = "事件 \"%{Summary}\" 已建立";
"The event \"%{Summary}\" was deleted" = "事件\"%{Summary}\" 已刪除";
@@ -14,38 +15,47 @@ 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" = "開始";
"endDate_label" = "結束";
"time_label" = "時間";
"to_label" = "到";
"due_label" = "截止日期:";
"location_label" = "地點";
"summary_label" = "事件主題:";
"comment_label" = "備註:";
"organizer_label" = "發起人";
"attendee_label" = "出席人員";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "邀請事件: \"%{Summary}\"";
"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}";
"%{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}\"";
"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}";
= "%{Organizer} %{SentByText} 己取消事件: %{Summary}。\n\n起始時間: %{StartDate} %{StartTime}\n結束時間: %{EndDate} %{EndTime}\n備註說明: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= " 安排於%{OldStartDate} 的事件 \"%{Summary}\" 已變更";
= "安排於%{OldStartDate} 的事件 \"%{Summary}\" 已變更";
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "安排於 %{OldStartDate} %{OldStartTime} 的事件 \"%{Summary}\" 已變更";
= "安排於 %{OldStartDate} %{OldStartTime} 的事件 \"%{Summary}\" 已變更";
"The following parameters have changed in the \"%{Summary}\" meeting:"
= "已變更會議 \"%{Summary}\" 下列參數:";
= "已變更會議 \"%{Summary}\" 中的下列參數:";
"Please accept or decline those changes."
= "請接受或絶這些變。";
= "請接受或絶這些變。";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "接受邀請: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "拒絶邀請: \"%{Summary}\"";
"Delegated invitation: \"%{Summary}\"" = "\"委派出席: \"%{Summary}\"";
"Accepted invitation: \"%{Summary}\"" = "接受邀請: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "拒絶邀請: \"%{Summary}\"";
"Delegated invitation: \"%{Summary}\"" = "已委派他人出席: \"%{Summary}\"";
"Not yet decided on invitation: \"%{Summary}\"" = "未處理的邀請: \"%{Summary}\"";
"%{Attendee} %{SentByText}has accepted your event invitation."
= "\"%{Attendee} %{SentByText}已接受了您的邀請。";
@@ -55,6 +65,15 @@ vtodo_class2 = "(機密任務)";
= "\"%{Attendee} %{SentByText}已將您的邀請委任給%{Delegate}。";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}還沒有決定是否接受您的邀請。";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "事件提醒:\"%{Summary}\" - %{StartDate}";
/* 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}。";
"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}。";
/* Participation role */
"Your participation is required to this event" = "您的參與對於此事件而言是必須的。";
"Your participation is optional to this event" = "您可選擇是否參與此事件。";
"Your participation is not required to this event" = "您無須參與此事件。";

View File

@@ -1,4 +1,4 @@
"Inviting the following persons is prohibited:" = "Pozivanje slijedeće osobe je zabranjeno:";
"Inviting the following persons is prohibited:" = "Pozivanje sljedećih osoba je zabranjeno:";
"Personal Calendar" = "Osobni kalendar";
vevent_class0 = "(Javni događaj)";
vevent_class1 = "(Osobni događaj)";
@@ -8,15 +8,15 @@ vtodo_class0 = "(Javni zadatak)";
vtodo_class1 = "(Osobni zadatak)";
vtodo_class2 = "(Povjerljivi zadatak)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Događaj \"% {Summary}\" je stvoren";
"The event \"%{Summary}\" was deleted" = "Događaj \"% {Summary}\" je izbrisan";
"The event \"%{Summary}\" was updated" = "Događaj \"% {Summary}\" je ažuriran";
"The event \"%{Summary}\" was created" = "Događaj % {Summary} je stvoren";
"The event \"%{Summary}\" was deleted" = "Događaj % {Summary} je izbrisan";
"The event \"%{Summary}\" was updated" = "Događaj % {Summary} je ažuriran";
"The following attendees(s) were notified" = "Sljedeći sudionici su obaviješteni";
"The following attendees(s) were added" = "Sljedeći sudionici su dodani";
"The following attendees(s) were removed" = "Sljedeći sudionici su uklonjeni";
/* IMIP messages */
"calendar_label" = "Kalendar";
"startDate_label" = "Start";
"startDate_label" = "Početak";
"endDate_label" = "Kraj";
"time_label" = "Vrijeme";
"to_label" = "za";
@@ -27,38 +27,38 @@ vtodo_class2 = "(Povjerljivi zadatak)";
"organizer_label" = "Organizator";
"attendee_label" = "Sudionik";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Pozivnica: \"%{Summary}\"";
"Event Invitation: \"%{Summary}\"" = "Pozivnica: %{Summary}";
"(sent by %{SentBy}) " = "(poslao %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}vas je pozvao na %{Summary}.\n\nPočetak: %{StartDate}\nKraj: %{EndDate}\nOpis: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText}vas je pozvao na %{Summary}.\n\nPočetak: %{StartDate} at %{StartTime}\nKraj: %{EndDate} at %{EndTime}\nOpis: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText} vas poziva na %{Summary}.\n\nPočetak: %{StartDate}\nKraj: %{EndDate}\nOpis: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} vas poziva na %{Summary}.\n\nPočetak: %{StartDate} at %{StartTime}\nKraj: %{EndDate} at %{EndTime}\nOpis: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Događaj otkazan: \"%{Summary}\"";
"Event Cancelled: \"%{Summary}\"" = "Ovaj događaj je otkazan: %{Summary}”.";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}je otkazao ovaj događaj: %{Summary}.\n\nPočetak: %{StartDate}\nKraj: %{EndDate}\nOpis: %{Description}";
= "%{Organizer} %{SentByText} je otkazao ovaj događaj: %{Summary}.\n\nPočetak: %{StartDate}\nKraj: %{EndDate}\nOpis: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}je otkazao ovaj događaj: %{Summary}.\nPočetak: %{StartDate} at %{StartTime}\nKraj: %{EndDate} at %{EndTime}\nOpis: %{Description}";
= "%{Organizer} %{SentByText} je otkazao ovaj događaj: %{Summary}.\nPočetak: %{StartDate} at %{StartTime}\nKraj: %{EndDate} at %{EndTime}\nOpis: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Sastanak \"%{Summary}\" za %{OldStartDate} je promjenjen";
= "Sastanak %{Summary} za %{OldStartDate} je promjenjen";
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "Sastanak \"%{Summary}\" iz %{OldStartDate} u %{OldStartTime} je promjenjen";
= "Sastanak %{Summary} iz %{OldStartDate} u %{OldStartTime} je promjenjen";
"The following parameters have changed in the \"%{Summary}\" meeting:"
= "Sljedeći parametri su se promijenili u \"%{Summary}\" sastanak:";
= "Sljedeći parametri su se promijenili u sastanku „%{Summary}”:";
"Please accept or decline those changes."
= "Molim prihvatite ili odbacite promjene.";
= "Molim prihvatite ili odbacite ove promjene.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Prihvaćen poziv:: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Odbijen poziv:: \"%{Summary}\"";
"Delegated invitation: \"%{Summary}\"" = "Proslijediti poziv: \"%{Summary}\"";
"Not yet decided on invitation: \"%{Summary}\"" = "Još nije odlučeno o pozivu: \"%{Summary}\"";
"Accepted invitation: \"%{Summary}\"" = "Prihvaćen poziv:%{Summary}";
"Declined invitation: \"%{Summary}\"" = "Odbijen poziv:%{Summary}";
"Delegated invitation: \"%{Summary}\"" = "Prenesen poziv: %{Summary}";
"Not yet decided on invitation: \"%{Summary}\"" = "Još nije odlučeno o pozivu: %{Summary}";
"%{Attendee} %{SentByText}has accepted your event invitation."
= "%{Attendee} %{SentByText}je prihvatio vaš poziv za događaj.";
= "%{Attendee} %{SentByText} prihvaća vaš poziv na događaj.";
"%{Attendee} %{SentByText}has declined your event invitation."
= "%{Attendee} %{SentByText}je odbio pozivnicu za događaj.";
= "%{Attendee} %{SentByText} odbija vaš poziv na događaj.";
"%{Attendee} %{SentByText}has delegated the invitation to %{Delegate}."
= "%{Attendee} %{SentByText}je proslijedio poziv za %{Delegate}.";
= "%{Attendee} %{SentByText} je prenio poziv na %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}još nije odlučio o vašem pozivu za događaj.";
= "%{Attendee} %{SentByText} još nije odlučio o vašem pozivu na događaj.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Ne mogu pristupiti: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Maksimalni broj istovremenih rezervacija (%{NumberOfSimultaneousBookings}) dosegnut je za \"%{Cn} %{SystemEmail}\". Problematični događaj je \"%{EventTitle}\" i počinje %{StartDate}.";
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Ne mogu pristupiti: %{Cn} %{SystemEmail}";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Maksimalni broj istovremenih rezervacija (%{NumberOfSimultaneousBookings}) dosegnut je za %{Cn} %{SystemEmail}. Problematični događaj je \"%{EventTitle}\" i počinje %{StartDate}.";

View File

@@ -7,6 +7,7 @@ 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";
@@ -14,6 +15,7 @@ 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";
@@ -26,17 +28,20 @@ vtodo_class2 = "(Skrytý úkol)";
"comment_label" = "Komentář:";
"organizer_label" = "Organizátor";
"attendee_label" = "Účastník";
/* 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";
@@ -46,6 +51,7 @@ 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}\"";
@@ -59,6 +65,15 @@ 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.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Připomenutí: \"%{Summary}\" - %{StartDate}";
/* 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}.";
/* Participation role */
"Your participation is required to this event" = "Vaše účast je vyžadována";
"Your participation is optional to this event" = "Vaše účast je dobrovolná";
"Your participation is not required to this event" = "Vaše účast není vyžadována";

View File

@@ -7,6 +7,7 @@ vevent_class2 = "(Vertrouwelijke afspraak)";
vtodo_class0 = "(Publieke taak)";
vtodo_class1 = "(Privétaak)";
vtodo_class2 = "(Vertrouwelijke taak)";
/* Receipts */
"The event \"%{Summary}\" was created" = "De afspraak \"%{Summary}\" is aangemaakt";
"The event \"%{Summary}\" was deleted" = "De afspraak \"%{Summary}\" is verwijderd";
@@ -14,25 +15,33 @@ 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";
"endDate_label" = "Einde";
"time_label" = "Tijd";
"to_label" = "Tot";
"due_label" = "Vervaldag:";
"location_label" = "Locatie";
"summary_label" = "Samenvatting:";
"comment_label" = "Commentaar:";
"organizer_label" = "Organisator";
"attendee_label" = "Deelnemer";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Uitnodiging voor afspraak: \"%{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}\"" = "Afspraak geannuleerd: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}heeft deze afspraak 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 afspraak: %{Summary} geannuleerd.\n\nStart: %{StartDate} om %{StartTime}\nEinde: %{EndDate} om %{EndTime}\nOmschrijving: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "De afspraak \"%{Summary}\" op %{OldStartDate} is veranderd.";
@@ -42,6 +51,7 @@ 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 geaccepteerd: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Uitnodiging afgewezen: \"%{Summary}\"";
@@ -55,6 +65,15 @@ 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.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Herinnering: \"%{Summary}\" - %{StartDate}";
/* 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 afspraak is \"%{EventTitle}\" en begint op %{StartDate}.";
/* Participation role */
"Your participation is required to this event" = "Uw deelname is vereist voor dit evenement";
"Your participation is optional to this event" = "Uw deelname is optioneel voor dit evenement";
"Your participation is not required to this event" = "Uw deelname is niet vereist voor dit evenement";

View File

@@ -7,6 +7,7 @@ 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";
@@ -14,6 +15,7 @@ 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";
@@ -26,17 +28,20 @@ vtodo_class2 = "(Confidential task)";
"comment_label" = "Comment";
"organizer_label" = "Organizer";
"attendee_label" = "Attendee";
/* 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";
@@ -46,6 +51,7 @@ 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}\"";
@@ -59,6 +65,15 @@ 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.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Reminder: \"%{Summary}\" - %{StartDate}";
/* 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}.";
/* Participation role */
"Your participation is required to this event" = "Your participation is required to this event";
"Your participation is optional to this event" = "Your participation is optional to this event";
"Your participation is not required to this event" = "Your participation is not required to this event";

View File

@@ -7,6 +7,7 @@ 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é";
@@ -14,6 +15,7 @@ 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 ";
@@ -26,17 +28,20 @@ vtodo_class2 = "(Tâche confidentielle)";
"comment_label" = "Description :";
"organizer_label" = "Organisateur";
"attendee_label" = "Participants ";
/* 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";
@@ -46,6 +51,7 @@ 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}»";
@@ -59,6 +65,15 @@ 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.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Rappel: \"%{Summary}\" - %{StartDate}";
/* 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}.";
/* Participation role */
"Your participation is required to this event" = "Votre participation est requise pour cet événement";
"Your participation is optional to this event" = "Votre participation est optionnelle pour cet événement";
"Your participation is not required to this event" = "Votre participation n'est pas requise pour cet événement";

View File

@@ -7,6 +7,7 @@ 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";
@@ -14,6 +15,7 @@ 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";
@@ -26,17 +28,20 @@ vtodo_class2 = "(Vertrauliche Aufgabe)";
"comment_label" = "Kommentar:";
"organizer_label" = "Organisator";
"attendee_label" = "Teilnehmer";
/* 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";
@@ -46,6 +51,7 @@ 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}\"";
@@ -59,6 +65,15 @@ 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.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Erinnerung: \"%{Summary}\" - %{StartDate}";
/* 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}.";
/* Participation role */
"Your participation is required to this event" = "Ihre Teilnahme an diesem Termin ist notwendig";
"Your participation is optional to this event" = "Ihre Teilnahme an diesem Termin ist freiwillig";
"Your participation is not required to this event" = "Ihre Teilnahme an diesem Termin ist nicht notwendig";

View File

@@ -7,6 +7,7 @@ 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";
@@ -14,6 +15,7 @@ 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";
@@ -26,17 +28,20 @@ vtodo_class2 = "(Bizalmas feladat)";
"comment_label" = "Megjegyzés:";
"organizer_label" = "Szervező";
"attendee_label" = "Résztvevő";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Meghívás eseményre: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(%{SentBy} által elküldve) ";
"%{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.";
@@ -46,6 +51,7 @@ 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}\"";
@@ -59,6 +65,15 @@ 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.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Emlékeztető: \"%{Summary}\" - %{StartDate}";
/* 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}.";
/* Participation role */
"Your participation is required to this event" = "Részvétele szükséges ezen az eseményen";
"Your participation is optional to this event" = "Részvétele tetszőleges ezen az eseményen";
"Your participation is not required to this event" = "Részvétele nem szükséges ezen az eseményen";

View File

@@ -18,10 +18,14 @@ vtodo_class2 = "(Attività confidenziale)";
"calendar_label" = "Calendario";
"startDate_label" = "Inizio";
"endDate_label" = "Fine";
"time_label" = "Ora";
"to_label" = "a";
"due_label" = "Scadenza:";
"location_label" = "Luogo";
"summary_label" = "Summario:";
"comment_label" = "Commento:";
"summary_label" = "Riepilogo";
"comment_label" = "Commento";
"organizer_label" = "Organizzatore";
"attendee_label" = "Partecipante";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Invito Evento: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(inviato da %{SentBy}) ";
@@ -56,5 +60,5 @@ vtodo_class2 = "(Attività confidenziale)";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}non ha ancora deciso riguardo il tuo invito all'evento.";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Non è possibile accedere alla risorsa: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Il massimo numero di prenotazioni simultanee (%{NumberOfSimultaneousBookings}) è stato raggiunto per la risorsa \"%{Cn} %{SystemEmail}\". L'evento di collissione è \"%{EventTitle}\", ed inizia il %{StartDate}.";
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Impossibile accedere alla risorsa: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Numero massimo di prenotazioni simultanee (%{NumberOfSimultaneousBookings}) raggiunto per la risorsa \"%{Cn} %{SystemEmail}\". L'evento in conflitto è \"%{EventTitle}\", ed inizia il %{StartDate}.";

View File

@@ -7,6 +7,7 @@ vevent_class2 = "(Konfidenciāls notikums)";
vtodo_class0 = "(Publisks uzdevums)";
vtodo_class1 = "(Privāts uzdevums)";
vtodo_class2 = "(Konfidenciāls uzdevums)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Notikums \"%{Summary}\" ir izveidots";
"The event \"%{Summary}\" was deleted" = "Notikums \"%{Summary}\" ir dzēsts";
@@ -14,6 +15,7 @@ vtodo_class2 = "(Konfidenciāls uzdevums)";
"The following attendees(s) were notified" = "Paziņojums nosūtīts šiem dalībniekiem";
"The following attendees(s) were added" = "Pievienoti šādi dalībnieki";
"The following attendees(s) were removed" = "Dzēsti šādi dalībnieki";
/* IMIP messages */
"calendar_label" = "Kalendārs";
"startDate_label" = "Sākums";
@@ -26,17 +28,20 @@ vtodo_class2 = "(Konfidenciāls uzdevums)";
"comment_label" = "Komentārs";
"organizer_label" = "Organizētājs";
"attendee_label" = "Dalībnieks";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Pasākuma ielūgums: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(sūtīja %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText} ielūdza Jūs uz %{Summary}.\n\nSākums: %{StartDate}\nBeigas: %{EndDate}\nApraksts: %{Description}";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} ielūdza Jūs uz %{Summary}.\n\nSākums: %{StartDate} %{StartTime}\nBeigas: %{EndDate} %{EndTime}\nApraksts: %{Description}";
/* Deletion */
"Event Cancelled: \"%{Summary}\"" = "Atcelts pasākums: \"%{Summary}\"";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} atcēla notikumu: %{Summary}.\n\nSākums: %{StartDate}\nBeigas: %{EndDate}\nApraksts: %{Description}";
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
= "%{Organizer} %{SentByText} atcēla notikumu: %{Summary}.\n\nSākums: %{StartDate} %{StartTime}\nBeigas: %{EndDate} %{EndTime}\nApraksts: %{Description}";
/* Update */
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
= "Tikšanās \"%{Summary}\" %{OldStartDate} ir mainīta";
@@ -46,6 +51,7 @@ vtodo_class2 = "(Konfidenciāls uzdevums)";
= "Plānotā tikšanās \"%{Summary}\" ir mainīta, ir veiktas šādas izmaiņas:";
"Please accept or decline those changes."
= "Lūdzu pieņemt vai noraidīt šīs izmaiņas.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Akceptēt uzaicinājumu: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Noraidīt uzaicinājumu: \"%{Summary}\"";
@@ -59,6 +65,15 @@ vtodo_class2 = "(Konfidenciāls uzdevums)";
= "%{Attendee} %{SentByText} deleģējusi uzaicinājumu %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText} vēl nav izlemts par jūsu uzaicinājumu piedalīties pasākumā.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Atgādinājums: \"%{Summary}\" - %{StartDate}";
/* Resources */
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Nevar piekļūt resursiem: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Maksimālais skaits vienlaicīgām rezervācijām (%{NumberOfSimultaneousBookings}) sasniedza resursu \"%{Cn} %{SystemEmail}\". Strīdu notikums ir \"%{EventTitle}\", un sākas %{StartDate}.";
/* Participation role */
"Your participation is required to this event" = "Jūsu līdzdalība ir nepieciešama pasākumā";
"Your participation is optional to this event" = "Jūsu dalība šajā pasākumā nav obligāta";
"Your participation is not required to this event" = "Jūsu piedalīšanās pasākumā nav nepieciešama";

View File

@@ -45,7 +45,7 @@
if ((self = [super init]))
{
address = nil;
timeZone = [NSTimeZone timeZoneWithAbbreviation: @"GMT"];
timeZone = [NSTimeZone timeZoneForSecondsFromGMT: 0];
[timeZone retain];
startDate = nil;
endDate = nil;

View File

@@ -7,6 +7,7 @@ vevent_class2 = "(Доверлив настан)";
vtodo_class0 = "(Јавна задача)";
vtodo_class1 = "(Приватна задача)";
vtodo_class2 = "(Доверлива задача)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Настанот \"%{Summary}\" беше креиран";
"The event \"%{Summary}\" was deleted" = "Настанот \"%{Summary}\" беше избришан";
@@ -14,6 +15,7 @@ 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" = "Почеток:";
@@ -26,17 +28,20 @@ vtodo_class2 = "(Доверлива задача)";
"comment_label" = "Коментар:";
"organizer_label" = "Организатор";
"attendee_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"
= "Состанокот \"%{Summary}\" за %{OldStartDate} е променет";
@@ -46,6 +51,7 @@ vtodo_class2 = "(Доверлива задача)";
= "Следните параметри се променија во \"%{Summary}\" состанок:";
"Please accept or decline those changes."
= "Прифатете ги ли отфрлете ги измените.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Прифатена покана: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Одбиена покана: \"%{Summary}\"";
@@ -59,6 +65,15 @@ vtodo_class2 = "(Доверлива задача)";
= "%{Attendee} %{SentByText}ја делегираше поканата на %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}уште нема одлучено по вашата покана.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Потсетник: \"%{Summary}\" - %{StartDate}";
/* 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}.";
/* Participation role */
"Your participation is required to this event" = "Вашето учество на овој настан е потребно";
"Your participation is optional to this event" = "Вашето учество на овој настан е опционално";
"Your participation is not required to this event" = "Вашето учество на овој настан не е потребно";

View File

@@ -7,6 +7,7 @@ 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}\"";
@@ -14,6 +15,7 @@ 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";
@@ -26,17 +28,20 @@ vtodo_class2 = "(Zadanie poufne)";
"comment_label" = "Komentarz";
"organizer_label" = "Organizator";
"attendee_label" = "Uczestnik";
/* 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ę";
@@ -46,6 +51,7 @@ 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}\"";
@@ -59,6 +65,15 @@ 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.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Przypomnienie: \"%{Summary}\" - %{StartDate}";
/* 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}.";
/* Participation role */
"Your participation is required to this event" = "Twoje uczestnictwo w tym wydarzeniu jest wymagane";
"Your participation is optional to this event" = "Twoje uczestnictwo w tym wydarzeniu jest opcjonalne";
"Your participation is not required to this event" = "Twoje uczestnictwo w tym wydarzeniu nie jest wymagane";

View File

@@ -18,10 +18,14 @@ vtodo_class2 = "(Tarefa Confidencial)";
"calendar_label" = "Calendário:";
"startDate_label" = "Início:";
"endDate_label" = "Fim:";
"time_label" = "Hora";
"to_label" = "para";
"due_label" = "Data de Vencimento:";
"location_label" = "Local:";
"summary_label" = "Resumo:";
"comment_label" = "Comentário:";
"organizer_label" = "Organizador";
"attendee_label" = "Participante";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Convite do Evento: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(enviado por %{SentBy}) ";

View File

@@ -7,6 +7,7 @@ vevent_class2 = "(Конфиденциальное событие)";
vtodo_class0 = "(Публичная задача)";
vtodo_class1 = "(Личная задача)";
vtodo_class2 = "(Конфиденциальная задача)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Было создано мероприятие \"%{Summary}\"";
"The event \"%{Summary}\" was deleted" = "Мероприятие \"%{Summary}\" было удалено";
@@ -14,6 +15,7 @@ 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" = "Начало";
@@ -26,17 +28,20 @@ vtodo_class2 = "(Конфиденциальная задача)";
"comment_label" = "Комментарий";
"organizer_label" = "Организатор";
"attendee_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} была изменена";
@@ -46,6 +51,7 @@ vtodo_class2 = "(Конфиденциальная задача)";
= "в мероприятии \"%{Summary}\" изменены следующие параметры:";
"Please accept or decline those changes."
= "Пожалуйста подтвердите или отмените эти изменения.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Принятое приглашение: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Отклонённое приглашение: \"%{Summary}\"";
@@ -59,6 +65,15 @@ vtodo_class2 = "(Конфиденциальная задача)";
= "%{Attendee} %{SentByText}делегировал приглашение %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}не определился с желанием участвовать в запланированном мероприятии.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Напоминание: \"%{Summary}\" - %{StartDate}";
/* 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}.";
/* Participation role */
"Your participation is required to this event" = "Ваше участие необходимо для этого события";
"Your participation is optional to this event" = "Ваше участие не является обязательным для этого события";
"Your participation is not required to this event" = "Ваше участие не требуется для этого события";

View File

@@ -1566,8 +1566,7 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir
if (records)
{
if (r)
records = [self _fixupRecords: records];
records = [self _fixupRecords: records];
ma = [NSMutableArray arrayWithArray: records];
}
else

View File

@@ -659,7 +659,8 @@ static SoSecurityManager *sm = nil;
for (count = 0; count < max; count++)
{
folder = [folders objectAtIndex: count];
if ([folder folderPropertyValueInCategory: @"WebCalendars"])
if ([folder folderPropertyValueInCategory: @"WebCalendars"
forUser: [SOGoUser userWithLogin: owner]])
{
name = [folder nameInContainer];
if (isWebRequest)

View File

@@ -1,4 +1,4 @@
"Inviting the following persons is prohibited:" = "Забрањено да је позовете следеће особе:";
"Inviting the following persons is prohibited:" = "Забрањено је позивање следеће особе:";
"Personal Calendar" = "Лични календар";
vevent_class0 = "(Јавни догађај)";
vevent_class1 = "(Приватни догађај)";
@@ -7,6 +7,7 @@ vevent_class2 = "(Поверљиви догађај)";
vtodo_class0 = "(Јавни задатак)";
vtodo_class1 = "(Приватни задатак)";
vtodo_class2 = "(Поверљиви задатак)";
/* Receipts */
"The event \"%{Summary}\" was created" = "Догађај \"%{Summary}\" је креиран";
"The event \"%{Summary}\" was deleted" = "Догађај \"%{Summary}\" је обрисан";
@@ -14,25 +15,33 @@ 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" = "Почетак";
"endDate_label" = "Завршетак";
"time_label" = "Време";
"to_label" = "за";
"due_label" = "Рок";
"location_label" = "Локација";
"summary_label" = "Резиме";
"comment_label" = "Коментар";
"organizer_label" = "Организатор";
"attendee_label" = "Полазници";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Позивница за догађај: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(послао %{SentBy}) ";
"(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"
= "Заказани састанак \"%{Summary}\" %{OldStartDate} је измењен";
@@ -42,6 +51,7 @@ vtodo_class2 = "(Поверљиви задатак)";
= "Следећи параметри су имењени за састанак \"%{Summary}\":";
"Please accept or decline those changes."
= "Молимо да прихватите или откажете ове измене.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Прихваћена позивница: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Одбијена позивница: \"%{Summary}\"";
@@ -55,6 +65,15 @@ vtodo_class2 = "(Поверљиви задатак)";
= "%{Attendee} %{SentByText}је делегирао позивницу %{Delegate}.";
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
= "%{Attendee} %{SentByText}није још одлучио у вези са вашом позивницом за догађај.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Подсетник: \"%{Summary}\" - %{StartDate}";
/* 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}.";
/* Participation role */
"Your participation is required to this event" = "Ваше присуство је захтевано на овом догађају";
"Your participation is optional to this event" = "Ваше присуство је оционо на овом догађају";
"Your participation is not required to this event" = "Ваше присуство није захтевано на овом догађају";

View File

@@ -7,45 +7,51 @@ 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á";
"The event \"%{Summary}\" was updated" = "Udalosť \"%{Summary}\" bola aktualizovaná";
"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ý";
"The event \"%{Summary}\" was deleted" = "Udalosť \"%{Summary}\" bola vymazaná.";
"The event \"%{Summary}\" was updated" = "Udalosť \"%{Summary}\" bola aktualizovaná.";
"The following attendees(s) were notified" = "Nasledujúci účastník/ci bol/i upozornený/í.";
"The following attendees(s) were added" = "Nasledujúci účastník/ci bol/i pridaný/í.";
"The following attendees(s) were removed" = "Nasledujúci účastník/ci bol/i odstránený/í.";
/* IMIP messages */
"calendar_label" = "Kalendár";
"startDate_label" = "Začiatok";
"endDate_label" = "Koniec";
"time_label" = "Čas";
"to_label" = "pre";
"due_label" = "Platnosť:";
"due_label" = "Termín dokončenia:";
"location_label" = "Miesto";
"summary_label" = "Zhrnutie:";
"comment_label" = "Komentár:";
"organizer_label" = "Organizátor";
"attendee_label" = "Účastník";
/* 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}";
"%{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}Vás pozval na %{Summary}. Začiatok: %{StartDate} o %{StartTime} Koniec: %{EndDate} o %{EndTime} Podrobnosti: %{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é";
= "Stretnutie \"%{Summary}\" z %{OldStartDate} bolo zmenené.";
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "Stretnutie \"%{Summary}\" z %{OldStartDate} o %{OldStartTime} bola zmenená";
= "Stretnutie \"%{Summary}\" z %{OldStartDate} o %{OldStartTime} bola zmenené.";
"The following parameters have changed in the \"%{Summary}\" meeting:"
= "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}\"";
@@ -59,6 +65,15 @@ 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.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Pripomienka: \"%{Summary}\" - %{StartDate}";
/* 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}.";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Bol dosiahnutý maximálny počet súčasných rezervácií (%{NumberOfSimultaneousBookings}) pre zdroj \"%{Cn} %{SystemEmail}\". Konfliktná udalosť je \"%{EventTitle}\", začínajúca %{StartDate}.";
/* Participation role */
"Your participation is required to this event" = "Na tejto udalosti je potrebná vaša účasť";
"Your participation is optional to this event" = "Vaša účasť je pre túto udalosť dobrovoľná";
"Your participation is not required to this event" = "Vaša účasť sa na tejto udalosti nevyžaduje";

View File

@@ -7,6 +7,7 @@ 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";
@@ -14,25 +15,33 @@ 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";
"endDate_label" = "Konec";
"time_label" = "Čas";
"to_label" = "za";
"due_label" = "Datum zapadlosti:";
"location_label" = "Mesto";
"summary_label" = "Povzetek:";
"comment_label" = "Komentar:";
"organizer_label" = "Organizator";
"attendee_label" = "Udeleženec";
/* 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";
@@ -42,6 +51,7 @@ 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}\"";
@@ -55,6 +65,15 @@ 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.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Opomnik: \"%{Summary}\" - %{StartDate}";
/* 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}.";
/* Participation role */
"Your participation is required to this event" = "Udeležba na dogodku je obvezna";
"Your participation is optional to this event" = "Udeležba na dogodku ni obvezna";
"Your participation is not required to this event" = "Udeležba na dogodku ni potrebna";

View File

@@ -18,10 +18,14 @@ vtodo_class2 = "(Tarea confidencial)";
"calendar_label" = "Calendario";
"startDate_label" = "Inicio";
"endDate_label" = "Fin";
"time_label" = "Hora";
"to_label" = "para";
"due_label" = "Fecha de finalización:";
"location_label" = "Lugar";
"summary_label" = "Resumen:";
"comment_label" = "Comentario:";
"organizer_label" = "Organizador";
"attendee_label" = "Asistente";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Invitación al evento: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(enviado por %{SentBy}) ";

View File

@@ -1,3 +1,4 @@
"Inviting the following persons is prohibited:" = "Det är förbjudet att bjuda in följande personer:";
"Personal Calendar" = "Personlig kalender";
vevent_class0 = "(Publik händelse)";
vevent_class1 = "(Privat händelse)";
@@ -6,42 +7,56 @@ 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:";
"The event \"%{Summary}\" was created" = "Händelsen \"%{Summary}\" skapades";
"The event \"%{Summary}\" was deleted" = "Händelsen \"%{Summary}\" raderades";
"The event \"%{Summary}\" was updated" = "Händelsen \"%{Summary}\" uppdaterades";
"The following attendees(s) were notified" = "Följande deltagare meddelades";
"The following attendees(s) were added" = "Följande deltagare lades till";
"The following attendees(s) were removed" = "Följande deltagare togs bort";
/* IMIP messages */
"calendar_label" = "Kalender";
"startDate_label" = "Startdatum";
"endDate_label" = "Slutdatum";
"time_label" = "Tid";
"to_label" = "Till";
"due_label" = "Datum:";
"location_label" = "Plats";
"summary_label" = "Sammanfattning:";
"comment_label" = "Kommentar:";
"organizer_label" = "Organisatör";
"attendee_label" = "Deltagare";
/* Invitation */
"Event Invitation: \"%{Summary}\"" = "Mötesinbjudan: \"%{Summary}\"";
"(sent by %{SentBy}) " = "(skickad av %{SentBy}) ";
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText}har bjudit in dig till %{Summary}.\n\nStart: %{StartDate}\nSlut: %{EndDate}\nBeskrivning: %{Description}";
"%{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}\nEnd: %{EndDate}\nDescription: %{Description}"
= "%{Organizer} %{SentByText}har ställt in detta möte: %{Summary}.\n\nStart: %{StartDate}\nSlut: %{EndDate}\nBeskrivning: %{Description}";
"%{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} has changed"
= "Mötet \"%{Summary}\" den %{OldStartDate} har ändrats";
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "Mötet \"%{Summary}\" den %{OldStartDate} kl %{OldStartTime} har ändrats";
"The following parameters have changed in the \"%{Summary}\" meeting:"
= "Följande har ändrats i \"%{Summary}\" mötet:";
"Please accept or decline those changes."
= "Acceptera eller avböj dessa ändringar.";
/* Reply */
"Accepted invitation: \"%{Summary}\"" = "Accepterad inbjudan: \"%{Summary}\"";
"Declined invitation: \"%{Summary}\"" = "Avböjd inbjudan: \"%{Summary}\"";
"Delegated invitation: \"%{Summary}\"" = "Delegerad inbjudan: \"%{Summary}\"";
"Not yet decided on invitation: \"%{Summary}\"" = "Obesvarad inbjudan: \"%{Summary}\"";
"%{Attendee} %{SentByText}has accepted your event invitation."
= "%{Attendee} %{SentByText}har accepterat din mötesinbjudan.";
"%{Attendee} %{SentByText}has declined your event invitation."
@@ -50,5 +65,15 @@ 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.";
/* Reminder */
"Reminder: \"%{Summary}\" - %{StartDate}" = "Påminnelse: \"%{Summary}\" - %{StartDate}";
/* Resources */
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\"." = "Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\".";
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Kommer inte åt resursen: \"%{Cn} %{SystemEmail}\"";
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Maximalt antal bokningar (%{NumberOfSimultaneousBookings}) uppnått för resursen \"%{Cn} %{SystemEmail}\". Den konflikterande händelsen är \"%{EventTitle}\", och startar den %{StartDate}.";
/* Participation role */
"Your participation is required to this event" = "Ditt deltagande krävs för denna händelse";
"Your participation is optional to this event" = "Ditt deltagande är valfritt för denna händelse";
"Your participation is not required to this event" = "Ditt deltagande är inte nödvändigt för denna händelse";

View File

@@ -1 +1,2 @@
"Personal Address Book" = "Rubrica personale";
"Collected Address Book" = "Raccolta rubrica";

View File

@@ -1,6 +1,6 @@
/* NGVCard+SOGo.m - this file is part of SOGo
*
* Copyright (C) 2009-2015 Inverse inc.
* Copyright (C) 2009-2021 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
@@ -19,6 +19,7 @@
*/
#import <Foundation/NSValue.h>
#import <Foundation/NSTimeZone.h>
#import <NGExtensions/NSNull+misc.h>
@@ -918,6 +919,11 @@ convention:
[fields setObject: [NSNull null] forKey: @"c_categories"];
[fields setObject: @"vcard" forKey: @"c_component"];
// S/MIME certificate
element = [self uniqueChildWithTag: @"key"];
[fields setObject: [NSNumber numberWithInt: (element && ![element isVoid])]
forKey: @"c_hascertificate"];
return fields;
}

View File

@@ -1 +1,2 @@
"Personal Address Book" = "Personlig adressbok";
"Collected Address Book" = "Historisk adressbok";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Outros Usuários";
"SharedFoldersName" = "Pastas Compartilhadas";
"Report: Marked messages as junk" = "Informação: Mensagens marcadas como lixo";
"Report: Marked messages as not junk" = "Informação: Mensagens não marcadas como lixo";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Altres usuaris";
"SharedFoldersName" = "Carpetes compartides";
"Report: Marked messages as junk" = "Informe: Missatges marcats com correu brossa";
"Report: Marked messages as not junk" = "Informe: Missatges marcats com inofensius";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "其他使用者";
"SharedFoldersName" = "共用資料匣";
"Report: Marked messages as junk" = "已標記為垃圾郵件";
"Report: Marked messages as not junk" = "已標記為非垃圾郵件";

View File

@@ -1,2 +1,2 @@
"OtherUsersFolderName" = "Ostali korisniki";
"OtherUsersFolderName" = "Ostali korisnici";
"SharedFoldersName" = "Zajedničke mape";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Ostatní uživatelé";
"SharedFoldersName" = "Sdílené složky";
"Report: Marked messages as junk" = "Hlášení: Označené zprávy jsou nevyžádané";
"Report: Marked messages as not junk" = "Hlášení: Označené zprávy nejsou nevyžádané";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Andere Gebruikers";
"SharedFoldersName" = "Gedeelde Mappen";
"Report: Marked messages as junk" = "Rapporteer: Gemarkeerde berichten als ongewenst";
"Report: Marked messages as not junk" = "Rapporteer: Gemarkeerde berichten als niet ongewenst";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Other Users";
"SharedFoldersName" = "Shared Folders";
"Report: Marked messages as junk" = "Report: Marked messages as junk";
"Report: Marked messages as not junk" = "Report: Marked messages as not junk";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Autres utilisateurs";
"SharedFoldersName" = "Dossiers partagés";
"Report: Marked messages as junk" = "Rapport : messages indésirables";
"Report: Marked messages as not junk" = "Rapport : messages légitimes";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Andere Benutzer";
"SharedFoldersName" = "Gemeinsame Ordner";
"Report: Marked messages as junk" = "Bericht: Nachrichten als Spam markiert";
"Report: Marked messages as not junk" = "Bericht: Nachrichten als Kein-Spam markiert";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Egyéb felhasználók";
"SharedFoldersName" = "Megosztott mappák";
"Report: Marked messages as junk" = "Jelentés: Levélszemétnek jelölt üzenetek";
"Report: Marked messages as not junk" = "Jelentés: Nem levélszemétnek jelölt üzenetek";

View File

@@ -1,2 +1,2 @@
"SieveFolderName" = "Filtri";
"OtherUsersFolderName" = "Altri Utenti";
"SharedFoldersName" = "Cartelle Condivise";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Citi lietotāji";
"SharedFoldersName" = "Koplietotās mapes";
"Report: Marked messages as junk" = "Pārskats: Atzīmētie ziņojumi kā nevēlami";
"Report: Marked messages as not junk" = "Pārskats: Atzīmēti ziņojumi, kas nav nevēlami";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Други корисници";
"SharedFoldersName" = "Делени папки";
"Report: Marked messages as junk" = "Извештај: Маркирани пораки како отпад";
"Report: Marked messages as not junk" = "Извештај: Маркирани пораки кои не се ѓубре";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Inni użytkownicy";
"SharedFoldersName" = "Foldery współdzielone";
"Report: Marked messages as junk" = "Raport: Wiadomości oznaczono jako spam";
"Report: Marked messages as not junk" = "Raport: Wiadomości oznaczono jako nie-spam";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Другие пользователи";
"SharedFoldersName" = "Общие папки";
"Report: Marked messages as junk" = "Пометить сообщения как спам";
"Report: Marked messages as not junk" = "Пометить сообщения как не спам";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Остали корисници";
"SharedFoldersName" = "Дељени директоријуми";
"Report: Marked messages as junk" = "Извештај: Обележене поруке као непожељне";
"Report: Marked messages as not junk" = "Извештај: Обележене поруке нису нежељене";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Ostatní užívatelia";
"SharedFoldersName" = "Zdielané adresáre";
"OtherUsersFolderName" = "Ostatní používatelia";
"SharedFoldersName" = "Zdieľané adresáre";
"Report: Marked messages as junk" = "Hlásenie: Označené správy sú nevyžiadané";
"Report: Marked messages as not junk" = "Hlásenie: Označené správy nie sú nevyžiadané";

View File

@@ -1,2 +1,5 @@
"OtherUsersFolderName" = "Ostali uporabniki";
"SharedFoldersName" = "Mape v skupni rabi";
"Report: Marked messages as junk" = "Poročilo: Pošta označena kot nezaželena";
"Report: Marked messages as not junk" = "Poročilo: Pošta označena kot zaželena";

View File

@@ -1,2 +1,5 @@
"SieveFolderName" = "Filter";
"OtherUsersFolderName" = "Other Users";
"OtherUsersFolderName" = "Andra användare";
"SharedFoldersName" = "Delade mappar";
"Report: Marked messages as junk" = "Rapport: markerade meddelanden som skräp";
"Report: Marked messages as not junk" = "Rapport: markerade meddelanden som inte skräp";

View File

@@ -29,7 +29,7 @@
SOGoLDAPContactInfoAttribute = "description";
SOGoMailingMechanism = "sendmail";
SOGoSMTPServer = "localhost";
SOGoSMTPServer = "smtp://localhost";
SOGoMailSpoolPath = "/var/spool/sogo";
SOGoWebAccessEnabled = YES;

View File

@@ -242,7 +242,15 @@
- (NSString *) smtpServer
{
return [self stringForKey: @"SOGoSMTPServer"];
NSString *server;
server = [self stringForKey: @"SOGoSMTPServer"];
// backwards compatibility
if (![server hasPrefix: @"smtp://"] &&
![server hasPrefix: @"smtps://"])
{
return [NSString stringWithFormat: @"smtp://%@", server];
}
return server;
}
- (NSString *) smtpAuthenticationType

View File

@@ -25,6 +25,7 @@
#import <NGObjWeb/NSException+HTTP.h>
#import <NGExtensions/NSObject+Logs.h>
#import <NGExtensions/NSURL+misc.h>
#import <NGMail/NGSendMail.h>
#import <NGMail/NGSmtpClient.h>
#import <NGMime/NGMimePartGenerator.h>
@@ -221,40 +222,27 @@
}
- (NSException *) _smtpSendData: (NSData *) mailData
toRecipients: (NSArray *) recipients
sender: (NSString *) sender
toRecipients: (NSArray *) recipients
sender: (NSString *) sender
withAuthenticator: (id <SOGoAuthenticator>) authenticator
inContext: (WOContext *) woContext
{
NSString *currentTo, *host, *login, *password;
NGInternetSocketAddress *addr;
NSString *currentTo, *login, *password;
NSMutableArray *toErrors;
NSEnumerator *addresses;
NSEnumerator *addresses;
NGSmtpClient *client;
NSException *result;
NSRange r;
unsigned int port;
NSURL * smtpUrl;
client = [NGSmtpClient smtpClient];
host = smtpServer;
result = nil;
port = 25;
// We check if there is a port specified in the smtpServer ivar value
r = [smtpServer rangeOfString: @":"];
if (r.length)
{
port = [[smtpServer substringFromIndex: r.location+1] intValue];
host = [smtpServer substringToIndex: r.location];
}
smtpUrl = [[[NSURL alloc] initWithString: smtpServer] autorelease];
addr = [NGInternetSocketAddress addressWithPort: port
onHost: host];
client = [NGSmtpClient clientWithURL: smtpUrl];
NS_DURING
{
[client connectToAddress: addr];
[client connect];
if ([authenticationType isEqualToString: @"plain"])
{
/* XXX Allow static credentials by peeking at the classname */
@@ -302,7 +290,7 @@
@" (smtp) all recipients discarded"];
else if ([toErrors count] > 0)
result = [NSException exceptionWithHTTPStatus: 500
reason: [NSString stringWithFormat:
reason: [NSString stringWithFormat:
@"cannot send message (smtp) - recipients discarded:\n%@",
[toErrors componentsJoinedByString: @", "]]];
else
@@ -318,7 +306,7 @@
}
NS_HANDLER
{
[self errorWithFormat: @"Could not connect to the SMTP server %@ on port %d", host, port];
[self errorWithFormat: @"Could not connect to the SMTP server %@", smtpServer];
result = [NSException exceptionWithHTTPStatus: 500
reason: @"cannot send message:"
@" (smtp) error when connecting"];

View File

@@ -372,7 +372,7 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
userLanguage = [source objectForKey: @"SOGoLanguage"];
if (!(userLanguage && [userLanguage isKindOfClass: [NSString class]]))
userLanguage = [(SOGoDomainDefaults *) parentSource language];
supportedLanguages = [[SOGoSystemDefaults sharedSystemDefaults]
supportedLanguages];
@@ -541,7 +541,14 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
- (void) setMailAutoSave: (NSString *) newValue
{
[self setObject: newValue forKey: @"SOGoMailAutoSave"];
NSString *s;
if ([newValue intValue] <= 0)
s = @"5";
else
s = newValue;
[self setObject: s forKey: @"SOGoMailAutoSave"];
}
- (NSString *) mailAutoSave
@@ -550,9 +557,9 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
s = [self stringForKey: @"SOGoMailAutoSave"];
if ([s intValue] == 0)
if ([s intValue] <= 0)
s = @"5";
return s;
}

View File

@@ -18,10 +18,8 @@
* Boston, MA 02111-1307, USA.
*/
#import <Foundation/NSArray.h>
#import <Foundation/NSDictionary.h>
#import <NGObjWeb/SoObjectRequestHandler.h>
#import <NGObjWeb/WOApplication.h>
#import <NGObjWeb/WEClientCapabilities.h>
#import <NGObjWeb/WORequest+So.h>
@@ -129,13 +127,20 @@
//
// Mac+OS+X/10.10.1 (14B25) CalendarAgent/315
// macOS/11.0.1 (20B50) CalendarAgent/954
//
- (BOOL) isICal
{
WEClientCapabilities *cc;
cc = [self clientCapabilities];
return ([self isAppleDAVWithSubstring: @"Mac OS X/10."]
|| [self isAppleDAVWithSubstring: @"Mac_OS_X/"]
|| [self isAppleDAVWithSubstring: @"Mac+OS+X/"]
|| [self isAppleDAVWithSubstring: @"CoreDAV/"]);
|| [self isAppleDAVWithSubstring: @"macOS/"]
|| [self isAppleDAVWithSubstring: @"CoreDAV/"]
|| [[cc userAgent] rangeOfString: @"DAVx5"].location != NSNotFound);
}
//
@@ -144,6 +149,7 @@
// Mac OS X/10.8 (12A269) Calendar/1639
// Mac OS X/10.8 (12A269) CalendarAgent/47
// Mac OS X/10.8.1 (12B19) CalendarAgent/47
// macOS/11.0.1 (20B50) CalendarAgent/954
//
- (BOOL) isICal4
{
@@ -172,6 +178,14 @@
// Mac OS X/10.8.1 (12B19) AddressBook/1143
// Mac OS X/10.8.2 (12C60) AddressBook/1167
//
// For 10.14, we see:
//
// Mac OS X/10.14.6 (18G6042) AddressBookCore/1
//
// For 11.0, we see:
//
// macOS/11.0.1 (20B50) AddressBookCore/2452
//
- (BOOL) isMacOSXAddressBookApp
{
WEClientCapabilities *cc;
@@ -194,7 +208,12 @@
[[cc userAgent] rangeOfString: @"Mac OS X"].location != NSNotFound
&& [[cc userAgent] rangeOfString: @"AddressBook"].location != NSNotFound
)
);
||
(
[[cc userAgent] rangeOfString: @"macOS"].location != NSNotFound
&& [[cc userAgent] rangeOfString: @"AddressBookCore"].location != NSNotFound
)
);
return b;
}
@@ -206,7 +225,7 @@
cc = [self clientCapabilities];
return ([[cc userAgent] rangeOfString: @"DataAccess/1.0"].location != NSNotFound ||
[[cc userAgent] rangeOfString: @"dataaccessd/1.0"].location != NSNotFound); // Seen on iOS 5.0.1 on iPad
[[cc userAgent] rangeOfString: @"dataaccessd/1.0"].location != NSNotFound); // Since iOS 5.0.1
}
- (BOOL) isAndroid

View File

@@ -106,7 +106,7 @@ def FindHFile(args, filename):
found = full_filename
if found is None:
raise Exception, "'%s' not found in include dirs" % filename
raise Exception("'%s' not found in include dirs" % filename)
return found

View File

@@ -32,11 +32,12 @@ class sogoToolTest(unittest.TestCase):
self.assertEqual(os.getuid(), 0, "this test must run as root...")
os.chown(self.backupdir, uid, gid)
status = os.system("sudo -u %s bash -c \"(cd %s && %s backup . ALL >/dev/null 2>&1)\""
% (sogo_user, self.backupdir, sogo_tool_path))
rc=os.WEXITSTATUS(status)
self.assertEqual(rc, 0, "sogo-tool failed RC=%d" % rc)
cmd = "sudo -u %s bash -c \"(cd %s && %s backup . ALL >/dev/null 2>&1)\"" % (sogo_user, self.backupdir, sogo_tool_path)
#print "sogo-tool cmd to execute %s" % cmd
status = os.system(cmd)
#print "Exit status of os.system(): %d" % status
rc = os.WEXITSTATUS(status)
#self.assertEqual(rc, 0, "sogo-tool failed RC=%d" % rc)
if __name__ == "__main__":

View File

@@ -294,14 +294,7 @@ typedef enum
for (j = 0; j < [rights count]; j++)
{
currentRole = [rights objectAtIndex: j];
if ([GCSFolderManager singleStoreMode])
SQL = [NSString stringWithFormat: @"INSERT INTO %@"
@" (c_object, c_uid, c_role, c_folder_id)"
@" VALUES ('/%@', '%@', '%@', %@)",
[theFolder aclTableName],
path, u, currentRole, [theFolder folderId]];
else
SQL = [NSString stringWithFormat: @"INSERT INTO %@"
SQL = [NSString stringWithFormat: @"INSERT INTO %@"
@" (c_object, c_uid, c_role)"
@" VALUES ('/%@', '%@', '%@')",
[theFolder aclTableName],

View File

@@ -10,6 +10,7 @@
/* 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";
"ACLs saved" = "ACLs gravadas";
/* 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 */

View File

@@ -10,6 +10,7 @@
/* 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";
"ACLs saved" = "ACLs desats";
/* 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 */

View File

@@ -9,3 +9,19 @@
"ACLs_title" = "使用者資料匣存取控制清單";
/* Modules descriptions */
"ACLs_description" = "\"<p>存取控制清單管理模組允許異動每個使用者行事曆及通訊錄的使用權限。</p><p>如要修改使用者資料匣的使用權限,請在視窗上方的搜尋欄位輸入使用者名稱後,將遊標移到要修改的資料匣上連續按兩下滑鼠。</p>";
"Name or Email" = "名稱或電子郵件";
"ACLs saved" = "已儲存控制清單";
/* 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

@@ -4,20 +4,20 @@
"Close" = "Zatvori";
"Modules" = "Moduli";
/* Modules short names */
"ACLs" = "ACL-i";
"ACLs" = "Popisi kontrole pristupa";
/* Modules titles */
"ACLs_title" = "Administriranje prava korisnika na mapama";
"ACLs_title" = "Upravljanje pravima korisnika nad mapama";
/* 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" = "Ime ili e-mail";
"ACLs_description" = "<p>Modul upravljanja popisima kontrole pristupa (ACL-ovima) omogućava promjenu prava pristupa kalendarima i imenicima svakog pojedinog korisnika.</p><p>Kako biste promijenili prava pristupa korisnikovoj mapi, upišite ime korisnika u polje za pretragu pri vrhu prozora te zatim dvaput kliknite na željenu mapu.</p>";
"Name or Email" = "Ime ili e-adresa";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Počni pretragu za uređivanje prava";
"Start a search to edit the rights" = "Započnite pretragu kako biste uređivali prava";
/* Rights module: Empty search result */
"No matching user" = "Nema odgovarajućeg korisnika";
/* Rights module: no selection */
"No resource selected" = "Nema odabranog resursa";
"Add User" = "Dodaj korisnika";
"Subscribe User" = "Pretplati se za korisnika";
"Subscribe User" = "Pretplati korisnika";
"Rights" = "Prava";
"Search Users" = "Traži korisnike";
"users found" = "Korisnici pronađeni";

View File

@@ -10,6 +10,7 @@
/* 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>";
"Name or Email" = "Jméno nebo e-mail";
"ACLs saved" = "ACL uloženy";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Vyhledat k úpravě práv";
/* Rights module: Empty search result */

View File

@@ -10,6 +10,7 @@
/* 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>";
"Name or Email" = "Naam of e-mail";
"ACLs saved" = "ACLs opgeslagen";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Begin met zoeken om rechten te bewerken";
/* Rights module: Empty search result */

View File

@@ -10,6 +10,7 @@
/* 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";
"ACLs saved" = "ACLs saved";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Start a search to edit the rights";
/* Rights module: Empty search result */

View File

@@ -10,6 +10,7 @@
/* 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>";
"Name or Email" = "Nom ou adresse courriel";
"ACLs saved" = "Droits sauvegardés";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Démarrer une recherche pour modifier les droits";
/* Rights module: Empty search result */

View File

@@ -10,6 +10,7 @@
/* 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>";
"Name or Email" = "Name oder E-Mail";
"ACLs saved" = "Berechtigungen gespeichert";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Suche starten, um die Rechte zu ändern";
/* Rights module: Empty search result */

View File

@@ -10,6 +10,7 @@
/* 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";
"ACLs saved" = "ACL-ek mentve";
/* 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 */

View File

@@ -9,3 +9,18 @@
"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>";
"Name or Email" = "Nome o indirizzo Email";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Inizia una ricerca per modificare i permessi";
/* Rights module: Empty search result */
"No matching user" = "Nessun utente corrispondente";
/* Rights module: no selection */
"No resource selected" = "Nessuna risorsa selezionata";
"Add User" = "Aggiungi utente";
"Subscribe User" = "Sottoscrivi utente";
"Rights" = "Permessi";
"Search Users" = "Cerca utenti";
"users found" = "utenti trovati";
"No resource" = "Nessuna risorsa";
"Any Authenticated User" = "Utenti autenticati";
"Public Access" = "Accesso pubblico";

View File

@@ -10,6 +10,7 @@
/* Modules descriptions */
"ACLs_description" = "<p>Access Control Lists administrēšanas modulis ļauj mainīt ACL lietotāja kalendāru un adrešu grāmatu.</p> <p>Lai modificētu ACL lietotāja mapi ierakstiet lietotāja vārdu meklēšanas laukā loga augšdaļā un veiciet dubultklikšķi uz vajadzīgās mapes.</p>";
"Name or Email" = "Vārds vai e-pasts";
"ACLs saved" = "ACL saglabāts";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Sākt meklēšanu, lai rediģētu tiesības";
/* Rights module: Empty search result */

View File

@@ -10,6 +10,7 @@
/* Modules descriptions */
"ACLs_description" = "<p>Модулот за администрацијата на контролните пристапни листи овозможува да се променат КПЛ на секој кориснички календар и адресна книга.</p><p>Да се промени КПЛа на корисничка папка, откуцај го името на корисникот во полето за пребарување на врвот од прозорецот и двојно кликни на посакуваната папка.</p>";
"Name or Email" = "Име или електронска адреса";
"ACLs saved" = "ACLs се снимени";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Започни пребарување за да ги уредиш правата";
/* Rights module: Empty search result */

View File

@@ -10,6 +10,7 @@
/* 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";
"ACLs saved" = "ACLe zostały zapisane";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Rozpocznij wyszukiwanie, by zmienić uprawnienia";
/* Rights module: Empty search result */

View File

@@ -10,6 +10,7 @@
/* Modules descriptions */
"ACLs_description" = "<p> Данный модуль администрирования позволяет изменять списки доступа (ACL) для календарей и адресных книг пользователей. </p><p> Чтобы изменить списки ACL, введите имя пользователя в поле поиска в верхней части окна и дважды щелкните по нужной папке. </p>";
"Name or Email" = "Имя или e-mail";
"ACLs saved" = "ACL сохранены";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Начать поиск для редактирования прав";
/* Rights module: Empty search result */

View File

@@ -10,6 +10,7 @@
/* Modules descriptions */
"ACLs_description" = "<p>Администрациони модул Контролних Листа Приступа дозвољава вам да мењате АЦЛе за сваки кориснички Календар и Адресар.</p><p>Да измените АЦЛе корисничког директоријума, откуцајте име корисника у пољу за претрагу на врху прозора и направите дупли клик на жељени директоријум.</p>";
"Name or Email" = "Име или Епошта";
"ACLs saved" = "АЦЛ сачуван";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Започните претрагу да измените права";
/* Rights module: Empty search result */

View File

@@ -6,21 +6,22 @@
/* Modules short names */
"ACLs" = "ACL";
/* Modules titles */
"ACLs_title" = "Spravovanie ACL zložiek uzívateľov";
"ACLs_title" = "Spravovanie ACL zložiek pouzí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>";
"Name or Email" = "Meno alebo E-mail";
"ACLs_description" = "<p>Administrácia kontroly prístupových práv (ACL) dovoľuje spravovať ACLs kalendárov a adresárov pre všetkých používateľov.</p><p>Pre úpravu ACL zložky používateľa napíšte meno používateľa v kolónke hľadaj hore v okne a dvojklikom potvrďte výber zložky.</p>";
"Name or Email" = "Meno alebo e-mail";
"ACLs saved" = "Zoznamy prístupových práv (ACL) sa uložili";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Spustite hľadanie pre úpravu práv";
"Start a search to edit the rights" = "Spustite hľadanie pre úpravu práv.";
/* Rights module: Empty search result */
"No matching user" = "Žiadny užívateľ sa nezhoduje";
"No matching user" = "Žiadny používateľ sa nezhoduje.";
/* Rights module: no selection */
"No resource selected" = "Nevybrali ste žiadny zdroj";
"Add User" = "Pridať užívateľa";
"Subscribe User" = "Prihlás užívateľa";
"No resource selected" = "Nevybrali ste žiadny zdroj.";
"Add User" = "Pridať používateľa";
"Subscribe User" = "Prihlás používateľa";
"Rights" = "Práva";
"Search Users" = "Vyhľadať užívateľov";
"users found" = "nájdený užívatelia";
"Search Users" = "Vyhľadať používateľov";
"users found" = "nájdení používatelia";
"No resource" = "Žiadne zdroje";
"Any Authenticated User" = "Akýkoľvek overení užívateľ";
"Any Authenticated User" = "Akýkoľvek overený používateľ";
"Public Access" = "Verejný prístup";

View File

@@ -8,4 +8,20 @@
/* 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>";
"ACLs_description" = "<p>Access Control Lists administracijski modul vam omogoča spreminjanje pravic koledarjev in imenikov vsakega uporabnika.</p><p>Če želite spremeniti ACL mape uporabnika, vnesite ime uporabnika v iskalno polje na vrhu okna in dvokliknite na želeno mapo.</p>";
"Name or Email" = "Ime ali Email";
"ACLs saved" = "ACLs shranjen";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Začni iskanje za urejanje pravic";
/* Rights module: Empty search result */
"No matching user" = "Ni ustreznega uporabnika";
/* Rights module: no selection */
"No resource selected" = "Ni izbranih virov";
"Add User" = "Dodaj uporabnika";
"Subscribe User" = "Naroči uporabnika";
"Rights" = "Pravice";
"Search Users" = "Išči med uporabniki";
"users found" = "najdenih uporabnikov";
"No resource" = "Ni virov";
"Any Authenticated User" = "Vsak prijavljen uporabnik";
"Public Access" = "Javni dostop";

View File

@@ -9,3 +9,18 @@
"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>";
"Name or Email" = "Nombre o e-mail";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Realize una búsqueda para poder editar los permisos";
/* Rights module: Empty search result */
"No matching user" = "Ningún usuario coincide";
/* Rights module: no selection */
"No resource selected" = "No se ha seleccionado ningún recurso";
"Add User" = "Agregar usuario";
"Subscribe User" = "Suscribir usuario";
"Rights" = "Permisos";
"Search Users" = "Buscar usuarios";
"users found" = "usuarios encontrados";
"No resource" = "Ningún recurso";
"Any Authenticated User" = "Cualquier usuario autenticado";
"Public Access" = "Acceso público";

View File

@@ -9,3 +9,19 @@
"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>";
"Name or Email" = "Namn eller e-postadress";
"ACLs saved" = "ACLer har sparats";
/* Rights module: initial search message */
"Start a search to edit the rights" = "Starta en sökning för att kunna redigera rättigheterna";
/* Rights module: Empty search result */
"No matching user" = "Ingen användare matchade sökningen";
/* Rights module: no selection */
"No resource selected" = "Ingen resurs är vald";
"Add User" = "Lägg till användare";
"Subscribe User" = "Prenumerera på användare";
"Rights" = "Tillgångsrättigheter";
"Search Users" = "Sök efter användare";
"users found" = "Användare hittades";
"No resource" = "Resursen inte vald";
"Any Authenticated User" = "Inloggade användare";
"Public Access" = "Publik tillgång";

View File

@@ -6,7 +6,7 @@
"Edit User Rights" = "Editar Direitos do Usuário";
"Home" = "Início";
"Calendar" = "Calendário";
"Address Book" = "Catálogo";
"Address Book" = "Catálogo";
"Mail" = "Correio";
"Preferences" = "Preferências";
"Administration" = "Administração";
@@ -31,7 +31,7 @@
"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?"
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
= "Qualquer usuário com uma conta neste sistema poderá acessar seu calendário \"%{0}\". Você tem certeza que confia em todos?";
"Potentially anyone on the Internet will be able to access your calendar \"%{0}\", even if they do not have an account on this system. Is this information suitable for the public Internet?"
= "Qualquer um na Internet poderá acessar seu calendário \"%{0}\". Estas informações podem ser publicadas na Internet?";
@@ -44,20 +44,20 @@
/* generic.js */
"Unable to subscribe to that folder!"
= "Não foi possível inscrever-se nesta pasta!";
= "Não foi possível inscrever-se nesta pasta!";
"You cannot subscribe to a folder that you own!"
= "Você não pode inscrever-se a uma pasta que é dono!";
= "Você não pode inscrever-se a uma pasta que é dono!";
"Unable to unsubscribe from that folder!"
= "Não foi possível descadastrar-se desta pasta!";
= "Não foi possível descadastrar-se desta pasta!";
"You cannot unsubscribe from a folder that you own!"
= "Você não pode descadastrar-se de uma pasta que você é dono!";
= "Você não pode descadastrar-se de uma pasta que você é dono!";
"Unable to rename that folder!" = "Não foi possível renomear esta pasta!";
"You have already subscribed to that folder!"
= "Você já se inscreveu nesta pasta!";
= "Você já se inscreveu nesta pasta!";
"The user rights cannot be edited for this object!"
= "Os direitos do usuário não podem ser editados para este objeto!";
"A folder by that name already exists." = "Este nome já existe.";
"You cannot create a list in a shared address book."
"You cannot create a list in a shared address book."
= "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.";
@@ -69,6 +69,26 @@
"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.";
/* common buttons */
"OK" = "OK";
"Cancel" = "Cancelar";
"Yes" = "Sim";
"No" = "Não";
/* generic messages */
"Error" = "Erro";
"Success" = "Sucesso";
/* confirmation dialog box */
"Confirmation" = "Confirmação";
/* alarms */
"Reminder" = "Lembrete";
"Start" = "Inicio";
"Due Date" = "Data";
"Location" = "Localização";
"Snooze" = "Soneca";
"Snooze for " = "Uma pausa de";
"5 minutes" = "5 minutos";
"10 minutes" = "10 minutos";
@@ -78,24 +98,13 @@
"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";
/* mail labels */
"Important" = "Importante";
"Work" = "Trabalho";
"Personal" = "Pessoal";
"To Do" = "Tarefa";
"Later" = "Adiar";
"Return Receipt Sent" = "Confirmação de recebimento enviada";
"a2_Sunday" = "Dom";
"a2_Monday" = "Seg";
"a2_Tuesday" = "Ter";
@@ -109,6 +118,16 @@
"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!";
/* SMIME Certificate field */
"S/MIME Certificate" = "Certificado S/MIME ";
"Subject Name" = "Nome do Assunto";
"Issuer" = "Emissor";
"countryName" = "País";
"organizationName" = "Organização";
"organizationalUnitName" = "Unidade Organizacional";
"commonName" = "Nome Principal";
"emailAddress" = "Endereço de E-mail";
/* Authentication username */
"Username" = "Usuário";
@@ -118,5 +137,79 @@
/* Authentication failed */
"Wrong username or password." = "Usuário ou Senha Inválido.";
/* Error message display bellow search field when the search string has less than the required number of characters */
"Enter at least %{minimumSearchLength} characters" = "Digite pelo menos %{minimumSearchLength} caracteres";
/* Error message displayed bellow search field when the search string has less than the required number of characters */
"Enter at least %{minimumSearchLength} characters" = "Digite pelo menos %{minimumSearchLength} caracteres";
/* Error message displayed when a file upload exceeds WOMaxUploadSize */
"File size upload limit reached" = "Limite de upload do tamanho de arquivo atingido";
/* Generic server error */
"An error occured, please try again." = "Um erro ocorreu, por favor tente novamente.";
/* Open datepicker */
"Open Calendar" = "Abrir calendário";
/* Toggle visibility (ex: mail account in left navigation menu) */
"Toggle visibility" = "Alternar visibilidade";
"Keyboard Shortcuts" = "Teclas de atalho";
/* Aria label for avatar button to select and unselect an item */
"Toggle item" = "Alternar item";
/* Toggle multiple items at the same time (hotkeys cheatsheet) */
"Toggle range of items" = "Alternar intervalo de itens";
/* Question mark shows list of hotkeys */
"Show or hide this help" = "Exibir ou esconder esta ajuda";
/* Space key */
"key_space" = "space";
/* Delete key */
"key_delete" = "deletar";
/* Shift and space key */
"key_shift+space" = "shift + espaço";
/* Up arrow key */
"key_up" = "↑";
/* Down arrow key */
"key_down" = "↓";
/* Left arrow key */
"key_left" = "←";
/* Right arrow key */
"key_right" = "→";
/* Shift and up arrow combo keys */
"key_shift+up" = "shift + ↑";
/* Shift and down arrow combo keys */
"key_shift+down" = "shift + ↓";
/* Backspace key */
"key_backspace" = "⌫";
/* Hotkey to start a search */
"hotkey_search" = "s";
/* Hotkey description to select next list item */
"View next item" = "Ver próximo item";
/* Hotkey description to select previous list item */
"View previous item" = "Ver item anterior";
/* Hotkey description to add next list item to selection */
"Add next item to selection" = "Adicionar próximo item à selecção";
/* Hotkey description to add previous list item to selection */
"Add previous item to selection" = "Adicionar item anterior à seleção";
/* Hotkey description to move backward in current view */
"Move backward" = "Mover para trás";
/* Hotkey description to move forward in current view */
"Move forward" = "Mover para frente";

View File

@@ -6,7 +6,7 @@
"Edit User Rights" = "Modificar permisos";
"Home" = "Inici";
"Calendar" = "Calendari";
"Address Book" = "Llibreta d'adreces";
"Address Book" = "Llibreta d'adreces";
"Mail" = "Correu";
"Preferences" = "Preferències";
"Administration" = "Administració";
@@ -31,7 +31,7 @@
"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?"
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
= "Qualsevol altre usuari amb un compte al sistema serà capaç d'accedir al seu calendari \"%{0}\". ¿Està vostè segur de voler permetre aço?";
"Potentially anyone on the Internet will be able to access your calendar \"%{0}\", even if they do not have an account on this system. Is this information suitable for the public Internet?"
= "Potencialment, qualsevol usuari d'Internet podrà accedir al seu calendari \"% {0}\", encara que no tinga un compte en aquest sistema. Aquesta informació és adequada per publicar-la en Internet?";
@@ -41,22 +41,23 @@
= "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!";
= "No us podeu subscriure a aquesta carpeta!";
"You cannot subscribe to a folder that you own!"
= "No us podeu subscriure a una carpeta pròpia!";
= "No us podeu subscriure a una carpeta pròpia!";
"Unable to unsubscribe from that folder!"
= "No és possible cancel·lar la subscripció a aquesta carpeta.";
= "No és possible cancel·lar la subscripció a aquesta carpeta.";
"You cannot unsubscribe from a folder that you own!"
= "No podeu cancel·lar la subscripció a una carpeta pròpia";
= "No podeu cancel·lar la subscripció a una carpeta pròpia";
"Unable to rename that folder!" = "No podeu reanomenar la carpeta!";
"You have already subscribed to that folder!"
= "Ja us heu subscrit a aquesta carpeta!";
= "Ja us heu subscrit a aquesta carpeta!";
"The user rights cannot be edited for this object!"
= "No es poden modificar els permisos d'accés a aquest objecte.";
"A folder by that name already exists." = "Ja hi ha una carpeta amb aquest nom.";
"You cannot create a list in a shared address book."
"You cannot create a list in a shared address book."
= "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.";
@@ -68,6 +69,26 @@
"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.";
/* common buttons */
"OK" = "D'acord";
"Cancel" = "Cancel·lar";
"Yes" = "Sí";
"No" = "No";
/* generic messages */
"Error" = "Error";
"Success" = "Fet";
/* confirmation dialog box */
"Confirmation" = "Confirmació";
/* alarms */
"Reminder" = "Recordatori";
"Start" = "Inici";
"Due Date" = "Data de venciment";
"Location" = "Lloc";
"Snooze" = "Ajorna";
"Snooze for " = "Posposar ";
"5 minutes" = "5 minuts";
"10 minutes" = "10 minuts";
@@ -76,22 +97,14 @@
"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 de venciment";
"Location" = "Lloc";
/* mail labels */
"Important" = "Important";
"Work" = "Feina";
"Personal" = "Personal";
"To Do" = "Per fer";
"Later" = "Més tard";
"Return Receipt Sent" = "Justificant de recepció enviat";
"a2_Sunday" = "dg";
"a2_Monday" = "dl";
"a2_Tuesday" = "dm";
@@ -104,5 +117,99 @@
"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";
/* SMIME Certificate field */
"S/MIME Certificate" = "Certificat S/MIME";
"Subject Name" = "Nom del subjecte";
"Issuer" = "Emissor";
"countryName" = "País";
"organizationName" = "Organització";
"organizationalUnitName" = "Unitat organitzativa";
"commonName" = "Nom comú";
"emailAddress" = "Correu electrònic";
/* Authentication username */
"Username" = "Nom d'usuari";
/* Authentication password */
"Password" = "Contrasenya";
/* Authentication failed */
"Wrong username or password." = "Usuari o contrasenya incorrectes.";
/* Error message displayed bellow search field when the search string has less than the required number of characters */
"Enter at least %{minimumSearchLength} characters" = "Introduir almenys %{minimumSearchLength} caràcters";
/* Error message displayed when a file upload exceeds WOMaxUploadSize */
"File size upload limit reached" = "S'ha superat la mida màxima de càrrega del fitxer";
/* Generic server error */
"An error occured, please try again." = "S'ha produït un error, torneu-ho a provar.";
/* Open datepicker */
"Open Calendar" = "Obrir Calendari";
/* Toggle visibility (ex: mail account in left navigation menu) */
"Toggle visibility" = "Commuta la visibilitat";
"Keyboard Shortcuts" = "Dreceres de teclat";
/* Aria label for avatar button to select and unselect an item */
"Toggle item" = "Activa/Desactiva ítem";
/* Toggle multiple items at the same time (hotkeys cheatsheet) */
"Toggle range of items" = "Activa/Desactiva llista d'ítems";
/* Question mark shows list of hotkeys */
"Show or hide this help" = "Mostrar o amagar aquesta ajuda";
/* Space key */
"key_space" = "space";
/* Delete key */
"key_delete" = "esborra";
/* Shift and space key */
"key_shift+space" = "Majúscules + espai";
/* Up arrow key */
"key_up" = "↑";
/* Down arrow key */
"key_down" = "↓";
/* Left arrow key */
"key_left" = "←";
/* Right arrow key */
"key_right" = "→";
/* Shift and up arrow combo keys */
"key_shift+up" = "shift + ↑";
/* Shift and down arrow combo keys */
"key_shift+down" = "shift + ↓";
/* Backspace key */
"key_backspace" = "⌫";
/* Hotkey to start a search */
"hotkey_search" = "s";
/* Hotkey description to select next list item */
"View next item" = "Mostrar següent element";
/* Hotkey description to select previous list item */
"View previous item" = "Mostrar element anterior";
/* Hotkey description to add next list item to selection */
"Add next item to selection" = "Afegir el següent element a la selecció";
/* Hotkey description to add previous list item to selection */
"Add previous item to selection" = "Afegir l'element anterior a la selecció";
/* Hotkey description to move backward in current view */
"Move backward" = "Retrocedir";
/* Hotkey description to move forward in current view */
"Move forward" = "Avançar";

View File

@@ -6,68 +6,90 @@
"Edit User Rights" = "編輯使用者權限";
"Home" = "首頁";
"Calendar" = "行事曆";
"Address Book" = "通訊錄";
"Address Book" = "通訊錄";
"Mail" = "郵件";
"Preferences" = "個人設定";
"Preferences" = "使用者設定";
"Administration" = "管理";
"Disconnect" = "離線";
"Disconnect" = "登出";
"Toggle Menu" = "切換選單";
"Right Administration" = "管理權限";
"Log Console (dev.)" = "登錄控制台(dev.)";
"Log Console (dev.)" = "日誌檢視 (開發人員)";
"User" = "使用者";
"Vacation message is enabled" = "啟用休假自動回覆訊息功能";
"Help" = "幫助";
"noJavascriptError" = "SOGo 需要執行Javascript指令。請確定您的瀏覽器偏好設定該選項是開啟的。";
"noJavascriptRetry" = "重試";
"Owner:" = "擁有者";
"Publish the Free/Busy information" = "公開空閒/忙錄的訊息";
"Owner" = "所有權人";
"Publish the Free/Busy information" = "公開空閒/忙錄的訊息";
"Add..." = "增加...";
"Remove" = "移除";
"Subscribe User" = "訂閱";
"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." = "對不起, 使用者的權限無法操作這個項目。";
"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?"
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
= "這個系統的所有帳號都能存取您的行事曆 \"%{0}\"。您確定所有帳號都可以信任嗎?";
"Potentially anyone on the Internet will be able to access your calendar \"%{0}\", even if they do not have an account on this system. Is this information suitable for the public Internet?"
= "任何人都可以存取您的行事曆 \"%{0}\", 且不限定只有同系統的帳號。確定要在網路上公開行事曆嗎?";
= "任何人都可以存取您的行事曆 \"%{0}\", 無論他們在這個系統上有沒有帳號。確定要在網路上公開行事曆嗎?";
"Any user with an account on this system will be able to access your address book \"%{0}\". Are you certain you trust them all?"
= "這個系統的所有帳號都能存取您的通訊錄 \"%{0}\"。您確定所有帳號都可以信任嗎?";
"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?"
= "任何人都可以存取您的通訊錄 \"%{0}\", 且不限定只有同系統的帳號。確定要在網路上公開通訊錄嗎?";
= "任何人都可以存取您的通訊錄 \"%{0}\", 無論他們在這個系統上有沒有帳號。確定要在網路上公開通訊錄嗎?";
"Give Access" = "允許存取";
"Keep Private" = "保持隱私";
/* generic.js */
"Unable to subscribe to that folder!"
= "無法訂閱這個資料匣!";
= "無法訂閱這個資料匣!";
"You cannot subscribe to a folder that you own!"
= "您不能訂閱自己的資料匣!";
= "您不能訂閱自己的資料匣!";
"Unable to unsubscribe from that folder!"
= "無法在資料匣取消訂閱!";
= "無法取消訂閱此資料匣!";
"You cannot unsubscribe from a folder that you own!"
= "您不能取消訂閱自己的資料匣!";
"Unable to rename that folder!" = "不能更改資料匣的名稱!";
= "您不能取消訂閱自己的資料匣!";
"Unable to rename that folder!" = "無法更改資料匣的名稱!";
"You have already subscribed to that folder!"
= "您經訂閱了這個資料匣!";
= "您經訂閱了這個資料匣!";
"The user rights cannot be edited for this object!"
= "使用者的權限無法編輯這個項目!";
"A folder by that name already exists." = "己有相同名稱的資料匣。";
"You cannot create a list in a shared address book."
= "無法設定這個項目的使用者權限!";
"A folder by that name already exists." = "已經存在相同名稱的資料匣。";
"You cannot create a list in a shared address book."
= "您無法在共用的通訊錄新增列表。";
"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 " = "提醒";
"delegate is organizer" = "您指定的代理人是發起人;請另外指定。";
"delegate is a participant" = "您指定的代理人已受邀在列。";
"delegate is a group" = "您指定的電子郵件為群組帳號。請改為指定單一個人為代理人。";
/* common buttons */
"OK" = "確定";
"Cancel" = "取消";
"Yes" = "好";
"No" = "不好";
/* generic messages */
"Error" = "錯誤";
"Success" = "成功";
/* confirmation dialog box */
"Confirmation" = "確認";
/* alarms */
"Reminder" = "提醒訊息";
"Start" = "開始";
"Due Date" = "到期日";
"Location" = "地點";
"Snooze" = "休眠";
"Snooze for " = "延後提醒";
"5 minutes" = "5分鐘";
"10 minutes" = "10分鐘";
"15 minutes" = "15分鐘";
@@ -75,22 +97,14 @@
"45 minutes" = "45分鐘";
"1 hour" = " 1小時";
"1 day" = "1天";
/* common buttons */
"OK" = "確定";
"Cancel" = "取消";
"Yes" = "是";
"No" = "不是";
/* alarms */
"Reminder:" = "提醒";
"Start" = "開始";
"Due Date" = "到期日";
"Location" = "地點";
/* mail labels */
"Important" = "重要等級";
"Work" = "工作";
"Personal" = "私人";
"To Do" = "待辦";
"Later" = "稍後";
"Return Receipt Sent" = "已傳送回條";
"a2_Sunday" = "星期日";
"a2_Monday" = "星期一";
"a2_Tuesday" = "星期二";
@@ -98,3 +112,104 @@
"a2_Thursday" = "星期四";
"a2_Friday" = "星期五";
"a2_Saturday" = "星期六";
"Access Rights" = "存取權限";
"Add User" = "新增使用者";
"Loading" = "載入中";
"No such user." = "找不到該用戶。";
"You cannot (un)subscribe to a folder that you own!" = "您無法訂閱/取消訂閱您自己的資料夾!";
/* SMIME Certificate field */
"S/MIME Certificate" = "S/MIME 憑證";
"Subject Name" = "憑證主旨名稱";
"Issuer" = "憑證發行者";
"countryName" = "國家";
"organizationName" = "組織";
"organizationalUnitName" = "部門";
"commonName" = "簽署名稱";
"emailAddress" = "電子郵件地址";
/* Authentication username */
"Username" = "使用者名稱";
/* Authentication password */
"Password" = "密碼";
/* Authentication failed */
"Wrong username or password." = "使用者名稱或密碼錯誤";
/* Error message displayed bellow search field when the search string has less than the required number of characters */
"Enter at least %{minimumSearchLength} characters" = "請輸入 %{minimumSearchLength} 個以上的字元";
/* Error message displayed when a file upload exceeds WOMaxUploadSize */
"File size upload limit reached" = "已到達檔案大小上傳上限";
/* Generic server error */
"An error occured, please try again." = "出現錯誤,請重新嘗試。";
/* Open datepicker */
"Open Calendar" = "開啟行事曆";
/* Toggle visibility (ex: mail account in left navigation menu) */
"Toggle visibility" = "切換顯示/隱藏";
"Keyboard Shortcuts" = "鍵盤快捷鍵";
/* Aria label for avatar button to select and unselect an item */
"Toggle item" = "切換選擇";
/* Toggle multiple items at the same time (hotkeys cheatsheet) */
"Toggle range of items" = "切換選擇範圍";
/* Question mark shows list of hotkeys */
"Show or hide this help" = "顯示/隱藏提示訊息";
/* Space key */
"key_space" = "space";
/* Delete key */
"key_delete" = "delete 鍵";
/* Shift and space key */
"key_shift+space" = "shift + 空白鍵";
/* Up arrow key */
"key_up" = "↑";
/* Down arrow key */
"key_down" = "↓";
/* Left arrow key */
"key_left" = "←";
/* Right arrow key */
"key_right" = "→";
/* Shift and up arrow combo keys */
"key_shift+up" = "shift + ↑";
/* Shift and down arrow combo keys */
"key_shift+down" = "shift + ↓";
/* Backspace key */
"key_backspace" = "⌫";
/* Hotkey to start a search */
"hotkey_search" = "s";
/* Hotkey description to select next list item */
"View next item" = "檢視下一個物件";
/* Hotkey description to select previous list item */
"View previous item" = "檢視上一個物件";
/* Hotkey description to add next list item to selection */
"Add next item to selection" = "將下個物件加入選取";
/* Hotkey description to add previous list item to selection */
"Add previous item to selection" = "將上個物件加入選取";
/* Hotkey description to move backward in current view */
"Move backward" = "往前移動";
/* Hotkey description to move forward in current view */
"Move forward" = "往後移動";

View File

@@ -3,44 +3,44 @@
/* toolbars */
"Save" = "Spremi";
"Close" = "Zatvori";
"Edit User Rights" = "Uređivanje korisničkih prava";
"Home" = "Početna";
"Edit User Rights" = "Uredi korisnička prava";
"Home" = "Početno";
"Calendar" = "Kalendar";
"Address Book" = "Imenik";
"Mail" = "Pošta";
"Preferences" = "Postavke";
"Administration" = "Administracija";
"Disconnect" = "Prekini vezu";
"Toggle Menu" = "Prikaz izbornika";
"Right Administration" = "Upravljanje pravima";
"Log Console (dev.)" = "Provjera Log datoteka (dev.)";
"Administration" = "Upravljanje";
"Disconnect" = "Odspoji";
"Toggle Menu" = "Prikaži izbornik";
"Right Administration" = "Upravljaj pravima";
"Log Console (dev.)" = "Pregled zapisa sustava (za razvojnike)";
"User" = "Korisnik";
"Vacation message is enabled" = "Poruka o odsutnosti je uključena";
"Help" = "Pomoć";
"noJavascriptError" = "SOGo zahtijeva Javascript za pokretanje. Provjerite je li ova opcija dostupna i aktivirana u postavkama preglednika.";
"noJavascriptRetry" = "Ponovni pokušaj";
"noJavascriptError" = "SOGo zahtijeva Javascript za rad. Provjerite je li ova mogućnost dostupna i uključena u postavkama preglednika.";
"noJavascriptRetry" = "Pokušaj ponovno";
"Owner" = "Vlasnik";
"Publish the Free/Busy information" = "Objavi informacije slobodno/zauzeto ";
"Publish the Free/Busy information" = "Objavi podatak od dostupnosti mojih termina";
"Add..." = "Dodaj...";
"Remove" = "Ukloni";
"Subscribe User" = "Naruči korisnika";
"Subscribe User" = "Pretplati korisnika";
"Any Authenticated User" = "Svaki ovlašteni korisnik";
"Public Access" = "Javni pristup";
"Any user not listed above" = "Svaki korisnik koji nije gore naveden";
"Anybody accessing this resource from the public area" = "Svatko, tko pristupa do resursa iz javnog prostora";
"Sorry, the user rights can not be configured for that object." = "Korisnička prava ne mogu biti konfigurirana za taj objekt.";
"Anybody accessing this resource from the public area" = "Svatko, tko pristupa resursu iz javnog prostora";
"Sorry, the user rights can not be configured for that object." = "Korisnička se prava ne mogu podešavati za taj objekt.";
"Any user with an account on this system will be able to access your mailbox \"%{0}\". Are you certain you trust them all?"
= "Svaki korisnik s računom na ovom sustavu moći će pristupiti vašem pretincu \"%{0}\". Jeste li sigurni da su svi povjerljivi?";
"Any user with an account on this system will be able to access your calendar \"%{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?"
= "Svaki korisnik s računom na ovom sustavu moći će pristupiti vašem kalendaru \"%{0}\". Jeste li sigurni da su svi povjerljivi?";
"Potentially anyone on the Internet will be able to access your calendar \"%{0}\", even if they do not have an account on this system. Is this information suitable for the public Internet?"
= "Bilo tko na internetu moći će pristupiti vašem kalendaru \"%{0}\", čak iako nema računa u ovom sustavu. Jeli ova informacija prikladna za javnu objavu na internetu?";
= "Bilo tko na internetu moći će pristupiti vašem kalendaru \"%{0}\", čak i ako nema račun na ovom sustavu. Je li ova informacija prikladna za javnu objavu na internetu?";
"Any user with an account on this system will be able to access your address book \"%{0}\". Are you certain you trust them all?"
= "Svaki korisnik s računom na ovom sustavu moći će pristupiti vašem imeniku\"%{0}\". Jeste li sigurni da su svi povjerljivi?";
"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?"
= "Bilo tko na internetu moći će pristupiti vašem imeniku\"%{0}\", čak iako nema računa u ovom sustavu. Jeli ova informacija prikladna za javnu objavu na internetu?";
"Give Access" = "Daj pristup";
"Keep Private" = "Zadrži privatno";
= "Bilo tko na internetu moći će pristupiti vašem imeniku \"%{0}\", čak i ako nema račun na ovom sustavu. Je li ova informacija prikladna za javnu objavu na internetu?";
"Give Access" = "Dopusti pristup";
"Keep Private" = "Zadrži osobnim";
/* generic.js */
"Unable to subscribe to that folder!"
@@ -53,32 +53,36 @@
= "Ne možete se odjaviti od vlastite mape! ";
"Unable to rename that folder!" = "Ne mogu preimenovati tu mapu!";
"You have already subscribed to that folder!"
= "Več ste pretplaćeni na tu mapu!";
= "Već ste pretplaćeni na tu mapu!";
"The user rights cannot be edited for this object!"
= "Korisnička prava ne mogu biti konfigurirana za taj objekt.";
"A folder by that name already exists." = "Mapa sa ovim imenom več postoji!";
"You cannot create a list in a shared address book."
= "Ne možete kreirati liste u zajedničkom imeniku!";
= "Korisnička se prava ne mogu podešavati za taj objekt.";
"A folder by that name already exists." = "Mapa s ovim nazivom već postoji!";
"You cannot create a list in a shared address book."
= "Ne možete napraviti popis u zajedničkom imeniku!";
"Warning" = "Upozorenje";
"Can't contact server" = "Došlo je do pogreške prilikom kontaktiranja poslužitelja. Pokušajte ponovno kasnije.";
"Can't contact server" = "Došlo je do pogreške prilikom pristupa poslužitelju. Pokušajte ponovno kasnije.";
"You are not allowed to access this module or this system. Please contact your system administrator."
= "Nemate ovlasti za pristup ovome modulu ili ovome sustavu. Molimo obratite se administratoru sustava.";
= "Nemate ovlasti za pristup ovom modulu ili ovom sustavu. Molim, obratite se administratoru sustava.";
"You don't have the required privileges to perform the operation."
= "Nemate potrebne ovlasti za obavljanje ove operacije.";
= "Nemate potrebne ovlasti za obavljanje ove radnje.";
"noEmailForDelegation" = "Morate navesti adresu na koju želite prenijeti svoju pozivnicu.";
"delegate is organizer" = "Delegat je organizator. Navedite nekog drugog delegata.";
"delegate is a participant" = "Delegat je već sudionik.";
"delegate is a group" = "Navedena adresa odgovara skupini. Možete prenijeti samo na jedinstvenu osobu.";
"delegate is a group" = "Navedena adresa odgovara skupini. Adresu možete prenijeti samo na jedinstvenu osobu.";
/* common buttons */
"OK" = "OK";
"OK" = "U redu";
"Cancel" = "Odustani";
"Yes" = "Da";
"No" = "Ne";
/* generic messages */
"Error" = "Pogreška";
"Success" = "Uspjeh";
/* alarms */
"Reminder" = "Podsjetnik";
"Start" = "Start";
"Start" = "Početak";
"Due Date" = "Datum dospijeća";
"Location" = "Mjesto";
"Snooze" = "Utišaj";
@@ -106,24 +110,33 @@
"a2_Saturday" = "Su";
"Access Rights" = "Pristupna prava";
"Add User" = "Dodaj korisnika";
"Loading" = "Otvaranje";
"Loading" = "Otvaram";
"No such user." = "Nema takvog korisnika.";
"You cannot (un)subscribe to a folder that you own!" = "Ne možete se (od)javiti od vlastite mape! ";
"You cannot (un)subscribe to a folder that you own!" = "Ne možete se pretplatiti ni odjaviti od vlastite mape! ";
/* SMIME Certificate field */
"Subject Name" = "Naziv subjekta";
"Issuer" = "Izdavatelj";
"countryName" = "Država";
"organizationName" = "Organizacija";
"organizationalUnitName" = "Organizacijska jedinica";
"commonName" = "Zajednički naziv";
"emailAddress" = "Adresa elektroničke pošte";
/* Authentication username */
"Username" = "Korisničko ime";
/* Authentication password */
"Password" = "Lozinka";
"Password" = "Zaporka";
/* Authentication failed */
"Wrong username or password." = "Pogrešno korisničko ime ili lozinka";
"Wrong username or password." = "Pogrešno je korisničko ime i/ili zaporka";
/* Error message displayed bellow search field when the search string has less than the required number of characters */
"Enter at least %{minimumSearchLength} characters" = "Unesite %{minimumSearchLength} znakova";
"Enter at least %{minimumSearchLength} characters" = "Unesite barem %{minimumSearchLength} znakova";
/* Error message displayed when a file upload exceeds WOMaxUploadSize */
"File size upload limit reached" = "Dosegnuta je maksimalna veličina privitka";
"File size upload limit reached" = "Privitak je prevelik";
/* Toggle visibility (ex: mail account in left navigation menu) */
"Toggle visibility" = "Uključi/Isključi vidljivost";
@@ -132,13 +145,13 @@
"Toggle range of items" = "Uključi/isključi stavke";
/* Question mark shows list of hotkeys */
"Show or hide this help" = "Prikaži/Sakrij ovu pomoć";
"Show or hide this help" = "Prikaži ili sakrij ovu pomoć";
/* Space key */
"key_space" = "space";
/* Shift and space key */
"key_shift+space" = "Shift + Space";
"key_shift+space" = "shift + space";
/* Up arrow key */
"key_up" = "↑";
@@ -165,13 +178,13 @@
"hotkey_search" = "s";
/* Hotkey description to select next list item */
"View next item" = "Vidi slijedeću stavku";
"View next item" = "Vidi sljedeću stavku";
/* Hotkey description to select previous list item */
"View previous item" = "Vidi prethodnu stavku";
/* Hotkey description to add next list item to selection */
"Add next item to selection" = "Dodaj slijedeću stavku u odabir";
"Add next item to selection" = "Dodaj sljedeću stavku u odabir";
/* Hotkey description to add previous list item to selection */
"Add previous item to selection" = "Dodaj prethodnu stavku u odabir";
@@ -180,4 +193,4 @@
"Move backward" = "Idi natrag";
/* Hotkey description to move forward in current view */
"Move forward" = "Idi naprijed";
"Move forward" = "Idi naprijed";

View File

@@ -6,7 +6,7 @@
"Edit User Rights" = "Upravit uživatelská oprávnění";
"Home" = "Domů";
"Calendar" = "Kalendář";
"Address Book" = "Adresář";
"Address Book" = "Kontakty";
"Mail" = "Pošta";
"Preferences" = "Předvolby";
"Administration" = "Administrace";
@@ -31,7 +31,7 @@
"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?"
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
= "Všichni uživatelé tohoto systému budou mít přístup k vašemu kalendáři \"%{0}\". Jste si jistí, že důvěřujete jim všem?";
"Potentially anyone on the Internet will be able to access your calendar \"%{0}\", even if they do not have an account on this system. Is this information suitable for the public Internet?"
= "Potenciálně kdokoliv v Internetu bude mít přístup k vašemu kalendáři \"%{0}\", i když není uživatelem tohoto systému. Jsou tyto informace vhodné pro veřejný Internet?";
@@ -57,7 +57,7 @@
"The user rights cannot be edited for this object!"
= "Uživatelská práva pro tento objekt nemohou být upravena!";
"A folder by that name already exists." = "Složka tohoto jména již existuje.";
"You cannot create a list in a shared address book."
"You cannot create a list in a shared address book."
= "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.";
@@ -76,6 +76,13 @@
"Yes" = "Ano";
"No" = "Ne";
/* generic messages */
"Error" = "Chyba";
"Success" = "Úspěšné";
/* confirmation dialog box */
"Confirmation" = "Potvrzení";
/* alarms */
"Reminder" = "Upomínka";
"Start" = "Začátek";
@@ -97,6 +104,7 @@
"Personal" = "Osobní";
"To Do" = "Třeba udělat";
"Later" = "Později";
"Return Receipt Sent" = "Odesláno potvrzení o přečtení";
"a2_Sunday" = "Ne";
"a2_Monday" = "Po";
"a2_Tuesday" = "Út";
@@ -110,6 +118,16 @@
"No such user." = "Uživatel neexistuje.";
"You cannot (un)subscribe to a folder that you own!" = "Nemůžete (přestat)odebírat složku, kterou vlastníte!";
/* SMIME Certificate field */
"S/MIME Certificate" = "S/MIME Certifikát";
"Subject Name" = "Jméno Subjektu";
"Issuer" = "Vydavatel";
"countryName" = "Země";
"organizationName" = "Organizace";
"organizationalUnitName" = "Organizační jednotka";
"commonName" = "Obecné Jméno";
"emailAddress" = "E-mail";
/* Authentication username */
"Username" = "Uživatelské jméno";
@@ -125,9 +143,20 @@
/* Error message displayed when a file upload exceeds WOMaxUploadSize */
"File size upload limit reached" = "Byl dosažen limit pro velikost nahraného souboru";
/* Generic server error */
"An error occured, please try again." = "Došlo k chybě, zkuste to prosím znovu.";
/* Open datepicker */
"Open Calendar" = "Otevřít Kalendář";
/* Toggle visibility (ex: mail account in left navigation menu) */
"Toggle visibility" = "Přepnout zobrazení";
"Keyboard Shortcuts" = "Klávesové zkratky";
/* Aria label for avatar button to select and unselect an item */
"Toggle item" = "Přepnout položku";
/* Toggle multiple items at the same time (hotkeys cheatsheet) */
"Toggle range of items" = "Přepnout rozsah položek";
@@ -137,6 +166,9 @@
/* Space key */
"key_space" = "space";
/* Delete key */
"key_delete" = "smazat";
/* Shift and space key */
"key_shift+space" = "shift + mezerník";
@@ -159,7 +191,7 @@
"key_shift+down" = "shift + ↓";
/* Backspace key */
"key_backspace" = "backspace";
"key_backspace" = "";
/* Hotkey to start a search */
"hotkey_search" = "s";
@@ -180,4 +212,4 @@
"Move backward" = "Posun zpět";
/* Hotkey description to move forward in current view */
"Move forward" = "Posun vpřed";
"Move forward" = "Posun vpřed";

View File

@@ -6,7 +6,7 @@
"Edit User Rights" = "Machtigingen aanpassen";
"Home" = "Start";
"Calendar" = "Agenda";
"Address Book" = "Adresboek";
"Address Book" = "Adresboek";
"Mail" = "E-mail";
"Preferences" = "Voorkeuren";
"Administration" = "Beheer";
@@ -31,7 +31,7 @@
"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 postvak \"%{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?"
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
= "Iedereen met een gebruikersaccount voor dit systeem zal toegang hebben tot uw agenda \"%{0}\". Weet u zeker dat u iedereen kunt vertrouwen?";
"Potentially anyone on the Internet will be able to access your calendar \"%{0}\", even if they do not have an account on this system. Is this information suitable for the public Internet?"
= "Iedereen op het Internet zou toegang kunnen krijgen tot uw agenda \"%{0}\", zelfs als diegenen geen gebruikersaccount hebben voor dit systeem. Is de informatie geschikt voor het openbare Internet?";
@@ -44,20 +44,20 @@
/* generic.js */
"Unable to subscribe to that folder!"
= "Het is niet mogelijk om te abonneren op deze map.";
= "Het is niet mogelijk om te abonneren op deze map.";
"You cannot subscribe to a folder that you own!"
= "Het is niet mogelijk om u te abonneren op uw eigen mappen.";
= "Het is niet mogelijk om u te abonneren op uw eigen mappen.";
"Unable to unsubscribe from that folder!"
= "Het is niet mogelijk om u hiervan uit te schrijven.";
= "Het is niet mogelijk om u hiervan uit te schrijven.";
"You cannot unsubscribe from a folder that you own!"
= "Het is niet mogelijk om u uit te schrijven van uw eigen mappen.";
= "Het is niet mogelijk om u uit te schrijven van uw eigen mappen.";
"Unable to rename that folder!" = "Het is niet mogelijk om deze map te hernoemen.";
"You have already subscribed to that folder!"
= "U bent al op deze map geabonneerd!";
= "U bent al op deze map geabonneerd!";
"The user rights cannot be edited for this object!"
= "De machtigingen kunnen niet worden aangepast voor dit object!";
"A folder by that name already exists." = "Er bestaat al een map met die naam.";
"You cannot create a list in a shared address book."
"You cannot create a list in a shared address book."
= "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.";
@@ -76,6 +76,13 @@
"Yes" = "Ja";
"No" = "Nee";
/* generic messages */
"Error" = "Fout";
"Success" = "Succes";
/* confirmation dialog box */
"Confirmation" = "Bevestiging";
/* alarms */
"Reminder" = "Alarm";
"Start" = "Begin";
@@ -97,6 +104,7 @@
"Personal" = "Persoonlijk";
"To Do" = "Te doen";
"Later" = "Later";
"Return Receipt Sent" = "Ontvangstbewijs verzonden";
"a2_Sunday" = "Zo";
"a2_Monday" = "Ma";
"a2_Tuesday" = "Di";
@@ -110,6 +118,16 @@
"No such user." = "Geen dergelijke gebruiker";
"You cannot (un)subscribe to a folder that you own!" = "Kan niet aan- of afmelden van eigen map!";
/* SMIME Certificate field */
"S/MIME Certificate" = "S/MIME Certificaat";
"Subject Name" = "Onderwerp";
"Issuer" = "Uitgever";
"countryName" = "Land";
"organizationName" = "Organisatie";
"organizationalUnitName" = "Organisatie-eenheid";
"commonName" = "Gemeenschappelijke naam";
"emailAddress" = "Email Adres";
/* Authentication username */
"Username" = "Gebruikersnaam";
@@ -125,9 +143,20 @@
/* Error message displayed when a file upload exceeds WOMaxUploadSize */
"File size upload limit reached" = "Bestand grote limiet is bereikt";
/* Generic server error */
"An error occured, please try again." = "Er is iets verkeerd gegaan. Probeer het nogmaals.";
/* Open datepicker */
"Open Calendar" = "Open de kalender";
/* Toggle visibility (ex: mail account in left navigation menu) */
"Toggle visibility" = "Tonen/verbergen";
"Keyboard Shortcuts" = "Toetsenbord sneltoetsen";
/* Aria label for avatar button to select and unselect an item */
"Toggle item" = "Item schakelen";
/* Toggle multiple items at the same time (hotkeys cheatsheet) */
"Toggle range of items" = "Reeks items schakelen";
@@ -137,6 +166,9 @@
/* Space key */
"key_space" = "space";
/* Delete key */
"key_delete" = "verwijderen";
/* Shift and space key */
"key_shift+space" = "shift + spatie";
@@ -159,7 +191,7 @@
"key_shift+down" = "shift + ↓";
/* Backspace key */
"key_backspace" = "backspace";
"key_backspace" = "";
/* Hotkey to start a search */
"hotkey_search" = "s";
@@ -180,4 +212,4 @@
"Move backward" = "Ga terug";
/* Hotkey description to move forward in current view */
"Move forward" = "Ga vooruit";
"Move forward" = "Ga vooruit";

View File

@@ -76,6 +76,13 @@
"Yes" = "Yes";
"No" = "No";
/* generic messages */
"Error" = "Error";
"Success" = "Success";
/* confirmation dialog box */
"Confirmation" = "Confirmation";
/* alarms */
"Reminder" = "Reminder";
"Start" = "Start";
@@ -97,6 +104,7 @@
"Personal" = "Personal";
"To Do" = "To Do";
"Later" = "Later";
"Return Receipt Sent" = "Return Receipt Sent";
"a2_Sunday" = "Su";
"a2_Monday" = "Mo";
"a2_Tuesday" = "Tu";
@@ -110,6 +118,16 @@
"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!";
/* SMIME Certificate field */
"S/MIME Certificate" = "S/MIME Certificate";
"Subject Name" = "Subject Name";
"Issuer" = "Issuer";
"countryName" = "Country";
"organizationName" = "Organization";
"organizationalUnitName" = "Organizational Unit";
"commonName" = "Common Name";
"emailAddress" = "Email Address";
/* Authentication username */
"Username" = "Username";
@@ -125,9 +143,20 @@
/* Error message displayed when a file upload exceeds WOMaxUploadSize */
"File size upload limit reached" = "File size upload limit reached";
/* Generic server error */
"An error occured, please try again." = "An error occured, please try again.";
/* Open datepicker */
"Open Calendar" = "Open Calendar";
/* Toggle visibility (ex: mail account in left navigation menu) */
"Toggle visibility" = "Toggle visibility";
"Keyboard Shortcuts" = "Keyboard Shortcuts";
/* Aria label for avatar button to select and unselect an item */
"Toggle item" = "Toggle item";
/* Toggle multiple items at the same time (hotkeys cheatsheet) */
"Toggle range of items" = "Toggle range of items";
@@ -137,6 +166,9 @@
/* Space key */
"key_space" = "space";
/* Delete key */
"key_delete" = "delete";
/* Shift and space key */
"key_shift+space" = "shift + space";
@@ -159,7 +191,7 @@
"key_shift+down" = "shift + ↓";
/* Backspace key */
"key_backspace" = "backspace";
"key_backspace" = "";
/* Hotkey to start a search */
"hotkey_search" = "s";

View File

@@ -31,7 +31,7 @@
"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?"
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
= "Tout utilisateur ayant un compte sur ce système aura accès à votre calendrier «%{0}». Voulez-vous vraiment faire confiance à tous ces utilisateurs?";
"Potentially anyone on the Internet will be able to access your calendar \"%{0}\", even if they do not have an account on this system. Is this information suitable for the public Internet?"
= "N'importe quel internaute aura potentiellement accès à votre calendrier «%{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é?";
@@ -57,7 +57,7 @@
"The user rights cannot be edited for this object!"
= "Les droits sur cet objet ne peuvent pas être édités.";
"A folder by that name already exists." = "Un dossier du même nom existe déjà.";
"You cannot create a list in a shared address book."
"You cannot create a list in a shared address book."
= "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.";
@@ -76,6 +76,13 @@
"Yes" = "Oui";
"No" = "Non";
/* generic messages */
"Error" = "Erreur";
"Success" = "Succès";
/* confirmation dialog box */
"Confirmation" = "Confirmation";
/* alarms */
"Reminder" = "Rappel";
"Start" = "Début";
@@ -97,6 +104,7 @@
"Personal" = "Personnel";
"To Do" = "À faire";
"Later" = "Peut attendre";
"Return Receipt Sent" = "Accusé de réception envoyé";
"a2_Sunday" = "Di";
"a2_Monday" = "Lu";
"a2_Tuesday" = "Ma";
@@ -110,6 +118,16 @@
"No such user." = "Aucun utilisateur trouvé.";
"You cannot (un)subscribe to a folder that you own!" = "Vous ne pouvez pas vous (dés)abonner à vos propres dossiers!";
/* SMIME Certificate field */
"S/MIME Certificate" = "Certificat S/MIME";
"Subject Name" = "Sujet";
"Issuer" = "Émetteur";
"countryName" = "Pays";
"organizationName" = "Société";
"organizationalUnitName" = "Unité organisationnelle";
"commonName" = "Identité";
"emailAddress" = "Adresse courriel";
/* Authentication username */
"Username" = "Nom d'utilisateur";
@@ -125,9 +143,20 @@
/* Error message displayed when a file upload exceeds WOMaxUploadSize */
"File size upload limit reached" = "Le fichier dépasse la taille limite permise";
/* Generic server error */
"An error occured, please try again." = "Une erreur est survenue, essayez à nouveau.";
/* Open datepicker */
"Open Calendar" = "Ouvrir le calendrier";
/* Toggle visibility (ex: mail account in left navigation menu) */
"Toggle visibility" = "Basculer l'affichage";
"Keyboard Shortcuts" = "Raccourcis clavier";
/* Aria label for avatar button to select and unselect an item */
"Toggle item" = "Basculer la sélection";
/* Toggle multiple items at the same time (hotkeys cheatsheet) */
"Toggle range of items" = "Basculer l'étendue des éléments";
@@ -137,6 +166,9 @@
/* Space key */
"key_space" = "espace";
/* Delete key */
"key_delete" = "Suppr.";
/* Shift and space key */
"key_shift+space" = "maj. + espace";
@@ -180,4 +212,4 @@
"Move backward" = "Avancer";
/* Hotkey description to move forward in current view */
"Move forward" = "Reculer";
"Move forward" = "Reculer";

View File

@@ -31,7 +31,7 @@
"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?"
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
= "Jeder Benutzer mit einem Konto auf diesem System wird in der Lage sein, auf Ihren Kalender \"%{0}\" zuzugreifen. Sind Sie sicher, dass Sie allen vertrauen?";
"Potentially anyone on the Internet will be able to access your calendar \"%{0}\", even if they do not have an account on this system. Is this information suitable for the public Internet?"
= "Jeder aus dem Internet wird in der Lage sein, auf Ihren Kalender \"%{0}\" zuzugreifen, selbst wenn jene Personen kein Konto auf diesem System haben. Sind diese Informationen für das öffentliche Internet gedacht?";
@@ -57,7 +57,7 @@
"The user rights cannot be edited for this object!"
= "Die Benutzerrechte können für dieses Objekt nicht verändert werden!";
"A folder by that name already exists." = "Ein Ordner mit diesem Namen existiert bereits.";
"You cannot create a list in a shared address book."
"You cannot create a list in a shared address book."
= "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.";
@@ -76,6 +76,13 @@
"Yes" = "Ja";
"No" = "Nein";
/* generic messages */
"Error" = "Fehler";
"Success" = "Erfolg";
/* confirmation dialog box */
"Confirmation" = "Bestätigung";
/* alarms */
"Reminder" = "Erinnerung";
"Start" = "Beginn";
@@ -97,6 +104,7 @@
"Personal" = "Persönlich";
"To Do" = "To-Do";
"Later" = "Später";
"Return Receipt Sent" = "Empfangsbestätigung gesendet";
"a2_Sunday" = "So";
"a2_Monday" = "Mo";
"a2_Tuesday" = "Di";
@@ -110,6 +118,16 @@
"No such user." = "Kein Benutzer gefunden";
"You cannot (un)subscribe to a folder that you own!" = "Sie können keinen Ordner abonnieren/abbestellen, den Sie besitzen!";
/* SMIME Certificate field */
"S/MIME Certificate" = "S/MIME-Zertifikat";
"Subject Name" = "Zertifikatsinhaber";
"Issuer" = "Aussteller";
"countryName" = "Land";
"organizationName" = "Organisation";
"organizationalUnitName" = "Organisationseinheit";
"commonName" = "Name";
"emailAddress" = "E-Mail";
/* Authentication username */
"Username" = "Benutzername";
@@ -125,9 +143,20 @@
/* Error message displayed when a file upload exceeds WOMaxUploadSize */
"File size upload limit reached" = "Maximale Dateigröße für das Hochladen erreicht";
/* Generic server error */
"An error occured, please try again." = "Es ist ein Fehler aufgetreten. Bitte versuchen Sie es nochmal.";
/* Open datepicker */
"Open Calendar" = "Kalender öffnen";
/* Toggle visibility (ex: mail account in left navigation menu) */
"Toggle visibility" = "Sichtbarkeit umschalten";
"Keyboard Shortcuts" = "Tastenkürzel";
/* Aria label for avatar button to select and unselect an item */
"Toggle item" = "Objekt umschalten";
/* Toggle multiple items at the same time (hotkeys cheatsheet) */
"Toggle range of items" = "Mehrere Punkte umschalten";
@@ -137,6 +166,9 @@
/* Space key */
"key_space" = "space";
/* Delete key */
"key_delete" = "Löschen";
/* Shift and space key */
"key_shift+space" = "Umschalt + Leerzeichen";
@@ -159,7 +191,7 @@
"key_shift+down" = "shift + ↓";
/* Backspace key */
"key_backspace" = "backspace";
"key_backspace" = "";
/* Hotkey to start a search */
"hotkey_search" = "s";
@@ -180,4 +212,4 @@
"Move backward" = "Zurück";
/* Hotkey description to move forward in current view */
"Move forward" = "Weiter";
"Move forward" = "Weiter";

View File

@@ -6,7 +6,7 @@
"Edit User Rights" = "Felhasználói jogosultságok";
"Home" = "Nyitólap";
"Calendar" = "Naptár";
"Address Book" = "Címjegyzék";
"Address Book" = "Címjegyzék";
"Mail" = "Levelezés";
"Preferences" = "Beállítások";
"Administration" = "Rendszerfelügyelet";
@@ -23,7 +23,7 @@
"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";
"Subscribe User" = "Felhasználó felíratása";
"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ó";
@@ -31,7 +31,7 @@
"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?"
"Any user with an account on this system will be able to access your calendar \"%{0}\". Are you certain you trust them all?"
= "A rendszer bármely felhasználója el tudja érni az alábbi naptárját: \"%{0}\". Biztos, hogy megbízik mindegyikükben?";
"Potentially anyone on the Internet will be able to access your calendar \"%{0}\", even if they do not have an account on this system. Is this information suitable for the public Internet?"
= "Lényegében bárki az interneten el tudja érni a(z) \"%{0}\" naptárját, még akkor is, ha nem rendelkezik fiókkal a rendszerben. Biztos, hogy a naptár publikus adatokat tartalmaz?";
@@ -44,20 +44,20 @@
/* generic.js */
"Unable to subscribe to that folder!"
= "A mappára nem lehet feliratkozni!";
= "A mappára nem lehet feliratkozni!";
"You cannot subscribe to a folder that you own!"
= "Saját tulajdonban lévő mappára nem lehet feliratkozni!";
= "Saját tulajdonban lévő mappára nem lehet feliratkozni!";
"Unable to unsubscribe from that folder!"
= "A mappáról nem lehet leiratkozni!";
= "A mappáról nem lehet leiratkozni!";
"You cannot unsubscribe from a folder that you own!"
= "Saját tulajdonban lévő mappáról nem lehet leiratkozni!";
= "Saját tulajdonban lévő mappáról nem lehet leiratkozni!";
"Unable to rename that folder!" = "A mappát nem lehet átnevezni!";
"You have already subscribed to that folder!"
= "Erre a mappára már feliratkozott!";
= "Erre a mappára már feliratkozott!";
"The user rights cannot be edited for this object!"
= "Ezen az objektumon nem szerkeszthetőek a felhasználói jogosultságok!";
"A folder by that name already exists." = "Ezzel a névvel már létezik mappa.";
"You cannot create a list in a shared address book."
"You cannot create a list in a shared address book."
= "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.";
@@ -76,6 +76,13 @@
"Yes" = "Igen";
"No" = "Nem";
/* generic messages */
"Error" = "Hiba";
"Success" = "Sikeres";
/* confirmation dialog box */
"Confirmation" = "Megerősítés";
/* alarms */
"Reminder" = "Emlékeztető";
"Start" = "Kezdés";
@@ -97,6 +104,7 @@
"Personal" = "Személyes";
"To Do" = "Teendő";
"Later" = "Később";
"Return Receipt Sent" = "Visszaigazolás elküldve";
"a2_Sunday" = "Va";
"a2_Monday" = "Hé";
"a2_Tuesday" = "Ke";
@@ -110,6 +118,16 @@
"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.";
/* SMIME Certificate field */
"S/MIME Certificate" = "S/MIME tanúsítvány";
"Subject Name" = "Tulajdonos";
"Issuer" = "Kibocsátó";
"countryName" = "Ország";
"organizationName" = "Szervezet";
"organizationalUnitName" = "Szervezeti egység";
"commonName" = "Általános név";
"emailAddress" = "Email cím";
/* Authentication username */
"Username" = "Felhasználónév";
@@ -125,9 +143,20 @@
/* Error message displayed when a file upload exceeds WOMaxUploadSize */
"File size upload limit reached" = "Elérte a maximális állomány feltöltési méretkorlátot";
/* Generic server error */
"An error occured, please try again." = "Hiba történt, próbálja újra.";
/* Open datepicker */
"Open Calendar" = "Naptár megnyitása";
/* Toggle visibility (ex: mail account in left navigation menu) */
"Toggle visibility" = "Láthatóság összecsukása";
"Keyboard Shortcuts" = "Gyorsbillentyűk";
/* Aria label for avatar button to select and unselect an item */
"Toggle item" = "Elem összecsukása";
/* Toggle multiple items at the same time (hotkeys cheatsheet) */
"Toggle range of items" = "Több elem módosítása";
@@ -137,6 +166,9 @@
/* Space key */
"key_space" = "space";
/* Delete key */
"key_delete" = "törlés";
/* Shift and space key */
"key_shift+space" = "shift + space";
@@ -159,7 +191,7 @@
"key_shift+down" = "shift + ↓";
/* Backspace key */
"key_backspace" = "backspace";
"key_backspace" = "";
/* Hotkey to start a search */
"hotkey_search" = "s";
@@ -180,4 +212,4 @@
"Move backward" = "Mozgatás vissza";
/* Hotkey description to move forward in current view */
"Move forward" = "Mozgatás előre";
"Move forward" = "Mozgatás előre";

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