Merge branch 'Alinto:master' into master

This commit is contained in:
adetk
2023-04-03 12:51:53 +06:00
committed by GitHub
547 changed files with 35073 additions and 17792 deletions
@@ -106,6 +106,7 @@
"Personal" = "Persönlich";
"To Do" = "To-Do";
"Later" = "Später";
"Forwarded" = "Weitergeleitet";
"Return Receipt Sent" = "Empfangsbestätigung gesendet";
"a2_Sunday" = "So";
"a2_Monday" = "Mo";
@@ -221,3 +222,11 @@
/* Hotkey description to move forward in current view */
"Move forward" = "Weiter";
/* Password Recovery */
"passwordRecovery_Disabled" = "Deaktiviert";
"passwordRecovery_SecretQuestion" = "Geheimfrage";
"passwordRecovery_SecretQuestion1" = "Wie lautet der Name Ihres ersten Haustiers?";
"passwordRecovery_SecretQuestion2" = "Was war Ihr erstes Auto?";
"passwordRecovery_SecretQuestion3" = "Wie lautet Ihr Lieblingsfilm?";
"passwordRecovery_SecondaryEmail" = "Zweit-E-Mail";
@@ -222,3 +222,11 @@
/* Hotkey description to move forward in current view */
"Move forward" = "Mozgatás előre";
/* Password Recovery */
"passwordRecovery_Disabled" = "Letiltva";
"passwordRecovery_SecretQuestion" = "Biztonsági kérdés";
"passwordRecovery_SecretQuestion1" = "Mi a neve az első kisállatodnak?";
"passwordRecovery_SecretQuestion2" = "Mi volt az első autód típusa?";
"passwordRecovery_SecretQuestion3" = "Mi a kedvenc filmed?";
"passwordRecovery_SecondaryEmail" = "Másodlagos email cím";
+6
View File
@@ -26,6 +26,7 @@
#import <SOGo/NSDictionary+Utilities.h>
#import <SOGo/NSString+Utilities.h>
#import <SOGo/SOGoSystemDefaults.h>
#import <Contacts/SOGoContactGCSFolder.h>
@@ -91,4 +92,9 @@
return response;
}
- (BOOL) isEasUIEnabled
{
return ![[SOGoSystemDefaults sharedSystemDefaults] isEasUIDisabled];
}
@end
+1 -1
View File
@@ -448,7 +448,7 @@
"Mark as Unread" = "Marquer comme non-lu";
"Mark as Read" = "Marquer comme lu";
"Closing Window ..." = "Fermer la fenêtre...";
"Tried to send too many mails. Please wait." = "Vous avez envoyé trop de courriels. Veillez patienter.";
"Tried to send too many mails. Please wait." = "Vous avez envoyé trop de courriels. Veuillez patienter.";
"View Mail" = "Voir le courriel";
"This message contains external images." = "Ce message contient des images externes.";
"Expanded" = "Ouvert";
+2 -2
View File
@@ -8,7 +8,7 @@
"Expunge" = "Expunge";
"Forward" = "Weiterleiten";
"Get Mail" = "Abrufen";
"Junk" = "Junk";
"Junk" = "Spam";
"Not junk" = "Kein Spam";
"Reply" = "Antworten";
"Reply All" = "Allen Antworten";
@@ -39,7 +39,7 @@
"Print this message" = "Gewählte Nachricht drucken";
"Stop the current transfer" = "Derzeitige Übertragung stoppen";
"Attachment" = "Anhang";
"Unread" = "Ungelesene";
"Unread" = "Ungelesen";
"Flagged" = "Markiert";
"Search multiple mailboxes" = "In mehreren Postfächern suchen";
@@ -129,8 +129,8 @@
"Return Receipt" = "Уведомление о вручении";
"Choose which identity to send this message from" = "Выберите, с каким идентификатором отправить это сообщение";
"The sender of this message has asked to be notified when you read this message. Do you with to notify the sender?" = "Отправитель этого сообщения запросил уведомление о прочтении. Отправить уведомление?";
"Return Receipt (displayed) - %@"= "Уведомление о вручении (отображается на дисплее) -% @";
"This is a Return Receipt for the mail that you sent to %@.\n\nNote: This Return Receipt only acknowledges that the message was displayed on the recipient's computer. There is no guarantee that the recipient has read or understood the message contents." = "This is a Return Receipt for the mail that you sent to %@.\n\nNote: This Return Receipt only acknowledges that the message was displayed on the recipient's computer. There is no guarantee that the recipient has read or understood the message contents.";
"Return Receipt (displayed) - %@"= "Уведомление о вручении (отображено на дисплее) - %@";
"This is a Return Receipt for the mail that you sent to %@.\n\nNote: This Return Receipt only acknowledges that the message was displayed on the recipient's computer. There is no guarantee that the recipient has read or understood the message contents." = "Это уведомление о прочтении сообщения, которое Вы отправили на адрес %@.\n\nПримечание: Это уведомление о прочтении означает лишь то, что сообщение было отображено на компьютере получателя. Оно не гарантирует того, что получатель прочёл или понял содержимое сообщения.";
"Security" = "Безопасность";
"Sign" = "Подписать";
"Encrypt" = "Зашифровать";
+40 -2
View File
@@ -42,6 +42,7 @@
#import <SOGo/NSDictionary+Utilities.h>
#import <SOGo/NSString+Utilities.h>
#import <SOGo/WOResourceManager+SOGo.h>
#import <SOGo/NGMimeBodyPart+SOGo.h>
#import <SOGoUI/UIxComponent.h>
#import <Mailer/SOGoDraftObject.h>
#import <Mailer/SOGoMailObject+Draft.h>
@@ -702,6 +703,40 @@ static NSArray *infoKeys = nil;
return [[self attachmentAttrs] count] > 0 ? YES : NO;
}
/*
* This method replace cid images in body with base64 inline image data
*/
- (void) setBase64ImagesInText:(SOGoDraftObject *) draft
{
NSString *contentId, *lText;
NGMimeBodyPart *mime;
if ([self isHTML] && [[draft fetchAttachmentAttrs] count] > 0) {
for (NSDictionary *draftFileAttachement in [draft fetchAttachmentAttrs]) {
mime = [draftFileAttachement objectForKey: @"part"];
if ([mime isImage]) {
contentId = [mime contentId];
if (contentId) {
contentId = [contentId stringByReplacingOccurrencesOfString: @"<" withString: @"cid:"];
contentId = [contentId stringByReplacingOccurrencesOfString: @">" withString: @""];
if ([[mime encoding] isEqualToString: @"base64"] && contentId) {
lText = [text stringByReplacingOccurrencesOfString: contentId
withString: [NSString stringWithFormat: @"data:%@;base64,%@",
[[mime contentType] stringValue],
[NSString stringWithUTF8String: [[mime body] bytes]]]];
[self setText: lText];
} else {
[self warnWithFormat: @"Empty content id [1] : %@", contentId];
}
} else {
[self warnWithFormat: @"Empty content id [2] : %@", contentId];
}
}
}
}
}
- (id <WOActionResults>) editAction
{
id <WOActionResults> response;
@@ -720,7 +755,6 @@ static NSArray *infoKeys = nil;
data = [NSMutableDictionary dictionaryWithObjectsAndKeys:
[self localeCode], @"locale",
[NSNumber numberWithBool: [self isHTML]], @"isHTML",
text, @"text",
nil];
if ((value = [self from]))
[data setObject: value forKey: @"from"];
@@ -737,6 +771,10 @@ static NSArray *infoKeys = nil;
if ((value = [self attachmentAttrs]))
[data setObject: value forKey: @"attachmentAttrs"];
[self setBase64ImagesInText: co];
[data setObject: text forKey: @"text"];
response = [self responseWithStatus: 200
andString: [data jsonRepresentation]];
@@ -834,7 +872,7 @@ static NSArray *infoKeys = nil;
[self labelForKey: @"Tried to send too many mails. Please wait."],
@"message",
nil];
return [self responseWithStatus: 200
return [self responseWithStatus: 405
andString: [jsonResponse jsonRepresentation]];
}
+2 -1
View File
@@ -697,7 +697,8 @@ static NSString *mailETag = nil;
toRecipients: [NSArray arrayWithObject: email]
sender: [self _matchingIdentityEMail]
withAuthenticator: [self authenticatorInContext: context]
inContext: context])
inContext: context
systemMessage: YES])
[self _flagMessageWithMDNSent];
}
+38 -2
View File
@@ -6,11 +6,28 @@
"Domain" = "النطاق";
"Remember username" = "تذكر اسم المستخدم";
"Connect" = "اتصل";
/* Appears while authentication is in progress */
"Authenticating" = "Authenticating";
/* Appears when authentication succeeds */
"Welcome" = "Welcome";
"Authentication Failed" = "Authentication Failed";
"Wrong username or password." = "اسم المستخدم أو كلمة المرور خطأ.";
"Retry" = "Retry";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "لا يمكنك الدخول لأنه تم تعطيل الكوكيز بالمتصفح الخاص بك . يرجى تمكين الكوكيز في إعدادات المتصفح الخاص بك وحاول مرة أخرى.";
"browserNotCompatible" = "لقد اكتشفنا ان إصدار المتصفح الخاص بك غير معتمد على هذا الموقع. نحن نوصي بإستخدام فايرفوكس. انقر على الرابط أدناه لتحميل الإصدار الأحدث من هذا المتصفح.";
"alternativeBrowsers" = "بدلا من ذلك، يمكنك أيضا استخدام المتصفحات التالية المتوافقة";
"alternativeBrowserSafari" = "بدلا من ذلك، يمكنك أيضا استخدام سفاري.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "نزِّل";
"Language" = "اللغة";
"choose" = "إختار ...";
@@ -22,7 +39,6 @@
"ChineseChina" = "简体中文";
"ChineseTaiwan" = "Chinese (Taiwan)";
"Croatian" = "Hrvatski";
"Croatian" = "Hrvatski";
"Czech" = "Česky";
"Danish" = "Dansk (Danmark)";
"Dutch" = "Nederlands";
@@ -58,8 +74,9 @@
"TurkishTurkey" = "Türkçe (Türkiye)";
"Ukrainian" = "Українська";
"Welsh" = "Cymraeg";
"About" = "حول";
"AboutBox" = "قام بالبرمجة شركة إنفرز، سوجو هو برنامج خدمي كامل المزايا مع التركيز على التوسع والبساطة. <br/> ⏎\nسوجو يوفر واجهة غنية بتقنية AJAX ويدعم متصفحات متعددة من خلال استخدام البروتوكولات القياسية مثل اCalDAV وCardDAV. <br/> ⏎\nسوجو موزع بموجب <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> النسخة 2 او الاحدث وبعض الاجزاء موزعة تحت GNU GPL النسخة 2. هذا البرنامج مجاني: أنت حر في تغييره وإعادة توزيعه. لا يوجد أي ضمان، إلى الحد الذي يسمح به القانون. <br/> ⏎\nانظر <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> لخيارات الدعم المختلفة.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "تم وقف الدخول على حسابك بسبب الكثير من المحاولات الفاشلة.";
"Your account was locked due to an expired password." = "تم وقف الدخول على حسابك بسبب إنتهاء صلاحية كلمة السر.";
"Login failed due to unhandled error case" = "فشل تسجيل الدخول بسبب حالة خطأ غير معروفة";
@@ -90,3 +107,22 @@
"Confirmation" = "تأكيد";
"Cancel" = "إلغاء";
"Please wait..." = "يرجى الانتظار ...";
"Close" = "Close";
"Missing search parameter" = "Missing search parameter";
"Missing type parameter" = "Missing type parameter";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+39 -3
View File
@@ -6,11 +6,28 @@
"Domain" = "Domeinua";
"Remember username" = "Gogoratu erabiltzaile-izena";
"Connect" = "Konektatu";
/* Appears while authentication is in progress */
"Authenticating" = "Authenticating";
/* Appears when authentication succeeds */
"Welcome" = "Welcome";
"Authentication Failed" = "Authentication Failed";
"Wrong username or password." = "Erabiltzaile edo pasahitz okerrak";
"Retry" = "Retry";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "Ezin zara sartu zure arakatzailearen 'cookie'-ak desgaituta daudelako. Mesedez, gaitu 'cookie'-ak zure arakatzailearen ezarpenetan.";
"browserNotCompatible" = "Zure arakatzailearen bertsioa ez da onartzen webgune honetan. Gure gomendioa Firefox erabiltzea da. Klikatu ondorengo estekan arakatzaile honen bertsio berriena jeisteko.";
"alternativeBrowsers" = "Aukeran, honako beste arakatzaileak erabili ditzakezu";
"alternativeBrowserSafari" = "Aukeran, Safari arakatzailea erabili dezakezu ere.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Deskargatu";
"Language" = "Hizkuntza";
"choose" = "Aukeratu ...";
@@ -22,7 +39,6 @@
"ChineseChina" = "简体中文";
"ChineseTaiwan" = "Chinese (Taiwan)";
"Croatian" = "Hrvatski";
"Croatian" = "Hrvatski";
"Czech" = "Česky";
"Danish" = "Dansk (Danmark)";
"Dutch" = "Nederlands";
@@ -58,8 +74,9 @@
"TurkishTurkey" = "Türkçe (Türkiye)";
"Ukrainian" = "Українська";
"Welsh" = "Cymraeg";
"About" = "Honi buruz";
"AboutBox" = "Inverse-k garatua. SOGo ezaugarri guztidun groupware zerbitzaria da, eskalagarritasunean eta simpletasunean bideratzen dena.<br/><br/>\nSOGo-k AJAX-ean oinarritutako web interfaze aberatsa eskeintzen du eta jatorrizko bezero anitz onartzen ditu ValDAv eta CardDAV bezalako protokolo estandarrak erabiliz. <br/><br/>\nSOGo <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> 2. bertsio edo berriago lizentziapean dago banatua, eta honen zatiak GNU LGPL 2. bertsio lizentziapean. Software librea da: Askatasun osoa daukazu aldatu eta banatzeko. EZ dago inolako GARANTIARIK, legeak onartzen duen neurrian.<br/><br/>\nLaguntza aukera ezberdinak ikusteko klikatu <a href=\"http://www.sogo.nu/en/support/community.html\">hemen</a> ";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Zure kontua blokeatuta dago saiakera oker gehiegi egiteagatik.";
"Your account was locked due to an expired password." = "Zure kontua blokeatuta dago pasahitza iraungita dagoelako.";
"Login failed due to unhandled error case" = "Login-ak hutsegin du landu gabeko akats-kasu batengatik";
@@ -86,7 +103,26 @@
"Unhandled error response" = "Landu gabeko errore erantzuna";
"Password change is not supported." = "Pasahitz aldaketa ez dago onartua.";
"Unhandled HTTP error code: %{0}" = "Landu gabeko HTTP errore kodea: %{0}";
"New password:" = "Pasahitz berria";
"New password" = "New password";
"Confirmation" = "Berrespena";
"Cancel" = "Ezeztatu";
"Please wait..." = "Itxaron mesedez...";
"Close" = "Close";
"Missing search parameter" = "Missing search parameter";
"Missing type parameter" = "Missing type parameter";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+17 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Više o";
"AboutBox" = "SOGo je rješenje koje je razvila firma Inverse, s fokusom na skaliranje i jednostavnost posjeduje punu funkcionalnost za upravljanje grupama i timovima.<br/><br/>\nSOGo nudi bogat AJAX-bazirani Web interfejs i podržava višen E-mail klijenata koji koriste standardne protokole kao što su CalDAV i CardDAV.<br/><br/>\nSOGo se distribuira pod licencom <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> verzija 2 ili novija, dok neki dijelovi su distribuirani pod licencom GNU LGPL verzija 2. Ovo je slobodan/besplatan softvere: možete da ga modifikujete i redistribuirate. Ne postoji garancija za softvare, u mjeri u kojoj je to definirano zakonom.<br/><br/>\nPogledajte <a href=\"http://www.sogo.nu/en/support/community.html\"> ovu stranicu </a> za mogućnosti podrške.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Vaš račun je zaključan zbog više neuspješnih prijava.";
"Your account was locked due to an expired password." = "Vaš račun je zaključan jer vam je šifra istekla.";
"Login failed due to unhandled error case" = "Neuspješna prijava zbog greške.";
@@ -110,3 +110,19 @@
"Close" = "Zatvoriti";
"Missing search parameter" = "Nedostaje parametar za traženje";
"Missing type parameter" = "Nedostaje tip parametra";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Sobre";
"AboutBox" = "Desenvolvido por Inverse, Sogo é um servidor de groupware cheio de recursos com foco em escalabilidade e simplicidade.\nSogo fornece uma interface Web baseada em AJAX ricos e suporta vários clientes nativos através da utilização de protocolos padrão como CalDAV e CardDAV.\nSogo é distribuído sob a GNU GPL <a href=\"http://gnu.org/licenses/gpl.html\"> </a> versão 2 ou posterior e as partes são distribuídos sob a GNU LGPL versão 2. Este é um software livre: você é livre para mudar e redistribuí-lo. Não há NENHUMA GARANTIA, até o limite permitido por lei.\nVeja <a href=\"http://www.sogo.nu/en/support/community.html\"> desta página</a> para várias opções de suporte.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Sua conta foi bloqueada devido a muitas tentativas fracassadas.";
"Your account was locked due to an expired password." = "Sua conta foi bloqueada devido a uma senha expirada.";
"Login failed due to unhandled error case" = "O Login falhou pelo seguinte erro";
@@ -110,3 +110,19 @@
"Close" = "Fechar";
"Missing search parameter" = "Faltando parâmetro de pesquisa";
"Missing type parameter" = "Faltando tipo de parâmetro";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+17 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Относно";
"AboutBox" = "Разработката на Inverse, SOGo е пълнофункционален за групов сървър с насоченост към надграждане и простота.<br/><br/>\nSOGo предоставя богат AJAX базиран Web интерфейс и поддържа множество клиенти чрез използването на стандартни протоколи като CalDAV и CardDAV.<br/><br/>\nSOGo се разпространява под <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> версия 2 или последен и част от него се разпространява под GNU LGPL версия 2. Това е свободен софтуер: имате свободата за промени и да разпространявате. НЯМА ГАРАНЦИЯ, до степента, позволена от закона.<br/><br/>\nВиж <a href=\"http://www.sogo.nu/en/support/community.html\">тази страница</a> за поддръжка на различни опции.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Профилът ви беше заключен поради твърде много неуспешни опити.";
"Your account was locked due to an expired password." = "Профилът ви беше заключен поради изтекла парола.";
"Login failed due to unhandled error case" = "Влизането се провали поради непредвидена грешка";
@@ -110,3 +110,19 @@
"Close" = "Затваряне";
"Missing search parameter" = "Липсващ параметър търсене";
"Missing type parameter" = "Липсващ параметър тип";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+18 -1
View File
@@ -26,6 +26,7 @@
"Verification Code" = "Codi de verificació";
"Enter the 6-digit verification code from your TOTP application." = "Introdueix el codi de verificació de 6 dígits de l'aplicació Google Authenticator.";
"You provided an invalid TOTP key." = "Has proporcionat una clau de Google Authenticator invàlida.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Descàrrega";
"Language" = "Llengua";
@@ -75,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Informació";
"AboutBox" = "Desenvolupat per Inverse, Sogo és un servidor amb totes les funcions de treball en grup amb un enfocament en la escalabilitat i simplicitat. <br/> ⏎ Sogo ofereix una rica interfície web basada en AJAX i suporta múltiples clients natius mitjançant l'ús de protocols estàndard, com CalDAV i CardDAV. <br/> ⏎ Sogo es distribueix sota la <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</ a> versió 2 o posterior, i parts es distribueixen sota la llicència GNU LGPL versió 2. Aquest és programari lliure: és lliure de canviar i redistribuir. NO hi ha cap garantia, en la mesura permesa per la llei. <br/> ⏎ Veure <a href = \"http://www.sogo.nu/en/support/community.html\"> aquesta pàgina</ a> per a les opcions de suport.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "El vostre compte ha estat bloquejat per un excés d'intents fallits.";
"Your account was locked due to an expired password." = "El vostre compte ha estat bloquejat perquè la contrasenya ha caducat.";
"Login failed due to unhandled error case" = "Connexió fallida a causa d'un error inesperat";
@@ -109,3 +110,19 @@
"Close" = "Tancar";
"Missing search parameter" = "Falten paràmetres de cerca";
"Missing type parameter" = "Falta el paràmetre de tipus";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
@@ -16,10 +16,18 @@
"Authentication Failed" = "认证失败";
"Wrong username or password." = "用户名或口令错误。";
"Retry" = "请重试";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "浏览器cookies无效,不能登录。请确定浏览器选项中cookies已启用。";
"browserNotCompatible" = "目前系统不支持您使用的浏览器。我们推荐使用Firefox。点击下面链接下载最新版浏览器。";
"alternativeBrowsers" = "或者,您可以使用下面的兼容浏览器";
"alternativeBrowserSafari" = "或者,您可以使用Safari。";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "下载";
"Language" = "语言";
"choose" = "选择…";
@@ -68,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "关于";
"AboutBox" = "SOGo作为Inverse开发的产品, 是一款专注于可扩展及高易用性的全机能协作服务器软件。<br/><br/>\nSOGo 基于 AJAX,通过标准协议,如CalDAVCardDAV,支持多种本地客户端。<br/><br/>\n SOGo 基于<a href=\"http://gnu.org/licenses/gpl.html\"> GNU GPL</a> version 2 或新版发布,并且部分基于GNU LGPL version 2: 这是一款自由软件,你可以在法律的允许范围内自由的修改发布。<br/><br/>\n请到<a href=\"http://www.sogo.nu/en/support/community.html\">这里</a>查看更多支持选项。";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "错误次数上限,您的账户已被锁定。请联系管理员解锁。";
"Your account was locked due to an expired password." = "您的账户因密码到期而锁定。";
"Login failed due to unhandled error case" = "未知错误,登录失败";
@@ -102,3 +110,19 @@
"Close" = "关闭";
"Missing search parameter" = "缺少搜索参数";
"Missing type parameter" = "缺少类型参数";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
@@ -6,11 +6,28 @@
"Domain" = "Domain";
"Remember username" = "Remember username";
"Connect" = "Connect";
/* Appears while authentication is in progress */
"Authenticating" = "Authenticating";
/* Appears when authentication succeeds */
"Welcome" = "Welcome";
"Authentication Failed" = "Authentication Failed";
"Wrong username or password." = "Wrong username or password.";
"Retry" = "Retry";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "You cannot login because your browser's cookies are disabled. Please enable cookies in your browser's settings and try again.";
"browserNotCompatible" = "We've detected that your browser version is currently not supported on this site. Our recommendation is to use Firefox. Click on the link below to download the most current version of this browser.";
"alternativeBrowsers" = "Alternatively, you can also use the following compatible browsers";
"alternativeBrowserSafari" = "Alternatively, you can also use Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Download";
"Language" = "Language";
"choose" = "Choose ...";
@@ -22,7 +39,6 @@
"ChineseChina" = "简体中文";
"ChineseTaiwan" = "Chinese (Taiwan)";
"Croatian" = "Hrvatski";
"Croatian" = "Hrvatski";
"Czech" = "Česky";
"Danish" = "Dansk (Danmark)";
"Dutch" = "Nederlands";
@@ -58,11 +74,9 @@
"TurkishTurkey" = "Türkçe (Türkiye)";
"Ukrainian" = "Українська";
"Welsh" = "Cymraeg";
"About" = "About";
"AboutBox" = "Developed by Inverse, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>
SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>
SOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>
See <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Your account was locked due to too many failed attempts.";
"Your account was locked due to an expired password." = "Your account was locked due to an expired password.";
"Login failed due to unhandled error case" = "Login failed due to unhandled error case";
@@ -93,3 +107,22 @@ See <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for v
"Confirmation" = "Confirmation";
"Cancel" = "Cancel";
"Please wait..." = "Please wait...";
"Close" = "Close";
"Missing search parameter" = "Missing search parameter";
"Missing type parameter" = "Missing type parameter";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+25 -1
View File
@@ -16,10 +16,18 @@
"Authentication Failed" = "Provjera autentičnosti nije uspjela";
"Wrong username or password." = "Pogrešno korisničko ime ili lozinka";
"Retry" = "Ponovni pokušaj";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "Ne možete se prijaviti jer su kolačići preglednika onemogućeni. Molimo omogućite kolačiće u postavkama preglednika i pokušajte ponovno.";
"browserNotCompatible" = "Otkrili smo da verzija vašeg preglednika trenutno nije podržana na ovoj stranici. Naša preporuka je da koristite Firefox. Kliknite na link ispod da preuzmete najnoviju verziju tog preglednika.";
"alternativeBrowsers" = "Alternativno možete koristiti i sljedeće kompatibilne preglednike";
"alternativeBrowserSafari" = "Alternativno možete koristiti Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Preuzimanje";
"Language" = "Jezik";
"choose" = "Odaberi...";
@@ -68,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "o";
"AboutBox" = "Developed by Inverse, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Vaš korisnički račun je zaključan zbog previše neuspjelih pokušaja.";
"Your account was locked due to an expired password." = "Vaš korisnički račun je zaključan jer Vam je lozinka istekla..";
"Login failed due to unhandled error case" = "Prijava nije uspjela zbog neobrađene greške";
@@ -102,3 +110,19 @@
"Close" = "Zatvori";
"Missing search parameter" = "Nedostaje parametar za pretraživanje ";
"Missing type parameter" = "Nedostaje vrsta parametra";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+18 -1
View File
@@ -26,6 +26,7 @@
"Verification Code" = "Ověřovací kód";
"Enter the 6-digit verification code from your TOTP application." = "Zadejte 6-ti místný číselný ověřovací kód z Vaší aplikace Google Authenticator.";
"You provided an invalid TOTP key." = "Zadali jste neplatný ověřovací kód z Google Authenticator.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Stáhnout";
"Language" = "Jazyk";
@@ -75,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "O aplikaci";
"AboutBox" = "SOGo je plně vybavený groupwarový server vyvíjený Inverse, který je zaměřený na jednoduchost a škálovatelnost.<br/><br/>\nSOGo poskytuje bohaté webové prostředí založené na technologii AJAX a podporuje i mnoho kalendářových klientů pracujících se standardními protokoly CalDAV a CardDAV.<br/><br/>\nSOGo je distribuováno pod licencí <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> verze 2 nebo novější a některé části jsou distribuovány pod licencí GNU LGPL verze 2. Toto je svobodný software: můžete ho svobodně měnit a šířit dále. Neexistuje ŽÁDNÁ ZÁRUKA v rozsahu upraveném zákonem.<br/><br/>\nRůzné možnosti podpory naleznete na <a href=\"http://www.sogo.nu/en/support/community.html\">této stránce</a>.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Váš účet byl zablokován z důvodu mnoha neúspěšných pokusů o přihlášení.";
"Your account was locked due to an expired password." = "Váš účet byl zablokován z důvodu expirovaného hesla.";
"Login failed due to unhandled error case" = "Přihlášení selhalo z důvodu chyby";
@@ -109,3 +110,19 @@
"Close" = "Zavřít";
"Missing search parameter" = "Chybějící parametr hledání";
"Missing type parameter" = "Chybějící parametr typ";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+1 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Om";
"AboutBox" = "Developed by Inverse, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>SOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>⏎ See <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"AboutBox" = "Udviklet af Inverse og Alinto, SOGo er en fuldt udstyret groupware-server med fokus skalerbarhed og enkeldhed.<br/><br/>\nSOGo leverer en rig AJAX-baseret webgrænseglade og understøtter flere indbyggede klienter gennem brug af standard protokoller såsom CalDAV og CardDAV.<br/><br/>\nSOGo distribueres under <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 eller nyere, og dele distribueres under GNU LGPL version 2. Dette er gratis software: du er fri til at ændre og omdistribuere den. Der er INGEN GARANTI, i det omfang loven tillader det.<br/><br/>\nSe <a href=\"http://www.sogo.nu/en/support/community.html\"> denne side</a> for forskellige supportmuligheder.";
"Your account was locked due to too many failed attempts." = "Din konto er låst på grund af for mange mislykkede forsøg.";
"Your account was locked due to an expired password." = "Din konto er låst på grund af en udløbet adgangskode.";
"Login failed due to unhandled error case" = "Login mislykkedes på grund af denne fejl";
+17 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Over";
"AboutBox" = "SOGO is een volledig uitgeruste groupware server met focus op schaalbaarheid en eenvoud ontwikkeld door Inverse.<br/><br/>SOGO biedt een rijke AJAX-gebaseerde web-interface en ondersteunt meerdere native clients door gebruik van standaard protocollen als CalDAV en CardDAV.<br/><br/>SOGO wordt gedistribueerd onder de <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> versie 2 of hoger en onderdelen worden verspreid onder de GNU LGPL versie 2. Dit is vrije software: je bent vrij om het te veranderen en verspreiden. Er is GEEN GARANTIE, voor zover toegestaan door de wet.<br/><br/>Zie <a href=\"http://www.sogo.nu/en/support/community.html\">deze pagina</a> voor diverse support opties.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Uw account is geblokkeerd wegens te veel mislukte pogingen.";
"Your account was locked due to an expired password." = "Uw account is geblokkeerd wegens een verlopen wachtwoord.";
"Login failed due to unhandled error case" = "Inloggen mislukt wegens onverwerkte fout";
@@ -110,3 +110,19 @@
"Close" = "Sluiten";
"Missing search parameter" = "Ontbrekende zoekparameter";
"Missing type parameter" = "Ontbrekende typeparameter";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+1 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "About";
"AboutBox" = "Developed by Inverse, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>
SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>
SOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>
See <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
+25 -1
View File
@@ -16,10 +16,18 @@
"Authentication Failed" = "Tunnistautuminen epäonnistui";
"Wrong username or password." = "Väärä käyttäjätunnus tai salasana.";
"Retry" = "Yritä uudelleen";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "Et voi kirjautua koska selaimesi evästeet eivät ole käytössä. Salli evästeet selaimen asetuksista ja yritä uudelleen.";
"browserNotCompatible" = "Olemme havainneet että selaimesi versiota ei tällä hetkellä tueta tällä sivustolla. Suosituksemme on käyttää Firefoxia. Napsauta alla olevaa linkkiä ladataksesi uusimman version tästä selaimesta.";
"alternativeBrowsers" = "Vaihtoehtoisesti voit myös käyttää seuraavia yhteensopivia selaimia";
"alternativeBrowserSafari" = "Vaihtoehtoisesti voit myös käyttää Safaria.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Lataa";
"Language" = "Kieli";
"choose" = "Valitse ...";
@@ -68,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Tietoa";
"AboutBox" = "Kehittänyt Inverse, SOGo on täysiverinen groupware palvelin jossa on keskitytty skaalautuvuuteen ja yksinkertaisuuteen. <br/><br/>SOGo tarjoaa rikkaan AJAX-pohjaisen web-käyttöliittymän ja tukee useita natiivi asiakasohjelmistoja käyttämällä protokolla standardeja kuten CalDAV ja CardDAV. <br/> ⏎ SOGon jakelu tapahtuu <a href=\"http://gnu.org/licenses/gpl.html\"> GNU GPL </ a> version 2 tai uudempi lisenssillä ja osat jaetaan GNU LGPL version 2 lisenssillä. Tämä on vapaa ohjelma: voit vapaasti muuttaa ja jakaa sitä edelleen. Ohjelmistolla EI OLE TAKUUTA lain sallimissa puitteissa. <br/> ⏎ Katso <a href=\"http://www.sogo.nu/en/support/community.html\"> tämä sivu </> saadaksesi tietoa eri tukivaihtoehdoista.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Tilisi on lukittu liian monen epäonnistuneen yrityksen vuoksi.";
"Your account was locked due to an expired password." = "Tilisi on lukittu vanhentuneen salasanan vuoksi.";
"Login failed due to unhandled error case" = "Sisäänkirjaus epäonnistui käsittelemättömään virheeseen";
@@ -102,3 +110,19 @@
"Close" = "Sulje";
"Missing search parameter" = "Puuttuva hakuehto";
"Missing type parameter" = "Puuttuva tyyppiehto";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+1 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "À propos";
"AboutBox" = "Développé par la compagnie Inverse, SOGo est un collecticiel complet mettant l'emphase sur la simplicité et l'extensibilité.<br/><br/>\nSOGo propose une interface Web moderne basée sur AJAX ainsi qu'un accès par de nombreux clients natifs (comme Mozilla Thunderbird et Lightning et Apple iCal) par l'utilisation de protocoles standards tel que CalDAV et CardDAV.<br/><br/>\nCe programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier conformément aux dispositions de la <a href=\"http://gnu.org/licenses/gpl.html\">Licence Publique Générale GNU</a>, telle que publiée par la Free Software Foundation ; version 2 de la licence, ou encore (à votre choix) toute version ultérieure. Ce programme est distribué dans lespoir quil sera utile, mais SANS AUCUNE GARANTIE.<br/><br/>\nPlusieurs <a href=\"http://www.sogo.nu/en/support/community.html\">types de soutien</a> sont offerts.";
"AboutBox" = "Développé par la compagnie Inverse et Alinto, SOGo est un collecticiel complet mettant l'emphase sur la simplicité et l'extensibilité.<br/><br/>\nSOGo propose une interface Web moderne basée sur AJAX ainsi qu'un accès par de nombreux clients natifs (comme Mozilla Thunderbird et Lightning et Apple iCal) par l'utilisation de protocoles standards tel que CalDAV et CardDAV.<br/><br/>\nCe programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier conformément aux dispositions de la <a href=\"http://gnu.org/licenses/gpl.html\">Licence Publique Générale GNU</a>, telle que publiée par la Free Software Foundation ; version 2 de la licence, ou encore (à votre choix) toute version ultérieure. Ce programme est distribué dans lespoir quil sera utile, mais SANS AUCUNE GARANTIE.<br/><br/>\nPlusieurs <a href=\"http://www.sogo.nu/en/support/community.html\">types de soutien</a> sont offerts.";
"Your account was locked due to too many failed attempts." = "Votre compte a été bloqué suite à un nombre élevé de tentatives d'authentification infructueuses.";
"Your account was locked due to an expired password." = "Votre compte a été bloqué car votre mot de passe est expiré.";
"Login failed due to unhandled error case" = "Authentification a échouée pour une raison inconnue";
+18 -2
View File
@@ -18,7 +18,7 @@
"Retry" = "Erneut versuchen";
"Login failed due to unhandled error case:" = "Anmeldung ist wegen folgendem unbehandelten Fehler fehlgeschlagen:";
"cookiesNotEnabled" = "Anmeldung an SOGo ist nicht möglich, da Cookies in Ihrem Browser deaktiviert sind. Bitte aktivieren Sie Cookies in Ihrem Browser und versuchen Sie es erneut.";
"browserNotCompatible" = "Wir haben festgestellt, dass Ihre Browserversion im Moment nicht von SOGo unterstützt wird. Wir empfehlen Firefox zu verwenden. Klicken Sie unten auf den Link, um die aktuelle Version dieses Browsers zu installieren.";
"browserNotCompatible" = "Wir haben festgestellt, dass Ihre Browser-Version im Moment nicht von SOGo unterstützt wird. Wir empfehlen Firefox zu verwenden. Klicken Sie unten auf den Link, um die aktuelle Version dieses Browsers zu installieren.";
"alternativeBrowsers" = "Sie können auch die folgenden Browser benutzen";
"alternativeBrowserSafari" = "Sie können auch Safari benutzen.";
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Über";
"AboutBox" = "Entwickelt von Inverse. SOGo ist ein vollständiger Groupware-Server mit Fokus auf Skalierbarkeit und Unkompliziertheit.<br/><br/>\nSOGo bietet ein umfangreiches, auf AJAX basierendes Web-Interface. Durch die Verwendung von Protokollstandards wie etwa CalDAV und CardDAV werden verschiedene native Clients unterstützt.<br/><br/>\nSOGo wird unter der <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPLv2</a> oder höher, Teile unter der <a href=\"http://gnu.org/licenses/lgpl.html\">GNU LGPLv2</a> angeboten. Dies ist freie Software: Sie haben die Freiheit sie zu verändern und erneut zu verbreiten. Es besteht KEINE GEWÄHRLEISTUNG, soweit dies gesetzlich zulässig ist.<br/><br/>\nAuf <a href=\"http://www.sogo.nu/en/support/community.html\">dieser Seite</a> (in englischer Sprache) können Sie sich über weitere Support-Möglichkeiten informieren.";
"AboutBox" = "Entwickelt von Inverse und Alinto. SOGo ist ein vollständiger Groupware-Server mit Fokus auf Skalierbarkeit und Unkompliziertheit.<br/><br/>\nSOGo bietet ein umfangreiches, auf AJAX basierendes Web-Interface. Durch die Verwendung von Protokollstandards wie etwa CalDAV und CardDAV werden verschiedene native Clients unterstützt.<br/><br/>\nSOGo wird unter der <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> Version 2 oder höher, und Teile unter der GNU LGPL Version 2 angeboten. Dies ist freie Software: Sie haben die Freiheit sie zu verändern und erneut zu verbreiten. Es besteht KEINE GEWÄHRLEISTUNG, soweit dies gesetzlich zulässig ist.<br/><br/>\nAuf <a href=\"http://www.sogo.nu/en/support/community.html\">dieser Seite</a> (in englischer Sprache) können Sie sich über weitere Support-Möglichkeiten informieren.";
"Your account was locked due to too many failed attempts." = "Ihr Konto wurde wegen zu vieler fehlgeschlagener Anmeldeversuche gesperrt.";
"Your account was locked due to an expired password." = "Ihr Konto wurde wegen eines abgelaufenen Passwortes gesperrt.";
"Login failed due to unhandled error case" = "Die Anmeldung ist aufgrund eines unbehandelten Fehlers fehlgeschlagen";
@@ -110,3 +110,19 @@
"Close" = "Schließen";
"Missing search parameter" = "Fehlender Suchparameter";
"Missing type parameter" = "Fehlender Typparameter";
/* Password Recovery */
"Secondary e-mail" = "Zweit-E-Mail";
"Answer" = "Antwort";
"Password lost" = "Passwort vergessen";
"No password recovery method has been defined for this user" = "Es wurde keine Methode zur Passwortwiederherstellung für diese Nutzer*in definiert.";
"Invalid secret question answer" = "Ungültige Antwort auf die geheime Frage";
"Next" = "Weiter";
"Back" = "Zurück";
"Please enter a new password below" = "Bitte unten ein neues Passwort eingeben";
"A link will be sent to %{0}" = "Ein Link wird gesendet an %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "Ein Link für das Zurücksetzen des Passwortes wurde verschickt. Bitte kontrollieren Sie ihr Postfach für die Wiederherstellungs-E-Mail, und klicken Sie auf den Link.";
"Invalid configuration for email password recovery" = "Ungültige Konfiguration für die Passwortwiederherstellung per E-Mail";
"Password recovery email in error" = "Fehlerhafte Passwortwiederherstellungs-E-Mail";
"Password reset" = "Passwort zurücksetzen";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hallo %{0},\nEs gab eine Anfrage, Ihr Passwort zu ändern!\n\nWenn Sie diese Anfrage nicht gestellt haben, ignorieren Sie bitte diese E-Mail\n\nAnsonsten klicken Sie bitte auf diesen Link, um Ihr Passwort zu ändern: %{1}";
+25 -1
View File
@@ -16,10 +16,18 @@
"Authentication Failed" = "אימות נכשל";
"Wrong username or password." = "שם משתמש או סיסמה שגויים.";
"Retry" = "נסה שנית";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "אין אפשרות להתחבר למערכת מכיוון שעוגיות (Cookies) אינם מאופשרים בדפדפן. אנא אפשרו שימוש בעוגיות בהגדרות הדפדפן ונסו שנית.";
"browserNotCompatible" = "מערכתינו זיהתה כי גרסת הדפדפן שלכם אינה נתמכת כעת. אנו ממליצים להשתמש בדפדפן Firefox. לחץ על הקישור מטה על מנת להוריד גרסה עדכנית של דפדפן זה.";
"alternativeBrowsers" = "כמו כן, ניתן להשתמש בכל אחד מהדפדפנים הנתמכים הבאים";
"alternativeBrowserSafari" = "בנוסף, ניתן להשתמש בדפדפן Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "הורדה";
"Language" = "שפה";
"choose" = "בחר ...";
@@ -68,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "אודות";
"AboutBox" = "Developed by Inverse, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "חשבונכם נחסם עקב ניסיונות התחברות שגויים מרובים.";
"Your account was locked due to an expired password." = "חשבונכם נחסם עקב סיסמה אשר תוקפה פג.";
"Login failed due to unhandled error case" = "התחברות נכשלה בעקבות שגיאה לא מטופלת";
@@ -102,3 +110,19 @@
"Close" = "סגירה";
"Missing search parameter" = "פרמטר חיפוש חסר";
"Missing type parameter" = "סוג פרמטר חסר";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+17 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Névjegy";
"AboutBox" = "Az Inverse által fejlesztett SOGo egy teljes funkcionalitású csoportmunka kiszolgáló, melynek fő célkitűzései az egyszerűség és az igény szerinti növekedés (skálázhatóság).<br/><br/>\nA SOGo egy AJAX alapú modern webes felhasználói felületet biztosít, továbbá szabványos protokolok alkalmazásával, mint pl. CalDAV, CardDAV támogatja telepített alkalmazások használatát is. <br/><br/>\nA SOGo a <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> 2. ill. magasabb verziói, továbbá egyes részei a GNU LGPL 2. verziója alatt kerül kiadásra. Ez egy ingyenes szoftver, a módosítása és újra kiadása megengedett.NINCS GARANCIA, a törvény által megengedett mértékben.<br/><br/>\nLátogassa meg <a href=\"http://www.sogo.nu/en/support/community.html\">ezt az oldalt</a> a különböző támogatási lehetőségek megismeréséhez. ";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "A fiókja zárolva lett a túl sok sikertelen belépési kísérlet miatt.";
"Your account was locked due to an expired password." = "A fiókja zárolva lett a lejért jelszó miatt.";
"Login failed due to unhandled error case" = "A bejelentkezés sikertelen volt az alábbi nem kezelt hiba miatt";
@@ -110,3 +110,19 @@
"Close" = "Bezárás";
"Missing search parameter" = "Hiányzó keresési paraméter";
"Missing type parameter" = "Hiányzó típus paraméter";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+39 -5
View File
@@ -4,12 +4,30 @@
"Username" = "Notandanafn";
"Password" = "Lykilorð";
"Domain" = "Domain";
"Remember username" = "Remember username";
"Connect" = "Tengjast";
/* Appears while authentication is in progress */
"Authenticating" = "Authenticating";
/* Appears when authentication succeeds */
"Welcome" = "Welcome";
"Authentication Failed" = "Authentication Failed";
"Wrong username or password." = "Rangt notandanafn eða lykilorð.";
"Retry" = "Retry";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "Innskráning mistókst vegna þess að slökkt er á smygildum (cookies) í vafranum. Leyfa þarf smygildi í vafranum og reyna svo aftur.";
"browserNotCompatible" = "Sú útgáfa af vafra sem þú notar virðist ekki styðja þessa vefsíðu. Mælt er með að nota Firefox. Smella má á tengilinn að neðan til að hala niður nýjastu útgáfunni af þessum vafra.";
"alternativeBrowsers" = "Einnig er hægt að nota eftirfarandi vafra";
"alternativeBrowserSafari" = "Einnig er hægt að nota Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Hala niður";
"Language" = "Tungumál";
"choose" = "Velja...";
@@ -21,7 +39,6 @@
"ChineseChina" = "简体中文";
"ChineseTaiwan" = "Chinese (Taiwan)";
"Croatian" = "Hrvatski";
"Croatian" = "Hrvatski";
"Czech" = "Česky";
"Danish" = "Dansk (Danmark)";
"Dutch" = "Nederlands";
@@ -57,11 +74,9 @@
"TurkishTurkey" = "Türkçe (Türkiye)";
"Ukrainian" = "Українська";
"Welsh" = "Cymraeg";
"About" = "Um";
"AboutBox" = "Hugbúnaðarþróun Inverse hefur framleitt SOGo sem er hópvinnukerfi með öllum þáttum og nýjungum, sem hefur það að markmiði að vera einfalt og skalast vel.<br/><br/>
SOGo býður upp á auðugt vefviðmót sem byggt er á AJAX viðmóti og það styður fjölda af biðlaraforritum með því að nota staðlaðar samskiptareglur eins og t.d. CalDAV og CardDAV.<br/><br/>
SOGo er dreift í samkvæmt hugbúnaðarleyfinu <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> útgáfu 2 eða nýrri og sumum hlutum er dreift samkvæmt GNU LGPL útgáfu 2. Þetta er frjáls og opinn hugbúnaður: þér er frjálst að breyta honum og dreifa honum. Það er ENGIN ÁBYRGÐ, að því marki sem leyfilegt er, lögum samkvæmt.<br/><br/>
Sjá <a href=\"http://www.sogo.nu/en/support/community.html\">þessa síðu</a> til að skoða ýmsa möguleika á þjónustu.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Your account was locked due to too many failed attempts.";
"Your account was locked due to an expired password." = "Your account was locked due to an expired password.";
"Login failed due to unhandled error case" = "Login failed due to unhandled error case";
@@ -92,3 +107,22 @@ Sjá <a href=\"http://www.sogo.nu/en/support/community.html\">þessa síðu</a>
"Confirmation" = "Staðfesting";
"Cancel" = "Hætta við";
"Please wait..." = "Augnablik...";
"Close" = "Close";
"Missing search parameter" = "Missing search parameter";
"Missing type parameter" = "Missing type parameter";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+25 -1
View File
@@ -21,6 +21,13 @@
"browserNotCompatible" = "Kami mendeteksi bahwa versi browser Anda saat ini tidak didukung di situs ini. Rekomendasi kami gunakan Firefox. Klik pada link di bawah untuk mendownload versi terbaru dari browser ini.";
"alternativeBrowsers" = "Kemungkinan lain, anda juga dapat menggunakan browser yang cocok berikut";
"alternativeBrowserSafari" = "Alternatif lain, anda juga dapat menggunakan safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Unduh";
"Language" = "Bahasa";
"choose" = "Pilih";
@@ -42,6 +49,7 @@
"Hebrew" = "עברית";
"Hungarian" = "Magyar";
"Icelandic" = "Íslenska";
"Indonesian" = "bahasa Indonesia";
"Italian" = "Italiano";
"Japanese" = "日本語";
"Kazakh" = "Қазақ";
@@ -68,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Tentang";
"AboutBox" = "Dikembangkan oleh Inverse, SOGo merupakan groupware server penuh fitur dengan fokus pada skalabilitas dan kesederhanaan \n\n\nSOGo menyediakan antarmuka Web yang kaya berbasis AJAX dan suport beberapa klien asli melalui penggunaan protokol standar seperti CaIDAV dan CardDAV\n\nSOGo is didistribusikan dibawah <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> versi 2 atau terbaru dan bagian bagianya didistribusikan dibawah GNU LGPL versi 2. ini adalah sofwer gratis: anda bebas mengubah dan mendistribusikannya. Tidak ada JAMINAN, selama diizinkan oleh hukum.\n\nLihat <a href=\"http://www.sogo.nu/en/support/community.html\"> Halaman ini </a> untuk berbagai pilihan suport.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Akun Anda terkunci karena terlalu banyak usaha yang gagal.";
"Your account was locked due to an expired password." = "Akun Anda terkunci karena sandi kadaluarsa.";
"Login failed due to unhandled error case" = "Login gagal karena kesalahan tak tertangani";
@@ -102,3 +110,19 @@
"Close" = "Tutup";
"Missing search parameter" = "Kehilangan parameter pencarian";
"Missing type parameter" = "Kehilangan jenis parameter ";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+17 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Informazioni";
"AboutBox" = "Sviluppato da Inverse, SOGo è un server groupware completo con particolare attenzione alla scalabilità e alla semplicità.<br/><br/>\nSOGo fornisce una ricca interfaccia Web basata su AJAX e supporta più client nativi attraverso l'uso di protocolli standard come CalDAV e CardDAV.<br/><br/>\nSOGo è distribuito sotto <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> vversione 2 o successiva e parti sono distribuiti sotto GNU LGPL versione 2. Questo è un software libero: sei libero di cambiarlo e ridistribuirlo. NON c'è ALCUNA GARANZIA, nella misura consentita dalla legge.<br/><br/>\nVedi <a href=\"http://www.sogo.nu/en/support/community.html\">questa pagina</a> per varie opzioni di supporto.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Account bloccato a causa di troppi tentativi falliti.";
"Your account was locked due to an expired password." = "Account bloccato per password scaduta.";
"Login failed due to unhandled error case" = "Login fallito a causa di un errore non gestito";
@@ -110,3 +110,19 @@
"Close" = "Chiudi";
"Missing search parameter" = "Parametro di ricerca mancante";
"Missing type parameter" = "Parametro tipo mancante";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+25 -1
View File
@@ -16,10 +16,18 @@
"Authentication Failed" = "ログインできません";
"Wrong username or password." = "ユーザー名またはパスワードが誤っています。";
"Retry" = "再試行";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "ブラウザーのクッキーが無効なためログインできません。ブラウザーの設定でクッキーを有効にして、再度試してください。";
"browserNotCompatible" = "使用しているバージョンのブラウザーは現在このサイトでサポートしていません。Firefoxの使用を推奨します。下のリンクをクリックすると最新のバージョンのFirefoxをダウンロードできます。";
"alternativeBrowsers" = "または、以下の互換性があるブラウザーも使用できます。";
"alternativeBrowserSafari" = "または、Safariも使用できます。";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "ダウンロード";
"Language" = "言語";
"choose" = "選択...";
@@ -68,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "SOGoについて";
"AboutBox" = "Inverseが開発したSOGoは、拡張性と単純さに重点を置いたフル装備のグループウェアサーバーです。<br/><br/>\nSOGoはAjaxに基づいたWebインターフェイスと、CalDAVとCardDavといった標準プロトコルを使用した機種固有の複数のアプリケーションをサポートしています。<br/><br/>\nSOGoは<a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a>バージョン2以降で、その一部はGNU LGPLバージョン2で配布されています。これはフリーソフトウェアです: 変更や再配布は自由にできます。法律で許される範囲内で無保証です。<br/><br/>\n様々なサポートの選択肢については、<a href=\"http://www.sogo.nu/en/support/community.html\">このページ</a>を参照してください。";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "ログインの失敗の回数が多すぎるためアカウントをロックしました。";
"Your account was locked due to an expired password." = "パスワードの期限切れのためアカウントをロックしています。";
"Login failed due to unhandled error case" = "対処できないエラーによりログインできませんでした。";
@@ -102,3 +110,19 @@
"Close" = "閉じる";
"Missing search parameter" = "検索パラメーターがありません";
"Missing type parameter" = "型のパラメーターがありません";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+17 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Жүйе туралы";
"AboutBox" = "SOGo дегеніміз масштабталулық мен қарапайымдылыққа негізделген топтық жұмыстың толық функциялы сервері. Inverse компаниясы әзірлеген. <br/><br/>\nSOGo AJAX негізіндегі бай веб-интерфейсті қамтамасыз етеді және CalDAV және CardDAV секілді стандартты хаттамаларды пайдалану есебінен өзінің бірнеше клиентіне қолдау көрсетеді. <br/><br/>\nSOGo <a href=\"http://gnu.org/licenses/gpl.html\">лицензиясының GNU GPL</a> 2 немесе одан кейінгі нұсқасымен таралады, SOGo бөліктері 2-нұсқалы GNU LGPL лицензиясымен таралады. Бұл еркін бағдарламалық қамтылым: оны өз қалауыңызша өзгерте, тарата аласыз. Заңмен рұқсат етілетін шектерде ЕШҚАНДАЙ КЕПІЛДІК жоқ. <br/><br/>\nҚолдаудың түрлі нұсқаларымен танысу үшін, <a href=\"http://www.sogo.nu/en/support/community.html\">мына бетке</a> кіріңіз.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Сіздің аккаунтыңыз сәтсіз әрекеттердің тым көп болуына байланысты бұғатталды.";
"Your account was locked due to an expired password." = "Сіздің аккаунтыңыз парольдің жарамдылық мерзімінің өтуіне байланысты бұғатталды.";
"Login failed due to unhandled error case" = "Қатенің өңделмеген жағдайына байланысты кіру мүмкін болмады";
@@ -110,3 +110,19 @@
"Close" = "Жабу";
"Missing search parameter" = "Іздеу параметрі жоқ";
"Missing type parameter" = "Тип параметрі жоқ";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+24 -1
View File
@@ -21,6 +21,13 @@
"browserNotCompatible" = "Mēs esam noteikuši, ka jūsu pārlūkprogrammas versija pašlaik netiek atbalstīta šajā vietnē. Mūsu ieteikums ir izmantot Firefox. Noklikšķiniet uz tālāk norādītās saites, lai lejupielādētu visjaunāko šīs pārlūkprogrammas versiju.";
"alternativeBrowsers" = "Alternatīvi var izmantot arī šādas saderīgas pārlūkprogrammas";
"alternativeBrowserSafari" = "Alternatīvi, jūs varat arī izmantot Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Lejupielādēt";
"Language" = "Valoda";
"choose" = "Izvēlieties...";
@@ -69,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Par";
"AboutBox" = "SOGo izstrādātās inversā, bezmaksas grupprogrammatūras serveris ar uzsvaru uz mērogojamību un vienkāršību.<br/><br/>\nAJAX-based sniedz bagātu SOGo Web interfeisu un atbalsta vairāki klienti, izmantojot standarta protokolus CalDAV un CardDAV.<br/><br/>\nSOGo tiek izplatīts saskaņā ar <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> versiju 2 vai jaunāku un detaļas tiek izplatītas saskaņā ar GNU LGPL versiju 2. Šī ir bezmaksas programmatūra: tu vari to mainīt un izplatīt. Nav NEKĀDAS GARANTIJAS, likums to atļauj.<br/><br/>\nSkatīt <a href=\"http://www.sogo.nu/en/support/community.html\">šo lapu</a> par dažādām atbalsta iespējām.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Jūsu konts ir bloķēts, jo tika veikti pārāk daudz nesekmīgu mēģinājumu.";
"Your account was locked due to an expired password." = "Jūsu konts ir bloķēts, jo ir beidzies paroles derīguma termiņš.";
"Login failed due to unhandled error case" = "Pieteikšanās neizdevās nezināmas kļūdas dēļ";
@@ -103,3 +110,19 @@
"Close" = "Aizvērt";
"Missing search parameter" = "Trūkst meklēšanas parametru";
"Missing type parameter" = "Trūkst tipa parametru";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+39 -2
View File
@@ -6,12 +6,28 @@
"Domain" = "Domenas";
"Remember username" = "Prisiminti vartotoją";
"Connect" = "Prisijungti";
/* Appears while authentication is in progress */
"Authenticating" = "Authenticating";
/* Appears when authentication succeeds */
"Welcome" = "Welcome";
"Authentication Failed" = "Autentifikavimas nepavyko";
"Wrong username or password." = "Blogas vartotojo vardas arba slaptažodis.";
"Retry" = "Retry";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "Jūs negalite prisijungti, todėl kad Jūsų naršyklės slapukai išjungti. Prašome įjungti slapukus savo naršyklės parametruose ir pabandyti dar kartą.";
"browserNotCompatible" = "Aptikome, kad Jūsų naršyklės versija šiuo metu nėra palaikoma šioje svetainėje. Mūsų rekomendacija naudoti Firefox. Paspauskite ant nuorodos žemiau, norėdami atsisiųsti naujausią versiją šios naršyklės.";
"alternativeBrowsers" = "Taip pat galite naudoti šias suderinamas naršykles";
"alternativeBrowserSafari" = "Taip pat galite naudoti Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Parsiūsti";
"Language" = "Kalba";
"choose" = "Pasirinkti: ...";
@@ -22,6 +38,7 @@
"Catalan" = "Català";
"ChineseChina" = "简体中文";
"ChineseTaiwan" = "Kinų (Taivanis)";
"Croatian" = "Hrvatski";
"Czech" = "Česky";
"Danish" = "Dansk (Danmark)";
"Dutch" = "Nederlands";
@@ -37,9 +54,13 @@
"Japanese" = "日本語";
"Kazakh" = "Қазақ";
"Latvian" = "Latviešu";
"Lithuanian" = "Lietuvių";
"Macedonian" = "Македонски";
"Montenegrin" = "Crnogorski";
"NorwegianBokmal" = "Norsk bokmål";
"NorwegianNynorsk" = "Norsk nynorsk";
"Polish" = "Polski";
"Portuguese" = "Português";
"BrazilianPortuguese" = "Português brasileiro";
"Romanian" = "Română";
"Russian" = "Русский";
@@ -53,8 +74,9 @@
"TurkishTurkey" = "Türkçe (Türkiye)";
"Ukrainian" = "Українська";
"Welsh" = "Cymraeg";
"About" = "Apie";
"AboutBox" = "SOGo yra višiskai funkcionalus grupinio darbo serveris, dėmesį kreipiantis mastą ir papratumą. \nSOGo numato daug AJAX-pagrindo interneto sąsajų ir palaiko keletą vietinių klientų naudojant standartinius protokolus, tokius kaip CalDAV ir CardDAV. \nSOGo yra platinamas pagal <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> 2 versiją ar vėlesnę. Dalys yra platinamos pagal GNU LGPL 2 versiją. Tai yra nemoka programinė įranga: Jūs galite laisvai keisti ir platinti ją, kiek leidžia įstatymai. \nIeškokite <a href=\"http://www.sogo.nu/en/support/community.html\">čia</a> apie įvairias palaikymo galimybes.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Jūsų paskyra užblokuota dėl daugelio klaidingų prisijungimų.";
"Your account was locked due to an expired password." = "Jūsų paskyra užblokuota dėl pasibaigusio slaptažodžio.";
"Login failed due to unhandled error case" = "Prisijungti nepavyko dėl neaiškios klaidos";
@@ -85,7 +107,22 @@
"Confirmation" = "Patvirtinimas";
"Cancel" = "Atšaukti";
"Please wait..." = "Prašome palaukti...";
"AboutBox" = "SOGo yra višiskai funkcionalus grupinio darbo serveris, dėmesį kreipiantis mastą ir papratumą. \nSOGo numato daug AJAX-pagrindo interneto sąsajų ir palaiko keletą vietinių klientų naudojant standartinius protokolus, tokius kaip CalDAV ir CardDAV. \nSOGo yra platinamas pagal <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> 2 versiją ar vėlesnę. Dalys yra platinamos pagal GNU LGPL 2 versiją. Tai yra nemoka programinė įranga: Jūs galite laisvai keisti ir platinti ją, kiek leidžia įstatymai. \nIeškokite <a href=\"http://www.sogo.nu/en/support/community.html\">čia</a> apie įvairias palaikymo galimybes.";
"Close" = "Uždarytis";
"Missing search parameter" = "Trūksta paieškos parametrų";
"Missing type parameter" = "Trūksta rūšes parametrų";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+25 -1
View File
@@ -16,10 +16,18 @@
"Authentication Failed" = "Неуспешна автентификација";
"Wrong username or password." = "Погрешно корисничко име или лозинка.";
"Retry" = "Обиди се повторно";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "Не можете да се најавите поради тоа што колачињата на вашиот прелистувач не се активирани. Ве молиме да ги овозможите колачињата во опциите на вашиот прелистувач и да се обидете повторно.";
"browserNotCompatible" = "Забележивме дека вашиот прелистувач во моментов не е поддржан од овој сајт. Наша препорака е да користите Firefox. Клинете врз овој линк да ја преземете последната верзија на овој прелистувач.";
"alternativeBrowsers" = "Како алтернатива исто така можете да користите еден од компатибилните прелистувачи";
"alternativeBrowserSafari" = "Како крајна можност, можете исто така да го користите Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Преземи";
"Language" = "Јазик";
"choose" = "Одбери ...";
@@ -68,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "За";
"AboutBox" = "Развиено од Inverse, SOGo е комплетен групвер сервер со фокус на скалабилност и едноставност.<br/><br/>\nSOGo овозможува богат AJAX-базиран Web интерфејс и поддржува повеќе нативни клиенти користејќи стандардни протоколи како на пример CalDAV и CardDAV.<br/><br/>\nSOGo е дистрибуиран под <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> верзија 2 или подоцнежна и делови се дистрибуиирани под GNU LGPL version 2. Ова е бесплатен софтвер: вие сте слободни да го менувате и редистрибуирате. Нема гаранција, до ниво дозволено со закон.<br/><br/>\nПогледни <a href=\"http://www.sogo.nu/en/support/community.html\">ја страницава</a> за разни можности на поддршка.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Вашиот налог е блокиран поради премногу погрешни обиди.";
"Your account was locked due to an expired password." = "Вашата сметка е блокирана поради истечена лозинка.";
"Login failed due to unhandled error case" = "Најавувањето е неуспешно поради непозната грешка";
@@ -102,3 +110,19 @@
"Close" = "Затвори";
"Missing search parameter" = "Недостасува параметар на пребарување";
"Missing type parameter" = "Недостасува тип на параметар";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
@@ -26,6 +26,7 @@
"Verification Code" = "Verifikacioni kod";
"Enter the 6-digit verification code from your TOTP application." = "Unesite 6-tocifreni verifikacioni kod iz vaše TOTP aplikacije.";
"You provided an invalid TOTP key." = "TOTP ključ koji ste unijeli nije validan.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Preuzimanje";
"Language" = "Jezik";
@@ -75,10 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "O";
"AboutBox" = "Razvijen od strane Inverse-a, SOGo je potpuno funkcionalan grupver server fokusiran na skalabilnost i laku upotrebu<br/><br/>
SOGo pruža bogati AJAX-bazirani veb interfejs i podržava više nativnih klijenata kroz korišćenje standardnih protokola kao što su CalDAV i CardDAV.<br/><br/>
SOGo se distribuira sa licencom <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> verzija 2 ili kasnija a delovi se distribuiraju kroz GNU LGPL verzija 2. Ovo je besplatan softver: slobodni ste da menjate i ponovo distribuirate. NEMA GARANCIJE, u meri u kojoj to dopušta zakon.<br/><br/>
Pogledajte <a href=\"http://www.sogo.nu/en/support/community.html\">ovu stranicu</a> za različite opcije podrške.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Vaš nalog je zaključan zbog više neuspješnih pokušaja prijave.";
"Your account was locked due to an expired password." = "Vaš nalog je zaključan zbog istekle lozinke.";
"Login failed due to unhandled error case" = "Prijavljivanje nije uspjelo zbog neobrađene greške:";
@@ -112,3 +110,19 @@ Pogledajte <a href=\"http://www.sogo.nu/en/support/community.html\">ovu stranicu
"Close" = "Zatvori";
"Missing search parameter" = "Nedostaje parametar pretrage";
"Missing type parameter" = "Nedostaje parametar tip";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Om";
"AboutBox" = "Utviklet av Inverse, SOGo er en komplett gruppevaretjener med fokus på skalerbarhet og enkel bruk.<br/><br/>\nSOGo tilbyr ett rikt AJAX-basert webgrensesnitt, og støtter mange 3. parts klienter gjennom standardprotokoller som CalDAV og CardDAV.<br/><br/>\nSOGo er distribuert under <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> versjon 2 eller senere, og enkelte deler er distribuert under GNU LGPL versjon 2. Dette er fri programvare: du står fritt til å endre og videredistribuere den. Den kommer med ABSOLUTT INGEN GARANTI, i det omfang som er tillatt av anvendelig lov. Sjekk <a href=\"http://www.sogo.nu/en/support/community.html\">denne siden</a> for support-muligheter.";
"AboutBox" = "Utviklet av Inverse, SOGo er en komplett gruppevaretjener med fokus på skalerbarhet og enkel bruk. <br/><br/>\nSOGo tilbyr ett rikt AJAX-basert webgrensesnitt, og støtter mange 3. parts klienter gjennom standardprotokoller som CalDAV og CardDAV.<br/><br/>\nSOGo er distribuert under <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> versjon 2 eller senere, og enkelte deler er distribuert under GNU LGPL versjon 2. Dette er fri programvare: du står fritt til å endre og videredistribuere den. Den kommer med ABSOLUTT INGEN GARANTI, i det omfang som er tillatt av anvendelig lov. <br/><br/>\n Sjekk <a href=\"http://www.sogo.nu/en/support/community.html\">denne siden </a> for support-muligheter.";
"Your account was locked due to too many failed attempts." = "Din konto har blitt låst på grunn av for mange mislykkede innlogginger.";
"Your account was locked due to an expired password." = "Din konto har blitt låst fordi ditt passord er utløpt.";
"Login failed due to unhandled error case" = "Innlogging feilet av uventet årsak";
@@ -6,11 +6,28 @@
"Domain" = "Domain";
"Remember username" = "Husk brukernavn";
"Connect" = "Logg inn";
/* Appears while authentication is in progress */
"Authenticating" = "Authenticating";
/* Appears when authentication succeeds */
"Welcome" = "Welcome";
"Authentication Failed" = "Authentication Failed";
"Wrong username or password." = "Feil brukernavn eller passord.";
"Retry" = "Retry";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "Du kan ikke logge inn fordi nettleser ikke har aktivert infokapsler (cookies). Endre innstillinger i nettleseren din slik at infokapsler (cookies) er tillatt.";
"browserNotCompatible" = "Versjonen av nettleseren du anvender støttes ikke av denne webmailen. Vi anbefaler at du bruker Firefox. Klikk på linken under for å laste ned den siste versionen av Firefox.";
"alternativeBrowsers" = "Alternativt kan du også forsøke følgende kompatible nettlesere";
"alternativeBrowserSafari" = "Alternativt kan du også bruke Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Last ned";
"Language" = "Språk";
"choose" = "Velg ...";
@@ -22,7 +39,6 @@
"ChineseChina" = "简体中文";
"ChineseTaiwan" = "Chinese (Taiwan)";
"Croatian" = "Hrvatski";
"Croatian" = "Hrvatski";
"Czech" = "Česky";
"Danish" = "Dansk (Danmark)";
"Dutch" = "Nederlands";
@@ -58,11 +74,9 @@
"TurkishTurkey" = "Türkçe (Türkiye)";
"Ukrainian" = "Українська";
"Welsh" = "Cymraeg";
"About" = "Om";
"AboutBox" = "Developed by Inverse, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>
SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>
SOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>
See <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Din konto har blitt låst på grunn av for mange misslykkete innlogginger.";
"Your account was locked due to an expired password." = "Din konto har blitt låst fordi ditt passord er utløpt.";
"Login failed due to unhandled error case" = "Login failed due to unhandled error case";
@@ -93,3 +107,22 @@ See <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for v
"Confirmation" = "Bekreftelse";
"Cancel" = "Avbryt";
"Please wait..." = "Vennligst vent...";
"Close" = "Close";
"Missing search parameter" = "Missing search parameter";
"Missing type parameter" = "Missing type parameter";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+17 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "O programie";
"AboutBox" = "SOGo, opracowane przez Inverse, jest bogato wyposażonym serwerem dla grup roboczych, w którym szczególną uwagę zwrócono na prostotę obsługi i skalowalność.<br/><br/>SOGo udostępnia rozbudowany interfejs WWW, oparty na technologii AJAX i wspierający różne aplikacje pocztowe poprzez standardowe protokoły takie jak CalDAV i CardDAV.<br/><br/>SOGo udostępnione jest na licencji <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> w wersji 2 lub nowszej, a niektóre fragmenty na licencji GNU LGPL w wersji 2. To jest wolne oprogramowanie - możesz je dowolnie modyfikować oraz rozpowszechniać. Oprogramowanie to NIE MA GWARANCJI, w zakresie dopuszczalnym przez prawo.<br/><br/>⏎ W poszukiwaniu pomocy technicznej sprawdź <a href=\"http://www.sogo.nu/en/support/community.html\">tą stronę</a>.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Twoje konto zostało zablokowane wkutek zbyt wielu nieudanych prób logowania.";
"Your account was locked due to an expired password." = "Twoje konto zostało zblokowane z powodu wygaśnięcia ważności hasła.";
"Login failed due to unhandled error case" = "Logowanie nie powiodło się z powodu niezidentyfikowanego błędu";
@@ -110,3 +110,19 @@
"Close" = "Zamknij";
"Missing search parameter" = "Brakuje parametru wyszukiwania";
"Missing type parameter" = "Brakuje typu wyszukiwania";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+38 -2
View File
@@ -6,11 +6,28 @@
"Domain" = "Domínio";
"Remember username" = "Memorizar login";
"Connect" = "Conectar";
/* Appears while authentication is in progress */
"Authenticating" = "Authenticating";
/* Appears when authentication succeeds */
"Welcome" = "Welcome";
"Authentication Failed" = "Authentication Failed";
"Wrong username or password." = "Utilizador ou Senha Inválida.";
"Retry" = "Retry";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "Você não pode logar por a opção cookies está desabilitada. Por favor, habilite os cookies nas configurações de seu navegador e tente novamente.";
"browserNotCompatible" = "Foi detectado que a atual versão de seu navegador não é suportado neste site. Recomentamos que use o Firefox. Clique no link abaixo para baixar a versão atual deste navegador.";
"alternativeBrowsers" = "Alternativamente, você pode usar os seguinte navegadores compatíveis";
"alternativeBrowserSafari" = "Alternativamente, você pode usar o Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Download";
"Language" = "Idioma";
"choose" = "Escolha ...";
@@ -22,7 +39,6 @@
"ChineseChina" = "简体中文";
"ChineseTaiwan" = "Chinese (Taiwan)";
"Croatian" = "Hrvatski";
"Croatian" = "Hrvatski";
"Czech" = "Česky";
"Danish" = "Dansk (Danmark)";
"Dutch" = "Nederlands";
@@ -58,8 +74,9 @@
"TurkishTurkey" = "Türkçe (Türkiye)";
"Ukrainian" = "Українська";
"Welsh" = "Cymraeg";
"About" = "Sobre";
"AboutBox" = "Developed by Inverse, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "A sua conta foi bloqueada devido a muitas tentativas falhadas.";
"Your account was locked due to an expired password." = "A sua conta foi bloqueada devido a uma senha expirada.";
"Login failed due to unhandled error case" = "O Login falhou pelo seguinte erro";
@@ -90,3 +107,22 @@
"Confirmation" = "Confirmação";
"Cancel" = "Cancelar";
"Please wait..." = "Por favor, aguarde...";
"Close" = "Close";
"Missing search parameter" = "Missing search parameter";
"Missing type parameter" = "Missing type parameter";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+24 -1
View File
@@ -21,6 +21,13 @@
"browserNotCompatible" = "Am detectat că versiunea browser-ului nu este suportată de acest site. Recomandarea noastră este de a folosi Firefox. Click pe link-ul de mai jos pentru a descărca cea mai recentă versiune a acestui browser.";
"alternativeBrowsers" = "Ca alternativă puteți utiliza următoarele browsere compatibile";
"alternativeBrowserSafari" = "Ca alternativă puteți utiliza Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Descarca";
"Language" = "Limba";
"choose" = "Alege ...";
@@ -69,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Despre";
"AboutBox" = "Developed by Inverse, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Contul dvs. a fost blocat din cauza prea multe încercări nereușite de conectare.";
"Your account was locked due to an expired password." = "Contul dvs. a fost blocat din cauza că parola a expirat.";
"Login failed due to unhandled error case" = "Conectarea a eșuat din cauza unei erori nedeclarate";
@@ -103,3 +110,19 @@
"Close" = "Închide";
"Missing search parameter" = "Parametru de căutare lipsește";
"Missing type parameter" = "Parametru de tip lipsește";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+17 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "О системе";
"AboutBox" = "SOGo это полнофункциональный сервер групповой работы с акцентом на масштабируемость и простоту. Разработан компанией Inverse. <br/><br/>\nSOGo обеспечивает богатый, основанный на AJAX веб-интерфейс и поддерживает несколько собственных клиентов за счет использования стандартных протоколов, таких как CalDAV и CardDAV. <br/><br/>\nSOGo распространяется под <a href=\"http://gnu.org/licenses/gpl.html\">лицензией GNU GPL</a> версии 2 или более поздней версии, части SOGo распространяются под лицензией GNU LGPL версии 2. Это свободное программное обеспечение: вы можете свободно изменять и распространять его. Не существует НИКАКИХ ГАРАНТИЙ в пределах, допускаемых законом. <br/><br/>\nПосетите <a href=\"http://www.sogo.nu/en/support/community.html\">эту страницу</a> для ознакомления с различными вариантами поддержки.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Ваш аккаунт был заблокирован из-за слишком большого числа неудачных попыток.";
"Your account was locked due to an expired password." = "Ваш аккаунт был заблокирован в связи с истечение срока действия пароля.";
"Login failed due to unhandled error case" = "Войти не удалось из-за необработанного случая ошибки";
@@ -110,3 +110,19 @@
"Close" = "Закрыть";
"Missing search parameter" = "Отсутствует параметр поиска";
"Missing type parameter" = "Отсутствует параметр типа";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+2 -1
View File
@@ -888,7 +888,8 @@ static const NSString *kJwtKey = @"jwt";
toRecipients: [NSArray arrayWithObjects: toEmail, nil]
sender: fromEmail
withAuthenticator: [SOGoEmptyAuthenticator sharedSOGoEmptyAuthenticator]
inContext: [self context]];
inContext: [self context]
systemMessage: YES];
if (!e) {
response = [self responseWithStatus: 200
+1 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "О";
"AboutBox" = "Развијен од стране Inverse, SOGo је потпуно функционалан групвер сервер фокусиран на скалабилност и лаку употребу.<br/><br/>\nSOGo пружа богати AJAX-базирани веб интерфејс и подржава више нативних клијената кроз коришћење стандардних протокола као што су CalDAV и CardDAV.<br/><br/>\nSOGo се дистрибуира кроз лиценцу <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> верзија 2 или каснија а делови се дистрибуирају кроз GNU LGPL верзија 2. Ово је слободан софтвер: слободни сте да мењате и поново дистрибуирате. НЕМА ГАРАНЦИЈЕ, у мери у којој то допушта закон.<br/><br/>\nПогледајте <a href=\"http://www.sogo.nu/en/support/community.html\">ову страницу</a> за различите опције подршке.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Ваш налог је закључан због више неуспешних покушаја пријаве.";
"Your account was locked due to an expired password." = "Ваш налог је закључан због истекле лозинке.";
"Login failed due to unhandled error case" = "Пријава није успела због неутврђеног случаја грешке:";
@@ -26,6 +26,7 @@
"Verification Code" = "Verifikacioni kod";
"Enter the 6-digit verification code from your TOTP application." = "Unesite 6-ocifreni verifikacioni kod iz aplikacije Google Authenticator.";
"You provided an invalid TOTP key." = "Naveli ste nevažeći ključ Google Authenticator-a.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Preuzimanje";
"Language" = "Jezik";
@@ -75,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "О";
"AboutBox" = "Razvijen od strane Inverse, SOGo je potpuno funkcionalan grupver server fokusiran na skalabilnost i laku upotrebu.<br/><br/>\nSOGo pruža bogati AJAX-bazirani veb interfejs i podržava više nativnih klijenata kroz korišćenje standardnih protokola kao što su CalDAV i CardDAV.<br/><br/>\nSOGo se distribuira kroz licencu <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> verzija 2 ili kasnija a delovi se distribuiraju kroz GNU LGPL verzija 2. Ovo je slobodan softver: slobodni ste da menjate i ponovo distribuirate. NEMA GARANCIJE, u meri u kojoj to dopušta zakon.<br/><br/>\nPogledajte <a href=\"http://www.sogo.nu/en/support/community.html\">ovu stranicu</a> za različite opcije podrške.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Vaš nalog je zaključan zbog više neuspešnih pokušaja prijave.";
"Your account was locked due to an expired password." = "Vaš nalog je zaključan zbog istekle lozinke.";
"Login failed due to unhandled error case" = "Prijava nije uspela zbog neobrađenog slučaja greške";
@@ -109,3 +110,19 @@
"Close" = "Zatvori";
"Missing search parameter" = "Nedostaje parametar pretrage";
"Missing type parameter" = "Nedostaje tip parametra";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+18 -1
View File
@@ -26,6 +26,7 @@
"Verification Code" = "Overovací kód";
"Enter the 6-digit verification code from your TOTP application." = "Zadajte 6-miestny číselný overovací kód z Vašej aplikácie Google Authenticator.";
"You provided an invalid TOTP key." = "Zadali ste neplatný overovací kód z Google Authenticator.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Stiahnuť";
"Language" = "Jazyk";
@@ -75,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "O";
"AboutBox" = "Vyvinuté Inverse, SOGo je plne vybavený groupware server s dôrazom na škálovateľnosť a jednoduchosť.<br/><br/>\nSOGo ponúka bohaté web rozhranie na báze AJAX-u a natívne podporuje mnoho klientov použitím štandardov, ako sú CalDAV a CardDAV.<br/><br/>\nSOGo je distribuované pod licenciou <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> verzie 2 alebo novšej a niektoré časti pod licenciou GNU LGPL verzie 2. Toto je voľne šíriteľný softvér: môžete ho meniť a šíriť ďalej. Neexistuje ŽIADNA ZÁRUKA v rozsahu povolenom zákonom.<br/><br/>\nPozrite si <a href=\"http://www.sogo.nu/en/support/community.html\">túto stránku</a> pre rôzne možnosti podpory.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Váš účet bol zablokovaný z dôvodu mnohých neúspešných pokusov o prihlásenie.";
"Your account was locked due to an expired password." = "Váš účet bol zablokovaný z dôvodu vypršania platnosti hesla.";
"Login failed due to unhandled error case" = "Prihlásenie zlyhalo z dôvodu nespracovanej chyby.";
@@ -109,3 +110,19 @@
"Close" = "Zavrieť";
"Missing search parameter" = "Chýbajú parametre vyhľadávania.";
"Missing type parameter" = "Chýba parameter typu.";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+17 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "O";
"AboutBox" = "Developed by Inverse, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Tvoj račun je zaklenjen zaradi preveč neuspelih poskusov.";
"Your account was locked due to an expired password." = "Tvoj račun je zaklenjen zaradi pretečenega gesla.";
"Login failed due to unhandled error case" = "Prijava ni uspela zaradi neobravnavane napake";
@@ -110,3 +110,19 @@
"Close" = "Zapri";
"Missing search parameter" = "Manjka iskalni parameter";
"Missing type parameter" = "Manjka parameter tipa";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
@@ -6,12 +6,28 @@
"Domain" = "Dominio";
"Remember username" = "Recordar el nombre de usuario";
"Connect" = "Conectar";
/* Appears while authentication is in progress */
"Authenticating" = "Authenticating";
/* Appears when authentication succeeds */
"Welcome" = "Welcome";
"Authentication Failed" = "Falló la autenticación";
"Wrong username or password." = "Nombre de usuario o contraseña incorrectos.";
"Retry" = "Retry";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "No se puede iniciar sesión debido a que su navegador no acepta cookies. Por favor, habilite las cookies en la configuración de su navegador y pruebe de nuevo.";
"browserNotCompatible" = "Hemos detectado que éste sistema no soporta la versión de su navegador. Recomendamos usar Firefox. Haga click en el siguiente enlace para descargar la versión más reciente de este navegador.";
"alternativeBrowsers" = "Como alternativa, también puede usar uno se los siguientes navegadores compatibles: ";
"alternativeBrowserSafari" = "Como alternativa, puede usar Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Descarga";
"Language" = "Idioma";
"choose" = "Elija ...";
@@ -23,7 +39,6 @@
"ChineseChina" = "简体中文";
"ChineseTaiwan" = "Chinese (Taiwan)";
"Croatian" = "Hrvatski";
"Croatian" = "Hrvatski";
"Czech" = "Česky";
"Danish" = "Dansk (Danmark)";
"Dutch" = "Nederlands";
@@ -40,9 +55,12 @@
"Kazakh" = "Қазақ";
"Latvian" = "Latviešu";
"Lithuanian" = "Lietuvių";
"Macedonian" = "Македонски";
"Montenegrin" = "Crnogorski";
"NorwegianBokmal" = "Norsk bokmål";
"NorwegianNynorsk" = "Norsk nynorsk";
"Polish" = "Polski";
"Portuguese" = "Português";
"BrazilianPortuguese" = "Português brasileiro";
"Romanian" = "Română";
"Russian" = "Русский";
@@ -56,8 +74,9 @@
"TurkishTurkey" = "Türkçe (Türkiye)";
"Ukrainian" = "Українська";
"Welsh" = "Cymraeg";
"About" = "Acerca de";
"AboutBox" = "SOGo, una herramienta desarrollada por Inverse, es un servidor con múltiples funcionalidades para facilitar el trabajo en grupo. El enfoque de SOGo es la sencillez y la escalabilidad.<br/><br/>\nSOGo provee una potente interfaz Web basada en AJAX y soporta una amplia variedad de clientes nativos mediante el uso de protocolos estándar como CalDAV y CarDAV.<br/><br/>\nSOGO se distribuye bajo la licencia <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> versión 2 o superior. Algunas partes se distribuyen bajo la licencia GNU LGPL version 2. SOGo es software libre: Usted es libre de modificarlo y redistribuirlo. SOGo se distribuye SIN NINGUNA GARANTÍA según los alcances permitidos por la ley.<br/><br/>\nConsulte <a href=\"http://www.sogo.nu/en/support/community.html\">esta página</a> para conocer varias opciones de soporte.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Su cuenta ha sido bloqueada debido a un número excesivo de errores de conexión.";
"Your account was locked due to an expired password." = "Su cuenta ha sido bloqueada debido a una contraseña caducada.";
"Login failed due to unhandled error case" = "Conexión fallida debido a un error desconocido";
@@ -88,7 +107,22 @@
"Confirmation" = "Confirmación";
"Cancel" = "Cancelar";
"Please wait..." = "Por favor, espere...";
"AboutBox" = "SOGo, una herramienta desarrollada por Inverse, es un servidor con múltiples funcionalidades para facilitar el trabajo en grupo. El enfoque de SOGo es la sencillez y la escalabilidad.<br/><br/>\nSOGo provee una potente interfaz Web basada en AJAX y soporta una amplia variedad de clientes nativos mediante el uso de protocolos estándar como CalDAV y CarDAV.<br/><br/>\nSOGO se distribuye bajo la licencia <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> versión 2 o superior. Algunas partes se distribuyen bajo la licencia GNU LGPL version 2. SOGo es software libre: Usted es libre de modificarlo y redistribuirlo. SOGo se distribuye SIN NINGUNA GARANTÍA según los alcances permitidos por la ley.<br/><br/>\nConsulte <a href=\"http://www.sogo.nu/en/support/community.html\">esta página</a> para conocer varias opciones de soporte.";
"Close" = "Cerrar";
"Missing search parameter" = "Falta un parámetro de búsqueda";
"Missing type parameter" = "Falta un tipo de parámetro";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
@@ -16,10 +16,18 @@
"Authentication Failed" = "Fallo de autenticación";
"Wrong username or password." = "Nombre de usuario o contraseña incorrectos.";
"Retry" = "Reintentar";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "No se puede conectar dado que su navegador no acepta cookies. Por favor, habilite las cookies en la configuración de su navegador y pruebe de nuevo.";
"browserNotCompatible" = "Hemos detectado que éste sistema no soporta su versión del navegador. Recomendamos usar Firefox. Haga click en el siguiente enlace para descargar la versión más reciente de este navegador.";
"alternativeBrowsers" = "Como alternativa, también puede usar uno se los siguientes navegadores compatibles: ";
"alternativeBrowserSafari" = "Como alternativa, puede usar Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Descarga";
"Language" = "Idioma";
"choose" = "Elija ...";
@@ -68,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Acerca de";
"AboutBox" = "Desarrollado por Inverse, SOGo es un servidor groupware (software colaborativo) enfocado en la escalabilidad y simplicidad.<br/><br/>\nSOGo proporciona una interfaz web basada en AJAX y admite múltiples clientes nativos mediante el uso de protocolos estándar como CalDAV y CardDAV.<br/><br/>\nSOGo esta distribuido bajo la licencia <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> versión 2 o posterior y partes bajo la licencia GNU LGPL versión 2. Esto es un software libre: esta autorizado el cambio y la redistribución del mismo. No hay garantías, dentro del límite de la ley.<br/><br/>\nVea <a href=\"http://www.sogo.nu/en/support/community.html\">esta página</a> para las diferentes opciones de soporte.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Su cuenta ha sido bloqueada debido a un número excesivo de errores de conexión.";
"Your account was locked due to an expired password." = "Su cuenta ha sido bloqueada debido a una contraseña caducada.";
"Login failed due to unhandled error case" = "Conexión fallida debido a un error desconocido";
@@ -102,3 +110,19 @@
"Close" = "Cerrar";
"Missing search parameter" = "Falta el Criterio de busqueda";
"Missing type parameter" = "Falta el Criterio tipo";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+39 -5
View File
@@ -4,12 +4,30 @@
"Username" = "Användarnamn";
"Password" = "Lösenord";
"Domain" = "Domain";
"Remember username" = "Remember username";
"Connect" = "Logga in";
/* Appears while authentication is in progress */
"Authenticating" = "Authenticating";
/* Appears when authentication succeeds */
"Welcome" = "Welcome";
"Authentication Failed" = "Authentication Failed";
"Wrong username or password." = "fel användarnamn eller lösenord.";
"Retry" = "Retry";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "Du kan inte logga in eftersom din nätbläddrare inte har funktionen kakor(cookies) påslagen. Ändra dina inställningar i nätbläddraren så att funktionen kakor tillåts och prova igen.";
"browserNotCompatible" = "Den version av nätbläddrare du använder stöds inte av webbplatsen. Vi rekommenderar att du använder Firefox. Klicka på länken nedan för att ladda ner den senaste versionen av Firefox.";
"alternativeBrowsers" = "Alternativt kan du också använda följande kompatibla nätbläddrare";
"alternativeBrowserSafari" = "Alternativt kan du också använda Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Ladda ner";
"Language" = "Språk";
"choose" = "Välj ...";
@@ -21,7 +39,6 @@
"ChineseChina" = "简体中文";
"ChineseTaiwan" = "Chinese (Taiwan)";
"Croatian" = "Hrvatski";
"Croatian" = "Hrvatski";
"Czech" = "Česky";
"Danish" = "Dansk (Danmark)";
"Dutch" = "Nederlands";
@@ -57,11 +74,9 @@
"TurkishTurkey" = "Türkçe (Türkiye)";
"Ukrainian" = "Українська";
"Welsh" = "Cymraeg";
"About" = "Om";
"AboutBox" = "Developed by Inverse, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>
SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>
SOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>
See <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Ditt konto är spärrat pga för många misslyckade inloggningsförsök.";
"Your account was locked due to an expired password." = "Ditt konto är spärrat pga att lösenordet har slutat gälla.";
"Login failed due to unhandled error case" = "Inloggningen misslyckades pga ett okänt fel";
@@ -92,3 +107,22 @@ See <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for v
"Confirmation" = "Bekräfta";
"Cancel" = "Avbryt";
"Please wait..." = "Var god vänta...";
"Close" = "Close";
"Missing search parameter" = "Missing search parameter";
"Missing type parameter" = "Missing type parameter";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Hakkında";
"AboutBox" = "Inverse tarafından geliştirilen SOGo tüm özellikleri kapsayan, kolay kullanım ve ölçeklenebilirliğe odaklı groupware sunucusudur.<br/><br/>\nSOGo zengin AJAX-tabanlı bir Web arayüzü sunar, CalDAV ve CardDAV gibi standart protokollerle çoklu doğal istemcileri destekler.<br/><br/>\nSOGo <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> sürüm 2 veya üst lisansı altında ve parçaları GNU LGPL sürüm 2 lisansı altında dağıtılmıştır. Bu bir ücretsiz yazılımdır: bu yazılımı değiştirmeniz ve yeniden dağıtmanız serbesttir. Yasaların izin verdiği ölçüde bir GARANTİSİ YOKTUR.<br/><br/>\nÇeşitli destek seçenekleri için <a href=\"http://www.sogo.nu/en/support/community.html\">bu sayfaya</a> bakın.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Çok fazla başarısız giriş denemesi nedeniyle hesabınız kitlendi.";
"Your account was locked due to an expired password." = "Süresi dolan şifreniz nedeniyle hesabınız kitlendi.";
"Login failed due to unhandled error case" = "Belirlenemeyen bir hata nedeniyle girişiniz başarısız oldu";
@@ -110,3 +110,19 @@
"Close" = "Kapat";
"Missing search parameter" = "Eksik arama niteliği";
"Missing type parameter" = "Eksik tür niteliği";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+17 -1
View File
@@ -76,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Про систему";
"AboutBox" = "SOGo - це сервер групового рішення побудований на основі проекту OpenGroupware.org (OGo) та серверу додатків SOPE. Основна його перевага - це масштабованість.<br/><br/>\nSOGo забезпечує зручний веб-інтерфейс на основі технології AJAX та підтримує багато клієнтських програм, застосовуючи такі стандартні протоколи: CalDAV, CardDAV та GroupDAV.<br/><br/>\nВсі права застережено © 2006-2009 Inverse inc.<br/>\nВсі права застережено © 2002-2005 SKYRIX Software AG<br/><br/>\nЦе програмне забезпечення розповсюджується під ліцензією <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> версія 2.<br/>\nОкремі частини цього програмного забезпечення розповсюджуються під ліцензією GNU LGPL версія 2.<br/><br/>\nЦе вільне програмне забезпечення: ви можете вільно змінювати його та розповсюджувати. На це програмне забезпечення відсутня ГАРАНТІЯ в межах, визначених законодавством.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Ваш обліковий запис заблоковано через велику кількість невдалих спроб авторизації.";
"Your account was locked due to an expired password." = "Ваш обліковий запис заблоковано, оскільки закінчився термін дії пароля.";
"Login failed due to unhandled error case" = "Невдала спроба авторизація через невизначену помилку";
@@ -110,3 +110,19 @@
"Close" = "Закрити";
"Missing search parameter" = "Відсутній параметр пошуку";
"Missing type parameter" = "Відсутній параметр типу";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
+25 -1
View File
@@ -16,10 +16,18 @@
"Authentication Failed" = "Dilysu wedi Methu";
"Wrong username or password." = "Enw defnyddiwr neu gyfrinair anghywir.";
"Retry" = "Ailgynnig";
"Login failed due to unhandled error case:" = "Login failed due to unhandled error case:";
"cookiesNotEnabled" = "Allwch chi ddim mewngofnodi gan fod cwcis eich porwr wedi eu hanalluogi. Galluogwch y cwcis yng ngosodiadau'ch porwr a rhowch gynnig arall arni.";
"browserNotCompatible" = "Mae'n ymddangos nad yw'r safle hwn yn cynnal fersiwn presennol eich porwr. Rydym yn argymell defnyddio Firefox. Cliciwch ar y ddolen isod i lawrlwytho'r fersiwn mwyaf diweddar o'r porwr yma.";
"alternativeBrowsers" = "Gallwch hefyd ddefnyddio'r porwyr yma";
"alternativeBrowserSafari" = "Gallwch hefyd ddefnyddio Safari.";
/* 2FA */
"Verification Code" = "Verification Code";
"Enter the 6-digit verification code from your TOTP application." = "Enter the 6-digit verification code from your TOTP application.";
"You provided an invalid TOTP key." = "You provided an invalid TOTP key.";
"Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application." = "Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application.";
"Download" = "Lawrlwytho";
"Language" = "Iaith";
"choose" = "Dewis ...";
@@ -68,7 +76,7 @@
"Welsh" = "Cymraeg";
"About" = "Ynghylch";
"AboutBox" = "Datblygwyd SOGo gan Inverse fel gweinydd grwpwedd llawn nodweddion sydd â phwyslais ar ei symlrwydd a'i addasrwydd i grwpiau o wahanol faint.<br/><br/>\nMae SOGo yn cynnig rhyngwyneb Gwe cyfoethog sy'n seiliedig ar AJAX ac sy'n cefnogi sawl cleient brodorol drwy ddefnyddio protocolau safonol fel CalDAV a CardDAV.<br/><br/>\nCaiff SOGo ei ddosbarthu o dan <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> fersiwn 2 neu ddiweddarach ac mae rhannau'n cael eu dosbarth o dan GNU LGPL fersiwn 2. Mae hon yn feddalwedd rydd: mae gennych ryddid i'w newid a'i hailddosbarthu. Does DIM GWARANT, i'r graddau y caniateir hynny gan y gyfraith.<br/><br/>\nGweler <a href=\"http://www.sogo.nu/en/support/community.html\">y dudalen hon</a> i weld gwahanol ddewisiadau o ran cefnogaeth.";
"AboutBox" = "Developed by Inverse and Alinto, SOGo is a fully-featured groupware server with a focus on scalability and simplicity.<br/><br/>\nSOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV and CardDAV.<br/><br/>\nSOGo is distributed under the <a href=\"http://gnu.org/licenses/gpl.html\">GNU GPL</a> version 2 or later and parts are distributed under the GNU LGPL version 2. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.<br/><br/>\nSee <a href=\"http://www.sogo.nu/en/support/community.html\">this page</a> for various support options.";
"Your account was locked due to too many failed attempts." = "Cafodd eich cyfrif ei gloi oherwydd gormod o gynigion aflwyddiannus.";
"Your account was locked due to an expired password." = "Cafodd eich cyfrif ei gloi oherwydd cyfrinair a ddaeth i ben.";
"Login failed due to unhandled error case" = "Methu mewngofnodi oherwydd nad oes modd trin gwall";
@@ -102,3 +110,19 @@
"Close" = "Cau";
"Missing search parameter" = "Paramedr chwilio ar goll";
"Missing type parameter" = "Paramedr math ar goll";
/* Password Recovery */
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password lost" = "Password lost";
"No password recovery method has been defined for this user" = "No password recovery method has been defined for this user";
"Invalid secret question answer" = "Invalid secret question answer";
"Next" = "Next";
"Back" = "Back";
"Please enter a new password below" = "Please enter a new password below";
"A link will be sent to %{0}" = "A link will be sent to %{0}";
"A password reset link has been sent, please check your recovery e-mail mailbox and click on the link" = "A password reset link has been sent, please check your recovery e-mail mailbox and click on the link";
"Invalid configuration for email password recovery" = "Invalid configuration for email password recovery";
"Password recovery email in error" = "Password recovery email in error";
"Password reset" = "Password reset";
"Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}" = "Hi %{0},\nThere was a request to change your password!\n\nIf you did not make this request then please ignore this email.\n\nOtherwise, please click this link to change your password: %{1}";
@@ -485,6 +485,8 @@
"Enable two-factor authentication using a TOTP application" = "Aktiver to-faktor-godkendelse ved hjælp af en TOTP-applikation";
"You must enter this key into your TOTP application." = "Du skal indtaste denne nøgle i din TOTP-applikation.";
"If you do not and you log out you will not be able to login again." = "Hvis du ikke gør det, og du logger ud, vil du ikke kunne logge ind igen.";
"Enter TOTP verification code :" = "Indtast to-faktor bekræftelseskode: ";
"Invalid TOTP verification code" = "Ugyldig to-faktor bekræftelseskode";
/* External Sieve scripts */
"An external Sieve script is active" = "Et eksternt Sieve-script er aktivt";
@@ -485,6 +485,8 @@
"Enable two-factor authentication using a TOTP application" = "Enable two-factor authentication using a TOTP application";
"You must enter this key into your TOTP application." = "You must enter this key into your TOTP application.";
"If you do not and you log out you will not be able to login again." = "If you do not and you log out you will not be able to login again.";
"Enter TOTP verification code :" = "Enter TOTP verification code :";
"Invalid TOTP verification code" = "Invalid TOTP verification code";
/* External Sieve scripts */
"An external Sieve script is active" = "An external Sieve script is active";
@@ -485,6 +485,8 @@
"Enable two-factor authentication using a TOTP application" = "Activer l'authentification à deux facteurs à l'aide dune application TOTP";
"You must enter this key into your TOTP application." = "Vous devez saisir cette clé dans votre application TOTP.";
"If you do not and you log out you will not be able to login again." = "À défaut de le faire, vous ne pourrez pas vous reconnecter.";
"Enter TOTP verification code :" = "Saisissez le code de vérification TOTP :";
"Invalid TOTP verification code" = "Code de vérification TOTP invalide";
/* External Sieve scripts */
"An external Sieve script is active" = "Un script Sieve externe est actif";
@@ -101,7 +101,10 @@
"shortDateFmt_11" = "%y.%m.%d";
"shortDateFmt_12" = "%Y/%m/%d";
"shortDateFmt_13" = "%Y.%m.%d";
"shortDateFmt_14" = "";
"shortDateFmt_14" = "%Y.%m.%d";
"shortDateFmt_15" = "%d.%m.%Y";
"shortDateFmt_16" = "%d.%m.%y";
"shortDateFmt_17" = "";
"longDateFmt_0" = "%A, %d. %B %Y";
"longDateFmt_1" = "%A, %e. %B %Y";
@@ -254,6 +257,12 @@
"Confirmation" = "Bestätigung";
"Change" = "Ändern";
"Passwords don't match" = "Die Passwörter stimmen nicht überein";
"POLICY_MIN_LOWERCASE_LETTER" = "Mindestens %{0} Kleinbuchstaben";
"POLICY_MIN_UPPERCASE_LETTER" = "Mindestens %{0} Großbuchstaben";
"POLICY_MIN_DIGIT" = "Mindestens %{0} Ziffern";
"POLICY_MIN_SPECIAL_SYMBOLS" = "Mindestens %{0} Sonderzeichen";
"POLICY_MIN_LENGTH" = "Mindestlänge %{0} Zeichen";
/* Event+task classifications */
"Default events classification" = "Standard Einstufung Termine";
@@ -476,8 +485,18 @@
"Enable two-factor authentication using a TOTP application" = "Zwei-Faktor-Authentifizierung mit einer TOTP Anwendung aktivieren.";
"You must enter this key into your TOTP application." = "Sie müssen diesen Schlüssel in Ihre TOTP Anwendung eingeben.";
"If you do not and you log out you will not be able to login again." = "Wenn Sie das nicht tun und sich abmelden, können Sie sich nicht mehr anmelden.";
"Enter TOTP verification code :" = "TOTP Verifikationskode eingeben:";
"Invalid TOTP verification code" = "TOTP Verifikationskode ungültig";
/* External Sieve scripts */
"An external Sieve script is active" = "Ein externes Sieve-Script ist aktiv";
"Sieve is a programming language that can be used for email filtering. If you let SOGo handle your filters, vacation and forward settings, your active script will be disabled." = "Sieve ist eine Programmiersprache, die zur E-Mail-Filterung verwendet wird. Wenn Sie ihre Filter, Abwesenheits- und E-Mail-Weiterleitungs-Einstellungen über SOGo verwalten, wird ihr aktives Script deaktiviert.";
"Let SOGo handle everything" = "Alles über SOGo verwalten";
"Let SOGo handle everything" = "Alles über SOGo verwalten";
/* Password Recovery */
"Password recovery mode" = "Passwortwiederherstellung";
"Question" = "Frage";
"Secondary e-mail" = "Zweit-E-Mail";
"Answer" = "Antwort";
"Password recovery" = "Passwortwiederherstellung";
"Password change" = "Passwortänderung";
@@ -485,6 +485,8 @@
"Enable two-factor authentication using a TOTP application" = "Aktiver to-faktor autentisering ved hjelp av en TOTP-applikasjon";
"You must enter this key into your TOTP application." = "Du må angi denne nøkkelen i TOTP-applikasjonen. ";
"If you do not and you log out you will not be able to login again." = "Hvis du ikke gjør dette, og logger ut igjen kan du ikke logge på. ";
"Enter TOTP verification code :" = "Tast inn TOTP verifiseringskode : ";
"Invalid TOTP verification code" = "Ugyldig TOTP verifiseringskode ";
/* External Sieve scripts */
"An external Sieve script is active" = "Et ekstremt Sieve-skript er aktivt ";
+72
View File
@@ -53,6 +53,10 @@
#import "UIxPreferences.h"
#if defined(MFA_CONFIG)
#include <liboath/oath.h>
#endif
static NSArray *reminderItems = nil;
static NSArray *reminderValues = nil;
@@ -1586,6 +1590,69 @@ static NSArray *reminderValues = nil;
}
}
#if defined(MFA_CONFIG)
// Check TOTP token
NSString *verificationCode;
if ([v objectForKey: @"SOGoTOTPEnabled"]
&& 1 == [[v objectForKey: @"SOGoTOTPEnabled"] intValue]
&& ![[user userDefaults] totpEnabled]) {
verificationCode = [v objectForKey: @"totpVerificationCode"];
if ([verificationCode length] == 6 && [verificationCode unsignedIntValue] > 0)
{
unsigned int code;
const char *real_secret;
char *secret;
size_t secret_len;
const auto time_step = OATH_TOTP_DEFAULT_TIME_STEP_SIZE;
const auto digits = 6;
real_secret = [[user totpKey] UTF8String];
auto result = oath_init();
auto t = time(NULL);
auto left = time_step - (t % time_step);
char otp[digits + 1];
oath_base32_decode (real_secret,
strlen(real_secret),
&secret, &secret_len);
result = oath_totp_generate2(secret,
secret_len,
t,
time_step,
OATH_TOTP_DEFAULT_START_TIME,
digits,
0,
otp);
sscanf(otp, "%u", &code);
oath_done();
free(secret);
if (code != [verificationCode unsignedIntValue])
{
results = (id <WOActionResults>) [self responseWithStatus: 485
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Invalid TOTP verification code", @"message", nil]];
return results;
}
} else {
results = (id <WOActionResults>) [self responseWithStatus: 485
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Invalid TOTP verification code", @"message", nil]];
return results;
}
}
[v removeObjectForKey: @"totpVerificationCode"];
#endif
[[[user userDefaults] source] setValues: v];
if ([[user userDefaults] synchronize] && [self userHasMailAccess])
@@ -1674,4 +1741,9 @@ static NSArray *reminderValues = nil;
return [self shouldDisplayPasswordRecovery] || [self shouldDisplayPasswordChange];
}
- (BOOL) isEasUIEnabled
{
return ![[SOGoSystemDefaults sharedSystemDefaults] isEasUIDisabled];
}
@end
+2 -1
View File
@@ -238,7 +238,8 @@
toRecipients: [NSArray arrayWithObject: recipient]
sender: from
withAuthenticator: [self authenticatorInContext: context]
inContext: context];
inContext: context
systemMessage: YES];
}
@end
+2 -1
View File
@@ -208,7 +208,8 @@
toRecipients: [NSArray arrayWithObject: recipient]
sender: from
withAuthenticator: [self authenticatorInContext: context]
inContext: context];
inContext: context
systemMessage: YES];
}
@end
@@ -623,6 +623,7 @@ vtodo_class2 = "(Hemmelig opgave)";
"Rename" = "Omdøb";
"Import Calendar" = "Importer kalender";
"Select an ICS file." = "Vælg en ICS fil";
"You have modified data unsaved. Do you want to close popup and loose data ?" = "Du har ændret data, der ikke er gemt. Vil du lukke popup og miste data?";
/* Notification when user subscribes to a calendar */
"Successfully subscribed to calendar" = "Tilmeldte sig kalenderen";
@@ -623,6 +623,7 @@ vtodo_class2 = "(Confidential task)";
"Rename" = "Rename";
"Import Calendar" = "Import Calendar";
"Select an ICS file." = "Select an ICS file.";
"You have modified data unsaved. Do you want to close popup and loose data ?" = "You have modified data unsaved. Do you want to close popup and loose data ?";
/* Notification when user subscribes to a calendar */
"Successfully subscribed to calendar" = "Successfully subscribed to calendar";
@@ -623,6 +623,7 @@ vtodo_class2 = "(Tâche confidentielle)";
"Rename" = "Renommer";
"Import Calendar" = "Importer un calendrier";
"Select an ICS file." = "Sélectionnez un fichier ICS.";
"You have modified data unsaved. Do you want to close popup and loose data ?" = "Vous avez des modifications qui ne sont pas sauvegardées. Souhaitez-vous fermer la fenêtre et perdre les données ?";
/* Notification when user subscribes to a calendar */
"Successfully subscribed to calendar" = "Abonnement au calendrier complété";
@@ -221,6 +221,11 @@
"view_next31" = "Termine in den nächsten 31 Tagen";
"view_thismonth" = "Termine in diesem Kalendermonat";
"view_thisyear" = "Dieses Jahr";
"view_last7" = "Die letzten 7 Tage";
"view_last14" = "Die letzten 14 Tage";
"view_last31" = "Die letzten 31 Tage";
"view_lastmonth" = "Den letzten Monat";
"view_lastyear" = "Das letzte Jahr";
"view_future" = "Alle zukünftigen Termine";
"view_selectedday" = "Momentan gewählter Tag";
"view_not_started" = "Nicht begonnene Aufgaben";
@@ -618,6 +623,7 @@ vtodo_class2 = "(Vertrauliche Aufgabe)";
"Rename" = "Umbenennen";
"Import Calendar" = "Kalender importieren";
"Select an ICS file." = "Eine ICS-Datei auswählen.";
"You have modified data unsaved. Do you want to close popup and loose data ?" = "Sie haben Daten geändert, aber nicht gespeichert. Möchten Sie das Popup schließen, und die Daten verlieren?";
/* Notification when user subscribes to a calendar */
"Successfully subscribed to calendar" = "Der Kalender wurde erfolgreich abonniert";
@@ -623,6 +623,7 @@ vtodo_class2 = "(Konfidensiell oppgave)";
"Rename" = "Endre navn";
"Import Calendar" = "Importer Kalender";
"Select an ICS file." = "Velg en ICS fil";
"You have modified data unsaved. Do you want to close popup and loose data ?" = "Du har gjort endringer som ikke er lagret. Vil du lukke siden og miste data? ";
/* Notification when user subscribes to a calendar */
"Successfully subscribed to calendar" = "Vellykket abonnert på kalender";
+6
View File
@@ -26,6 +26,7 @@
#import <SOGo/NSDictionary+Utilities.h>
#import <SOGo/NSString+Utilities.h>
#import <SOGo/SOGoSystemDefaults.h>
#import <Appointments/SOGoWebAppointmentFolder.h>
@@ -149,4 +150,9 @@
return response;
}
- (BOOL) isEasUIEnabled
{
return ![[SOGoSystemDefaults sharedSystemDefaults] isEasUIDisabled];
}
@end
@@ -20,15 +20,17 @@
</div>
</md-toolbar>
<md-dialog-content class="md-dialog-content" layout="column">
<md-checkbox
ng-model="properties.addressbook.synchronize"
ng-disabled="properties.addressbook.id == 'personal'"
ng-true-value="1"
ng-false-value="0">
<var:string label:value="Synchronize"/> (Microsoft Enterprise ActiveSync)
</md-checkbox>
</md-dialog-content>
<var:if condition="isEasUIEnabled">
<md-dialog-content class="md-dialog-content" layout="column">
<md-checkbox
ng-model="properties.addressbook.synchronize"
ng-disabled="properties.addressbook.id == 'personal'"
ng-true-value="1"
ng-false-value="0">
<var:string label:value="Synchronize"/> (Microsoft Enterprise ActiveSync)
</md-checkbox>
</md-dialog-content>
</var:if>
<md-dialog-actions>
<md-button type="button" ng-click="properties.close()"><var:string label:value="Cancel"/></md-button>
+1 -1
View File
@@ -8,7 +8,7 @@
xmlns:label="OGo:label"
className="UIxPageFrame"
title="moduleName"
const:jsFiles="vendor/ckeditor/ckeditor.js, Common/sgCkeditor.component.js, Common.js, Preferences.services.js, Contacts.services.js, Scheduler.services.js, Mailer.js, Mailer.services.js, vendor/angular-file-upload.min.js, vendor/FileSaver.min.js">
const:jsFiles="vendor/ckeditor/ckeditor.js, Common/sgCkeditor.component.js, Common.js, Preferences.services.js, Contacts.services.js, Scheduler.services.js, Mailer.js, Mailer.services.js, vendor/angular-file-upload.min.js, vendor/FileSaver.min.js, vendor/punycode.js">
<script type="text/javascript">
var mailAccounts = <var:string value="mailAccounts" const:escapeHTML="NO" />;
var userNames = <var:string value="userNames" const:escapeHTML="NO" />;
+1 -1
View File
@@ -9,7 +9,7 @@
className="UIxPageFrame"
title="title"
const:popup="YES"
const:jsFiles="Common.js, Preferences.services.js, Contacts.services.js, Scheduler.services.js, Mailer.app.popup.js, Mailer.services.js, vendor/ckeditor/ckeditor.js, Common/sgCkeditor.component.js, vendor/angular-file-upload.min.js, vendor/FileSaver.min.js">
const:jsFiles="Common.js, Preferences.services.js, Contacts.services.js, Scheduler.services.js, Mailer.app.popup.js, Mailer.services.js, vendor/ckeditor/ckeditor.js, Common/sgCkeditor.component.js, vendor/angular-file-upload.min.js, vendor/FileSaver.min.js, vendor/punycode.js">
<main class="layout-fill" ng-controller="navController">
<div id="detailView" class="view-detail md-default-theme md-background md-bg md-hue-2"
+17 -17
View File
@@ -43,24 +43,24 @@
</var:if>
<div ng-if="!app.loginState">
<md-input-container class="md-block">
<label><var:string label:value="Username"/></label>
<md-icon>person</md-icon>
<input autocorrect="off" autocapitalize="off" type="text" ng-model="app.creds.username" ng-required="true" ng-change="app.usernameChanged()" ng-blur="app.retrievePasswordRecoveryEnabled()" />
<label class="md-default-theme md-accent md-bg"><var:string label:value="Username"/></label>
<md-icon class="material-icons md-default-theme md-accent md-bg">person</md-icon>
<input class="md-default-theme md-accent md-bg" autocorrect="off" autocapitalize="off" type="text" ng-model="app.creds.username" ng-required="true" ng-change="app.usernameChanged()" ng-blur="app.retrievePasswordRecoveryEnabled()" />
</md-input-container>
<md-input-container class="md-block">
<label><var:string label:value="Password"/></label>
<md-icon>email</md-icon>
<input id="passwordField" type="password" ng-model="app.creds.password" ng-required="true"/>
<md-icon id="password-visibility-icon" ng-click="app.changePasswordVisibility()">visibility</md-icon>
<label class="md-default-theme md-accent md-bg"><var:string label:value="Password"/></label>
<md-icon class="material-icons md-default-theme md-accent md-bg">email</md-icon>
<input class="md-default-theme md-accent md-bg" id="passwordField" type="password" ng-model="app.creds.password" ng-required="true"/>
<md-icon class="material-icons md-default-theme md-accent md-bg" id="password-visibility-icon" ng-click="app.changePasswordVisibility()">visibility</md-icon>
</md-input-container>
<!-- LANGUAGES SELECT -->
<div layout="row" layout-align="start end">
<md-icon>language</md-icon>
<md-input-container class="md-flex">
<label><var:string label:value="choose"/></label>
<md-select ng-model="app.creds.language"
<md-icon class="material-icons md-default-theme md-accent md-bg">language</md-icon>
<md-input-container class="md-default-theme md-accent md-bg md-flex">
<label class="md-default-theme md-accent md-bg"><var:string label:value="choose"/></label>
<md-select md-container-class="md-default-theme md-accent md-bg" ng-model="app.creds.language"
var:placeholder="localizedLanguage"
ng-change="app.changeLanguage($event)">
<var:foreach list="languages" item="item">
@@ -75,7 +75,7 @@
<!-- DOMAINS SELECT -->
<var:if condition="hasLoginDomains">
<div layout="row" layout-align="start end">
<md-icon>domain</md-icon>
<md-icon class="material-icons md-default-theme md-accent md-bg">domain</md-icon>
<md-input-container class="md-flex">
<md-select class="md-flex" ng-model="app.creds.domain" label:placeholder="choose" ng-change="app.retrievePasswordRecoveryEnabled()">
<var:foreach list="loginDomains" item="item">
@@ -109,7 +109,7 @@
<md-button class="md-icon-button"
label:aria-label="About"
ng-click="app.showAbout()">
<md-icon>info</md-icon>
<md-icon class="material-icons md-default-theme md-accent md-bg">info</md-icon>
</md-button>
<div>
<md-button class="md-fab md-accent md-hue-2" type="submit"
@@ -146,7 +146,7 @@
<div flex="80" flex-sm="50" flex-gt-sm="40">
<md-input-container class="md-block">
<label><var:string label:value="Verification Code"/></label>
<md-icon>lock</md-icon>
<md-icon class="material-icons md-default-theme md-accent md-bg">lock</md-icon>
<input type="text"
ng-pattern="app.verificationCodePattern"
ng-model="app.creds.verificationCode"
@@ -159,14 +159,14 @@
label:aria-label="Cancel"
ng-click="app.restoreLogin()"
sg-ripple-click="loginContent">
<md-icon>arrow_backward</md-icon>
<md-icon class="material-icons md-default-theme md-accent md-bg">arrow_backward</md-icon>
</md-button>
<md-button class="md-fab md-accent md-hue-2" type="submit"
label:aria-label="Connect"
ng-if="app.loginState == 'totpcode'"
ng-disabled="loginForm.$invalid"
ng-click="app.login()">
<md-icon>arrow_forward</md-icon>
<md-icon class="material-icons md-default-theme md-accent md-bg">arrow_forward</md-icon>
</md-button>
</div>
</div>
@@ -180,7 +180,7 @@
<var:string label:value="Welcome"/> {{app.cn}}
</div>
<div class="md-padding" layout="row" layout-align="start center">
<md-icon>priority_high</md-icon>
<md-icon class="material-icons md-default-theme md-accent md-bg">priority_high</md-icon>
<div class="md-padding">
<var:string label:value="Two-factor authentication has been disabled. Visit the Preferences module to restore two-factor authentication and reconfigure your TOTP application."/>
</div>
+19 -9
View File
@@ -258,7 +258,15 @@
</div>
<div flex="100" flex-sm="60" flex-gt-sm="50">
<var:string label:value="You must enter this key into your TOTP application."/> <b><var:string label:value="If you do not and you log out you will not be able to login again."/></b>
<md-input-container class="md-block md-input-has-value md-auto-horizontal-margin">
<label><var:string label:value="Enter TOTP verification code :"/></label>
<input type="text" ng-model="app.preferences.defaults.totpVerificationCode" name="totpVerificationCode" autocomplete="one-time-code" id="totpVerificationCode" sg-no-dirty-check="true" ng-change="app.resetTotpVerificationCode(preferencesForm)"/>
<div ng-messages="preferencesForm.totpVerificationCode.$error">
<div ng-message="invalidTotpCode"><var:string label:value="Invalid TOTP verification code"/></div>
</div>
</md-input-container>
</div>
</div>
</var:if>
@@ -654,15 +662,17 @@
</md-checkbox>
</div>
<div>
<md-checkbox
ng-model="app.preferences.defaults.SOGoMailSynchronizeOnlyDefaultFolders"
ng-true-value="1"
ng-false-value="0"
label:aria-label="Synchronize only default mail folders (EAS)">
<var:string label:value="Synchronize only default mail folders (EAS)"/>
</md-checkbox>
</div>
<var:if condition="isEasUIEnabled">
<div>
<md-checkbox
ng-model="app.preferences.defaults.SOGoMailSynchronizeOnlyDefaultFolders"
ng-true-value="1"
ng-false-value="0"
label:aria-label="Synchronize only default mail folders (EAS)">
<var:string label:value="Synchronize only default mail folders (EAS)"/>
</md-checkbox>
</div>
</var:if>
<div>
<md-checkbox
@@ -4,12 +4,22 @@
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:label="OGo:label">
<md-dialog flex="60" flex-sm="80" flex-xs="100">
<md-dialog
flex="{{ editor.isFullscreen? 100 : 60 }}"
flex-sm="{{ editor.isFullscreen? 100 : 80 }}">
<form name="eventForm" class="md-inline-form" ng-submit="editor.save(eventForm)">
<md-toolbar>
<div class="md-toolbar-tools sg-no-transition">
<md-icon class="material-icons sg-icon-toolbar-bg">event</md-icon>
<!-- summary -->
<md-button ng-click="editor.toggleFullscreen($event)"
class="md-icon-button hide show-gt-xs"
aria-hidden="true"
ng-if="!isPopup">
<md-tooltip ng-if="centerIsClose" md-direction="bottom">{{ ::'Reduce' | loc }}</md-tooltip>
<md-tooltip ng-else="centerIsClose" md-direction="bottom">{{ ::'Expand' | loc }}</md-tooltip>
<md-icon>{{ editor.isFullscreen ? 'fullscreen_exit' : 'fullscreen' }}</md-icon>
</md-button>
<md-icon ng-if="editor.component.classification == 'confidential'">visibility_off</md-icon>
<md-icon ng-if="editor.component.classification == 'private'">vpn_key</md-icon>
<md-input-container class="md-flex">
@@ -43,14 +43,16 @@
ng-false-value="0">
<var:string label:value="Show tasks"/>
</md-checkbox>
<md-checkbox
ng-model="properties.calendar.synchronize"
ng-show="!properties.calendar.isWebCalendar"
ng-disabled="properties.calendar.id == 'personal'"
ng-true-value="1"
ng-false-value="0">
<var:string label:value="Synchronize"/> (Microsoft Enterprise ActiveSync)
</md-checkbox>
<var:if condition="isEasUIEnabled">
<md-checkbox
ng-model="properties.calendar.synchronize"
ng-show="!properties.calendar.isWebCalendar"
ng-disabled="properties.calendar.id == 'personal'"
ng-true-value="1"
ng-false-value="0">
<var:string label:value="Synchronize"/> (Microsoft Enterprise ActiveSync)
</md-checkbox>
</var:if>
<md-checkbox
ng-model="properties.calendar.reloadOnLogin"
ng-show="properties.calendar.isWebCalendar"
+1 -1
View File
@@ -4,7 +4,7 @@ include ../common.make
WEBSERVER_RESOURCE_DIRS = css fonts img js
JS_FILES = js/Administration.* js/Common.* js/Contacts.* js/Mailer.* js/Main.* js/Preferences.* js/Scheduler.*
JS_LIB_FILES = js/vendor/angular-animate.* js/vendor/angular-aria.* js/vendor/angular-cookies.* js/vendor/angular-messages.* js/vendor/angular-file-upload.* js/vendor/FileSaver.* js/vendor/ng-sortable.* js/vendor/angular-material.* js/vendor/angular-sanitize.* js/vendor/angular-ui-router.* js/vendor/angular.* js/vendor/lodash.* js/vendor/qrcode.*
JS_LIB_FILES = js/vendor/angular-animate.* js/vendor/angular-aria.* js/vendor/angular-cookies.* js/vendor/angular-messages.* js/vendor/angular-file-upload.* js/vendor/FileSaver.* js/vendor/ng-sortable.* js/vendor/angular-material.* js/vendor/angular-sanitize.* js/vendor/angular-ui-router.* js/vendor/angular.* js/vendor/lodash.* js/vendor/qrcode.* js/vendor/punycode.js
CSS_FILES = css/styles.css css/styles.css.map css/no-animation.css css/no-animation.css.map
.DEFAULT_GOAL := all
+9 -1
View File
@@ -140,7 +140,8 @@ module.exports = function(grunt) {
//'<%= src %>/ng-file-upload/ng-file-upload{,.min}.js{,map}',
'<%= src %>/ng-sortable/dist/ng-sortable.min.js{,map}',
'<%= src %>/lodash/lodash{,.min}.js',
'<%= src %>/qrcodejs/qrcode{,.min}.js'
'<%= src %>/qrcodejs/qrcode{,.min}.js',
'<%= src %>/punycode/punycode.js'
];
for (var j = 0; j < js.length; j++) {
var files = grunt.file.expand(grunt.template.process(js[j], {data: options}));
@@ -150,6 +151,13 @@ module.exports = function(grunt) {
var dest = options.js_dest + paths[paths.length - 1];
grunt.file.copy(src, dest);
grunt.log.ok("copy " + src + " => " + dest);
// Patch for module.exports for puny code
if (dest.indexOf('punycode') > 0) {
var fs = require('fs');
var fileContent = fs.readFileSync(dest, { encoding: 'utf8', flag: 'r' });
fileContent = fileContent.replace("module.exports", "//module.exports");
fs.writeFileSync(dest, fileContent);
}
}
}
/*
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -293,7 +293,7 @@
}
}
return address;
return punycode.toUnicode(address);
};
/**
@@ -341,8 +341,19 @@
* @returns the HTML representation of the body
*/
Message.prototype.$content = function() {
// Punycode
this.to.forEach(function (element, i, arr) {
if (element.email && element.email.indexOf('@') > 0)
arr[i].email = punycode.toUnicode(element.email);
});
if (this.from && this.from.indexOf('@') > 0)
this.from = punycode.toUnicode(this.from);
var _this = this,
parts = [],
_visit = function(part) {
part.msgclass = 'msg-attachment-other';
if (part.type == 'UIxMailPartAlternativeViewer') {
@@ -873,6 +884,22 @@
});
};
/**
* @function $punycode
* @memberof Message.prototype
* @desc Encode an email address string
* @returns an RFC 3492 email encoded
*/
Message.prototype.punycode = function(element) {
var re = /<(.*)>|^([\w\-\.@]+)$/gm;
var r = re.exec(element);
var puny = element;
if (r && r.length > 0 && r[1]) {
puny = r[1];
}
return element.replace(puny, punycode.toASCII(puny));
};
/**
* @function $send
* @memberof Message.prototype
@@ -885,6 +912,18 @@
Message.$log.debug('send = ' + JSON.stringify(data, undefined, 2));
// Punycode
data.to.forEach(function (element, i, arr) {
arr[i] = _this.punycode(element);
});
data.bcc.forEach(function (element, i, arr) {
arr[i] = _this.punycode(element);
});
data.cc.forEach(function (element, i, arr) {
arr[i] = _this.punycode(element);
});
data.from = _this.punycode(data.from);
return Message.$$resource.post(this.$absolutePath({asDraft: true}), 'send', data).then(function(response) {
if (response.status == 'success') {
if (angular.isDefined(_this.origin)) {
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -456,8 +456,10 @@
});
}
if (sendForm)
if (sendForm) {
var self = this;
return this.preferences.$save().then(function(data) {
self.preferences.defaults.totpVerificationCode = ''
if (!options || !options.quick) {
$mdToast.show(
$mdToast.simple()
@@ -466,11 +468,20 @@
.hideDelay(2000));
form.$setPristine();
}
}).catch(function(e) {
if (485 == e.status) {
form.totpVerificationCode.$setValidity('invalidTotpCode', false);
}
});
}
return $q.reject('Invalid form');
};
this.resetTotpVerificationCode = function(form) {
form.totpVerificationCode.$setValidity('invalidTotpCode', true);
}
this.canChangePassword = function(form) {
if (this.passwords.newPasswordConfirmation && this.passwords.newPasswordConfirmation.length &&
this.passwords.newPassword != this.passwords.newPasswordConfirmation) {
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -45,6 +45,7 @@
vm.reload = reload;
vm.cancelSearch = cancelSearch;
vm.mode = { search: false, multiple: 0 };
vm.isComponentOpened = false;
this.$onInit = function() {
@@ -161,6 +162,40 @@
openComponent($event, task, 'task');
}
function eventHash(data) {
var hash = 0, i, chr, json;
json = JSON.stringify({
type: data.type,
status: data.status,
selected: data.selected,
repeat: data.repeat,
pid: data.pid,
destinationCalendar: data.destinationCalendar,
delta: data.delta,
classification: data.classification,
isNew: data.isNew,
categories: data.categories,
alarm: data.alarm,
type: data.type,
summary: data.summary,
status: data.status,
organizer: data.organizer,
location: data.location,
isAllDay: data.isAllDay,
comment: data.comment,
attendees: data.attendees
});
if (json.length === 0) return hash;
for (i = 0; i < json.length; i++) {
chr = json.charCodeAt(i);
hash = ((hash << 5) - hash) + chr;
hash |= 0;
}
return hash;
}
function openComponent($event, component, type) {
if (component.viewable) {
var promise = $q.when();
@@ -170,11 +205,49 @@
component = Calendar.$get(component.pid).$getComponent(component.id, component.occurrenceId);
promise = component.$futureComponentData;
}
var originalDataHash = eventHash(component);
promise.then(function() {
// UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox or
// UI/Templates/SchedulerUI/UIxTaskViewTemplate.wox
var templateUrl = 'UIx' + type.capitalize() + 'ViewTemplate';
if (vm.isComponentOpened) { // Prevent opening a new modal if there is already one opened (multiple clicks)
return;
}
// TODO: Improve Angular implementation
var originalCancel = $mdDialog.cancel;
var originalDestroy = $mdDialog.destroy;
var originalShow = $mdDialog.show;
$mdDialog.show = function(p) {
vm.isComponentOpened = true;
$mdDialog.cancel = function () {
var newDataHash = eventHash(component);
vm.isComponentOpened = false;
if (originalDataHash === newDataHash) {
$mdDialog.cancel = originalCancel;
return originalCancel();
} else if (confirm(l('You have modified data unsaved. Do you want to close popup and loose data ?'))) {
$mdDialog.cancel = originalCancel;
return originalCancel();
}
};
$mdDialog.destroy = function () {
vm.isComponentOpened = false;
$mdDialog.cancel = originalCancel;
$mdDialog.destroy = originalDestroy;
return originalDestroy();
};
return originalShow(p);
};
$mdDialog.show({
parent: angular.element(document.body),
targetEvent: $event,
@@ -206,6 +279,37 @@
// UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox or
// UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox
var templateUrl = 'UIx' + type.capitalize() + 'EditorTemplate';
if (vm.isComponentOpened) { // Prevent opening a new modal if there is already one opened (multiple clicks)
return;
}
// TODO: Improve Angular implementation
var originalCancel = $mdDialog.cancel;
var originalDestroy = $mdDialog.destroy;
var originalDataHash = eventHash(component);
vm.isComponentOpened = true;
$mdDialog.cancel = function() {
var newDataHash = eventHash(component);
vm.isComponentOpened = false;
if (originalDataHash === newDataHash) {
$mdDialog.cancel = originalCancel;
return originalCancel();
} else if (confirm(l('You have modified data unsaved. Do you want to close popup and loose data ?'))) {
$mdDialog.cancel = originalCancel;
return originalCancel();
}
};
$mdDialog.destroy = function () {
vm.isComponentOpened = false;
$mdDialog.cancel = originalCancel;
$mdDialog.destroy = originalDestroy;
return originalDestroy();
};
return $mdDialog.show({
parent: angular.element(document.body),
targetEvent: $event,
@@ -216,6 +216,7 @@
this.categories = {};
this.showRecurrenceEditor = this.component.$hasCustomRepeat;
this.showAttendeesEditor = this.component.attendees && this.component.attendees.length;
this.isFullscreen = false;
if (this.component.type == 'appointment') {
this.component.initAttendees();
@@ -296,6 +297,10 @@
this.component.$attendees.initOrganizer(Calendar.$get(this.component.destinationCalendar));
};
this.toggleFullscreen = function() {
vm.isFullscreen = !vm.isFullscreen;
}
// Autocomplete cards for attendees
this.cardFilter = function ($query) {
return AddressBook.$filterAll($query);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -2,7 +2,7 @@ Software License Agreement
==========================
CKEditor - The text editor for Internet - https://ckeditor.com/
Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
Licensed under the terms of any of the following licenses at your
choice:
@@ -37,7 +37,7 @@ done by developers outside of CKSource with their express permission.
The following libraries are included in CKEditor under the MIT license (see Appendix D):
* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2022, CKSource Holding sp. z o.o.
* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2023, CKSource Holding sp. z o.o.
* PicoModal (included in `samples/js/sf.js`) - Copyright (c) 2012 James Frasca.
* CodeMirror (included in the samples) - Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others.
* ES6Promise - Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors.
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license/
*/
+130 -129
View File
@@ -1,8 +1,8 @@
/*
Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license/
*/
(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,d={timestamp:"M8SC",version:"4.20.0",revision:"cb4a59c665",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:a},status:"unloaded",basePath:function(){var b=window.CKEDITOR_BASEPATH||"";if(!b)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var h=c[d].src.match(a);if(h){b=h[1];break}}-1==b.indexOf(":/")&&"//"!=b.slice(0,2)&&(b=0===b.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+
(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,d={timestamp:"N2M9",version:"4.21.0",revision:"d529d176d7",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:a},status:"unloaded",basePath:function(){var b=window.CKEDITOR_BASEPATH||"";if(!b)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var h=c[d].src.match(a);if(h){b=h[1];break}}-1==b.indexOf(":/")&&"//"!=b.slice(0,2)&&(b=0===b.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+
b:location.href.match(/^[^\?]*\/(?:)/)[0]+b);if(!b)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return b}(),getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);return a=this.appendTimestamp(a)},appendTimestamp:function(a){if(!this.timestamp||"/"===a.charAt(a.length-1)||/[&?]t=/.test(a))return a;var b=0<=a.indexOf("?")?"\x26":"?";return a+b+"t\x3d"+this.timestamp},
domReady:function(){function a(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",a,!1),window.removeEventListener("load",a,!1),b()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),window.detachEvent("onload",a),b())}catch(c){}}function b(){for(var a;a=c.shift();)a()}var c=[];return function(b){function e(){try{document.documentElement.doScroll("left")}catch(b){setTimeout(e,1);return}a()}c.push(b);"complete"===document.readyState&&
setTimeout(a,1);if(1==c.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",a);window.attachEvent("onload",a);b=!1;try{b=!window.frameElement}catch(d){}document.documentElement.doScroll&&b&&e()}}}()},b=window.CKEDITOR_GETURL;if(b){var c=d.getUrl;d.getUrl=function(a){return b.call(d,a)||c.call(d,a)}}return d}());
@@ -571,44 +571,44 @@ f||(f=this.icons[a]));a=c||f&&f.path||"";d=d||f&&f.offset;e=e||f&&f.bgsize||"16p
c(this,"panel"));a=[[p,a]];f([b],d,a);f(h,e,a)}).call(this,a)}});var k="cke_ui_color",h=[],p=/\$color/g;CKEDITOR.on("instanceLoaded",function(a){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var b=a.editor;a=function(a){a=(a.data[0]||a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!a.getById("cke_ui_color")){var d=c(a);h.push(d);b.on("destroy",function(){h=CKEDITOR.tools.array.filter(h,function(a){return d!==a})});(a=b.getUiColor())&&f([d],CKEDITOR.skin.chameleon(b,"panel"),
[[p,a]])}};b.on("panelShow",a);b.on("menuShow",a);b.config.uiColor&&b.setUiColor(b.config.uiColor)}})})();
(function(){var a=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"width:0;height:0;position:absolute;left:-10000px;border:1px solid;border-color:red blue"\x3e\x3c/div\x3e',CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{var d=a.getComputedStyle("border-top-color"),b=a.getComputedStyle("border-right-color");CKEDITOR.env.hc=!(!d||d!=b)}catch(c){CKEDITOR.env.hc=!1}a.remove();CKEDITOR.env.hc&&(CKEDITOR.env.cssClass+=" cke_hc");CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");
CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(a=CKEDITOR._.pending)for(delete CKEDITOR._.pending,d=0;d<a.length;d++)CKEDITOR.editor.prototype.constructor.apply(a[d][0],a[d][1]),CKEDITOR.add(a[d][0])})();CKEDITOR.skin.name="n1theme";CKEDITOR.skin.ua_editor="ie,iequirks,ie8,gecko";CKEDITOR.skin.ua_dialog="ie,iequirks,ie8";CKEDITOR.plugins.add("dialogui",{onLoad:function(){var h=function(b){this._||(this._={});this._["default"]=this._.initValue=b["default"]||"";this._.required=b.required||!1;for(var a=[this._],d=1;d<arguments.length;d++)a.push(arguments[d]);a.push(!0);CKEDITOR.tools.extend.apply(CKEDITOR.tools,a);return this._},r={build:function(b,a,d){return new CKEDITOR.ui.dialog.textInput(b,a,d)}},n={build:function(b,a,d){return new CKEDITOR.ui.dialog[a.type](b,a,d)}},q={isChanged:function(){return this.getValue()!=
CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(a=CKEDITOR._.pending)for(delete CKEDITOR._.pending,d=0;d<a.length;d++)CKEDITOR.editor.prototype.constructor.apply(a[d][0],a[d][1]),CKEDITOR.add(a[d][0])})();CKEDITOR.skin.name="n1theme";CKEDITOR.skin.ua_editor="ie,iequirks,ie8,gecko";CKEDITOR.skin.ua_dialog="ie,iequirks,ie8";CKEDITOR.plugins.add("dialogui",{onLoad:function(){var k=function(b){this._||(this._={});this._["default"]=this._.initValue=b["default"]||"";this._.required=b.required||!1;for(var a=[this._],d=1;d<arguments.length;d++)a.push(arguments[d]);a.push(!0);CKEDITOR.tools.extend.apply(CKEDITOR.tools,a);return this._},r={build:function(b,a,d){return new CKEDITOR.ui.dialog.textInput(b,a,d)}},m={build:function(b,a,d){return new CKEDITOR.ui.dialog[a.type](b,a,d)}},q={isChanged:function(){return this.getValue()!=
this.getInitValue()},reset:function(b){this.setValue(this.getInitValue(),b)},setInitValue:function(){this._.initValue=this.getValue()},resetInitValue:function(){this._.initValue=this._["default"]},getInitValue:function(){return this._.initValue}},v=CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onChange:function(b,a){this._.domOnChangeRegistered||(b.on("load",function(){this.getInputElement().on("change",function(){b.parts.dialog.isVisible()&&this.fire("change",{value:this.getValue()})},
this)},this),this._.domOnChangeRegistered=!0);this.on("change",a)}},!0),x=/^on([A-Z]\w+)/,t=function(b){for(var a in b)(x.test(a)||"title"==a||"type"==a)&&delete b[a];return b},w=function(b){b=b.data.getKeystroke();b==CKEDITOR.SHIFT+CKEDITOR.ALT+36?this.setDirectionMarker("ltr"):b==CKEDITOR.SHIFT+CKEDITOR.ALT+35&&this.setDirectionMarker("rtl")};CKEDITOR.tools.extend(CKEDITOR.ui.dialog,{labeledElement:function(b,a,d,f){if(!(4>arguments.length)){var c=h.call(this,a);c.labelId=CKEDITOR.tools.getNextId()+
"_label";this._.children=[];var e={role:a.role||"presentation"};a.includeLabel&&(e["aria-labelledby"]=c.labelId);CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"div",null,e,function(){var e=[],g=a.required?" cke_required":"";"horizontal"!=a.labelLayout?e.push('\x3clabel class\x3d"cke_dialog_ui_labeled_label'+g+'" ',' id\x3d"'+c.labelId+'"',c.inputId?' for\x3d"'+c.inputId+'"':"",(a.labelStyle?' style\x3d"'+a.labelStyle+'"':"")+"\x3e",a.required?a.label+'\x3cspan class\x3d"cke_dialog_ui_labeled_required" aria-hidden\x3d"true"\x3e*\x3c/span\x3e':
a.label,"\x3c/label\x3e",'\x3cdiv class\x3d"cke_dialog_ui_labeled_content"',a.controlStyle?' style\x3d"'+a.controlStyle+'"':"",' role\x3d"presentation"\x3e',f.call(this,b,a),"\x3c/div\x3e"):(g={type:"hbox",widths:a.widths,padding:0,children:[{type:"html",html:'\x3clabel class\x3d"cke_dialog_ui_labeled_label'+g+'" id\x3d"'+c.labelId+'" for\x3d"'+c.inputId+'"'+(a.labelStyle?' style\x3d"'+a.labelStyle+'"':"")+"\x3e"+CKEDITOR.tools.htmlEncode(a.label)+"\x3c/label\x3e"},{type:"html",html:'\x3cspan class\x3d"cke_dialog_ui_labeled_content"'+
(a.controlStyle?' style\x3d"'+a.controlStyle+'"':"")+"\x3e"+f.call(this,b,a)+"\x3c/span\x3e"}]},CKEDITOR.dialog._.uiElementBuilders.hbox.build(b,g,e));return e.join("")})}},textInput:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);var f=this._.inputId=CKEDITOR.tools.getNextId()+"_textInput",c={"class":"cke_dialog_ui_input_"+a.type,id:f,type:a.type};a.validate&&(this.validate=a.validate);a.maxLength&&(c.maxlength=a.maxLength);a.size&&(c.size=a.size);a.inputStyle&&(c.style=a.inputStyle);var e=
this,m=!1;b.on("load",function(){e.getInputElement().on("keydown",function(a){13==a.data.getKeystroke()&&(m=!0)});e.getInputElement().on("keyup",function(a){13==a.data.getKeystroke()&&m&&(b.getButton("ok")&&setTimeout(function(){b.getButton("ok").click()},0),m=!1);e.bidi&&w.call(e,a)},null,null,1E3)});CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){var b=['\x3cdiv class\x3d"cke_dialog_ui_input_',a.type,'" role\x3d"presentation"'];a.width&&b.push('style\x3d"width:'+a.width+'" ');b.push("\x3e\x3cinput ");
c["aria-labelledby"]=this._.labelId;this._.required&&(c["aria-required"]=this._.required);for(var e in c)b.push(e+'\x3d"'+c[e]+'" ');b.push(" /\x3e\x3c/div\x3e");return b.join("")})}},textarea:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);var f=this,c=this._.inputId=CKEDITOR.tools.getNextId()+"_textarea",e={};a.validate&&(this.validate=a.validate);e.rows=a.rows||5;e.cols=a.cols||20;e["class"]="cke_dialog_ui_input_textarea "+(a["class"]||"");"undefined"!=typeof a.inputStyle&&(e.style=a.inputStyle);
a.dir&&(e.dir=a.dir);if(f.bidi)b.on("load",function(){f.getInputElement().on("keyup",w)},f);CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){e["aria-labelledby"]=this._.labelId;this._.required&&(e["aria-required"]=this._.required);var a=['\x3cdiv class\x3d"cke_dialog_ui_input_textarea" role\x3d"presentation"\x3e\x3ctextarea id\x3d"',c,'" '],b;for(b in e)a.push(b+'\x3d"'+CKEDITOR.tools.htmlEncode(e[b])+'" ');a.push("\x3e",CKEDITOR.tools.htmlEncode(f._["default"]),"\x3c/textarea\x3e\x3c/div\x3e");
return a.join("")})}},checkbox:function(b,a,d){if(!(3>arguments.length)){var f=h.call(this,a,{"default":!!a["default"]});a.validate&&(this.validate=a.validate);CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"span",null,null,function(){var c=CKEDITOR.tools.extend({},a,{id:a.id?a.id+"_checkbox":CKEDITOR.tools.getNextId()+"_checkbox"},!0),e=[],d=CKEDITOR.tools.getNextId()+"_label",g={"class":"cke_dialog_ui_checkbox_input",type:"checkbox","aria-labelledby":d};t(c);a["default"]&&(g.checked="checked");"undefined"!=
typeof c.inputStyle&&(c.style=c.inputStyle);f.checkbox=new CKEDITOR.ui.dialog.uiElement(b,c,e,"input",null,g);e.push(' \x3clabel id\x3d"',d,'" for\x3d"',g.id,'"'+(a.labelStyle?' style\x3d"'+a.labelStyle+'"':"")+"\x3e",CKEDITOR.tools.htmlEncode(a.label),"\x3c/label\x3e");return e.join("")})}},radio:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);this._["default"]||(this._["default"]=this._.initValue=a.items[0][1]);a.validate&&(this.validate=a.validate);var f=[],c=this;a.role="radiogroup";
a.includeLabel=!0;CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){for(var e=[],d=[],g=(a.id?a.id:CKEDITOR.tools.getNextId())+"_radio",k=0;k<a.items.length;k++){var l=a.items[k],h=void 0!==l[2]?l[2]:l[0],n=void 0!==l[1]?l[1]:l[0],p=CKEDITOR.tools.getNextId()+"_radio_input",q=p+"_label",p=CKEDITOR.tools.extend({},a,{id:p,title:null,type:null},!0),h=CKEDITOR.tools.extend({},p,{title:h},!0),r={type:"radio","class":"cke_dialog_ui_radio_input",name:g,value:n,"aria-labelledby":q},u=[];c._["default"]==
n&&(r.checked="checked");t(p);t(h);"undefined"!=typeof p.inputStyle&&(p.style=p.inputStyle);p.keyboardFocusable=!0;f.push(new CKEDITOR.ui.dialog.uiElement(b,p,u,"input",null,r));u.push(" ");new CKEDITOR.ui.dialog.uiElement(b,h,u,"label",null,{id:q,"for":r.id},l[0]);e.push(u.join(""))}new CKEDITOR.ui.dialog.hbox(b,f,e,d);return d.join("")});this._.children=f}},button:function(b,a,d){if(arguments.length){"function"==typeof a&&(a=a(b.getParentEditor()));h.call(this,a,{disabled:a.disabled||!1});CKEDITOR.event.implementOn(this);
var f=this;b.on("load",function(){var a=this.getElement();(function(){a.on("click",function(a){f.click();a.data.preventDefault()});a.on("keydown",function(a){a.data.getKeystroke()in{32:1}&&(f.click(),a.data.preventDefault())})})();a.unselectable()},this);var c=CKEDITOR.tools.extend({},a);delete c.style;var e=CKEDITOR.tools.getNextId()+"_label";CKEDITOR.ui.dialog.uiElement.call(this,b,c,d,"a",null,{style:a.style,href:"javascript:void(0)",title:a.label,hidefocus:"true","class":a["class"],role:"button",
"aria-labelledby":e},'\x3cspan id\x3d"'+e+'" class\x3d"cke_dialog_ui_button"\x3e'+CKEDITOR.tools.htmlEncode(a.label)+"\x3c/span\x3e")}},select:function(b,a,d){if(!(3>arguments.length)){var f=h.call(this,a);a.validate&&(this.validate=a.validate);f.inputId=CKEDITOR.tools.getNextId()+"_select";CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){var c=CKEDITOR.tools.extend({},a,{id:a.id?a.id+"_select":CKEDITOR.tools.getNextId()+"_select"},!0),e=[],d=[],g={id:f.inputId,"class":"cke_dialog_ui_input_select",
"aria-labelledby":this._.labelId};e.push('\x3cdiv class\x3d"cke_dialog_ui_input_',a.type,'" role\x3d"presentation"');a.width&&e.push('style\x3d"width:'+a.width+'" ');e.push("\x3e");void 0!==a.size&&(g.size=a.size);void 0!==a.multiple&&(g.multiple=a.multiple);t(c);for(var k=0,l;k<a.items.length&&(l=a.items[k]);k++)d.push('\x3coption value\x3d"',CKEDITOR.tools.htmlEncode(void 0!==l[1]?l[1]:l[0]).replace(/"/g,"\x26quot;"),'" /\x3e ',CKEDITOR.tools.htmlEncode(l[0]));"undefined"!=typeof c.inputStyle&&
(c.style=c.inputStyle);f.select=new CKEDITOR.ui.dialog.uiElement(b,c,e,"select",null,g,d.join(""));e.push("\x3c/div\x3e");return e.join("")})}},file:function(b,a,d){if(!(3>arguments.length)){void 0===a["default"]&&(a["default"]="");var f=CKEDITOR.tools.extend(h.call(this,a),{definition:a,buttons:[]});a.validate&&(this.validate=a.validate);b.on("load",function(){CKEDITOR.document.getById(f.frameId).getParent().addClass("cke_dialog_ui_input_file")});CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,
function(){f.frameId=CKEDITOR.tools.getNextId()+"_fileInput";var b=['\x3ciframe frameborder\x3d"0" allowtransparency\x3d"0" class\x3d"cke_dialog_ui_input_file" role\x3d"presentation" id\x3d"',f.frameId,'" title\x3d"',a.label,'" src\x3d"javascript:void('];b.push(CKEDITOR.env.ie?"(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"})()":"0");b.push(')"\x3e\x3c/iframe\x3e');return b.join("")})}},fileButton:function(b,a,d){var f=this;if(!(3>arguments.length)){h.call(this,
a);a.validate&&(this.validate=a.validate);var c=CKEDITOR.tools.extend({},a),e=c.onClick;c.className=(c.className?c.className+" ":"")+"cke_dialog_ui_button";c.onClick=function(c){var d=a["for"];c=e?e.call(this,c):!1;!1!==c&&("xhr"!==c&&b.getContentElement(d[0],d[1]).submit(),this.disable())};b.on("load",function(){b.getContentElement(a["for"][0],a["for"][1])._.buttons.push(f)});CKEDITOR.ui.dialog.button.call(this,b,c,d)}},html:function(){var b=/^\s*<[\w:]+\s+([^>]*)?>/,a=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,
d=/\/$/;return function(f,c,e){if(!(3>arguments.length)){var m=[],g=c.html;"\x3c"!=g.charAt(0)&&(g="\x3cspan\x3e"+g+"\x3c/span\x3e");var k=c.focus;if(k){var l=this.focus;this.focus=function(){("function"==typeof k?k:l).call(this);this.fire("focus")};c.isFocusable&&(this.isFocusable=this.isFocusable);this.keyboardFocusable=!0}CKEDITOR.ui.dialog.uiElement.call(this,f,c,m,"span",null,null,"");m=m.join("").match(b);g=g.match(a)||["","",""];d.test(g[1])&&(g[1]=g[1].slice(0,-1),g[2]="/"+g[2]);e.push([g[1],
" ",m[1]||"",g[2]].join(""))}}}(),fieldset:function(b,a,d,f,c){var e=c.label;this._={children:a};CKEDITOR.ui.dialog.uiElement.call(this,b,c,f,"fieldset",null,null,function(){var a=[];e&&a.push("\x3clegend"+(c.labelStyle?' style\x3d"'+c.labelStyle+'"':"")+"\x3e"+e+"\x3c/legend\x3e");for(var b=0;b<d.length;b++)a.push(d[b]);return a.join("")})}},!0);CKEDITOR.ui.dialog.html.prototype=new CKEDITOR.ui.dialog.uiElement;CKEDITOR.ui.dialog.labeledElement.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,
this)},this),this._.domOnChangeRegistered=!0);this.on("change",a)}},!0),x=/^on([A-Z]\w+)/,t=function(b){for(var a in b)(x.test(a)||"title"==a||"type"==a)&&delete b[a];return b},w=function(b){b=b.data.getKeystroke();b==CKEDITOR.SHIFT+CKEDITOR.ALT+36?this.setDirectionMarker("ltr"):b==CKEDITOR.SHIFT+CKEDITOR.ALT+35&&this.setDirectionMarker("rtl")};CKEDITOR.tools.extend(CKEDITOR.ui.dialog,{labeledElement:function(b,a,d,e){if(!(4>arguments.length)){var c=k.call(this,a);c.labelId=CKEDITOR.tools.getNextId()+
"_label";this._.children=[];var f={role:a.role||"presentation"};a.includeLabel&&(f["aria-labelledby"]=c.labelId);CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"div",null,f,function(){var d=[],g=a.required?" cke_required":"";"horizontal"!=a.labelLayout?d.push('\x3clabel class\x3d"cke_dialog_ui_labeled_label'+g+'" ',' id\x3d"'+c.labelId+'"',c.inputId?' for\x3d"'+c.inputId+'"':"",(a.labelStyle?' style\x3d"'+a.labelStyle+'"':"")+"\x3e",a.required?a.label+'\x3cspan class\x3d"cke_dialog_ui_labeled_required" aria-hidden\x3d"true"\x3e*\x3c/span\x3e':
a.label,"\x3c/label\x3e",'\x3cdiv class\x3d"cke_dialog_ui_labeled_content"',a.controlStyle?' style\x3d"'+a.controlStyle+'"':"",' role\x3d"presentation"\x3e',e.call(this,b,a),"\x3c/div\x3e"):(g={type:"hbox",widths:a.widths,padding:0,children:[{type:"html",html:'\x3clabel class\x3d"cke_dialog_ui_labeled_label'+g+'" id\x3d"'+c.labelId+'" for\x3d"'+c.inputId+'"'+(a.labelStyle?' style\x3d"'+a.labelStyle+'"':"")+"\x3e"+CKEDITOR.tools.htmlEncode(a.label)+"\x3c/label\x3e"},{type:"html",html:'\x3cspan class\x3d"cke_dialog_ui_labeled_content"'+
(a.controlStyle?' style\x3d"'+a.controlStyle+'"':"")+"\x3e"+e.call(this,b,a)+"\x3c/span\x3e"}]},CKEDITOR.dialog._.uiElementBuilders.hbox.build(b,g,d));return d.join("")})}},textInput:function(b,a,d){if(!(3>arguments.length)){k.call(this,a);var e=this._.inputId=CKEDITOR.tools.getNextId()+"_textInput",c={"class":"cke_dialog_ui_input_"+a.type,id:e,type:a.type};a.validate&&(this.validate=a.validate);a.maxLength&&(c.maxlength=a.maxLength);a.size&&(c.size=a.size);a.inputStyle&&(c.style=a.inputStyle);var f=
this,h=!1;b.on("load",function(){f.getInputElement().on("keydown",function(a){13==a.data.getKeystroke()&&(h=!0)});f.getInputElement().on("keyup",function(a){13==a.data.getKeystroke()&&h&&(b.getButton("ok")&&setTimeout(function(){b.getButton("ok").click()},0),h=!1);f.bidi&&w.call(f,a)},null,null,1E3)});CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){var b=['\x3cdiv class\x3d"cke_dialog_ui_input_',a.type,'" role\x3d"presentation"'];a.width&&b.push('style\x3d"width:'+a.width+'" ');b.push("\x3e\x3cinput ");
c["aria-labelledby"]=this._.labelId;this._.required&&(c["aria-required"]=this._.required);for(var e in c)b.push(e+'\x3d"'+c[e]+'" ');b.push(" /\x3e\x3c/div\x3e");return b.join("")})}},textarea:function(b,a,d){if(!(3>arguments.length)){k.call(this,a);var e=this,c=this._.inputId=CKEDITOR.tools.getNextId()+"_textarea",f={};a.validate&&(this.validate=a.validate);f.rows=a.rows||5;f.cols=a.cols||20;f["class"]="cke_dialog_ui_input_textarea "+(a["class"]||"");"undefined"!=typeof a.inputStyle&&(f.style=a.inputStyle);
a.dir&&(f.dir=a.dir);if(e.bidi)b.on("load",function(){e.getInputElement().on("keyup",w)},e);CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){f["aria-labelledby"]=this._.labelId;this._.required&&(f["aria-required"]=this._.required);var a=['\x3cdiv class\x3d"cke_dialog_ui_input_textarea" role\x3d"presentation"\x3e\x3ctextarea id\x3d"',c,'" '],b;for(b in f)a.push(b+'\x3d"'+CKEDITOR.tools.htmlEncode(f[b])+'" ');a.push("\x3e",CKEDITOR.tools.htmlEncode(e._["default"]),"\x3c/textarea\x3e\x3c/div\x3e");
return a.join("")})}},checkbox:function(b,a,d){if(!(3>arguments.length)){var e=k.call(this,a,{"default":!!a["default"]});a.validate&&(this.validate=a.validate);CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"span",null,null,function(){var c=CKEDITOR.tools.extend({},a,{id:a.id?a.id+"_checkbox":CKEDITOR.tools.getNextId()+"_checkbox"},!0),d=[],h=CKEDITOR.tools.getNextId()+"_label",g={"class":"cke_dialog_ui_checkbox_input",type:"checkbox","aria-labelledby":h};t(c);a["default"]&&(g.checked="checked");"undefined"!=
typeof c.inputStyle&&(c.style=c.inputStyle);e.checkbox=new CKEDITOR.ui.dialog.uiElement(b,c,d,"input",null,g);d.push(' \x3clabel id\x3d"',h,'" for\x3d"',g.id,'"'+(a.labelStyle?' style\x3d"'+a.labelStyle+'"':"")+"\x3e",CKEDITOR.tools.htmlEncode(a.label),"\x3c/label\x3e");return d.join("")})}},radio:function(b,a,d){if(!(3>arguments.length)){k.call(this,a);this._["default"]||(this._["default"]=this._.initValue=a.items[0][1]);a.validate&&(this.validate=a.validate);var e=[],c=this;a.role="radiogroup";
a.includeLabel=!0;CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){for(var d=[],h=[],g=(a.id?a.id:CKEDITOR.tools.getNextId())+"_radio",n=0;n<a.items.length;n++){var l=a.items[n],k=void 0!==l[2]?l[2]:l[0],m=void 0!==l[1]?l[1]:l[0],p=CKEDITOR.tools.getNextId()+"_radio_input",q=p+"_label",p=CKEDITOR.tools.extend({},a,{id:p,title:null,type:null},!0),k=CKEDITOR.tools.extend({},p,{title:k},!0),r={type:"radio","class":"cke_dialog_ui_radio_input",name:g,value:m,"aria-labelledby":q},u=[];c._["default"]==
m&&(r.checked="checked");t(p);t(k);"undefined"!=typeof p.inputStyle&&(p.style=p.inputStyle);m=new CKEDITOR.ui.dialog.uiElement(b,p,u,"input",null,r);m.on("focus",function(){c.click()});e.push(m);u.push(" ");new CKEDITOR.ui.dialog.uiElement(b,k,u,"label",null,{id:q,"for":r.id},l[0]);d.push(u.join(""))}new CKEDITOR.ui.dialog.hbox(b,e,d,h);return h.join("")});this._.children=e}},button:function(b,a,d){if(arguments.length){"function"==typeof a&&(a=a(b.getParentEditor()));k.call(this,a,{disabled:a.disabled||
!1});CKEDITOR.event.implementOn(this);var e=this;b.on("load",function(){var a=this.getElement();(function(){a.on("click",function(a){e.click();a.data.preventDefault()});a.on("keydown",function(a){a.data.getKeystroke()in{32:1}&&(e.click(),a.data.preventDefault())})})();a.unselectable()},this);var c=CKEDITOR.tools.extend({},a);delete c.style;var f=CKEDITOR.tools.getNextId()+"_label";CKEDITOR.ui.dialog.uiElement.call(this,b,c,d,"a",null,{style:a.style,href:"javascript:void(0)",title:a.label,hidefocus:"true",
"class":a["class"],role:"button","aria-labelledby":f},'\x3cspan id\x3d"'+f+'" class\x3d"cke_dialog_ui_button"\x3e'+CKEDITOR.tools.htmlEncode(a.label)+"\x3c/span\x3e")}},select:function(b,a,d){if(!(3>arguments.length)){var e=k.call(this,a);a.validate&&(this.validate=a.validate);e.inputId=CKEDITOR.tools.getNextId()+"_select";CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){var c=CKEDITOR.tools.extend({},a,{id:a.id?a.id+"_select":CKEDITOR.tools.getNextId()+"_select"},!0),d=[],h=[],g={id:e.inputId,
"class":"cke_dialog_ui_input_select","aria-labelledby":this._.labelId};d.push('\x3cdiv class\x3d"cke_dialog_ui_input_',a.type,'" role\x3d"presentation"');a.width&&d.push('style\x3d"width:'+a.width+'" ');d.push("\x3e");void 0!==a.size&&(g.size=a.size);void 0!==a.multiple&&(g.multiple=a.multiple);t(c);for(var n=0,l;n<a.items.length&&(l=a.items[n]);n++)h.push('\x3coption value\x3d"',CKEDITOR.tools.htmlEncode(void 0!==l[1]?l[1]:l[0]).replace(/"/g,"\x26quot;"),'" /\x3e ',CKEDITOR.tools.htmlEncode(l[0]));
"undefined"!=typeof c.inputStyle&&(c.style=c.inputStyle);e.select=new CKEDITOR.ui.dialog.uiElement(b,c,d,"select",null,g,h.join(""));d.push("\x3c/div\x3e");return d.join("")})}},file:function(b,a,d){if(!(3>arguments.length)){void 0===a["default"]&&(a["default"]="");var e=CKEDITOR.tools.extend(k.call(this,a),{definition:a,buttons:[]});a.validate&&(this.validate=a.validate);b.on("load",function(){CKEDITOR.document.getById(e.frameId).getParent().addClass("cke_dialog_ui_input_file")});CKEDITOR.ui.dialog.labeledElement.call(this,
b,a,d,function(){e.frameId=CKEDITOR.tools.getNextId()+"_fileInput";var b=['\x3ciframe frameborder\x3d"0" allowtransparency\x3d"0" class\x3d"cke_dialog_ui_input_file" role\x3d"presentation" id\x3d"',e.frameId,'" title\x3d"',a.label,'" src\x3d"javascript:void('];b.push(CKEDITOR.env.ie?"(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"})()":"0");b.push(')"\x3e\x3c/iframe\x3e');return b.join("")})}},fileButton:function(b,a,d){var e=this;if(!(3>arguments.length)){k.call(this,
a);a.validate&&(this.validate=a.validate);var c=CKEDITOR.tools.extend({},a),f=c.onClick;c.className=(c.className?c.className+" ":"")+"cke_dialog_ui_button";c.onClick=function(c){var d=a["for"];c=f?f.call(this,c):!1;!1!==c&&("xhr"!==c&&b.getContentElement(d[0],d[1]).submit(),this.disable())};b.on("load",function(){b.getContentElement(a["for"][0],a["for"][1])._.buttons.push(e)});CKEDITOR.ui.dialog.button.call(this,b,c,d)}},html:function(){var b=/^\s*<[\w:]+\s+([^>]*)?>/,a=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,
d=/\/$/;return function(e,c,f){if(!(3>arguments.length)){var h=[],g=c.html;"\x3c"!=g.charAt(0)&&(g="\x3cspan\x3e"+g+"\x3c/span\x3e");var n=c.focus;if(n){var l=this.focus;this.focus=function(){("function"==typeof n?n:l).call(this);this.fire("focus")};c.isFocusable&&(this.isFocusable=this.isFocusable);this.keyboardFocusable=!0}CKEDITOR.ui.dialog.uiElement.call(this,e,c,h,"span",null,null,"");h=h.join("").match(b);g=g.match(a)||["","",""];d.test(g[1])&&(g[1]=g[1].slice(0,-1),g[2]="/"+g[2]);f.push([g[1],
" ",h[1]||"",g[2]].join(""))}}}(),fieldset:function(b,a,d,e,c){var f=c.label;this._={children:a};CKEDITOR.ui.dialog.uiElement.call(this,b,c,e,"fieldset",null,null,function(){var a=[];f&&a.push("\x3clegend"+(c.labelStyle?' style\x3d"'+c.labelStyle+'"':"")+"\x3e"+f+"\x3c/legend\x3e");for(var b=0;b<d.length;b++)a.push(d[b]);return a.join("")})}},!0);CKEDITOR.ui.dialog.html.prototype=new CKEDITOR.ui.dialog.uiElement;CKEDITOR.ui.dialog.labeledElement.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,
{setLabel:function(b){var a=CKEDITOR.document.getById(this._.labelId);1>a.getChildCount()?(new CKEDITOR.dom.text(b,CKEDITOR.document)).appendTo(a):a.getChild(0).$.nodeValue=b;return this},getLabel:function(){var b=CKEDITOR.document.getById(this._.labelId);return!b||1>b.getChildCount()?"":b.getChild(0).getText()},eventProcessors:v},!0);CKEDITOR.ui.dialog.button.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{click:function(){return this._.disabled?!1:this.fire("click",{dialog:this._.dialog})},
enable:function(){this._.disabled=!1;var b=this.getElement();b&&b.removeClass("cke_disabled")},disable:function(){this._.disabled=!0;this.getElement().addClass("cke_disabled")},isVisible:function(){return this.getElement().getFirst().isVisible()},isEnabled:function(){return!this._.disabled},eventProcessors:CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onClick:function(b,a){this.on("click",function(){a.apply(this,arguments)})}},!0),accessKeyUp:function(){this.click()},
accessKeyDown:function(){this.focus()},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.textInput.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return CKEDITOR.document.getById(this._.inputId)},focus:function(){var b=this.selectParentTab();setTimeout(function(){var a=b.getInputElement();a&&a.$.focus()},0)},select:function(){var b=this.selectParentTab();setTimeout(function(){var a=b.getInputElement();a&&(a.$.focus(),a.$.select())},0)},accessKeyUp:function(){this.select()},
setValue:function(b){if(this.bidi){var a=b&&b.charAt(0);(a=""==a?"ltr":""==a?"rtl":null)&&(b=b.slice(1));this.setDirectionMarker(a)}b||(b="");return CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply(this,arguments)},getValue:function(){var b=CKEDITOR.ui.dialog.uiElement.prototype.getValue.call(this);if(this.bidi&&b){var a=this.getDirectionMarker();a&&(b=("ltr"==a?"":"")+b)}return b},setDirectionMarker:function(b){var a=this.getInputElement();b?a.setAttributes({dir:b,"data-cke-dir-marker":b}):
this.getDirectionMarker()&&a.removeAttributes(["dir","data-cke-dir-marker"])},getDirectionMarker:function(){return this.getInputElement().data("cke-dir-marker")},keyboardFocusable:!0},q,!0);CKEDITOR.ui.dialog.textarea.prototype=new CKEDITOR.ui.dialog.textInput;CKEDITOR.ui.dialog.select.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return this._.select.getElement()},add:function(b,a,d){var f=new CKEDITOR.dom.element("option",this.getDialog().getParentEditor().document),
c=this.getInputElement().$;f.$.text=b;f.$.value=void 0===a||null===a?b:a;void 0===d||null===d?CKEDITOR.env.ie?c.add(f.$):c.add(f.$,null):c.add(f.$,d);return this},remove:function(b){this.getInputElement().$.remove(b);return this},clear:function(){for(var b=this.getInputElement().$;0<b.length;)b.remove(0);return this},keyboardFocusable:!0},q,!0);CKEDITOR.ui.dialog.checkbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getInputElement:function(){return this._.checkbox.getElement()},
this.getDirectionMarker()&&a.removeAttributes(["dir","data-cke-dir-marker"])},getDirectionMarker:function(){return this.getInputElement().data("cke-dir-marker")},keyboardFocusable:!0},q,!0);CKEDITOR.ui.dialog.textarea.prototype=new CKEDITOR.ui.dialog.textInput;CKEDITOR.ui.dialog.select.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return this._.select.getElement()},add:function(b,a,d){var e=new CKEDITOR.dom.element("option",this.getDialog().getParentEditor().document),
c=this.getInputElement().$;e.$.text=b;e.$.value=void 0===a||null===a?b:a;void 0===d||null===d?CKEDITOR.env.ie?c.add(e.$):c.add(e.$,null):c.add(e.$,d);return this},remove:function(b){this.getInputElement().$.remove(b);return this},clear:function(){for(var b=this.getInputElement().$;0<b.length;)b.remove(0);return this},keyboardFocusable:!0},q,!0);CKEDITOR.ui.dialog.checkbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getInputElement:function(){return this._.checkbox.getElement()},
setValue:function(b,a){this.getInputElement().$.checked=b;!a&&this.fire("change",{value:b});return this},getValue:function(){return this.getInputElement().$.checked},accessKeyUp:function(){this.setValue(!this.getValue())},eventProcessors:{onChange:function(b,a){if(!CKEDITOR.env.ie||8<CKEDITOR.env.version)return v.onChange.apply(this,arguments);b.on("load",function(){var a=this._.checkbox.getElement();a.on("propertychange",function(b){b=b.data.$;"checked"==b.propertyName&&this.fire("change",{value:a.$.checked})},
this)},this);this.on("change",a);return null}},keyboardFocusable:!0},q,!0);CKEDITOR.ui.dialog.radio.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{setValue:function(b,a){for(var d=this._.children,f,c=0;c<d.length&&(f=d[c]);c++)f.getElement().$.checked=f.getValue()==b;!a&&this.fire("change",{value:b});return this},getValue:function(){for(var b=this._.children,a=0;a<b.length;a++)if(b[a].getElement().$.checked)return b[a].getValue();return null},accessKeyUp:function(){var b=this._.children,
a;for(a=0;a<b.length;a++)if(b[a].getElement().$.checked){b[a].getElement().focus();return}b[0].getElement().focus()},eventProcessors:{onChange:function(b,a){if(!CKEDITOR.env.ie||8<CKEDITOR.env.version)return v.onChange.apply(this,arguments);b.on("load",function(){for(var a=this._.children,b=this,c=0;c<a.length;c++)a[c].getElement().on("propertychange",function(a){a=a.data.$;"checked"==a.propertyName&&this.$.checked&&b.fire("change",{value:this.getAttribute("value")})})},this);this.on("change",a);
return null}}},q,!0);CKEDITOR.ui.dialog.file.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,q,{getInputElement:function(){var b=CKEDITOR.document.getById(this._.frameId).getFrameDocument();return 0<b.$.forms.length?new CKEDITOR.dom.element(b.$.forms[0].elements[0]):this.getElement()},submit:function(){this.getInputElement().getParent().$.submit();return this},getAction:function(){return this.getInputElement().getParent().$.action},registerEvents:function(b){var a=/^on([A-Z]\w+)/,
d,f=function(a,b,c,d){a.on("formLoaded",function(){a.getInputElement().on(c,d,a)})},c;for(c in b)if(d=c.match(a))this.eventProcessors[c]?this.eventProcessors[c].call(this,this._.dialog,b[c]):f(this,this._.dialog,d[1].toLowerCase(),b[c]);return this},reset:function(){function b(){d.$.open();var b="";f.size&&(b=f.size-(CKEDITOR.env.ie?7:0));var h=a.frameId+"_input";d.$.write(['\x3chtml dir\x3d"'+g+'" lang\x3d"'+k+'"\x3e\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e\x3cbody style\x3d"margin: 0; overflow: hidden; background: transparent;"\x3e',
'\x3cform enctype\x3d"multipart/form-data" method\x3d"POST" dir\x3d"'+g+'" lang\x3d"'+k+'" action\x3d"',CKEDITOR.tools.htmlEncode(f.action),'"\x3e\x3clabel id\x3d"',a.labelId,'" for\x3d"',h,'" style\x3d"display:none"\x3e',CKEDITOR.tools.htmlEncode(f.label),'\x3c/label\x3e\x3cinput style\x3d"width:100%" id\x3d"',h,'" aria-labelledby\x3d"',a.labelId,'" type\x3d"file" name\x3d"',CKEDITOR.tools.htmlEncode(f.id||"cke_upload"),'" size\x3d"',CKEDITOR.tools.htmlEncode(0<b?b:""),'" /\x3e\x3c/form\x3e\x3c/body\x3e\x3c/html\x3e\x3cscript\x3e',
CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"","window.parent.CKEDITOR.tools.callFunction("+e+");","window.onbeforeunload \x3d function() {window.parent.CKEDITOR.tools.callFunction("+m+")}","\x3c/script\x3e"].join(""));d.$.close();for(b=0;b<c.length;b++)c[b].enable()}var a=this._,d=CKEDITOR.document.getById(a.frameId).getFrameDocument(),f=a.definition,c=a.buttons,e=this.formLoadedNumber,m=this.formUnloadNumber,g=a.dialog._.editor.lang.dir,k=a.dialog._.editor.langCode;e||(e=this.formLoadedNumber=
CKEDITOR.tools.addFunction(function(){this.fire("formLoaded")},this),m=this.formUnloadNumber=CKEDITOR.tools.addFunction(function(){this.getInputElement().clearCustomData()},this),this.getDialog()._.editor.on("destroy",function(){CKEDITOR.tools.removeFunction(e);CKEDITOR.tools.removeFunction(m)}));CKEDITOR.env.gecko?setTimeout(b,500):b()},getValue:function(){return this.getInputElement().$.value||""},setInitValue:function(){this._.initValue=""},eventProcessors:{onChange:function(b,a){this._.domOnChangeRegistered||
(this.on("formLoaded",function(){this.getInputElement().on("change",function(){this.fire("change",{value:this.getValue()})},this)},this),this._.domOnChangeRegistered=!0);this.on("change",a)}},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.fileButton.prototype=new CKEDITOR.ui.dialog.button;CKEDITOR.ui.dialog.fieldset.prototype=CKEDITOR.tools.clone(CKEDITOR.ui.dialog.hbox.prototype);CKEDITOR.dialog.addUIElement("text",r);CKEDITOR.dialog.addUIElement("password",r);CKEDITOR.dialog.addUIElement("tel",r);
CKEDITOR.dialog.addUIElement("textarea",n);CKEDITOR.dialog.addUIElement("checkbox",n);CKEDITOR.dialog.addUIElement("radio",n);CKEDITOR.dialog.addUIElement("button",n);CKEDITOR.dialog.addUIElement("select",n);CKEDITOR.dialog.addUIElement("file",n);CKEDITOR.dialog.addUIElement("fileButton",n);CKEDITOR.dialog.addUIElement("html",n);CKEDITOR.dialog.addUIElement("fieldset",{build:function(b,a,d){for(var f=a.children,c,e=[],h=[],g=0;g<f.length&&(c=f[g]);g++){var k=[];e.push(k);h.push(CKEDITOR.dialog._.uiElementBuilders[c.type].build(b,
c,k))}return new CKEDITOR.ui.dialog[a.type](b,h,e,d,a)}})}});CKEDITOR.DIALOG_RESIZE_NONE=0;CKEDITOR.DIALOG_RESIZE_WIDTH=1;CKEDITOR.DIALOG_RESIZE_HEIGHT=2;CKEDITOR.DIALOG_RESIZE_BOTH=3;CKEDITOR.DIALOG_STATE_IDLE=1;CKEDITOR.DIALOG_STATE_BUSY=2;
this)},this);this.on("change",a);return null}},keyboardFocusable:!0},q,!0);CKEDITOR.ui.dialog.radio.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{focus:function(){var b=this._.children,a=b[0],d=this._.dialog._,e=d.currentFocusIndex,c=e===d.focusList.length-1&&0===this.focusIndex;e>this.focusIndex&&!c&&(a=b[b.length-1]);d.currentFocusIndex=this.focusIndex;for(d=0;d<b.length;d++)if(e=b[d],e.getInputElement().$.checked){a=e;break}a.focus()},setValue:function(b,a){for(var d=this._.children,
e,c=0;c<d.length&&(e=d[c]);c++)e.getElement().$.checked=e.getValue()==b;!a&&this.fire("change",{value:b});return this},getValue:function(){for(var b=this._.children,a=0;a<b.length;a++)if(b[a].getElement().$.checked)return b[a].getValue();return null},accessKeyUp:function(){var b=this._.children,a;for(a=0;a<b.length;a++)if(b[a].getElement().$.checked){b[a].getElement().focus();return}b[0].getElement().focus()},click:function(){this._.dialog._.currentFocusIndex=this.focusIndex},eventProcessors:{onChange:function(b,
a){if(!CKEDITOR.env.ie||8<CKEDITOR.env.version)return v.onChange.apply(this,arguments);b.on("load",function(){for(var a=this._.children,b=this,c=0;c<a.length;c++)a[c].getElement().on("propertychange",function(a){a=a.data.$;"checked"==a.propertyName&&this.$.checked&&b.fire("change",{value:this.getAttribute("value")})})},this);this.on("change",a);return null}},keyboardFocusable:!0},q,!0);CKEDITOR.ui.dialog.file.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,q,{getInputElement:function(){var b=
CKEDITOR.document.getById(this._.frameId).getFrameDocument();return 0<b.$.forms.length?new CKEDITOR.dom.element(b.$.forms[0].elements[0]):this.getElement()},submit:function(){this.getInputElement().getParent().$.submit();return this},getAction:function(){return this.getInputElement().getParent().$.action},registerEvents:function(b){var a=/^on([A-Z]\w+)/,d,e=function(a,b,c,d){a.on("formLoaded",function(){a.getInputElement().on(c,d,a)})},c;for(c in b)if(d=c.match(a))this.eventProcessors[c]?this.eventProcessors[c].call(this,
this._.dialog,b[c]):e(this,this._.dialog,d[1].toLowerCase(),b[c]);return this},reset:function(){function b(){d.$.open();var b="";e.size&&(b=e.size-(CKEDITOR.env.ie?7:0));var k=a.frameId+"_input";d.$.write(['\x3chtml dir\x3d"'+g+'" lang\x3d"'+n+'"\x3e\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e\x3cbody style\x3d"margin: 0; overflow: hidden; background: transparent;"\x3e','\x3cform enctype\x3d"multipart/form-data" method\x3d"POST" dir\x3d"'+g+'" lang\x3d"'+n+'" action\x3d"',CKEDITOR.tools.htmlEncode(e.action),
'"\x3e\x3clabel id\x3d"',a.labelId,'" for\x3d"',k,'" style\x3d"display:none"\x3e',CKEDITOR.tools.htmlEncode(e.label),'\x3c/label\x3e\x3cinput style\x3d"width:100%" id\x3d"',k,'" aria-labelledby\x3d"',a.labelId,'" type\x3d"file" name\x3d"',CKEDITOR.tools.htmlEncode(e.id||"cke_upload"),'" size\x3d"',CKEDITOR.tools.htmlEncode(0<b?b:""),'" /\x3e\x3c/form\x3e\x3c/body\x3e\x3c/html\x3e\x3cscript\x3e',CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"","window.parent.CKEDITOR.tools.callFunction("+f+");",
"window.onbeforeunload \x3d function() {window.parent.CKEDITOR.tools.callFunction("+h+")}","\x3c/script\x3e"].join(""));d.$.close();for(b=0;b<c.length;b++)c[b].enable()}var a=this._,d=CKEDITOR.document.getById(a.frameId).getFrameDocument(),e=a.definition,c=a.buttons,f=this.formLoadedNumber,h=this.formUnloadNumber,g=a.dialog._.editor.lang.dir,n=a.dialog._.editor.langCode;f||(f=this.formLoadedNumber=CKEDITOR.tools.addFunction(function(){this.fire("formLoaded")},this),h=this.formUnloadNumber=CKEDITOR.tools.addFunction(function(){this.getInputElement().clearCustomData()},
this),this.getDialog()._.editor.on("destroy",function(){CKEDITOR.tools.removeFunction(f);CKEDITOR.tools.removeFunction(h)}));CKEDITOR.env.gecko?setTimeout(b,500):b()},getValue:function(){return this.getInputElement().$.value||""},setInitValue:function(){this._.initValue=""},eventProcessors:{onChange:function(b,a){this._.domOnChangeRegistered||(this.on("formLoaded",function(){this.getInputElement().on("change",function(){this.fire("change",{value:this.getValue()})},this)},this),this._.domOnChangeRegistered=
!0);this.on("change",a)}},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.fileButton.prototype=new CKEDITOR.ui.dialog.button;CKEDITOR.ui.dialog.fieldset.prototype=CKEDITOR.tools.clone(CKEDITOR.ui.dialog.hbox.prototype);CKEDITOR.dialog.addUIElement("text",r);CKEDITOR.dialog.addUIElement("password",r);CKEDITOR.dialog.addUIElement("tel",r);CKEDITOR.dialog.addUIElement("textarea",m);CKEDITOR.dialog.addUIElement("checkbox",m);CKEDITOR.dialog.addUIElement("radio",m);CKEDITOR.dialog.addUIElement("button",m);
CKEDITOR.dialog.addUIElement("select",m);CKEDITOR.dialog.addUIElement("file",m);CKEDITOR.dialog.addUIElement("fileButton",m);CKEDITOR.dialog.addUIElement("html",m);CKEDITOR.dialog.addUIElement("fieldset",{build:function(b,a,d){for(var e=a.children,c,f=[],h=[],g=0;g<e.length&&(c=e[g]);g++){var k=[];f.push(k);h.push(CKEDITOR.dialog._.uiElementBuilders[c.type].build(b,c,k))}return new CKEDITOR.ui.dialog[a.type](b,h,f,d,a)}})}});CKEDITOR.DIALOG_RESIZE_NONE=0;CKEDITOR.DIALOG_RESIZE_WIDTH=1;CKEDITOR.DIALOG_RESIZE_HEIGHT=2;CKEDITOR.DIALOG_RESIZE_BOTH=3;CKEDITOR.DIALOG_STATE_IDLE=1;CKEDITOR.DIALOG_STATE_BUSY=2;
(function(){function I(a){a._.tabBarMode=!0;a._.tabs[a._.currentTabId][0].focus();a._.currentFocusIndex=-1}function J(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId)+a,c=b-1;c>b-a;c--)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function W(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId),c=b+1;c<b+a;c++)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%
a];return null}function K(a,b){for(var c=a.$.getElementsByTagName("input"),e=0,d=c.length;e<d;e++){var f=new CKEDITOR.dom.element(c[e]);"text"==f.getAttribute("type").toLowerCase()&&(b?(f.setAttribute("value",f.getCustomData("fake_value")||""),f.removeCustomData("fake_value")):(f.setCustomData("fake_value",f.getAttribute("value")),f.setAttribute("value","")))}}function X(a,b){var c=this.getInputElement();c&&(a?c.removeAttribute("aria-invalid"):c.setAttribute("aria-invalid",!0));a||(this.select?this.select():
this.focus());b&&alert(b);this.fire("validated",{valid:a,msg:b})}function Y(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function Z(a){var b=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",aa).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close,hidpi:CKEDITOR.env.hidpi?"cke_hidpi":""})),c=b.getChild([0,0,0,0,0]),e=
@@ -647,8 +647,8 @@ c.$.style.zIndex-=Math.floor(e/2),this._.parentDialog.getElement().setStyle("z-i
(k.enable(),f++))}!f||c&&!this._.editor.activeFilter.check(c)?e[0].addClass("cke_dialog_tab_disabled"):e[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout();ba(this);this.parts.dialog.setStyle("visibility","");this.fireOnce("load",{});CKEDITOR.ui.fire("ready",this);this.fire("show",{});this._.editor.fire("dialogShow",this);this._.parentDialog||this._.editor.focusManager.lock();this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=
this.parts.dialog;if(this._.moved||!D){var b=this.getSize(),c=CKEDITOR.document.getWindow().getViewPaneSize(),e;this._.moved&&this._.position?(e=this._.position.x,b=this._.position.y):(e=(c.width-b.width)/2,b=(c.height-b.height)/2);CKEDITOR.env.ie6Compat||(a.setStyle("position","absolute"),a.removeStyle("margin"));e=Math.floor(e);b=Math.floor(b);this.move(e,b)}},foreach:function(a){for(var b in this._.contents)for(var c in this._.contents[b])a.call(this,this._.contents[b][c]);return this},reset:function(){var a=
function(a){a.reset&&a.reset(1)};return function(){this.foreach(a);return this}}(),setupContent:function(){var a=arguments;this.foreach(function(b){b.setup&&b.setup.apply(b,a)})},commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur();b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",this);this.selectPage(this._.tabIdList[0]);
var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility","hidden");for(ea(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();this._.parentDialog.getElement().removeStyle("z-index");b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else Q(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=
10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",R);a.removeListener("keyup",S);var c=this._.editor;c.focus();setTimeout(function(){c.focusManager.unlock();CKEDITOR.env.iOS&&c.window.focus()},0)}delete this._.parentDialog;this.foreach(function(a){a.resetInitValue&&a.resetInitValue()});this.setState(CKEDITOR.DIALOG_STATE_IDLE)}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var b=[],c=a.label?' title\x3d"'+CKEDITOR.tools.htmlEncode(a.label)+
var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility","hidden");for(ea(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst(),c=parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2);this._.parentDialog.getElement().setStyle("z-index",c);b.setStyle("z-index",c)}else Q(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=
10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",R);a.removeListener("keyup",S);var e=this._.editor;e.focus();setTimeout(function(){e.focusManager.unlock();CKEDITOR.env.iOS&&e.window.focus()},0)}delete this._.parentDialog;this.foreach(function(a){a.resetInitValue&&a.resetInitValue()});this.setState(CKEDITOR.DIALOG_STATE_IDLE)}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var b=[],c=a.label?' title\x3d"'+CKEDITOR.tools.htmlEncode(a.label)+
'"':"",e=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents",children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},b),d=this._.contents[a.id]={},f=e.getChild(),g=0;e=f.shift();)e.notAllowed||"hbox"==e.type||"vbox"==e.type||g++,d[e.id]=e,"function"==typeof e.getChild&&f.push.apply(f,e.getChild());g||(a.hidden=!0);b=CKEDITOR.dom.element.createFromHtml(b.join(""));b.setAttribute("role","tabpanel");b.setStyle("min-height",
"100%");e=CKEDITOR.env;d="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber();c=CKEDITOR.dom.element.createFromHtml(['\x3ca class\x3d"cke_dialog_tab"',0<this._.pageCount?" cke_last":"cke_first",c,a.hidden?' style\x3d"display:none"':"",' id\x3d"',d,'"',e.gecko&&!e.hc?"":' href\x3d"javascript:void(0)"',' tabIndex\x3d"-1" hidefocus\x3d"true" role\x3d"tab"\x3e',a.label,"\x3c/a\x3e"].join(""));b.setAttribute("aria-labelledby",d);this._.tabs[a.id]=[c,b];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;
this._.lastTab=c;this.updateStyle();b.setAttribute("name",a.id);b.appendTo(this.parts.contents);c.unselectable();this.parts.tabs.append(c);a.accessKey&&(T(this,this,"CTRL+"+a.accessKey,ga,fa),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!this._.tabs[a][0].hasClass("cke_dialog_tab_disabled")&&!1!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var b in this._.tabs){var c=this._.tabs[b][0],e=this._.tabs[b][1];b!=a&&(c.removeClass("cke_dialog_tab_selected"),
@@ -763,39 +763,39 @@ method:"drop"},1);d.sourceEditor.fire("saveSnapshot");d.sourceEditor.editable().
var e=a.editable(),l=CKEDITOR.plugins.clipboard.getDropTarget(a),q=a.ui.space("top"),v=a.ui.space("bottom");b.preventDefaultDropOnElement(q);b.preventDefaultDropOnElement(v);e.attachListener(l,"dragstart",g);e.attachListener(a,"dragstart",b.resetDragDataTransfer,b,null,1);e.attachListener(a,"dragstart",function(c){b.initDragDataTransfer(c,a)},null,null,2);e.attachListener(a,"dragstart",function(){var c=b.dragRange=a.getSelection().getRanges()[0];CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(b.dragStartContainerChildCount=
c?f(c.startContainer):null,b.dragEndContainerChildCount=c?f(c.endContainer):null)},null,null,100);e.attachListener(l,"dragend",g);e.attachListener(a,"dragend",b.initDragDataTransfer,b,null,1);e.attachListener(a,"dragend",b.resetDragDataTransfer,b,null,100);e.attachListener(l,"dragover",function(a){if(CKEDITOR.env.edge)a.data.preventDefault();else{var b=a.data.getTarget();b&&b.is&&b.is("html")?a.data.preventDefault():CKEDITOR.env.ie&&CKEDITOR.plugins.clipboard.isFileApiSupported&&a.data.$.dataTransfer.types.contains("Files")&&
a.data.preventDefault()}});e.attachListener(l,"drop",function(c){if(!c.data.$.defaultPrevented&&(c.data.preventDefault(),!a.readOnly)){var d=c.data.getTarget();if(!d.isReadOnly()||d.type==CKEDITOR.NODE_ELEMENT&&d.is("html")){var d=b.getRangeAtDropPosition(c,a),e=b.dragRange;d&&g(c,e,d)}}},null,null,9999);e.attachListener(a,"drop",b.initDragDataTransfer,b,null,1);e.attachListener(a,"drop",function(h){if(h=h.data){var e=h.dropRange,p=h.dragRange,k=h.dataTransfer;k.getTransferType(a)==CKEDITOR.DATA_TRANSFER_INTERNAL?
setTimeout(function(){b.internalDrop(p,e,k,a)},0):k.getTransferType(a)==CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?c(p,e,k):d(e,k)}},null,null,9999)})}var r;CKEDITOR.plugins.add("clipboard",{requires:"dialog,notification,toolbar",_supportedFileMatchers:[],init:function(a){function b(a){return-1!==CKEDITOR.tools.indexOf(["image/png","image/jpeg","image/gif"],a.type)}function c(b){return CKEDITOR.tools.array.some(a.plugins.clipboard._supportedFileMatchers,function(a){return a(b)})}function d(b){b.length&&
(b=CKEDITOR.tools.array.unique(b),b=CKEDITOR.tools.array.filter(b,function(a){return!!CKEDITOR.tools.trim(a)}),b=g(b.join(", ")),a.showNotification(b,"info",a.config.clipboard_notificationDuration))}function g(b){return b?a.lang.clipboard.fileFormatNotSupportedNotification.replace(/\${formats\}/g,"\x3cem\x3e"+b+"\x3c/em\x3e"):a.lang.clipboard.fileWithoutFormatNotSupportedNotification}function f(a,b){return CKEDITOR.env.ie&&a.data.fileTransferCancel||!(CKEDITOR.env.ie||b&&v!==b.id)?!1:b.isFileTransfer()&&
1===b.getFilesCount()}var e,l=C(a);a.config.forcePasteAsPlainText?e="plain-text":a.config.pasteFilter?e=a.config.pasteFilter:!CKEDITOR.env.webkit||"pasteFilter"in a.config||(e="semantic-content");a.pasteFilter=l.get(e);y(a);E(a);CKEDITOR.dialog.add("paste",CKEDITOR.getUrl(this.path+"dialogs/paste.js"));var q=CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||CKEDITOR.plugins.clipboard.isFileApiSupported,v;CKEDITOR.plugins.clipboard.addFileMatcher(a,b);a.on("paste",function(a){if(q){var b=a.data;
a=b.dataTransfer;if(!b.dataValue){for(var b=[],e=0;e<a.getFilesCount();e++){var k=a.getFile(e);c(k)||b.push(k.type)}d(b)}}},null,null,1);a.on("paste",function(c){if(q&&a.config.clipboard_handleImages){var d=c.data,e=d.dataTransfer;if(!d.dataValue&&f(c,e)&&(e=e.getFile(0),b(e))){var k=new FileReader;k.addEventListener("load",function(){c.data.dataValue='\x3cimg src\x3d"'+k.result+'" /\x3e';a.fire("paste",c.data)},!1);k.addEventListener("abort",function(){CKEDITOR.env.ie&&(c.data.fileTransferCancel=
!0);a.fire("paste",c.data)},!1);k.addEventListener("error",function(){CKEDITOR.env.ie&&(c.data.fileTransferCancel=!0);a.fire("paste",c.data)},!1);k.readAsDataURL(e);v=d.dataTransfer.id;c.stop()}}},null,null,1);a.on("paste",function(b){b.data.dataTransfer||(b.data.dataTransfer=new CKEDITOR.plugins.clipboard.dataTransfer);if(!b.data.dataValue){var c=b.data.dataTransfer,d=c.getData("text/html");if(d)b.data.dataValue=d,b.data.type="html";else if(d=c.getData("text/plain"))b.data.dataValue=a.editable().transformPlainTextToHtml(d),
b.data.type="text"}},null,null,1);a.on("paste",function(a){var b=a.data.dataValue,c=CKEDITOR.dtd.$block;-1<b.indexOf("Apple-")&&(b=b.replace(/<span class="Apple-converted-space">&nbsp;<\/span>/gi," "),"html"!=a.data.type&&(b=b.replace(/<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi,function(a,b){return b.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;")})),-1<b.indexOf('\x3cbr class\x3d"Apple-interchange-newline"\x3e')&&(a.data.startsWithEOL=1,a.data.preSniffing="html",b=b.replace(/<br class="Apple-interchange-newline">/,
"")),b=b.replace(/(<[^>]+) class="Apple-[^"]*"/gi,"$1"));if(b.match(/^<[^<]+cke_(editable|contents)/i)){var d,e,f=new CKEDITOR.dom.element("div");for(f.setHtml(b);1==f.getChildCount()&&(d=f.getFirst())&&d.type==CKEDITOR.NODE_ELEMENT&&(d.hasClass("cke_editable")||d.hasClass("cke_contents"));)f=e=d;e&&(b=e.getHtml().replace(/<br>$/i,""))}CKEDITOR.env.ie?b=b.replace(/^&nbsp;(?: |\r\n)?<(\w+)/g,function(b,d){return d.toLowerCase()in c?(a.data.preSniffing="html","\x3c"+d):b}):CKEDITOR.env.webkit?b=b.replace(/<\/(\w+)><div><br><\/div>$/,
function(b,d){return d in c?(a.data.endsWithEOL=1,"\x3c/"+d+"\x3e"):b}):CKEDITOR.env.gecko&&(b=b.replace(/(\s)<br>$/,"$1"));a.data.dataValue=b},null,null,3);a.on("paste",function(b){b=b.data;var c=a._.nextPasteType||b.type,d=b.dataValue,e,f=a.config.clipboard_defaultContentType||"html",g=b.dataTransfer.getTransferType(a)==CKEDITOR.DATA_TRANSFER_EXTERNAL,q=!0===a.config.forcePasteAsPlainText;e="html"==c||"html"==b.preSniffing?"html":z(d);delete a._.nextPasteType;"htmlifiedtext"==e&&(d=A(a.config,d));
if("text"==c&&"html"==e)d=x(a,d,l.get("plain-text"));else if(g&&a.pasteFilter&&!b.dontFilter||q)d=x(a,d,a.pasteFilter);b.startsWithEOL&&(d='\x3cbr data-cke-eol\x3d"1"\x3e'+d);b.endsWithEOL&&(d+='\x3cbr data-cke-eol\x3d"1"\x3e');"auto"==c&&(c="html"==e||"html"==f?"html":"text");b.type=c;b.dataValue=d;delete b.preSniffing;delete b.startsWithEOL;delete b.endsWithEOL},null,null,6);a.on("paste",function(b){b=b.data;b.dataValue&&(a.insertHtml(b.dataValue,b.type,b.range),setTimeout(function(){a.fire("afterPaste")},
0))},null,null,1E3);a.on("pasteDialog",function(b){setTimeout(function(){a.openDialog("paste",b.data)},0)})}});CKEDITOR.plugins.clipboard={addFileMatcher:function(a,b){a.plugins.clipboard._supportedFileMatchers.push(b)},isCustomCopyCutSupported:CKEDITOR.env.ie&&16>CKEDITOR.env.version||CKEDITOR.env.iOS&&605>CKEDITOR.env.version?!1:!0,isCustomDataTypesSupported:!CKEDITOR.env.ie||16<=CKEDITOR.env.version,isFileApiSupported:!CKEDITOR.env.ie||9<CKEDITOR.env.version,mainPasteEvent:CKEDITOR.env.ie&&!CKEDITOR.env.edge?
"beforepaste":"paste",addPasteButton:function(a,b,c){a.ui.addButton&&(a.ui.addButton(b,c),a._.pasteButtons||(a._.pasteButtons=[]),a._.pasteButtons.push(b))},canClipboardApiBeTrusted:function(a,b){return a.getTransferType(b)!=CKEDITOR.DATA_TRANSFER_EXTERNAL||CKEDITOR.env.chrome&&!a.isEmpty()||CKEDITOR.env.gecko&&(a.getData("text/html")||a.getFilesCount())||CKEDITOR.env.safari&&603<=CKEDITOR.env.version&&!CKEDITOR.env.iOS||CKEDITOR.env.iOS&&605<=CKEDITOR.env.version||CKEDITOR.env.edge&&16<=CKEDITOR.env.version?
!0:!1},getDropTarget:function(a){var b=a.editable();return CKEDITOR.env.ie&&9>CKEDITOR.env.version||b.isInline()?b:a.document},fixSplitNodesAfterDrop:function(a,b,c,d){function g(a,c,d){var f=a;f.type==CKEDITOR.NODE_TEXT&&(f=a.getParent());if(f.equals(c)&&d!=c.getChildCount())return a=b.startContainer.getChild(b.startOffset-1),c=b.startContainer.getChild(b.startOffset),a&&a.type==CKEDITOR.NODE_TEXT&&c&&c.type==CKEDITOR.NODE_TEXT&&(d=a.getLength(),a.setText(a.getText()+c.getText()),c.remove(),b.setStart(a,
d),b.collapse(!0)),!0}var f=b.startContainer;"number"==typeof d&&"number"==typeof c&&f.type==CKEDITOR.NODE_ELEMENT&&(g(a.startContainer,f,c)||g(a.endContainer,f,d))},isDropRangeAffectedByDragRange:function(a,b){var c=b.startContainer,d=b.endOffset;return a.endContainer.equals(c)&&a.endOffset<=d||a.startContainer.getParent().equals(c)&&a.startContainer.getIndex()<d||a.endContainer.getParent().equals(c)&&a.endContainer.getIndex()<d?!0:!1},internalDrop:function(a,b,c,d){var g=CKEDITOR.plugins.clipboard,
f=d.editable(),e,l;d.fire("saveSnapshot");d.fire("lockSnapshot",{dontUpdate:1});CKEDITOR.env.ie&&10>CKEDITOR.env.version&&this.fixSplitNodesAfterDrop(a,b,g.dragStartContainerChildCount,g.dragEndContainerChildCount);(l=this.isDropRangeAffectedByDragRange(a,b))||(e=a.createBookmark(!1));g=b.clone().createBookmark(!1);l&&(e=a.createBookmark(!1));a=e.startNode;b=e.endNode;l=g.startNode;b&&a.getPosition(l)&CKEDITOR.POSITION_PRECEDING&&b.getPosition(l)&CKEDITOR.POSITION_FOLLOWING&&l.insertBefore(a);a=d.createRange();
a.moveToBookmark(e);f.extractHtmlFromRange(a,1);b=d.createRange();g.startNode.getCommonAncestor(f)||(g=d.getSelection().createBookmarks()[0]);b.moveToBookmark(g);t(d,{dataTransfer:c,method:"drop",range:b},1);d.fire("unlockSnapshot")},getRangeAtDropPosition:function(a,b){var c=a.data.$,d=c.clientX,g=c.clientY,f=b.getSelection(!0).getRanges()[0],e=b.createRange();if(a.data.testRange)return a.data.testRange;if(document.caretRangeFromPoint&&b.document.$.caretRangeFromPoint(d,g))c=b.document.$.caretRangeFromPoint(d,
g),e.setStart(CKEDITOR.dom.node(c.startContainer),c.startOffset),e.collapse(!0);else if(c.rangeParent)e.setStart(CKEDITOR.dom.node(c.rangeParent),c.rangeOffset),e.collapse(!0);else{if(CKEDITOR.env.ie&&8<CKEDITOR.env.version&&f&&b.editable().hasFocus)return f;if(document.body.createTextRange){b.focus();c=b.document.getBody().$.createTextRange();try{for(var l=!1,q=0;20>q&&!l;q++){if(!l)try{c.moveToPoint(d,g-q),l=!0}catch(r){}if(!l)try{c.moveToPoint(d,g+q),l=!0}catch(h){}}if(l){var m="cke-temp-"+(new Date).getTime();
c.pasteHTML('\x3cspan id\x3d"'+m+'"\x3e\x3c/span\x3e');var p=b.document.getById(m);e.moveToPosition(p,CKEDITOR.POSITION_BEFORE_START);p.remove()}else{var k=b.document.$.elementFromPoint(d,g),n=new CKEDITOR.dom.element(k),u;if(n.equals(b.editable())||"html"==n.getName())return f&&f.startContainer&&!f.startContainer.equals(b.editable())?f:null;u=n.getClientRect();d<u.left?e.setStartAt(n,CKEDITOR.POSITION_AFTER_START):e.setStartAt(n,CKEDITOR.POSITION_BEFORE_END);e.collapse(!0)}}catch(t){return null}}else return null}return e},
initDragDataTransfer:function(a,b){var c=a.data.$?a.data.$.dataTransfer:null,d=new this.dataTransfer(c,b);"dragstart"===a.name&&d.storeId();c?this.dragData&&d.id==this.dragData.id?d=this.dragData:this.dragData=d:this.dragData?d=this.dragData:this.dragData=d;a.data.dataTransfer=d},resetDragDataTransfer:function(){this.dragData=null},initPasteDataTransfer:function(a,b){if(this.isCustomCopyCutSupported){if(a&&a.data&&a.data.$){var c=a.data.$.clipboardData,d=new this.dataTransfer(c,b);"copy"!==a.name&&
"cut"!==a.name||d.storeId();this.copyCutData&&d.id==this.copyCutData.id?(d=this.copyCutData,d.$=c):this.copyCutData=d;return d}return new this.dataTransfer(null,b)}return new this.dataTransfer(CKEDITOR.env.edge&&a&&a.data.$&&a.data.$.clipboardData||null,b)},preventDefaultDropOnElement:function(a){a&&a.on("dragover",D)}};r=CKEDITOR.plugins.clipboard.isCustomDataTypesSupported?"cke/id":"Text";CKEDITOR.plugins.clipboard.dataTransfer=function(a,b){a&&(this.$=a);this._={metaRegExp:/^<meta.*?>/i,fragmentRegExp:/\s*\x3c!--StartFragment--\x3e|\x3c!--EndFragment--\x3e\s*/g,
types:[],data:{},files:[],nativeHtmlCache:"",normalizeType:function(a){a=a.toLowerCase();return"text"==a||"text/plain"==a?"Text":"url"==a?"URL":"files"===a?"Files":a}};this._.fallbackDataTransfer=new CKEDITOR.plugins.clipboard.fallbackDataTransfer(this);this.id=this.getData(r);this.id||(this.id="Text"==r?"":"cke-"+CKEDITOR.tools.getUniqueId());b&&(this.sourceEditor=b,this.setData("text/html",b.getSelectedHtml(1)),"Text"==r||this.getData("text/plain")||this.setData("text/plain",b.getSelection().getSelectedText()))};
CKEDITOR.DATA_TRANSFER_INTERNAL=1;CKEDITOR.DATA_TRANSFER_CROSS_EDITORS=2;CKEDITOR.DATA_TRANSFER_EXTERNAL=3;CKEDITOR.plugins.clipboard.dataTransfer.prototype={getData:function(a,b){a=this._.normalizeType(a);var c="text/html"==a&&b?this._.nativeHtmlCache:this._.data[a];if(void 0===c||null===c||""===c){if(this._.fallbackDataTransfer.isRequired())c=this._.fallbackDataTransfer.getData(a,b);else try{c=this.$.getData(a)||""}catch(d){c=""}"text/html"!=a||b||(c=this._stripHtml(c))}"Text"==a&&CKEDITOR.env.gecko&&
this.getFilesCount()&&"file://"==c.substring(0,7)&&(c="");if("string"===typeof c)var g=c.indexOf("\x3c/html\x3e"),c=-1!==g?c.substring(0,g+7):c;return c},setData:function(a,b){a=this._.normalizeType(a);"text/html"==a?(this._.data[a]=this._stripHtml(b),this._.nativeHtmlCache=b):this._.data[a]=b;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||"URL"==a||"Text"==a)if("Text"==r&&"Text"==a&&(this.id=b),this._.fallbackDataTransfer.isRequired())this._.fallbackDataTransfer.setData(a,b);else try{this.$.setData(a,
b)}catch(c){}},storeId:function(){"Text"!==r&&this.setData(r,this.id)},getTransferType:function(a){return this.sourceEditor?this.sourceEditor==a?CKEDITOR.DATA_TRANSFER_INTERNAL:CKEDITOR.DATA_TRANSFER_CROSS_EDITORS:CKEDITOR.DATA_TRANSFER_EXTERNAL},cacheData:function(){function a(a){a=b._.normalizeType(a);var c=b.getData(a);"text/html"==a&&(b._.nativeHtmlCache=b.getData(a,!0),c=b._stripHtml(c));c&&(b._.data[a]=c);b._.types.push(a)}if(this.$){var b=this,c,d,g;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(c=
0;c<this.$.types.length;c++)a(this.$.types[c])}else a("Text"),a("URL");d=this._getImageFromClipboard();if((g=this.$&&this.$.files||null)||d){this._.files=[];if(g&&g.length)for(c=0;c<g.length;c++)this._.files.push(g[c]);0===this._.files.length&&d&&this._.files.push(d)}}},getFilesCount:function(){if(this._.files.length)return this._.files.length;var a=this.$&&this.$.files||null;return a&&a.length?a.length:this._getImageFromClipboard()?1:0},getFile:function(a){if(this._.files.length)return this._.files[a];
var b=this.$&&this.$.files||null;return b&&b.length?b[a]:0===a?this._getImageFromClipboard():void 0},isFileTransfer:function(){var a=this.getTypes(),a=CKEDITOR.tools.array.filter(a,function(a){return"application/x-moz-file"!==a});return 1===a.length&&"files"===a[0].toLowerCase()},isEmpty:function(){var a={},b;if(this.getFilesCount())return!1;CKEDITOR.tools.array.forEach(CKEDITOR.tools.object.keys(this._.data),function(b){a[b]=1});if(this.$)if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(var c=
0;c<this.$.types.length;c++)a[this.$.types[c]]=1}else a.Text=1,a.URL=1;"Text"!=r&&(a[r]=0);for(b in a)if(a[b]&&""!==this.getData(b))return!1;return!0},getTypes:function(){return 0<this._.types.length?this._.types:this.$&&this.$.types?[].slice.call(this.$.types):[]},_getImageFromClipboard:function(){var a;try{if(this.$&&this.$.items&&this.$.items[0]&&(a=this.$.items[0].getAsFile())&&a.type)return a}catch(b){}},_stripHtml:function(a){function b(a){var b=new CKEDITOR.htmlParser,g,f;b.onTagOpen=function(a){"body"===
a&&(g=b._.htmlPartsRegex.lastIndex)};b.onTagClose=function(a){"body"===a&&(f=b._.htmlPartsRegex.lastIndex)};b.parse(a);return"number"!==typeof g||"number"!==typeof f?a:a.substring(g,f).replace(/<\/body\s*>$/gi,"")}a&&a.length&&(a=b(a),a=a.replace(this._.metaRegExp,""),a=a.replace(this._.fragmentRegExp,""));return a}};CKEDITOR.plugins.clipboard.fallbackDataTransfer=function(a){this._dataTransfer=a;this._customDataFallbackType="text/html"};CKEDITOR.plugins.clipboard.fallbackDataTransfer._isCustomMimeTypeSupported=
null;CKEDITOR.plugins.clipboard.fallbackDataTransfer._customTypes=[];CKEDITOR.plugins.clipboard.fallbackDataTransfer.prototype={isRequired:function(){var a=CKEDITOR.plugins.clipboard.fallbackDataTransfer,b=this._dataTransfer.$;if(null===a._isCustomMimeTypeSupported)if(b){a._isCustomMimeTypeSupported=!1;if(CKEDITOR.env.edge&&17<=CKEDITOR.env.version)return!0;try{b.setData("cke/mimetypetest","cke test value"),a._isCustomMimeTypeSupported="cke test value"===b.getData("cke/mimetypetest"),b.clearData("cke/mimetypetest")}catch(c){}}else return!1;
return!a._isCustomMimeTypeSupported},getData:function(a,b){var c=this._getData(this._customDataFallbackType,!0);if(b)return c;var c=this._extractDataComment(c),d=null,d=a===this._customDataFallbackType?c.content:c.data&&c.data[a]?c.data[a]:this._getData(a,!0);return null!==d?d:""},setData:function(a,b){var c=a===this._customDataFallbackType;c&&(b=this._applyDataComment(b,this._getFallbackTypeData()));var d=b,g=this._dataTransfer.$;try{g.setData(a,d),c&&(this._dataTransfer._.nativeHtmlCache=d)}catch(f){if(this._isUnsupportedMimeTypeError(f)){c=
CKEDITOR.plugins.clipboard.fallbackDataTransfer;-1===CKEDITOR.tools.indexOf(c._customTypes,a)&&c._customTypes.push(a);var c=this._getFallbackTypeContent(),e=this._getFallbackTypeData();e[a]=d;try{d=this._applyDataComment(c,e),g.setData(this._customDataFallbackType,d),this._dataTransfer._.nativeHtmlCache=d}catch(l){d=""}}}return d},_getData:function(a,b){var c=this._dataTransfer._.data;if(!b&&c[a])return c[a];try{return this._dataTransfer.$.getData(a)}catch(d){return null}},_getFallbackTypeContent:function(){var a=
this._dataTransfer._.data[this._customDataFallbackType];a||(a=this._extractDataComment(this._getData(this._customDataFallbackType,!0)).content);return a},_getFallbackTypeData:function(){var a=CKEDITOR.plugins.clipboard.fallbackDataTransfer._customTypes,b=this._extractDataComment(this._getData(this._customDataFallbackType,!0)).data||{},c=this._dataTransfer._.data;CKEDITOR.tools.array.forEach(a,function(a){void 0!==c[a]?b[a]=c[a]:void 0!==b[a]&&(b[a]=b[a])},this);return b},_isUnsupportedMimeTypeError:function(a){return a.message&&
-1!==a.message.search(/element not found/gi)},_extractDataComment:function(a){var b={data:null,content:a||""};if(a&&16<a.length){var c;(c=/\x3c!--cke-data:(.*?)--\x3e/g.exec(a))&&c[1]&&(b.data=JSON.parse(decodeURIComponent(c[1])),b.content=a.replace(c[0],""))}return b},_applyDataComment:function(a,b){var c="";b&&CKEDITOR.tools.object.keys(b).length&&(c="\x3c!--cke-data:"+encodeURIComponent(JSON.stringify(b))+"--\x3e");return c+(a&&a.length?a:"")}}})();
CKEDITOR.config.clipboard_notificationDuration=1E4;CKEDITOR.config.clipboard_handleImages=!0;CKEDITOR.plugins.add("panelbutton",{requires:"button",onLoad:function(){function e(c){var b=this._;b.state!=CKEDITOR.TRISTATE_DISABLED&&(this.createPanel(c),b.on?b.panel.hide():b.panel.showBlock(this._.id,this.document.getById(this._.id),4))}CKEDITOR.ui.panelButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(c){var b=c.panel||{};delete c.panel;this.base(c);this.document=b.parent&&b.parent.getDocument()||CKEDITOR.document;b.block={attributes:b.attributes};b.toolbarRelated=!0;this.hasArrow=
setTimeout(function(){b.internalDrop(p,e,k,a)},0):k.getTransferType(a)==CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?c(p,e,k):d(e,k)}},null,null,9999)})}var r;CKEDITOR.plugins.add("clipboard",{requires:"dialog,notification,toolbar",_supportedFileMatchers:[],init:function(a){function b(b){return a.config.clipboard_handleImages?-1!==CKEDITOR.tools.indexOf(["image/png","image/jpeg","image/gif"],b.type):!1}function c(b){return CKEDITOR.tools.array.some(a.plugins.clipboard._supportedFileMatchers,function(a){return a(b)})}
function d(b){b.length&&(b=CKEDITOR.tools.array.unique(b),b=CKEDITOR.tools.array.filter(b,function(a){return!!CKEDITOR.tools.trim(a)}),b=g(b.join(", ")),a.showNotification(b,"info",a.config.clipboard_notificationDuration))}function g(b){return b?a.lang.clipboard.fileFormatNotSupportedNotification.replace(/\${formats\}/g,"\x3cem\x3e"+b+"\x3c/em\x3e"):a.lang.clipboard.fileWithoutFormatNotSupportedNotification}function f(a,b){return CKEDITOR.env.ie&&a.data.fileTransferCancel||!(CKEDITOR.env.ie||b&&v!==
b.id)?!1:b.isFileTransfer()&&1===b.getFilesCount()}var e,l=C(a);a.config.forcePasteAsPlainText?e="plain-text":a.config.pasteFilter?e=a.config.pasteFilter:!CKEDITOR.env.webkit||"pasteFilter"in a.config||(e="semantic-content");a.pasteFilter=l.get(e);y(a);E(a);CKEDITOR.dialog.add("paste",CKEDITOR.getUrl(this.path+"dialogs/paste.js"));var q=CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||CKEDITOR.plugins.clipboard.isFileApiSupported,v;CKEDITOR.plugins.clipboard.addFileMatcher(a,b);a.on("paste",
function(a){if(q){var b=a.data;a=b.dataTransfer;if(!b.dataValue){for(var b=[],e=0;e<a.getFilesCount();e++){var k=a.getFile(e);c(k)||b.push(k.type)}d(b)}}},null,null,1);a.on("paste",function(c){if(q&&a.config.clipboard_handleImages){var d=c.data,e=d.dataTransfer;if(!d.dataValue&&f(c,e)&&(e=e.getFile(0),b(e))){var k=new FileReader;k.addEventListener("load",function(){c.data.dataValue='\x3cimg src\x3d"'+k.result+'" /\x3e';a.fire("paste",c.data)},!1);k.addEventListener("abort",function(){CKEDITOR.env.ie&&
(c.data.fileTransferCancel=!0);a.fire("paste",c.data)},!1);k.addEventListener("error",function(){CKEDITOR.env.ie&&(c.data.fileTransferCancel=!0);a.fire("paste",c.data)},!1);k.readAsDataURL(e);v=d.dataTransfer.id;c.stop()}}},null,null,1);a.on("paste",function(b){b.data.dataTransfer||(b.data.dataTransfer=new CKEDITOR.plugins.clipboard.dataTransfer);if(!b.data.dataValue){var c=b.data.dataTransfer,d=c.getData("text/html");if(d)b.data.dataValue=d,b.data.type="html";else if(d=c.getData("text/plain"))b.data.dataValue=
a.editable().transformPlainTextToHtml(d),b.data.type="text"}},null,null,1);a.on("paste",function(a){var b=a.data.dataValue,c=CKEDITOR.dtd.$block;-1<b.indexOf("Apple-")&&(b=b.replace(/<span class="Apple-converted-space">&nbsp;<\/span>/gi," "),"html"!=a.data.type&&(b=b.replace(/<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi,function(a,b){return b.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;")})),-1<b.indexOf('\x3cbr class\x3d"Apple-interchange-newline"\x3e')&&(a.data.startsWithEOL=1,a.data.preSniffing=
"html",b=b.replace(/<br class="Apple-interchange-newline">/,"")),b=b.replace(/(<[^>]+) class="Apple-[^"]*"/gi,"$1"));if(b.match(/^<[^<]+cke_(editable|contents)/i)){var d,e,f=new CKEDITOR.dom.element("div");for(f.setHtml(b);1==f.getChildCount()&&(d=f.getFirst())&&d.type==CKEDITOR.NODE_ELEMENT&&(d.hasClass("cke_editable")||d.hasClass("cke_contents"));)f=e=d;e&&(b=e.getHtml().replace(/<br>$/i,""))}CKEDITOR.env.ie?b=b.replace(/^&nbsp;(?: |\r\n)?<(\w+)/g,function(b,d){return d.toLowerCase()in c?(a.data.preSniffing=
"html","\x3c"+d):b}):CKEDITOR.env.webkit?b=b.replace(/<\/(\w+)><div><br><\/div>$/,function(b,d){return d in c?(a.data.endsWithEOL=1,"\x3c/"+d+"\x3e"):b}):CKEDITOR.env.gecko&&(b=b.replace(/(\s)<br>$/,"$1"));a.data.dataValue=b},null,null,3);a.on("paste",function(b){b=b.data;var c=a._.nextPasteType||b.type,d=b.dataValue,e,f=a.config.clipboard_defaultContentType||"html",g=b.dataTransfer.getTransferType(a)==CKEDITOR.DATA_TRANSFER_EXTERNAL,q=!0===a.config.forcePasteAsPlainText;e="html"==c||"html"==b.preSniffing?
"html":z(d);delete a._.nextPasteType;"htmlifiedtext"==e&&(d=A(a.config,d));if("text"==c&&"html"==e)d=x(a,d,l.get("plain-text"));else if(g&&a.pasteFilter&&!b.dontFilter||q)d=x(a,d,a.pasteFilter);b.startsWithEOL&&(d='\x3cbr data-cke-eol\x3d"1"\x3e'+d);b.endsWithEOL&&(d+='\x3cbr data-cke-eol\x3d"1"\x3e');"auto"==c&&(c="html"==e||"html"==f?"html":"text");b.type=c;b.dataValue=d;delete b.preSniffing;delete b.startsWithEOL;delete b.endsWithEOL},null,null,6);a.on("paste",function(b){b=b.data;b.dataValue&&
(a.insertHtml(b.dataValue,b.type,b.range),setTimeout(function(){a.fire("afterPaste")},0))},null,null,1E3);a.on("pasteDialog",function(b){setTimeout(function(){a.openDialog("paste",b.data)},0)})}});CKEDITOR.plugins.clipboard={addFileMatcher:function(a,b){a.plugins.clipboard._supportedFileMatchers.push(b)},isCustomCopyCutSupported:CKEDITOR.env.ie&&16>CKEDITOR.env.version||CKEDITOR.env.iOS&&605>CKEDITOR.env.version?!1:!0,isCustomDataTypesSupported:!CKEDITOR.env.ie||16<=CKEDITOR.env.version,isFileApiSupported:!CKEDITOR.env.ie||
9<CKEDITOR.env.version,mainPasteEvent:CKEDITOR.env.ie&&!CKEDITOR.env.edge?"beforepaste":"paste",addPasteButton:function(a,b,c){a.ui.addButton&&(a.ui.addButton(b,c),a._.pasteButtons||(a._.pasteButtons=[]),a._.pasteButtons.push(b))},canClipboardApiBeTrusted:function(a,b){return a.getTransferType(b)!=CKEDITOR.DATA_TRANSFER_EXTERNAL||CKEDITOR.env.chrome&&!a.isEmpty()||CKEDITOR.env.gecko&&(a.getData("text/html")||a.getFilesCount())||CKEDITOR.env.safari&&603<=CKEDITOR.env.version&&!CKEDITOR.env.iOS||CKEDITOR.env.iOS&&
605<=CKEDITOR.env.version||CKEDITOR.env.edge&&16<=CKEDITOR.env.version?!0:!1},getDropTarget:function(a){var b=a.editable();return CKEDITOR.env.ie&&9>CKEDITOR.env.version||b.isInline()?b:a.document},fixSplitNodesAfterDrop:function(a,b,c,d){function g(a,c,d){var f=a;f.type==CKEDITOR.NODE_TEXT&&(f=a.getParent());if(f.equals(c)&&d!=c.getChildCount())return a=b.startContainer.getChild(b.startOffset-1),c=b.startContainer.getChild(b.startOffset),a&&a.type==CKEDITOR.NODE_TEXT&&c&&c.type==CKEDITOR.NODE_TEXT&&
(d=a.getLength(),a.setText(a.getText()+c.getText()),c.remove(),b.setStart(a,d),b.collapse(!0)),!0}var f=b.startContainer;"number"==typeof d&&"number"==typeof c&&f.type==CKEDITOR.NODE_ELEMENT&&(g(a.startContainer,f,c)||g(a.endContainer,f,d))},isDropRangeAffectedByDragRange:function(a,b){var c=b.startContainer,d=b.endOffset;return a.endContainer.equals(c)&&a.endOffset<=d||a.startContainer.getParent().equals(c)&&a.startContainer.getIndex()<d||a.endContainer.getParent().equals(c)&&a.endContainer.getIndex()<
d?!0:!1},internalDrop:function(a,b,c,d){var g=CKEDITOR.plugins.clipboard,f=d.editable(),e,l;d.fire("saveSnapshot");d.fire("lockSnapshot",{dontUpdate:1});CKEDITOR.env.ie&&10>CKEDITOR.env.version&&this.fixSplitNodesAfterDrop(a,b,g.dragStartContainerChildCount,g.dragEndContainerChildCount);(l=this.isDropRangeAffectedByDragRange(a,b))||(e=a.createBookmark(!1));g=b.clone().createBookmark(!1);l&&(e=a.createBookmark(!1));a=e.startNode;b=e.endNode;l=g.startNode;b&&a.getPosition(l)&CKEDITOR.POSITION_PRECEDING&&
b.getPosition(l)&CKEDITOR.POSITION_FOLLOWING&&l.insertBefore(a);a=d.createRange();a.moveToBookmark(e);f.extractHtmlFromRange(a,1);b=d.createRange();g.startNode.getCommonAncestor(f)||(g=d.getSelection().createBookmarks()[0]);b.moveToBookmark(g);t(d,{dataTransfer:c,method:"drop",range:b},1);d.fire("unlockSnapshot")},getRangeAtDropPosition:function(a,b){var c=a.data.$,d=c.clientX,g=c.clientY,f=b.getSelection(!0).getRanges()[0],e=b.createRange();if(a.data.testRange)return a.data.testRange;if(document.caretRangeFromPoint&&
b.document.$.caretRangeFromPoint(d,g))c=b.document.$.caretRangeFromPoint(d,g),e.setStart(CKEDITOR.dom.node(c.startContainer),c.startOffset),e.collapse(!0);else if(c.rangeParent)e.setStart(CKEDITOR.dom.node(c.rangeParent),c.rangeOffset),e.collapse(!0);else{if(CKEDITOR.env.ie&&8<CKEDITOR.env.version&&f&&b.editable().hasFocus)return f;if(document.body.createTextRange){b.focus();c=b.document.getBody().$.createTextRange();try{for(var l=!1,q=0;20>q&&!l;q++){if(!l)try{c.moveToPoint(d,g-q),l=!0}catch(r){}if(!l)try{c.moveToPoint(d,
g+q),l=!0}catch(h){}}if(l){var m="cke-temp-"+(new Date).getTime();c.pasteHTML('\x3cspan id\x3d"'+m+'"\x3e\x3c/span\x3e');var p=b.document.getById(m);e.moveToPosition(p,CKEDITOR.POSITION_BEFORE_START);p.remove()}else{var k=b.document.$.elementFromPoint(d,g),n=new CKEDITOR.dom.element(k),u;if(n.equals(b.editable())||"html"==n.getName())return f&&f.startContainer&&!f.startContainer.equals(b.editable())?f:null;u=n.getClientRect();d<u.left?e.setStartAt(n,CKEDITOR.POSITION_AFTER_START):e.setStartAt(n,
CKEDITOR.POSITION_BEFORE_END);e.collapse(!0)}}catch(t){return null}}else return null}return e},initDragDataTransfer:function(a,b){var c=a.data.$?a.data.$.dataTransfer:null,d=new this.dataTransfer(c,b);"dragstart"===a.name&&d.storeId();c?this.dragData&&d.id==this.dragData.id?d=this.dragData:this.dragData=d:this.dragData?d=this.dragData:this.dragData=d;a.data.dataTransfer=d},resetDragDataTransfer:function(){this.dragData=null},initPasteDataTransfer:function(a,b){if(this.isCustomCopyCutSupported){if(a&&
a.data&&a.data.$){var c=a.data.$.clipboardData,d=new this.dataTransfer(c,b);"copy"!==a.name&&"cut"!==a.name||d.storeId();this.copyCutData&&d.id==this.copyCutData.id?(d=this.copyCutData,d.$=c):this.copyCutData=d;return d}return new this.dataTransfer(null,b)}return new this.dataTransfer(CKEDITOR.env.edge&&a&&a.data.$&&a.data.$.clipboardData||null,b)},preventDefaultDropOnElement:function(a){a&&a.on("dragover",D)}};r=CKEDITOR.plugins.clipboard.isCustomDataTypesSupported?"cke/id":"Text";CKEDITOR.plugins.clipboard.dataTransfer=
function(a,b){a&&(this.$=a);this._={metaRegExp:/^<meta.*?>/i,fragmentRegExp:/\s*\x3c!--StartFragment--\x3e|\x3c!--EndFragment--\x3e\s*/g,types:[],data:{},files:[],nativeHtmlCache:"",normalizeType:function(a){a=a.toLowerCase();return"text"==a||"text/plain"==a?"Text":"url"==a?"URL":"files"===a?"Files":a}};this._.fallbackDataTransfer=new CKEDITOR.plugins.clipboard.fallbackDataTransfer(this);this.id=this.getData(r);this.id||(this.id="Text"==r?"":"cke-"+CKEDITOR.tools.getUniqueId());b&&(this.sourceEditor=
b,this.setData("text/html",b.getSelectedHtml(1)),"Text"==r||this.getData("text/plain")||this.setData("text/plain",b.getSelection().getSelectedText()))};CKEDITOR.DATA_TRANSFER_INTERNAL=1;CKEDITOR.DATA_TRANSFER_CROSS_EDITORS=2;CKEDITOR.DATA_TRANSFER_EXTERNAL=3;CKEDITOR.plugins.clipboard.dataTransfer.prototype={getData:function(a,b){a=this._.normalizeType(a);var c="text/html"==a&&b?this._.nativeHtmlCache:this._.data[a];if(void 0===c||null===c||""===c){if(this._.fallbackDataTransfer.isRequired())c=this._.fallbackDataTransfer.getData(a,
b);else try{c=this.$.getData(a)||""}catch(d){c=""}"text/html"!=a||b||(c=this._stripHtml(c))}"Text"==a&&CKEDITOR.env.gecko&&this.getFilesCount()&&"file://"==c.substring(0,7)&&(c="");if("string"===typeof c)var g=c.indexOf("\x3c/html\x3e"),c=-1!==g?c.substring(0,g+7):c;return c},setData:function(a,b){a=this._.normalizeType(a);"text/html"==a?(this._.data[a]=this._stripHtml(b),this._.nativeHtmlCache=b):this._.data[a]=b;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||"URL"==a||"Text"==a)if("Text"==
r&&"Text"==a&&(this.id=b),this._.fallbackDataTransfer.isRequired())this._.fallbackDataTransfer.setData(a,b);else try{this.$.setData(a,b)}catch(c){}},storeId:function(){"Text"!==r&&this.setData(r,this.id)},getTransferType:function(a){return this.sourceEditor?this.sourceEditor==a?CKEDITOR.DATA_TRANSFER_INTERNAL:CKEDITOR.DATA_TRANSFER_CROSS_EDITORS:CKEDITOR.DATA_TRANSFER_EXTERNAL},cacheData:function(){function a(a){a=b._.normalizeType(a);var c=b.getData(a);"text/html"==a&&(b._.nativeHtmlCache=b.getData(a,
!0),c=b._stripHtml(c));c&&(b._.data[a]=c);b._.types.push(a)}if(this.$){var b=this,c,d,g;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(c=0;c<this.$.types.length;c++)a(this.$.types[c])}else a("Text"),a("URL");d=this._getImageFromClipboard();if((g=this.$&&this.$.files||null)||d){this._.files=[];if(g&&g.length)for(c=0;c<g.length;c++)this._.files.push(g[c]);0===this._.files.length&&d&&this._.files.push(d)}}},getFilesCount:function(){if(this._.files.length)return this._.files.length;
var a=this.$&&this.$.files||null;return a&&a.length?a.length:this._getImageFromClipboard()?1:0},getFile:function(a){if(this._.files.length)return this._.files[a];var b=this.$&&this.$.files||null;return b&&b.length?b[a]:0===a?this._getImageFromClipboard():void 0},isFileTransfer:function(){var a=this.getTypes(),a=CKEDITOR.tools.array.filter(a,function(a){return"application/x-moz-file"!==a});return 1===a.length&&"files"===a[0].toLowerCase()},isEmpty:function(){var a={},b;if(this.getFilesCount())return!1;
CKEDITOR.tools.array.forEach(CKEDITOR.tools.object.keys(this._.data),function(b){a[b]=1});if(this.$)if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(var c=0;c<this.$.types.length;c++)a[this.$.types[c]]=1}else a.Text=1,a.URL=1;"Text"!=r&&(a[r]=0);for(b in a)if(a[b]&&""!==this.getData(b))return!1;return!0},getTypes:function(){return 0<this._.types.length?this._.types:this.$&&this.$.types?[].slice.call(this.$.types):[]},_getImageFromClipboard:function(){var a;try{if(this.$&&
this.$.items&&this.$.items[0]&&(a=this.$.items[0].getAsFile())&&a.type)return a}catch(b){}},_stripHtml:function(a){function b(a){var b=new CKEDITOR.htmlParser,g,f;b.onTagOpen=function(a){"body"===a&&(g=b._.htmlPartsRegex.lastIndex)};b.onTagClose=function(a){"body"===a&&(f=b._.htmlPartsRegex.lastIndex)};b.parse(a);return"number"!==typeof g||"number"!==typeof f?a:a.substring(g,f).replace(/<\/body\s*>$/gi,"")}a&&a.length&&(a=b(a),a=a.replace(this._.metaRegExp,""),a=a.replace(this._.fragmentRegExp,""));
return a}};CKEDITOR.plugins.clipboard.fallbackDataTransfer=function(a){this._dataTransfer=a;this._customDataFallbackType="text/html"};CKEDITOR.plugins.clipboard.fallbackDataTransfer._isCustomMimeTypeSupported=null;CKEDITOR.plugins.clipboard.fallbackDataTransfer._customTypes=[];CKEDITOR.plugins.clipboard.fallbackDataTransfer.prototype={isRequired:function(){var a=CKEDITOR.plugins.clipboard.fallbackDataTransfer,b=this._dataTransfer.$;if(null===a._isCustomMimeTypeSupported)if(b){a._isCustomMimeTypeSupported=
!1;if(CKEDITOR.env.edge&&17<=CKEDITOR.env.version)return!0;try{b.setData("cke/mimetypetest","cke test value"),a._isCustomMimeTypeSupported="cke test value"===b.getData("cke/mimetypetest"),b.clearData("cke/mimetypetest")}catch(c){}}else return!1;return!a._isCustomMimeTypeSupported},getData:function(a,b){var c=this._getData(this._customDataFallbackType,!0);if(b)return c;var c=this._extractDataComment(c),d=null,d=a===this._customDataFallbackType?c.content:c.data&&c.data[a]?c.data[a]:this._getData(a,
!0);return null!==d?d:""},setData:function(a,b){var c=a===this._customDataFallbackType;c&&(b=this._applyDataComment(b,this._getFallbackTypeData()));var d=b,g=this._dataTransfer.$;try{g.setData(a,d),c&&(this._dataTransfer._.nativeHtmlCache=d)}catch(f){if(this._isUnsupportedMimeTypeError(f)){c=CKEDITOR.plugins.clipboard.fallbackDataTransfer;-1===CKEDITOR.tools.indexOf(c._customTypes,a)&&c._customTypes.push(a);var c=this._getFallbackTypeContent(),e=this._getFallbackTypeData();e[a]=d;try{d=this._applyDataComment(c,
e),g.setData(this._customDataFallbackType,d),this._dataTransfer._.nativeHtmlCache=d}catch(l){d=""}}}return d},_getData:function(a,b){var c=this._dataTransfer._.data;if(!b&&c[a])return c[a];try{return this._dataTransfer.$.getData(a)}catch(d){return null}},_getFallbackTypeContent:function(){var a=this._dataTransfer._.data[this._customDataFallbackType];a||(a=this._extractDataComment(this._getData(this._customDataFallbackType,!0)).content);return a},_getFallbackTypeData:function(){var a=CKEDITOR.plugins.clipboard.fallbackDataTransfer._customTypes,
b=this._extractDataComment(this._getData(this._customDataFallbackType,!0)).data||{},c=this._dataTransfer._.data;CKEDITOR.tools.array.forEach(a,function(a){void 0!==c[a]?b[a]=c[a]:void 0!==b[a]&&(b[a]=b[a])},this);return b},_isUnsupportedMimeTypeError:function(a){return a.message&&-1!==a.message.search(/element not found/gi)},_extractDataComment:function(a){var b={data:null,content:a||""};if(a&&16<a.length){var c;(c=/\x3c!--cke-data:(.*?)--\x3e/g.exec(a))&&c[1]&&(b.data=JSON.parse(decodeURIComponent(c[1])),
b.content=a.replace(c[0],""))}return b},_applyDataComment:function(a,b){var c="";b&&CKEDITOR.tools.object.keys(b).length&&(c="\x3c!--cke-data:"+encodeURIComponent(JSON.stringify(b))+"--\x3e");return c+(a&&a.length?a:"")}}})();CKEDITOR.config.clipboard_notificationDuration=1E4;CKEDITOR.config.clipboard_handleImages=!0;CKEDITOR.plugins.add("panelbutton",{requires:"button",onLoad:function(){function e(c){var b=this._;b.state!=CKEDITOR.TRISTATE_DISABLED&&(this.createPanel(c),b.on?b.panel.hide():b.panel.showBlock(this._.id,this.document.getById(this._.id),4))}CKEDITOR.ui.panelButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(c){var b=c.panel||{};delete c.panel;this.base(c);this.document=b.parent&&b.parent.getDocument()||CKEDITOR.document;b.block={attributes:b.attributes};b.toolbarRelated=!0;this.hasArrow=
"listbox";this.click=e;this._={panelDefinition:b}},statics:{handler:{create:function(c){return new CKEDITOR.ui.panelButton(c)}}},proto:{createPanel:function(c){var b=this._;if(!b.panel){var f=this._.panelDefinition,e=this._.panelDefinition.block,k=f.parent||CKEDITOR.document.getBody(),h=CKEDITOR.document.getById(this._.id),d=this._.panel=new CKEDITOR.ui.floatPanel(c,k,f),f=d.addBlock(b.id,e),a=this,g=c.getCommand(this.command);d.onShow=function(){a.className&&this.element.addClass(a.className+"_panel");
a.setState(CKEDITOR.TRISTATE_ON);h.setAttribute("aria-expanded","true");b.on=1;a.editorFocus&&c.focus();if(a.onOpen)a.onOpen()};d.onHide=function(d){a.className&&this.element.getFirst().removeClass(a.className+"_panel");!a.modes&&g?a.setStateFromCommand(g):a.setState(a.modes&&a.modes[c.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);b.on=0;h.setAttribute("aria-expanded","false");if(!d&&a.onClose)a.onClose()};d.onEscape=function(){d.hide(1);a.document.getById(b.id).focus()};if(this.onBlock)this.onBlock(d,
f);f.onHide=function(){b.on=0;!a.modes&&a.command?a.setStateFromCommand(g):a.setState(CKEDITOR.TRISTATE_OFF)}}},setStateFromCommand:function(c){this.setState(c.state)}}})},beforeInit:function(e){e.ui.addHandler(CKEDITOR.UI_PANELBUTTON,CKEDITOR.ui.panelButton.handler)}});CKEDITOR.UI_PANELBUTTON="panelbutton";(function(){CKEDITOR.plugins.add("panel",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_PANEL,CKEDITOR.ui.panel.handler)}});CKEDITOR.UI_PANEL="panel";CKEDITOR.ui.panel=function(a,b){b&&CKEDITOR.tools.extend(this,b);CKEDITOR.tools.extend(this,{className:"",css:[]});this.id=CKEDITOR.tools.getNextId();this.document=a;this.isFramed=this.forceIFrame||this.css.length;this._={blocks:{}}};CKEDITOR.ui.panel.handler={create:function(a){return new CKEDITOR.ui.panel(a)}};var g=CKEDITOR.addTemplate("panel",
@@ -822,17 +822,17 @@ l.markFirstDisplayed():l._.markFirstDisplayed()},0):l.markFirstDisplayed?l.markF
this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var a=this._.iframe.getFrameDocument().getActive();a&&a.is("a")&&(this._.lastFocused=a)},hide:function(a){if(this.visible&&(!this.onHide||!0!==this.onHide.call(this))){this.hideChild();CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur();this.element.setStyle("display","none");this.visible=0;this.element.getFirst().removeCustomData("activePanel");if(a=a&&this._.returnFocus)CKEDITOR.env.webkit&&a.type&&a.getWindow().$.focus(),
a.focus();delete this._.lastFocused;this._.showBlockParams=null;this._.editor.fire("panelHide",this)}},allowBlur:function(a){var b=this._.panel;void 0!==a&&(b.allowBlur=a);return b.allowBlur},showAsChild:function(a,b,c,f,h,g){if(this._.activeChild!=a||a._.panel._.offsetParentId!=c.getId())this.hideChild(),a.onHide=CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=a,this._.focused=!1,a.showBlock(b,c,f,h,g),this.blur(),
(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&setTimeout(function(){a.element.getChild(0).$.style.cssText+=""},100)},hideChild:function(a){var b=this._.activeChild;b&&(delete b.onHide,delete this._.activeChild,b.hide(),a&&this.focus())}}});CKEDITOR.on("instanceDestroyed",function(){var a=CKEDITOR.tools.isEmpty(CKEDITOR.instances),b;for(b in f){var c=f[b];a?c.destroy():c.element.hide()}a&&(f={})})})();(function(){var n,k,l;CKEDITOR.plugins.add("colorbutton",{requires:"panelbutton,floatpanel",init:function(a){function b(d){function b(){var d=a.config["colorButton_"+h+"Style"];d.childRule="back"==h?function(a){return f(a)}:function(a){return!(a.is("a")||a.getElementsByTag("a").count())||f(a)};return d}function z(d,w,e){var c={};d&&(c.color=d);w&&(c.colorName=w);w=!CKEDITOR.tools.isEmpty(c)&&new CKEDITOR.style(b(),c);a.execCommand(m,{newStyle:w});if(d&&e)for(e.addColor(d.substr(1).toUpperCase()),
d=t.element.find("[role\x3doption]").toArray(),e=0;e<d.length;e++)d[e].setAttributes({"aria-posinset":e+1,"aria-setsize":d.length})}var g=d.name,h=d.type,k=d.title,C=d.order,m=d.commandName;d=d.contentTransformations||{};var A=new CKEDITOR.style(r["colorButton_"+h+"Style"]),q=CKEDITOR.tools.getNextId()+"_colorBox",x={type:h},y=new CKEDITOR.style(r["colorButton_"+h+"Style"],{color:"inherit"}),B=function(){return CKEDITOR.tools.addFunction(function(d,b,e){a.focus();a.fire("saveSnapshot");"?"==d?a.getColorFromDialog(function(a){a&&
d=t.element.find("[role\x3doption]").toArray(),e=0;e<d.length;e++)d[e].setAttributes({"aria-posinset":e+1,"aria-setsize":d.length})}var g=d.name,h=d.type,k=d.title,C=d.order,m=d.commandName;d=d.contentTransformations||{};var A=new CKEDITOR.style(q["colorButton_"+h+"Style"]),r=CKEDITOR.tools.getNextId()+"_colorBox",x={type:h},y=new CKEDITOR.style(q["colorButton_"+h+"Style"],{color:"inherit"}),B=function(){return CKEDITOR.tools.addFunction(function(d,b,e){a.focus();a.fire("saveSnapshot");"?"==d?a.getColorFromDialog(function(a){a&&
z(a,b,u)},null,x):z(d&&"#"+d,b,u);e&&(e.setAttribute("cke_colorlast",!0),a.once("selectionChange",function(){e.removeAttribute("cke_colorlast")}))})}(),u=l.getRowLimit(a)?new l(a,"back"==h?"background-color":"color",B):void 0,t;a.addCommand(m,{contextSensitive:!0,exec:function(a,d){if(!a.readOnly){var b=d.newStyle;a.removeStyle(y);a.focus();b&&a.applyStyle(b);a.fire("saveSnapshot")}},refresh:function(a,d){y.checkApplicable(d,a,a.activeFilter)?y.checkActive(d,a)?this.setState(CKEDITOR.TRISTATE_ON):
this.setState(CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)}});a.ui.add(g,CKEDITOR.UI_PANELBUTTON,{label:k,title:k,command:m,editorFocus:0,toolbar:"colors,"+C,allowedContent:A,requiredContent:A,contentTransformations:d,panel:{css:CKEDITOR.skin.getPath("editor"),attributes:{role:"listbox","aria-label":p.panelTitle}},select:function(a){var d=r.colorButton_colors.split(",");a=CKEDITOR.tools.array.find(d,a);a=n.normalizeColor(a);v(t,a);t._.markFirstDisplayed()},onBlock:function(d,b){t=
b;b.autoSize=!0;b.element.addClass("cke_colorblock");b.element.setHtml(c(q,B,u?u.getLength():0));b.element.getDocument().getBody().setStyle("overflow","hidden");b.element.getAscendant({html:1}).setStyle("overflow","hidden");CKEDITOR.ui.fire("ready",this);var e=b.keys,h="rtl"==a.lang.dir;e[h?37:39]="next";e[40]="next";e[9]="next";e[h?39:37]="prev";e[38]="prev";e[CKEDITOR.SHIFT+9]="prev";e[32]="click";u&&u.setContainer(b.element.findOne(".cke_colorhistory"))},onOpen:function(){var d=a.getSelection(),
b=d&&d.getStartElement(),e=a.elementPath(b),c="back"==h?"background-color":"color";if(e){b=e.block||e.blockLimit||a.document.getBody();do e=b&&b.getComputedStyle(c)||"transparent";while("back"==h&&"transparent"==e&&b&&(b=b.getParent()));e&&"transparent"!=e||(e="#ffffff");r.colorButton_enableAutomatic&&t.element.findOne("#"+q).setStyle("background-color",e);if(b=d&&d.getRanges()[0]){for(var d=new CKEDITOR.dom.walker(b),g=b.collapsed?b.startContainer:d.next(),b="";g;){g.type!==CKEDITOR.NODE_ELEMENT&&
(g=g.getParent());g=n.normalizeColor(g.getComputedStyle(c));b=b||g;if(b!==g){b="";break}g=d.next()}"transparent"==b&&(b="");"fore"==h&&(x.automaticTextColor="#"+n.normalizeColor(e));x.selectionColor=b?"#"+b:"";v(t,b)}return e}}})}function c(b,c,f){var g=[],h=r.colorButton_colors.split(","),k=a.plugins.colordialog&&r.colorButton_enableMore;f=h.length+f+(k?1:0);var v=1;r.colorButton_enableAutomatic&&(f+=1,v+=1,g.push('\x3ca class\x3d"cke_colorauto" _cke_focus\x3d1 hidefocus\x3dtrue',' title\x3d"',p.auto,
this.setState(CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)}});a.ui.add(g,CKEDITOR.UI_PANELBUTTON,{label:k,title:k,command:m,editorFocus:0,toolbar:"colors,"+C,allowedContent:A,requiredContent:A,contentTransformations:d,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(q.colorButton_contentsCss),attributes:{role:"listbox","aria-label":p.panelTitle}},select:function(a){var d=q.colorButton_colors.split(",");a=CKEDITOR.tools.array.find(d,a);a=n.normalizeColor(a);v(t,a);t._.markFirstDisplayed()},
onBlock:function(d,b){t=b;b.autoSize=!0;b.element.addClass("cke_colorblock");b.element.setHtml(c(r,B,u?u.getLength():0));b.element.getDocument().getBody().setStyle("overflow","hidden");b.element.getAscendant({html:1}).setStyle("overflow","hidden");CKEDITOR.ui.fire("ready",this);var e=b.keys,h="rtl"==a.lang.dir;e[h?37:39]="next";e[40]="next";e[9]="next";e[h?39:37]="prev";e[38]="prev";e[CKEDITOR.SHIFT+9]="prev";e[32]="click";u&&u.setContainer(b.element.findOne(".cke_colorhistory"))},onOpen:function(){var d=
a.getSelection(),b=d&&d.getStartElement(),e=a.elementPath(b),c="back"==h?"background-color":"color";if(e){b=e.block||e.blockLimit||a.document.getBody();do e=b&&b.getComputedStyle(c)||"transparent";while("back"==h&&"transparent"==e&&b&&(b=b.getParent()));e&&"transparent"!=e||(e="#ffffff");q.colorButton_enableAutomatic&&t.element.findOne("#"+r).setStyle("background-color",e);if(b=d&&d.getRanges()[0]){for(var d=new CKEDITOR.dom.walker(b),g=b.collapsed?b.startContainer:d.next(),b="";g;){g.type!==CKEDITOR.NODE_ELEMENT&&
(g=g.getParent());g=n.normalizeColor(g.getComputedStyle(c));b=b||g;if(b!==g){b="";break}g=d.next()}"transparent"==b&&(b="");"fore"==h&&(x.automaticTextColor="#"+n.normalizeColor(e));x.selectionColor=b?"#"+b:"";v(t,b)}return e}}})}function c(b,c,f){var g=[],h=q.colorButton_colors.split(","),k=a.plugins.colordialog&&q.colorButton_enableMore;f=h.length+f+(k?1:0);var v=1;q.colorButton_enableAutomatic&&(f+=1,v+=1,g.push('\x3ca class\x3d"cke_colorauto" _cke_focus\x3d1 hidefocus\x3dtrue',' title\x3d"',p.auto,
'"',' draggable\x3d"false"',' ondragstart\x3d"return false;"',' onclick\x3d"CKEDITOR.tools.callFunction(',c,',null);return false;"'," href\x3d\"javascript:void('",p.auto,"')\"",' role\x3d"option" aria-posinset\x3d"1" aria-setsize\x3d"',f,'"\x3e','\x3ctable role\x3d"presentation" cellspacing\x3d0 cellpadding\x3d0 width\x3d"100%"\x3e',"\x3ctr\x3e",'\x3ctd colspan\x3d"',a.config.colorButton_colorsPerRow,'" align\x3d"center"\x3e','\x3cspan class\x3d"cke_colorbox" id\x3d"',b,'"\x3e\x3c/span\x3e',p.auto,
"\x3c/td\x3e","\x3c/tr\x3e","\x3c/table\x3e","\x3c/a\x3e"));g.push('\x3ctable role\x3d"presentation" cellspacing\x3d0 cellpadding\x3d0 width\x3d"100%"\x3e\x3ctbody\x3e');for(b=0;b<h.length;b++){0===b%a.config.colorButton_colorsPerRow&&g.push("\x3c/tr\x3e\x3ctr\x3e");var m=h[b].split("/"),q=m[0],m=new n(a,{color:m[1]||q,label:m[1]?q:void 0},c);m.setPositionIndex(v+b,f);g.push(m.getHtml())}l.getRowLimit(a)&&l.renderContainer(g,a);k&&g.push("\x3c/tr\x3e","\x3ctr\x3e",'\x3ctd colspan\x3d"',a.config.colorButton_colorsPerRow,
"\x3c/td\x3e","\x3c/tr\x3e","\x3c/table\x3e","\x3c/a\x3e"));g.push('\x3ctable role\x3d"presentation" cellspacing\x3d0 cellpadding\x3d0 width\x3d"100%"\x3e\x3ctbody\x3e');for(b=0;b<h.length;b++){0===b%a.config.colorButton_colorsPerRow&&g.push("\x3c/tr\x3e\x3ctr\x3e");var m=h[b].split("/"),r=m[0],m=new n(a,{color:m[1]||r,label:m[1]?r:void 0},c);m.setPositionIndex(v+b,f);g.push(m.getHtml())}l.getRowLimit(a)&&l.renderContainer(g,a);k&&g.push("\x3c/tr\x3e","\x3ctr\x3e",'\x3ctd colspan\x3d"',a.config.colorButton_colorsPerRow,
'" align\x3d"center"\x3e','\x3ca class\x3d"cke_colormore" _cke_focus\x3d1 hidefocus\x3dtrue',' title\x3d"',p.more,'"',' draggable\x3d"false"',' ondragstart\x3d"return false;"',' onclick\x3d"CKEDITOR.tools.callFunction(',c,",'?');return false;\""," href\x3d\"javascript:void('",p.more,"')\"",' role\x3d"option" aria-posinset\x3d"',f,'" aria-setsize\x3d"',f,'"\x3e',p.more,"\x3c/a\x3e","\x3c/td\x3e");g.push("\x3c/tr\x3e\x3c/tbody\x3e\x3c/table\x3e");return g.join("")}function f(a){return"false"==a.getAttribute("contentEditable")||
a.getAttribute("data-nostyle")}function v(a,b){var c=a._.getItems(),g=a.element.findOne("[aria-selected]"),f=a.element.findOne("[cke_colorlast]");g&&g.removeAttribute("aria-selected");if(f)f.setAttribute("aria-selected",!0);else for(g=0;g<c.count();g++)if(f=c.getItem(g),b&&b==n.normalizeColor(f.getAttribute("data-value"))){f.setAttribute("aria-selected",!0);break}}var r=a.config,p=a.lang.colorbutton;if(!CKEDITOR.env.hc){b({name:"TextColor",type:"fore",commandName:"textColor",title:p.textColorTitle,
order:10,contentTransformations:[[{element:"font",check:"span{color}",left:function(a){return!!a.attributes.color},right:function(a){a.name="span";a.attributes.color&&(a.styles.color=a.attributes.color);delete a.attributes.color}}]]});var k,q=a.config.colorButton_normalizeBackground;if(void 0===q||q)k=[[{element:"span",left:function(a){var b=CKEDITOR.tools;if("span"!=a.name||!a.styles||!a.styles.background)return!1;a=b.style.parse.background(a.styles.background);return a.color&&1===b.object.keys(a).length},
a.getAttribute("data-nostyle")}function v(a,b){var c=a._.getItems(),g=a.element.findOne("[aria-selected]"),f=a.element.findOne("[cke_colorlast]");g&&g.removeAttribute("aria-selected");if(f)f.setAttribute("aria-selected",!0);else for(g=0;g<c.count();g++)if(f=c.getItem(g),b&&b==n.normalizeColor(f.getAttribute("data-value"))){f.setAttribute("aria-selected",!0);break}}var q=a.config,p=a.lang.colorbutton;if(!CKEDITOR.env.hc){b({name:"TextColor",type:"fore",commandName:"textColor",title:p.textColorTitle,
order:10,contentTransformations:[[{element:"font",check:"span{color}",left:function(a){return!!a.attributes.color},right:function(a){a.name="span";a.attributes.color&&(a.styles.color=a.attributes.color);delete a.attributes.color}}]]});var k,r=a.config.colorButton_normalizeBackground;if(void 0===r||r)k=[[{element:"span",left:function(a){var b=CKEDITOR.tools;if("span"!=a.name||!a.styles||!a.styles.background)return!1;a=b.style.parse.background(a.styles.background);return a.color&&1===b.object.keys(a).length},
right:function(b){var c=(new CKEDITOR.style(a.config.colorButton_backStyle,{color:b.styles.background})).getDefinition();b.name=c.element;b.styles=c.styles;b.attributes=c.attributes||{};return b}}]];b({name:"BGColor",type:"back",commandName:"bgColor",title:p.bgColorTitle,order:20,contentTransformations:k})}}});n=CKEDITOR.tools.createClass({$:function(a,b,c){this.$=new CKEDITOR.dom.element("td");this.color=CKEDITOR.tools._isValidColorFormat(b.color)?b.color:"";this.clickFn=c;this.label=b.label||n.colorNames(a)[this.color]||
this.color;this.setHtml()},statics:{colorNames:function(a){return a.lang.colorbutton.colors},normalizeColor:function(a){var b=/^(rgb|hsl)a\(/g.test(a),c=/^rgba\((\s*0\s*,?){4}\)$/g.test(a);return b&&!c?(a=new CKEDITOR.tools.color(a),CKEDITOR.tools.normalizeHex(a.getHex()||"").replace(/#/g,"")):CKEDITOR.tools.normalizeHex("#"+CKEDITOR.tools.convertRgbToHex(a||"")).replace(/#/g,"")}},proto:{getElement:function(){return this.$},getHtml:function(){return this.getElement().getOuterHtml()},setHtml:function(){this.getElement().setHtml('\x3ca class\x3d"cke_colorbox" _cke_focus\x3d1 hidefocus\x3dtrue title\x3d"'+
this.label+'" draggable\x3d"false" ondragstart\x3d"return false;" onclick\x3d"CKEDITOR.tools.callFunction('+this.clickFn+",'"+this.color+"','"+this.label+"', this); return false;\" href\x3d\"javascript:void('"+this.color+'\')" data-value\x3d"'+this.color+'" role\x3d"option"\x3e\x3cspan class\x3d"cke_colorbox" style\x3d"background-color:#'+this.color+'"\x3e\x3c/span\x3e\x3c/a\x3e')},setPositionIndex:function(a,b){this.getElement().getChild(0).setAttributes({"aria-posinset":a,"aria-setsize":b})}}});
@@ -845,7 +845,7 @@ this.editor.config.colorButton_colorsPerRow);a++)this.rows[a+1]?this._.moveLastB
a);b+=1})})},countPanelElements:function(){var a=this.editor.config.colorButton_colors.split(",").length+this.getLength();this.editor.plugins.colordialog&&this.editor.config.colorButton_enableMore&&(a+=1);this.editor.config.colorButton_enableAutomatic&&(a+=1);return a},calculateFirstPosition:function(a){return this.editor.plugins.colordialog&&this.editor.config.colorButton_enableMore?a-this.getLength():a-this.getLength()+1},attachRows:function(){CKEDITOR.tools.array.forEach(this.rows,function(a){this.container.append(a.getElement())},
this)}},proto:{setContainer:function(a){this.container=a;this._.attachRows();this.getLength()&&this.show()},show:function(){this.container&&this.container.show()},renderContentColors:function(){var a=this._.countColors();CKEDITOR.tools.isEmpty(a)||(a=this._.sortByOccurrencesAscending(a,"colorCode"),this._.addColors(a),this._.refreshPositions())},addColor:function(a){var b=this._.extractColorBox(a);this.container&&!this.container.isVisible()&&this.show();b?this._.moveToBeginning(b):this._.createAtBeginning(a);
this._.alignRows()},getLength:function(){return CKEDITOR.tools.array.reduce(this.rows,function(a,b){return a+b.boxes.length},0)}}})})();CKEDITOR.config.colorButton_enableMore=!0;CKEDITOR.config.colorButton_colors="1ABC9C,2ECC71,3498DB,9B59B6,4E5F70,F1C40F,16A085,27AE60,2980B9,8E44AD,2C3E50,F39C12,E67E22,E74C3C,ECF0F1,95A5A6,DDD,FFF,D35400,C0392B,BDC3C7,7F8C8D,999,000";CKEDITOR.config.colorButton_foreStyle={element:"span",styles:{color:"#(color)"},overrides:[{element:"font",attributes:{color:null}}]};
CKEDITOR.config.colorButton_backStyle={element:"span",styles:{"background-color":"#(color)"}};CKEDITOR.config.colorButton_enableAutomatic=!0;CKEDITOR.config.colorButton_colorsPerRow=6;CKEDITOR.config.colorButton_historyRowLimit=1;CKEDITOR.config.colorButton_renderContentColors=!0;CKEDITOR.plugins.colordialog={requires:"dialog",init:function(b){var d=new CKEDITOR.dialogCommand("colordialog");d.editorFocus=!1;b.addCommand("colordialog",d);CKEDITOR.dialog.add("colordialog",this.path+"dialogs/colordialog.js");b.getColorFromDialog=function(d,k,g){var c,e,h,f;c=function(a){h(this);(a="ok"==a.name?this.getValueOf("picker","selectedColor"):null)&&!CKEDITOR.tools._isValidColorFormat(a)&&(a=null);/^[0-9a-f]{3}([0-9a-f]{3})?$/i.test(a)&&(a="#"+a);d.call(k,a)};e=function(a){g&&(a.data=
CKEDITOR.config.colorButton_backStyle={element:"span",styles:{"background-color":"#(color)"}};CKEDITOR.config.colorButton_enableAutomatic=!0;CKEDITOR.config.colorButton_colorsPerRow=6;CKEDITOR.config.colorButton_historyRowLimit=1;CKEDITOR.config.colorButton_renderContentColors=!0;CKEDITOR.config.colorButton_contentsCss=[];CKEDITOR.plugins.colordialog={requires:"dialog",init:function(b){var d=new CKEDITOR.dialogCommand("colordialog");d.editorFocus=!1;b.addCommand("colordialog",d);CKEDITOR.dialog.add("colordialog",this.path+"dialogs/colordialog.js");b.getColorFromDialog=function(d,k,g){var c,e,h,f;c=function(a){h(this);(a="ok"==a.name?this.getValueOf("picker","selectedColor"):null)&&!CKEDITOR.tools._isValidColorFormat(a)&&(a=null);/^[0-9a-f]{3}([0-9a-f]{3})?$/i.test(a)&&(a="#"+a);d.call(k,a)};e=function(a){g&&(a.data=
g)};h=function(a){a.removeListener("ok",c);a.removeListener("cancel",c);a.removeListener("show",e)};f=function(a){a.on("ok",c);a.on("cancel",c);a.on("show",e,null,null,5)};b.execCommand("colordialog");if(b._.storedDialogs&&b._.storedDialogs.colordialog)f(b._.storedDialogs.colordialog);else CKEDITOR.on("dialogDefinition",function(a){if("colordialog"==a.data.name){var b=a.data.definition;a.removeListener();b.onLoad=CKEDITOR.tools.override(b.onLoad,function(a){return function(){f(this);b.onLoad=a;"function"==
typeof a&&a.call(this)}})}})}}};CKEDITOR.plugins.add("colordialog",CKEDITOR.plugins.colordialog);CKEDITOR.plugins.add("menu",{requires:"floatpanel",beforeInit:function(m){for(var k=m.config.menu_groups.split(","),n=m._.menuGroups={},r=m._.menuItems={},p=0;p<k.length;p++)n[k[p]]=p+1;m.addMenuGroup=function(c,a){n[c]=a||100};m.addMenuItem=function(c,a){n[a.group]&&(r[c]=new CKEDITOR.menuItem(this,c,a))};m.addMenuItems=function(c){for(var a in c)this.addMenuItem(a,c[a])};m.getMenuItem=function(c){return r[c]};m.removeMenuItem=function(c){delete r[c]}}});
(function(){function m(a){a.sort(function(a,f){return a.group<f.group?-1:a.group>f.group?1:a.order<f.order?-1:a.order>f.order?1:0})}var k='\x3cspan class\x3d"cke_menuitem"\x3e\x3ca id\x3d"{id}" class\x3d"cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href\x3d"{href}" title\x3d"{title}" tabindex\x3d"-1" _cke_focus\x3d1 hidefocus\x3d"true" role\x3d"{role}" aria-label\x3d"{attrLabel}" aria-describedby\x3d"{id}_description" aria-haspopup\x3d"{hasPopup}" aria-disabled\x3d"{disabled}" {ariaChecked} draggable\x3d"false"',
@@ -1112,7 +1112,7 @@ CKEDITOR.plugins.scayt.state.scayt[b.editor.name]&&b.editor.scayt&&(this.content
"99%":"100%",height:"100%",resize:"none",outline:"none","text-align":"left"},CKEDITOR.tools.cssVendorPrefix("tab-size",a.config.sourceAreaTabSize||4)));b.setAttribute("dir","ltr");b.addClass("cke_source").addClass("cke_reset").addClass("cke_enable_context_menu");a.ui.space("contents").append(b);b=a.editable(new c(a,b));b.setData(a.getData(1));CKEDITOR.env.ie&&(b.attachListener(a,"resize",d,b),b.attachListener(CKEDITOR.document.getWindow(),"resize",d,b),CKEDITOR.tools.setTimeout(d,0,b));a.fire("ariaWidget",
this);e()});a.addCommand("source",f.commands.source);a.ui.addButton&&a.ui.addButton("Source",{isToggle:!0,label:a.lang.sourcearea.toolbar,command:"source",toolbar:"mode,10"});a.on("mode",function(){a.getCommand("source").setState("source"==a.mode?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)});var e=CKEDITOR.env.ie&&9==CKEDITOR.env.version}}});var c=CKEDITOR.tools.createClass({base:CKEDITOR.editable,proto:{setData:function(a){this.setValue(a);this.status="ready";this.editor.fire("dataReady")},getData:function(){return this.getValue()},
insertHtml:function(){},insertElement:function(){},insertText:function(){},setReadOnly:function(a){this[(a?"set":"remove")+"Attribute"]("readOnly","readonly")},detach:function(){c.baseProto.detach.call(this);this.clearCustomData();this.remove()}}})})();
CKEDITOR.plugins.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:!1,readOnly:1,exec:function(c){"wysiwyg"==c.mode&&c.fire("saveSnapshot");c.getCommand("source").setState(CKEDITOR.TRISTATE_DISABLED);c.setMode("source"==c.mode?"wysiwyg":"source")},canUndo:!1}}};(function(){function k(c){return{editorFocus:!1,canUndo:!1,modes:{wysiwyg:1},exec:function(d){if(d.editable().hasFocus){var e=d.getSelection(),b;if(b=(new CKEDITOR.dom.elementPath(e.getStartElement(),e.root)).contains({td:1,th:1},1)){var e=d.createRange(),a=CKEDITOR.tools.tryThese(function(){var a=b.getParent().$.cells[b.$.cellIndex+(c?-1:1)];a.parentNode.parentNode;return a},function(){var a=b.getParent(),a=a.getAscendant("table").$.rows[a.$.rowIndex+(c?-1:1)];return a.cells[c?a.cells.length-1:0]});
CKEDITOR.plugins.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:!1,readOnly:1,exec:function(c){"wysiwyg"==c.mode&&c.fire("saveSnapshot");c.getCommand("source").setState(CKEDITOR.TRISTATE_DISABLED);c.setMode("source"==c.mode?"wysiwyg":"source")},canUndo:!1}}};(function(){function k(c){return{editorFocus:!1,canUndo:!0,modes:{wysiwyg:1},exec:function(d){if(d.editable().hasFocus){var e=d.getSelection(),b;if(b=(new CKEDITOR.dom.elementPath(e.getStartElement(),e.root)).contains({td:1,th:1},1)){var e=d.createRange(),a=CKEDITOR.tools.tryThese(function(){var a=b.getParent().$.cells[b.$.cellIndex+(c?-1:1)];a.parentNode.parentNode;return a},function(){var a=b.getParent(),a=a.getAscendant("table").$.rows[a.$.rowIndex+(c?-1:1)];return a.cells[c?a.cells.length-1:0]});
if(a||c)if(a)a=new CKEDITOR.dom.element(a),e.moveToElementEditStart(a),e.checkStartOfBlock()&&e.checkEndOfBlock()||e.selectNodeContents(a);else return!0;else{for(var f=b.getAscendant("table").$,a=b.getParent().$.cells,f=new CKEDITOR.dom.element(f.insertRow(-1),d.document),g=0,h=a.length;g<h;g++)f.append((new CKEDITOR.dom.element(a[g],d.document)).clone(!1,!1)).appendBogus();e.moveToElementEditStart(f)}e.select(!0);return!0}}return!1}}}var h={editorFocus:!1,modes:{wysiwyg:1,source:1}},g={exec:function(c){c.container.focusNext(!0,
c.tabIndex)}},f={exec:function(c){c.container.focusPrevious(!0,c.tabIndex)}};CKEDITOR.plugins.add("tab",{init:function(c){for(var d=!1!==c.config.enableTabKeyTools,e=c.config.tabSpaces||0,b="";e--;)b+=" ";if(b)c.on("key",function(a){9==a.data.keyCode&&(c.insertText(b),a.cancel())});if(d)c.on("key",function(a){(9==a.data.keyCode&&c.execCommand("selectNextCell")||a.data.keyCode==CKEDITOR.SHIFT+9&&c.execCommand("selectPreviousCell"))&&a.cancel()});c.addCommand("blur",CKEDITOR.tools.extend(g,h));c.addCommand("blurBack",
CKEDITOR.tools.extend(f,h));c.addCommand("selectNextCell",k());c.addCommand("selectPreviousCell",k(!0))}})})();
@@ -1205,50 +1205,51 @@ overflow:"hidden"});return b},removeFiller:function(a,b){if(a){var d=b.editor,c=
f.setEndAt(b.getLast().getPrevious(),CKEDITOR.POSITION_BEFORE_END),b.editor.getSelection().selectRanges([f]))}},createFillerRegex:function(a){var b=this.createFiller(a).getOuterHtml().replace(/style="[^"]*"/gi,'style\x3d"[^"]*"').replace(/>[^<]*</gi,"\x3e[^\x3c]*\x3c");return new RegExp((a?"":"^")+b+(a?"$":""))},addSelectAllIntegration:function(a){var b=this;a.editable().attachListener(a,"beforeCommandExec",function(d){var c=a.editable();"selectAll"==d.data.name&&c&&b.addFillers(c)},null,null,9999)}}})();(function(){function q(a){this.editor=a;this.registered={};this.instances={};this.selected=[];this.widgetHoldingFocusedEditable=this.focused=null;this._={nextId:0,upcasts:[],upcastCallbacks:[],filters:{}};R(this);S(this);this.on("checkWidgets",T);this.editor.on("contentDomInvalidated",this.checkWidgets,this);U(this);V(this);W(this);X(this);Y(this)}function h(a,b,c,d,e){var f=a.editor;CKEDITOR.tools.extend(this,d,{editor:f,id:b,inline:"span"==c.getParent().getName(),element:c,data:CKEDITOR.tools.extend({},
"function"==typeof d.defaults?d.defaults():d.defaults),dataReady:!1,inited:!1,ready:!1,edit:h.prototype.edit,focusedEditable:null,definition:d,repository:a,draggable:!1!==d.draggable,_:{downcastFn:d.downcast&&"string"==typeof d.downcast?d.downcasts[d.downcast]:d.downcast}},!0);a.fire("instanceCreated",this);Z(this,d);this.init&&this.init();this.inited=!0;(a=this.element.data("cke-widget-data"))&&this.setData(JSON.parse(decodeURIComponent(a)));e&&this.setData(e);this.data.classes||this.setData("classes",
this.getClasses());this.dataReady=!0;v(this);this.fire("data",this.data);this.isInited()&&f.editable().contains(this.wrapper)&&(this.ready=!0,this.fire("ready"))}function t(a,b,c){CKEDITOR.dom.element.call(this,b.$);this.editor=a;this._={};b=this.filter=c.filter;CKEDITOR.dtd[this.getName()].p?(this.enterMode=b?b.getAllowedEnterMode(a.enterMode):a.enterMode,this.shiftEnterMode=b?b.getAllowedEnterMode(a.shiftEnterMode,!0):a.shiftEnterMode):this.enterMode=this.shiftEnterMode=CKEDITOR.ENTER_BR}function aa(a,
b){a.addCommand(b.name,{exec:function(a,d){function e(){a.widgets.finalizeCreation(k)}var f=a.widgets.focused;if(f&&f.name==b.name)f.edit();else if(b.insert)b.insert({editor:a,commandData:d});else if(b.template){var f="function"==typeof b.defaults?b.defaults():b.defaults,f=CKEDITOR.dom.element.createFromHtml(b.template.output(f),a.document),g,l=a.widgets.wrapElement(f,b.name),k=new CKEDITOR.dom.documentFragment(l.getDocument());k.append(l);(g=a.widgets.initOn(f,b,d&&d.startupData))?(f=g.once("edit",
function(b){if(b.data.dialog)g.once("dialog",function(b){b=b.data;var d,f;d=b.once("ok",e,null,null,20);f=b.once("cancel",function(b){b.data&&!1===b.data.hide||a.widgets.destroy(g,!0)});b.once("hide",function(){d.removeListener();f.removeListener()})});else e()},null,null,999),g.edit(),f.removeListener()):e()}},allowedContent:b.allowedContent,requiredContent:b.requiredContent,contentForms:b.contentForms,contentTransformations:b.contentTransformations})}function ba(a,b){function c(a,e){var c=b.upcast.split(","),
d,f;for(f=0;f<c.length;f++)if(d=c[f],d===a.name)return b.upcasts[d].call(this,a,e);return!1}function d(b,e,c){var d=CKEDITOR.tools.getIndex(a._.upcasts,function(a){return a[2]>c});0>d&&(d=a._.upcasts.length);a._.upcasts.splice(d,0,[CKEDITOR.tools.bind(b,e),e.name,c])}var e=b.upcast,f=b.upcastPriority||10;e&&("string"==typeof e?d(c,b,f):d(e,b,f))}function x(a,b){a.focused=null;if(b.isInited()){var c=b.editor.checkDirty();a.fire("widgetBlurred",{widget:b});b.setFocused(!1);!c&&b.editor.resetDirty()}}
function T(a){a=a.data;if("wysiwyg"==this.editor.mode){var b=this.editor.editable(),c=this.instances,d,e,f,g;if(b){for(d in c)c[d].isReady()&&!b.contains(c[d].wrapper)&&this.destroy(c[d],!0);if(a&&a.initOnlyNew)c=this.initOnAll();else{var l=b.find(".cke_widget_wrapper"),c=[];d=0;for(e=l.count();d<e;d++){f=l.getItem(d);if(g=!this.getByElement(f,!0)){a:{g=ca;for(var k=f;k=k.getParent();)if(g(k)){g=!0;break a}g=!1}g=!g}g&&b.contains(f)&&(f.addClass("cke_widget_new"),c.push(this.initOn(f.getFirst(h.isDomWidgetElement))))}}a&&
a.focusInited&&1==c.length&&c[0].focus()}}}function y(a){if("undefined"!=typeof a.attributes&&a.attributes["data-widget"]){var b=z(a),c=A(a),d=!1;b&&b.value&&b.value.match(/^\s/g)&&(b.parent.attributes["data-cke-white-space-first"]=1,b.value=b.value.replace(/^\s/g,"\x26nbsp;"),d=!0);c&&c.value&&c.value.match(/\s$/g)&&(c.parent.attributes["data-cke-white-space-last"]=1,c.value=c.value.replace(/\s$/g,"\x26nbsp;"),d=!0);d&&(a.attributes["data-cke-widget-white-space"]=1)}}function z(a){return a.find(function(a){return 3===
a.type},!0).shift()}function A(a){return a.find(function(a){return 3===a.type},!0).pop()}function B(a,b,c){if(!c.allowedContent&&!c.disallowedContent)return null;var d=this._.filters[a];d||(this._.filters[a]=d={});a=d[b];a||(a=c.allowedContent?new CKEDITOR.filter(c.allowedContent):this.editor.filter.clone(),d[b]=a,c.disallowedContent&&a.disallow(c.disallowedContent));return a}function da(a){var b=[],c=a._.upcasts,d=a._.upcastCallbacks;return{toBeWrapped:b,iterator:function(a){var f,g,l,k,n;if("data-cke-widget-wrapper"in
a.attributes)return(a=a.getFirst(h.isParserWidgetElement))&&b.push([a]),!1;if("data-widget"in a.attributes)return b.push([a]),!1;if(n=c.length){if(a.attributes["data-cke-widget-upcasted"])return!1;k=0;for(f=d.length;k<f;++k)if(!1===d[k](a))return;for(k=0;k<n;++k)if(f=c[k],l={},g=f[0](a,l))return g instanceof CKEDITOR.htmlParser.element&&(a=g),a.attributes["data-cke-widget-data"]=encodeURIComponent(JSON.stringify(l)),a.attributes["data-cke-widget-upcasted"]=1,b.push([a,f[1]]),!1}}}}function C(a,b){return{tabindex:-1,
contenteditable:"false","data-cke-widget-wrapper":1,"data-cke-filter":"off","class":"cke_widget_wrapper cke_widget_new cke_widget_"+(a?"inline":"block")+(b?" cke_widget_"+b:"")}}function D(a,b,c){if(a.type==CKEDITOR.NODE_ELEMENT){var d=CKEDITOR.dtd[a.name];if(d&&!d[c.name]){var d=a.split(b),e=a.parent;b=d.getIndex();a.children.length||(--b,a.remove());d.children.length||d.remove();return D(e,b,c)}}a.add(c,b)}function E(a,b){return"boolean"==typeof a.inline?a.inline:!!CKEDITOR.dtd.$inline[b]}function ca(a){return a.hasAttribute("data-cke-temp")}
function p(a,b,c,d){var e=a.editor;e.fire("lockSnapshot");c?(d=c.data("cke-widget-editable"),d=b.editables[d],a.widgetHoldingFocusedEditable=b,b.focusedEditable=d,c.addClass("cke_widget_editable_focused"),d.filter&&e.setActiveFilter(d.filter),e.setActiveEnterMode(d.enterMode,d.shiftEnterMode)):(d||b.focusedEditable.removeClass("cke_widget_editable_focused"),b.focusedEditable=null,a.widgetHoldingFocusedEditable=null,e.setActiveFilter(null),e.setActiveEnterMode(null,null));e.fire("unlockSnapshot")}
function ea(a){a.contextMenu&&a.contextMenu.addListener(function(b){if(b=a.widgets.getByElement(b,!0))return b.fire("contextMenu",{})})}function fa(a,b){return CKEDITOR.tools.trim(b)}function X(a){var b=a.editor,c=CKEDITOR.plugins.lineutils;b.on("dragstart",function(c){var e=c.data.target;h.isDomDragHandler(e)&&(e=a.getByElement(e),c.data.dataTransfer.setData("cke/widget-id",e.id),b.focus(),e.focus())});b.on("drop",function(c){function e(a,b){return a&&b?a.wrapper.equals(b.wrapper)||a.wrapper.contains(b.wrapper):
!1}var f=c.data.dataTransfer,g=f.getData("cke/widget-id"),l=f.getTransferType(b),f=b.createRange(),k=function(a){a=a.getBoundaryNodes().startNode;a.type!==CKEDITOR.NODE_ELEMENT&&(a=a.getParent());return b.widgets.getByElement(a)}(c.data.dropRange);if(""!==g&&l===CKEDITOR.DATA_TRANSFER_CROSS_EDITORS)c.cancel();else if(l==CKEDITOR.DATA_TRANSFER_INTERNAL)if(""===g&&0<b.widgets.selected.length)c.data.dataTransfer.setData("text/html",F(b));else if(g=a.instances[g])e(g,k)?c.cancel():(f.setStartBefore(g.wrapper),
f.setEndAfter(g.wrapper),c.data.dragRange=f,delete CKEDITOR.plugins.clipboard.dragStartContainerChildCount,delete CKEDITOR.plugins.clipboard.dragEndContainerChildCount,c.data.dataTransfer.setData("text/html",g.getClipboardHtml()),b.widgets.destroy(g,!0))});b.on("contentDom",function(){var d=b.editable();CKEDITOR.tools.extend(a,{finder:new c.finder(b,{lookups:{"default":function(b){if(!b.is(CKEDITOR.dtd.$listItem)&&b.is(CKEDITOR.dtd.$block)&&!h.isDomNestedEditable(b)&&!a._.draggedWidget.wrapper.contains(b)){var c=
h.getNestedEditable(d,b);if(c){b=a._.draggedWidget;if(a.getByElement(c)==b)return;c=CKEDITOR.filter.instances[c.data("cke-filter")];b=b.requiredContent;if(c&&b&&!c.check(b))return}return CKEDITOR.LINEUTILS_BEFORE|CKEDITOR.LINEUTILS_AFTER}}}}),locator:new c.locator(b),liner:new c.liner(b,{lineStyle:{cursor:"move !important","border-top-color":"#666"},tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},!0)})}function V(a){var b=a.editor;b.on("contentDom",function(){var c=
b.editable(),d=c.isInline()?c:b.document,e,f;c.attachListener(d,"mousedown",function(c){var d=c.data.getTarget();e=d instanceof CKEDITOR.dom.element?a.getByElement(d):null;f=0;e&&(e.inline&&d.type==CKEDITOR.NODE_ELEMENT&&d.hasAttribute("data-cke-widget-drag-handler")?(f=1,a.focused!=e&&b.getSelection().removeAllRanges()):h.getNestedEditable(e.wrapper,d)?e=null:(c.data.preventDefault(),CKEDITOR.env.ie||e.focus()))});c.attachListener(d,"mouseup",function(){f&&e&&e.wrapper&&(f=0,e.focus())});CKEDITOR.env.ie&&
c.attachListener(d,"mouseup",function(){setTimeout(function(){e&&e.wrapper&&c.contains(e.wrapper)&&(e.focus(),e=null)})})});b.on("doubleclick",function(b){var d=a.getByElement(b.data.element);if(d&&!h.getNestedEditable(d.wrapper,b.data.element))return d.fire("doubleclick",{element:b.data.element})},null,null,1)}function W(a){a.editor.on("key",function(b){var c=a.focused,d=a.widgetHoldingFocusedEditable,e;c?e=c.fire("key",{keyCode:b.data.keyCode}):d&&(c=b.data.keyCode,b=d.focusedEditable,c==CKEDITOR.CTRL+
65?(c=b.getBogus(),d=d.editor.createRange(),d.selectNodeContents(b),c&&d.setEndAt(c,CKEDITOR.POSITION_BEFORE_START),d.select(),e=!1):8==c||46==c?(e=d.editor.getSelection().getRanges(),d=e[0],e=!(1==e.length&&d.collapsed&&d.checkBoundaryOfElement(b,CKEDITOR[8==c?"START":"END"]))):e=void 0);return e},null,null,1)}function Y(a){function b(b){1>a.selected.length||G(c,"cut"===b.name)}var c=a.editor;c.on("contentDom",function(){var a=c.editable();a.attachListener(a,"copy",b);a.attachListener(a,"cut",b)})}
function U(a){function b(){var a=e.getSelection();if(a&&(a=a.getRanges()[0])&&!a.collapsed){var b=c(a.startContainer),d=c(a.endContainer);!b&&d?(a.setEndBefore(d.wrapper),a.select()):b&&!d&&(a.setStartAfter(b.wrapper),a.select())}}function c(a){return a?a.type==CKEDITOR.NODE_TEXT?c(a.getParent()):e.widgets.getByElement(a):null}function d(){a.fire("checkSelection")}var e=a.editor;e.on("selectionCheck",d);e.on("contentDom",function(){e.editable().attachListener(e,"key",function(){setTimeout(d,10)})});
if(!CKEDITOR.env.ie)a.on("checkSelection",b);a.on("checkSelection",a.checkSelection,a);e.on("selectionChange",function(b){var c=(b=h.getNestedEditable(e.editable(),b.data.selection.getStartElement()))&&a.getByElement(b),d=a.widgetHoldingFocusedEditable;d?d===c&&d.focusedEditable.equals(b)||(p(a,d,null),c&&b&&p(a,c,b)):c&&b&&p(a,c,b)});e.on("dataReady",function(){H(a).commit()});e.on("blur",function(){var b;(b=a.focused)&&x(a,b);(b=a.widgetHoldingFocusedEditable)&&p(a,b,null)})}function S(a){var b=
a.editor,c={};b.on("toDataFormat",function(b){var e=CKEDITOR.tools.getNextNumber(),f=[];b.data.downcastingSessionId=e;c[e]=f;b.data.dataValue.forEach(function(b){var c=b.attributes,e;if("data-cke-widget-white-space"in c){e=z(b);var d=A(b);e.parent.attributes["data-cke-white-space-first"]&&(e.value=e.value.replace(/^&nbsp;/g," "));d.parent.attributes["data-cke-white-space-last"]&&(d.value=d.value.replace(/&nbsp;$/g," "))}if("data-cke-widget-id"in c){if(c=a.instances[c["data-cke-widget-id"]])e=b.getFirst(h.isParserWidgetElement),
f.push({wrapper:b,element:e,widget:c,editables:{}}),"1"!=e.attributes["data-cke-widget-keep-attr"]&&delete e.attributes["data-widget"]}else if("data-cke-widget-editable"in c)return 0<f.length&&(f[f.length-1].editables[c["data-cke-widget-editable"]]=b),!1},CKEDITOR.NODE_ELEMENT,!0)},null,null,8);b.on("toDataFormat",function(a){if(a.data.downcastingSessionId)for(var b=c[a.data.downcastingSessionId],f,g,l,k,h,m;f=b.shift();){g=f.widget;l=f.element;k=g._.downcastFn&&g._.downcastFn.call(g,l);a.data.widgetsCopy&&
g.getClipboardHtml&&(k=CKEDITOR.htmlParser.fragment.fromHtml(g.getClipboardHtml()),k=k.children[0]);for(m in f.editables)h=f.editables[m],delete h.attributes.contenteditable,h.setHtml(g.editables[m].getData());k||(k=l);f.wrapper.replaceWith(k)}},null,null,13);b.on("contentDomUnload",function(){a.destroyAll(!0)})}function R(a){var b=a.editor,c,d;b.on("toHtml",function(b){var d=da(a),g;for(b.data.dataValue.forEach(d.iterator,CKEDITOR.NODE_ELEMENT,!0);g=d.toBeWrapped.pop();){var l=g[0],k=l.parent;k.type==
CKEDITOR.NODE_ELEMENT&&k.attributes["data-cke-widget-wrapper"]&&k.replaceWith(l);a.wrapElement(g[0],g[1])}c=b.data.protectedWhitespaces?3==b.data.dataValue.children.length&&h.isParserWidgetWrapper(b.data.dataValue.children[1]):1==b.data.dataValue.children.length&&h.isParserWidgetWrapper(b.data.dataValue.children[0])},null,null,8);b.on("dataReady",function(){if(d)for(var c=b.editable().find(".cke_widget_wrapper"),f,g,l=0,k=c.count();l<k;++l)f=c.getItem(l),g=f.getFirst(h.isDomWidgetElement),g.type==
CKEDITOR.NODE_ELEMENT&&g.data("widget")?(g.replace(f),a.wrapElement(g)):f.remove();d=0;a.destroyAll(!0);a.initOnAll()});b.on("loadSnapshot",function(b){/data-cke-widget/.test(b.data)&&(d=1);a.destroyAll(!0)},null,null,9);b.on("paste",function(a){a=a.data;a.dataValue=a.dataValue.replace(ga,fa);a.range&&(a=h.getNestedEditable(b.editable(),a.range.startContainer))&&(a=CKEDITOR.filter.instances[a.data("cke-filter")])&&b.setActiveFilter(a)});b.on("afterInsertHtml",function(d){d.data.intoRange?a.checkWidgets({initOnlyNew:!0}):
(b.fire("lockSnapshot"),a.checkWidgets({initOnlyNew:!0,focusInited:c}),b.fire("unlockSnapshot"))})}function H(a){var b=a.selected,c=[],d=b.slice(0),e=null;return{select:function(a){0>CKEDITOR.tools.indexOf(b,a)&&c.push(a);a=CKEDITOR.tools.indexOf(d,a);0<=a&&d.splice(a,1);return this},focus:function(a){e=a;return this},commit:function(){var f=a.focused!==e,g,l;a.editor.fire("lockSnapshot");for(f&&(g=a.focused)&&x(a,g);g=d.pop();)b.splice(CKEDITOR.tools.indexOf(b,g),1),g.isInited()&&(l=g.editor.checkDirty(),
g.setSelected(!1),!l&&g.editor.resetDirty());f&&e&&(l=a.editor.checkDirty(),a.focused=e,a.fire("widgetFocused",{widget:e}),e.setFocused(!0),!l&&a.editor.resetDirty());for(;g=c.pop();)b.push(g),g.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function ha(a){a&&a.addFilterRule(function(a){return a.replace(/\s*cke_widget_selected/g,"").replace(/\s*cke_widget_focused/g,"")})}function I(a,b,c){var d=0;b=J(b);var e=a.data.classes||{},f;if(b){for(e=CKEDITOR.tools.clone(e);f=b.pop();)c?e[f]||(d=e[f]=1):
e[f]&&(delete e[f],d=1);d&&a.setData("classes",e)}}function K(a){a.cancel()}function L(a,b){var c=function(a){return a==CKEDITOR.ENTER_BR?"br":a==CKEDITOR.ENTER_DIV?"div":"p"}(a.editor.config.enterMode),d=new CKEDITOR.dom.element(c);"br"!==c&&d.appendBogus();"after"===b?d.insertAfter(a.wrapper):d.insertBefore(a.wrapper);(function(b){var c=a.editor.createRange();c.setStart(b,0);a.editor.getSelection().selectRanges([c])})(d)}function G(a,b){var c=a.widgets.focused,d,e,f;u.hasCopyBin(a)||(e=new u(a,
{beforeDestroy:function(){!b&&c&&c.focus();f&&a.getSelection().selectBookmarks(f);d&&CKEDITOR.plugins.widgetselection.addFillers(a.editable())},afterDestroy:function(){b&&!a.readOnly&&(c?a.widgets.del(c):a.extractSelectedHtml(),a.fire("saveSnapshot"))}}),c||(d=CKEDITOR.env.webkit&&CKEDITOR.plugins.widgetselection.isWholeContentSelected(a.editable()),f=a.getSelection().createBookmarks(!0)),e.handle(F(a)))}function J(a){return(a=(a=a.getDefinition().attributes)&&a["class"])?a.split(/\s+/):null}function M(){var a=
CKEDITOR.document.getActive(),b=this.editor,c=b.editable();(c.isInline()?c:b.document.getWindow().getFrame()).equals(a)&&b.focusManager.focus(c)}function N(){CKEDITOR.env.gecko&&this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function F(a){var b=a.getSelectedHtml(!0);if(a.widgets.focused)return a.widgets.focused.getClipboardHtml();a.once("toDataFormat",function(a){a.data.widgetsCopy=!0},null,null,-1);return a.dataProcessor.toDataFormat(b)}
function Z(a,b){var c=a.editor.config.widget_keystrokeInsertLineBefore,d=a.editor.config.widget_keystrokeInsertLineAfter;ia(a);O(a);ja(a);P(a);ka(a);la(a);ma(a);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)a.wrapper.on("dragstart",function(b){var c=b.data.getTarget();h.getNestedEditable(a,c)||a.inline&&h.isDomDragHandler(c)||b.data.preventDefault()});a.wrapper.removeClass("cke_widget_new");a.element.addClass("cke_widget_element");a.on("key",function(b){b=b.data.keyCode;if(b==c)L(a,"before"),a.editor.fire("saveSnapshot");
else if(b==d)L(a,"after"),a.editor.fire("saveSnapshot");else if(13==b)a.edit();else{if(b==CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){G(a.editor,b==CKEDITOR.CTRL+88);return}if(b in Q||CKEDITOR.CTRL&b||CKEDITOR.ALT&b)return}return!1},null,null,999);a.on("doubleclick",function(b){a.edit()&&b.cancel()});if(b.data)a.on("data",b.data);if(b.edit)a.on("edit",b.edit)}function ia(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",a.id)}function O(a,b){a.partSelectors||(a.partSelectors=a.parts);
if(a.parts){var c={},d,e;for(e in a.partSelectors)b||!a.parts[e]||"string"==typeof a.parts[e]?(d=a.wrapper.findOne(a.partSelectors[e]),c[e]=d):c[e]=a.parts[e];a.parts=c}}function ja(a){var b=a.editables,c,d;a.editables={};if(a.editables)for(c in b)d=b[c],a.initEditable(c,"string"==typeof d?{selector:d}:d)}function P(a){if(!0===a.mask)na(a);else if(a.mask){var b=new CKEDITOR.tools.buffers.throttle(250,oa,a),c=CKEDITOR.env.gecko?300:0,d,e;a.on("focus",function(){b.input();d=a.editor.on("change",b.input);
e=a.on("blur",function(){d.removeListener();e.removeListener()})});a.editor.on("instanceReady",function(){setTimeout(function(){b.input()},c)});a.editor.on("mode",function(){setTimeout(function(){b.input()},c)});if(CKEDITOR.env.gecko){var f=a.element.find("img");CKEDITOR.tools.array.forEach(f.toArray(),function(a){a.on("load",function(){b.input()})})}for(var g in a.editables)a.editables[g].on("focus",function(){a.editor.on("change",b.input);e&&e.removeListener()}),a.editables[g].on("blur",function(){a.editor.removeListener("change",
b.input)});b.input()}}function na(a){var b=a.wrapper.findOne(".cke_widget_mask");b||(b=new CKEDITOR.dom.element("img",a.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_mask"}),a.wrapper.append(b));a.mask=b}function oa(){if(this.wrapper){this.maskPart=this.maskPart||this.mask;var a=this.parts[this.maskPart],b;if(a&&"string"!=typeof a){b=this.wrapper.findOne(".cke_widget_partial_mask");b||(b=new CKEDITOR.dom.element("img",this.editor.document),
b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_partial_mask"}),this.wrapper.append(b));this.mask=b;var c=b.$,d=a.$,e=!(c.offsetTop==d.offsetTop&&c.offsetLeft==d.offsetLeft);if(c.offsetWidth!=d.offsetWidth||c.offsetHeight!=d.offsetHeight||e)c=a.getParent(),d=CKEDITOR.plugins.widget.isDomWidget(c),b.setStyles({top:a.$.offsetTop+(d?0:c.$.offsetTop)+"px",left:a.$.offsetLeft+(d?0:c.$.offsetLeft)+"px",width:a.$.offsetWidth+"px",height:a.$.offsetHeight+"px"})}}}function ka(a){if(a.draggable){var b=
a.editor,c=a.wrapper.getLast(h.isDomDragHandlerContainer),d;c?d=c.findOne("img"):(c=new CKEDITOR.dom.element("span",b.document),c.setAttributes({"class":"cke_reset cke_widget_drag_handler_container",style:"background:rgba(220,220,220,0.5);background-image:url("+b.plugins.widget.path+"images/handle.png);display:none;"}),d=new CKEDITOR.dom.element("img",b.document),d.setAttributes({"class":"cke_reset cke_widget_drag_handler","data-cke-widget-drag-handler":"1",src:CKEDITOR.tools.transparentImageData,
width:15,title:b.lang.widget.move,height:15,role:"presentation"}),a.inline&&d.setAttribute("draggable","true"),c.append(d),a.wrapper.append(c));a.wrapper.on("dragover",function(a){a.data.preventDefault()});a.wrapper.on("mouseenter",a.updateDragHandlerPosition,a);setTimeout(function(){a.on("data",a.updateDragHandlerPosition,a)},50);if(!a.inline&&(d.on("mousedown",pa,a),CKEDITOR.env.ie&&9>CKEDITOR.env.version))d.on("dragstart",function(a){a.data.preventDefault(!0)});a.dragHandlerContainer=c}}function pa(a){function b(){var b;
for(r.reset();b=l.pop();)b.removeListener();var c=k;b=a.sender;var d=this.repository.finder,e=this.repository.liner,f=this.editor,g=this.editor.editable();CKEDITOR.tools.isEmpty(e.visible)||(c=d.getRange(c[0]),this.focus(),f.fire("drop",{dropRange:c,target:c.startContainer}));g.removeClass("cke_widget_dragging");e.hideVisible();f.fire("dragend",{target:b})}if(CKEDITOR.tools.getMouseButton(a)===CKEDITOR.MOUSE_BUTTON_LEFT){var c=this.repository.finder,d=this.repository.locator,e=this.repository.liner,
f=this.editor,g=f.editable(),l=[],k=[],h,m;this.repository._.draggedWidget=this;var w=c.greedySearch(),r=CKEDITOR.tools.eventsBuffer(50,function(){h=d.locate(w);k=d.sort(m,1);k.length&&(e.prepare(w,h),e.placeLine(k[0]),e.cleanup())});g.addClass("cke_widget_dragging");l.push(g.on("mousemove",function(a){m=a.data.$.clientY;r.input()}));f.fire("dragstart",{target:a.sender});l.push(f.document.once("mouseup",b,this));g.isInline()||l.push(CKEDITOR.document.once("mouseup",b,this))}}function la(a){var b=
null;a.on("data",function(){var a=this.data.classes,d;if(b!=a){for(d in b)a&&a[d]||this.removeClass(d);for(d in a)this.addClass(d);b=a}})}function ma(a){a.on("data",function(){if(a.wrapper){var b=this.getLabel?this.getLabel():this.editor.lang.widget.label.replace(/%1/,this.pathName||this.element.getName());a.wrapper.setAttribute("role","region");a.wrapper.setAttribute("aria-label",b)}},null,null,9999)}function v(a){a.element.data("cke-widget-data",encodeURIComponent(JSON.stringify(a.data)))}function qa(){function a(){}
function b(a,b,c){return c&&this.checkElement(a)?(a=c.widgets.getByElement(a,!0))&&a.checkStyleActive(this):!1}function c(a){function b(a,c,d){for(var e=a.length,f=0;f<e;){if(c.call(d,a[f],f,a))return a[f];f++}}function c(a){function b(a,c){var d=CKEDITOR.tools.object.keys(a),e=CKEDITOR.tools.object.keys(c);if(d.length!==e.length)return!1;for(var f in a)if(("object"!==typeof a[f]||"object"!==typeof c[f]||!b(a[f],c[f]))&&a[f]!==c[f])return!1;return!0}return function(c){return b(a.getDefinition(),c.getDefinition())}}
var h=a.widget,k;d[h]||(d[h]={});for(var n=0,m=a.group.length;n<m;n++)k=a.group[n],d[h][k]||(d[h][k]=[]),k=d[h][k],b(k,c(a))||k.push(a)}var d={};CKEDITOR.style.addCustomHandler({type:"widget",setup:function(a){this.widget=a.widget;(this.group="string"==typeof a.group?[a.group]:a.group)&&c(this)},apply:function(a){var b;a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&(b=a.widgets.focused,this.group&&this.removeStylesFromSameGroup(a),b.applyStyle(this))},remove:function(a){a instanceof
CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.removeStyle(this)},removeStylesFromSameGroup:function(a){var b=!1,c,h;if(!(a instanceof CKEDITOR.editor))return!1;h=a.elementPath();if(this.checkApplicable(h,a))for(var k=0,n=this.group.length;k<n;k++){c=d[this.widget][this.group[k]];for(var m=0;m<c.length;m++)c[m]!==this&&c[m].checkActive(h,a)&&(a.widgets.focused.removeStyle(c[m]),b=!0)}return b},checkActive:function(a,b){return this.checkElementMatch(a.lastElement,0,b)},
checkApplicable:function(a,b){return b instanceof CKEDITOR.editor?this.checkElement(a.lastElement):!1},checkElementMatch:b,checkElementRemovable:b,checkElement:function(a){return h.isDomWidgetWrapper(a)?(a=a.getFirst(h.isDomWidgetElement))&&a.data("widget")==this.widget:!1},buildPreview:function(a){return a||this._.definition.name},toAllowedContentRules:function(a){if(!a)return null;a=a.widgets.registered[this.widget];var b,c={};if(!a)return null;if(a.styleableElements){b=this.getClassesArray();if(!b)return null;
c[a.styleableElements]={classes:b,propertiesOnly:!0};return c}return a.styleToAllowedContentRules?a.styleToAllowedContentRules(this):null},getClassesArray:function(){var a=this._.definition.attributes&&this._.definition.attributes["class"];return a?CKEDITOR.tools.trim(a).split(/\s+/):null},applyToRange:a,removeFromRange:a,applyToObject:a})}CKEDITOR.plugins.add("widget",{requires:"lineutils,clipboard,widgetselection",onLoad:function(){void 0!==CKEDITOR.document.$.querySelectorAll&&(CKEDITOR.addCss('.cke_widget_wrapper{position:relative;outline:none}.cke_widget_inline{display:inline-block}.cke_widget_wrapper:hover\x3e.cke_widget_element{outline:2px solid #ffd25c;cursor:default}.cke_widget_wrapper:hover .cke_widget_editable{outline:2px solid #ffd25c}.cke_widget_wrapper.cke_widget_focused\x3e.cke_widget_element,.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{outline:2px solid #47a4f5}.cke_widget_editable{cursor:text}.cke_widget_drag_handler_container{position:absolute;width:15px;height:0;display:block;opacity:0.75;transition:height 0s 0.2s;line-height:0}.cke_widget_wrapper:hover\x3e.cke_widget_drag_handler_container{height:15px;transition:none}.cke_widget_drag_handler_container:hover{opacity:1}.cke_editable[contenteditable\x3d"false"] .cke_widget_drag_handler_container{display:none;}img.cke_widget_drag_handler{cursor:move;width:15px;height:15px;display:inline-block}.cke_widget_mask{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.cke_widget_partial_mask{position:absolute;display:block}.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{cursor:move !important}'),
b){a.addCommand(b.name,{exec:function(a,d){function e(){a.widgets.finalizeCreation(k)}var f=a.widgets.focused;if(f&&f.name==b.name)f.edit();else if(b.insert)b.insert({editor:a,commandData:d});else if(b.template){var f="function"==typeof b.defaults?b.defaults():b.defaults,f=CKEDITOR.tools.object.merge(f||{},d&&d.startupData||{}),f=CKEDITOR.dom.element.createFromHtml(b.template.output(f),a.document),g,l=a.widgets.wrapElement(f,b.name),k=new CKEDITOR.dom.documentFragment(l.getDocument());k.append(l);
(g=a.widgets.initOn(f,b,d&&d.startupData))?(f=g.once("edit",function(b){if(b.data.dialog)g.once("dialog",function(b){b=b.data;var d,f;d=b.once("ok",e,null,null,20);f=b.once("cancel",function(b){b.data&&!1===b.data.hide||a.widgets.destroy(g,!0)});b.once("hide",function(){d.removeListener();f.removeListener()})});else e()},null,null,999),g.edit(),f.removeListener()):e()}},allowedContent:b.allowedContent,requiredContent:b.requiredContent,contentForms:b.contentForms,contentTransformations:b.contentTransformations})}
function ba(a,b){function c(a,e){var c=b.upcast.split(","),d,f;for(f=0;f<c.length;f++)if(d=c[f],d===a.name)return b.upcasts[d].call(this,a,e);return!1}function d(b,e,c){var d=CKEDITOR.tools.getIndex(a._.upcasts,function(a){return a[2]>c});0>d&&(d=a._.upcasts.length);a._.upcasts.splice(d,0,[CKEDITOR.tools.bind(b,e),e.name,c])}var e=b.upcast,f=b.upcastPriority||10;e&&("string"==typeof e?d(c,b,f):d(e,b,f))}function x(a,b){a.focused=null;if(b.isInited()){var c=b.editor.checkDirty();a.fire("widgetBlurred",
{widget:b});b.setFocused(!1);!c&&b.editor.resetDirty()}}function T(a){a=a.data;if("wysiwyg"==this.editor.mode){var b=this.editor.editable(),c=this.instances,d,e,f,g;if(b){for(d in c)c[d].isReady()&&!b.contains(c[d].wrapper)&&this.destroy(c[d],!0);if(a&&a.initOnlyNew)c=this.initOnAll();else{var l=b.find(".cke_widget_wrapper"),c=[];d=0;for(e=l.count();d<e;d++){f=l.getItem(d);if(g=!this.getByElement(f,!0)){a:{g=ca;for(var k=f;k=k.getParent();)if(g(k)){g=!0;break a}g=!1}g=!g}g&&b.contains(f)&&(f.addClass("cke_widget_new"),
c.push(this.initOn(f.getFirst(h.isDomWidgetElement))))}}a&&a.focusInited&&1==c.length&&c[0].focus()}}}function y(a){if("undefined"!=typeof a.attributes&&a.attributes["data-widget"]){var b=z(a),c=A(a),d=!1;b&&b.value&&b.value.match(/^\s/g)&&(b.parent.attributes["data-cke-white-space-first"]=1,b.value=b.value.replace(/^\s/g,"\x26nbsp;"),d=!0);c&&c.value&&c.value.match(/\s$/g)&&(c.parent.attributes["data-cke-white-space-last"]=1,c.value=c.value.replace(/\s$/g,"\x26nbsp;"),d=!0);d&&(a.attributes["data-cke-widget-white-space"]=
1)}}function z(a){return a.find(function(a){return 3===a.type},!0).shift()}function A(a){return a.find(function(a){return 3===a.type},!0).pop()}function B(a,b,c){if(!c.allowedContent&&!c.disallowedContent)return null;var d=this._.filters[a];d||(this._.filters[a]=d={});a=d[b];a||(a=c.allowedContent?new CKEDITOR.filter(c.allowedContent):this.editor.filter.clone(),d[b]=a,c.disallowedContent&&a.disallow(c.disallowedContent));return a}function da(a){var b=[],c=a._.upcasts,d=a._.upcastCallbacks;return{toBeWrapped:b,
iterator:function(a){var f,g,l,k,n;if("data-cke-widget-wrapper"in a.attributes)return(a=a.getFirst(h.isParserWidgetElement))&&b.push([a]),!1;if("data-widget"in a.attributes)return b.push([a]),!1;if(n=c.length){if(a.attributes["data-cke-widget-upcasted"])return!1;k=0;for(f=d.length;k<f;++k)if(!1===d[k](a))return;for(k=0;k<n;++k)if(f=c[k],l={},g=f[0](a,l))return g instanceof CKEDITOR.htmlParser.element&&(a=g),a.attributes["data-cke-widget-data"]=encodeURIComponent(JSON.stringify(l)),a.attributes["data-cke-widget-upcasted"]=
1,b.push([a,f[1]]),!1}}}}function C(a,b){return{tabindex:-1,contenteditable:"false","data-cke-widget-wrapper":1,"data-cke-filter":"off","class":"cke_widget_wrapper cke_widget_new cke_widget_"+(a?"inline":"block")+(b?" cke_widget_"+b:"")}}function D(a,b,c){if(a.type==CKEDITOR.NODE_ELEMENT){var d=CKEDITOR.dtd[a.name];if(d&&!d[c.name]){var d=a.split(b),e=a.parent;b=d.getIndex();a.children.length||(--b,a.remove());d.children.length||d.remove();return D(e,b,c)}}a.add(c,b)}function E(a,b){return"boolean"==
typeof a.inline?a.inline:!!CKEDITOR.dtd.$inline[b]}function ca(a){return a.hasAttribute("data-cke-temp")}function p(a,b,c,d){var e=a.editor;e.fire("lockSnapshot");c?(d=c.data("cke-widget-editable"),d=b.editables[d],a.widgetHoldingFocusedEditable=b,b.focusedEditable=d,c.addClass("cke_widget_editable_focused"),d.filter&&e.setActiveFilter(d.filter),e.setActiveEnterMode(d.enterMode,d.shiftEnterMode)):(d||b.focusedEditable.removeClass("cke_widget_editable_focused"),b.focusedEditable=null,a.widgetHoldingFocusedEditable=
null,e.setActiveFilter(null),e.setActiveEnterMode(null,null));e.fire("unlockSnapshot")}function ea(a){a.contextMenu&&a.contextMenu.addListener(function(b){if(b=a.widgets.getByElement(b,!0))return b.fire("contextMenu",{})})}function fa(a,b){return CKEDITOR.tools.trim(b)}function X(a){var b=a.editor,c=CKEDITOR.plugins.lineutils;b.on("dragstart",function(c){var e=c.data.target;h.isDomDragHandler(e)&&(e=a.getByElement(e),c.data.dataTransfer.setData("cke/widget-id",e.id),b.focus(),e.focus())});b.on("drop",
function(c){function e(a,b){return a&&b?a.wrapper.equals(b.wrapper)||a.wrapper.contains(b.wrapper):!1}var f=c.data.dataTransfer,g=f.getData("cke/widget-id"),l=f.getTransferType(b),f=b.createRange(),k=function(a){a=a.getBoundaryNodes().startNode;a.type!==CKEDITOR.NODE_ELEMENT&&(a=a.getParent());return b.widgets.getByElement(a)}(c.data.dropRange);if(""!==g&&l===CKEDITOR.DATA_TRANSFER_CROSS_EDITORS)c.cancel();else if(l==CKEDITOR.DATA_TRANSFER_INTERNAL)if(""===g&&0<b.widgets.selected.length)c.data.dataTransfer.setData("text/html",
F(b));else if(g=a.instances[g])e(g,k)?c.cancel():(f.setStartBefore(g.wrapper),f.setEndAfter(g.wrapper),c.data.dragRange=f,delete CKEDITOR.plugins.clipboard.dragStartContainerChildCount,delete CKEDITOR.plugins.clipboard.dragEndContainerChildCount,c.data.dataTransfer.setData("text/html",g.getClipboardHtml()),b.widgets.destroy(g,!0))});b.on("contentDom",function(){var d=b.editable();CKEDITOR.tools.extend(a,{finder:new c.finder(b,{lookups:{"default":function(b){if(!b.is(CKEDITOR.dtd.$listItem)&&b.is(CKEDITOR.dtd.$block)&&
!h.isDomNestedEditable(b)&&!a._.draggedWidget.wrapper.contains(b)){var c=h.getNestedEditable(d,b);if(c){b=a._.draggedWidget;if(a.getByElement(c)==b)return;c=CKEDITOR.filter.instances[c.data("cke-filter")];b=b.requiredContent;if(c&&b&&!c.check(b))return}return CKEDITOR.LINEUTILS_BEFORE|CKEDITOR.LINEUTILS_AFTER}}}}),locator:new c.locator(b),liner:new c.liner(b,{lineStyle:{cursor:"move !important","border-top-color":"#666"},tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},
!0)})}function V(a){var b=a.editor;b.on("contentDom",function(){var c=b.editable(),d=c.isInline()?c:b.document,e,f;c.attachListener(d,"mousedown",function(c){var d=c.data.getTarget();e=d instanceof CKEDITOR.dom.element?a.getByElement(d):null;f=0;e&&(e.inline&&d.type==CKEDITOR.NODE_ELEMENT&&d.hasAttribute("data-cke-widget-drag-handler")?(f=1,a.focused!=e&&b.getSelection().removeAllRanges()):h.getNestedEditable(e.wrapper,d)?e=null:(c.data.preventDefault(),CKEDITOR.env.ie||e.focus()))});c.attachListener(d,
"mouseup",function(){f&&e&&e.wrapper&&(f=0,e.focus())});CKEDITOR.env.ie&&c.attachListener(d,"mouseup",function(){setTimeout(function(){e&&e.wrapper&&c.contains(e.wrapper)&&(e.focus(),e=null)})})});b.on("doubleclick",function(b){var d=a.getByElement(b.data.element);if(d&&!h.getNestedEditable(d.wrapper,b.data.element))return d.fire("doubleclick",{element:b.data.element})},null,null,1)}function W(a){a.editor.on("key",function(b){var c=a.focused,d=a.widgetHoldingFocusedEditable,e;c?e=c.fire("key",{keyCode:b.data.keyCode}):
d&&(c=b.data.keyCode,b=d.focusedEditable,c==CKEDITOR.CTRL+65?(c=b.getBogus(),d=d.editor.createRange(),d.selectNodeContents(b),c&&d.setEndAt(c,CKEDITOR.POSITION_BEFORE_START),d.select(),e=!1):8==c||46==c?(e=d.editor.getSelection().getRanges(),d=e[0],e=!(1==e.length&&d.collapsed&&d.checkBoundaryOfElement(b,CKEDITOR[8==c?"START":"END"]))):e=void 0);return e},null,null,1)}function Y(a){function b(b){1>a.selected.length||G(c,"cut"===b.name)}var c=a.editor;c.on("contentDom",function(){var a=c.editable();
a.attachListener(a,"copy",b);a.attachListener(a,"cut",b)})}function U(a){function b(){var a=e.getSelection();if(a&&(a=a.getRanges()[0])&&!a.collapsed){var b=c(a.startContainer),d=c(a.endContainer);!b&&d?(a.setEndBefore(d.wrapper),a.select()):b&&!d&&(a.setStartAfter(b.wrapper),a.select())}}function c(a){return a?a.type==CKEDITOR.NODE_TEXT?c(a.getParent()):e.widgets.getByElement(a):null}function d(){a.fire("checkSelection")}var e=a.editor;e.on("selectionCheck",d);e.on("contentDom",function(){e.editable().attachListener(e,
"key",function(){setTimeout(d,10)})});if(!CKEDITOR.env.ie)a.on("checkSelection",b);a.on("checkSelection",a.checkSelection,a);e.on("selectionChange",function(b){var c=(b=h.getNestedEditable(e.editable(),b.data.selection.getStartElement()))&&a.getByElement(b),d=a.widgetHoldingFocusedEditable;d?d===c&&d.focusedEditable.equals(b)||(p(a,d,null),c&&b&&p(a,c,b)):c&&b&&p(a,c,b)});e.on("dataReady",function(){H(a).commit()});e.on("blur",function(){var b;(b=a.focused)&&x(a,b);(b=a.widgetHoldingFocusedEditable)&&
p(a,b,null)})}function S(a){var b=a.editor,c={};b.on("toDataFormat",function(b){var e=CKEDITOR.tools.getNextNumber(),f=[];b.data.downcastingSessionId=e;c[e]=f;b.data.dataValue.forEach(function(b){var c=b.attributes,e;if("data-cke-widget-white-space"in c){e=z(b);var d=A(b);e.parent.attributes["data-cke-white-space-first"]&&(e.value=e.value.replace(/^&nbsp;/g," "));d.parent.attributes["data-cke-white-space-last"]&&(d.value=d.value.replace(/&nbsp;$/g," "))}if("data-cke-widget-id"in c){if(c=a.instances[c["data-cke-widget-id"]])e=
b.getFirst(h.isParserWidgetElement),f.push({wrapper:b,element:e,widget:c,editables:{}}),e&&"1"!=e.attributes["data-cke-widget-keep-attr"]&&delete e.attributes["data-widget"]}else if("data-cke-widget-editable"in c)return 0<f.length&&(f[f.length-1].editables[c["data-cke-widget-editable"]]=b),!1},CKEDITOR.NODE_ELEMENT,!0)},null,null,8);b.on("toDataFormat",function(a){if(a.data.downcastingSessionId)for(var b=c[a.data.downcastingSessionId],f,g,l,k,h,m;f=b.shift();){g=f.widget;l=f.element;k=g._.downcastFn&&
g._.downcastFn.call(g,l);a.data.widgetsCopy&&g.getClipboardHtml&&(k=CKEDITOR.htmlParser.fragment.fromHtml(g.getClipboardHtml()),k=k.children[0]);for(m in f.editables)h=f.editables[m],delete h.attributes.contenteditable,h.setHtml(g.editables[m].getData());k||(k=l);k?f.wrapper.replaceWith(k):f.wrapper.remove()}},null,null,13);b.on("contentDomUnload",function(){a.destroyAll(!0)})}function R(a){var b=a.editor,c,d;b.on("toHtml",function(b){var d=da(a),g;for(b.data.dataValue.forEach(d.iterator,CKEDITOR.NODE_ELEMENT,
!0);g=d.toBeWrapped.pop();){var l=g[0],k=l.parent;k.type==CKEDITOR.NODE_ELEMENT&&k.attributes["data-cke-widget-wrapper"]&&k.replaceWith(l);a.wrapElement(g[0],g[1])}c=b.data.protectedWhitespaces?3==b.data.dataValue.children.length&&h.isParserWidgetWrapper(b.data.dataValue.children[1]):1==b.data.dataValue.children.length&&h.isParserWidgetWrapper(b.data.dataValue.children[0])},null,null,8);b.on("dataReady",function(){if(d)for(var c=b.editable().find(".cke_widget_wrapper"),f,g,l=0,k=c.count();l<k;++l)f=
c.getItem(l),g=f.getFirst(h.isDomWidgetElement),g.type==CKEDITOR.NODE_ELEMENT&&g.data("widget")?(g.replace(f),a.wrapElement(g)):f.remove();d=0;a.destroyAll(!0);a.initOnAll()});b.on("loadSnapshot",function(b){/data-cke-widget/.test(b.data)&&(d=1);a.destroyAll(!0)},null,null,9);b.on("paste",function(a){a=a.data;a.dataValue=a.dataValue.replace(ga,fa);a.range&&(a=h.getNestedEditable(b.editable(),a.range.startContainer))&&(a=CKEDITOR.filter.instances[a.data("cke-filter")])&&b.setActiveFilter(a)});b.on("afterInsertHtml",
function(d){d.data.intoRange?a.checkWidgets({initOnlyNew:!0}):(b.fire("lockSnapshot"),a.checkWidgets({initOnlyNew:!0,focusInited:c}),b.fire("unlockSnapshot"))})}function H(a){var b=a.selected,c=[],d=b.slice(0),e=null;return{select:function(a){0>CKEDITOR.tools.indexOf(b,a)&&c.push(a);a=CKEDITOR.tools.indexOf(d,a);0<=a&&d.splice(a,1);return this},focus:function(a){e=a;return this},commit:function(){var f=a.focused!==e,g,l;a.editor.fire("lockSnapshot");for(f&&(g=a.focused)&&x(a,g);g=d.pop();)b.splice(CKEDITOR.tools.indexOf(b,
g),1),g.isInited()&&(l=g.editor.checkDirty(),g.setSelected(!1),!l&&g.editor.resetDirty());f&&e&&(l=a.editor.checkDirty(),a.focused=e,a.fire("widgetFocused",{widget:e}),e.setFocused(!0),!l&&a.editor.resetDirty());for(;g=c.pop();)b.push(g),g.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function ha(a){a&&a.addFilterRule(function(a){return a.replace(/\s*cke_widget_selected/g,"").replace(/\s*cke_widget_focused/g,"")})}function I(a,b,c){var d=0;b=J(b);var e=a.data.classes||{},f;if(b){for(e=CKEDITOR.tools.clone(e);f=
b.pop();)c?e[f]||(d=e[f]=1):e[f]&&(delete e[f],d=1);d&&a.setData("classes",e)}}function K(a){a.cancel()}function L(a,b){var c=function(a){return a==CKEDITOR.ENTER_BR?"br":a==CKEDITOR.ENTER_DIV?"div":"p"}(a.editor.config.enterMode),d=new CKEDITOR.dom.element(c);"br"!==c&&d.appendBogus();"after"===b?d.insertAfter(a.wrapper):d.insertBefore(a.wrapper);(function(b){var c=a.editor.createRange();c.setStart(b,0);a.editor.getSelection().selectRanges([c])})(d)}function G(a,b){var c=a.widgets.focused,d,e,f;
u.hasCopyBin(a)||(e=new u(a,{beforeDestroy:function(){!b&&c&&c.focus();f&&a.getSelection().selectBookmarks(f);d&&CKEDITOR.plugins.widgetselection.addFillers(a.editable())},afterDestroy:function(){b&&!a.readOnly&&(c?a.widgets.del(c):a.extractSelectedHtml(),a.fire("saveSnapshot"))}}),c||(d=CKEDITOR.env.webkit&&CKEDITOR.plugins.widgetselection.isWholeContentSelected(a.editable()),f=a.getSelection().createBookmarks(!0)),e.handle(F(a)))}function J(a){return(a=(a=a.getDefinition().attributes)&&a["class"])?
a.split(/\s+/):null}function M(){var a=CKEDITOR.document.getActive(),b=this.editor,c=b.editable();(c.isInline()?c:b.document.getWindow().getFrame()).equals(a)&&b.focusManager.focus(c)}function N(){CKEDITOR.env.gecko&&this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function F(a){var b=a.getSelectedHtml(!0);if(a.widgets.focused)return a.widgets.focused.getClipboardHtml();a.once("toDataFormat",function(a){a.data.widgetsCopy=!0},
null,null,-1);return a.dataProcessor.toDataFormat(b)}function Z(a,b){var c=a.editor.config.widget_keystrokeInsertLineBefore,d=a.editor.config.widget_keystrokeInsertLineAfter;ia(a);O(a);ja(a);P(a);ka(a);la(a);ma(a);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)a.wrapper.on("dragstart",function(b){var c=b.data.getTarget();h.getNestedEditable(a,c)||a.inline&&h.isDomDragHandler(c)||b.data.preventDefault()});a.wrapper.removeClass("cke_widget_new");a.element.addClass("cke_widget_element");a.on("key",function(b){b=
b.data.keyCode;if(b==c)L(a,"before"),a.editor.fire("saveSnapshot");else if(b==d)L(a,"after"),a.editor.fire("saveSnapshot");else if(13==b)a.edit();else{if(b==CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){G(a.editor,b==CKEDITOR.CTRL+88);return}if(b in Q||CKEDITOR.CTRL&b||CKEDITOR.ALT&b)return}return!1},null,null,999);a.on("doubleclick",function(b){a.edit()&&b.cancel()});if(b.data)a.on("data",b.data);if(b.edit)a.on("edit",b.edit)}function ia(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",
a.id)}function O(a,b){a.partSelectors||(a.partSelectors=a.parts);if(a.parts){var c={},d,e;for(e in a.partSelectors)b||!a.parts[e]||"string"==typeof a.parts[e]?(d=a.wrapper.findOne(a.partSelectors[e]),c[e]=d):c[e]=a.parts[e];a.parts=c}}function ja(a){var b=a.editables,c,d;a.editables={};if(a.editables)for(c in b)d=b[c],a.initEditable(c,"string"==typeof d?{selector:d}:d)}function P(a){if(!0===a.mask)na(a);else if(a.mask){var b=new CKEDITOR.tools.buffers.throttle(250,oa,a),c=CKEDITOR.env.gecko?300:0,
d,e;a.on("focus",function(){b.input();d=a.editor.on("change",b.input);e=a.on("blur",function(){d.removeListener();e.removeListener()})});a.editor.on("instanceReady",function(){setTimeout(function(){b.input()},c)});a.editor.on("mode",function(){setTimeout(function(){b.input()},c)});if(CKEDITOR.env.gecko){var f=a.element.find("img");CKEDITOR.tools.array.forEach(f.toArray(),function(a){a.on("load",function(){b.input()})})}for(var g in a.editables)a.editables[g].on("focus",function(){a.editor.on("change",
b.input);e&&e.removeListener()}),a.editables[g].on("blur",function(){a.editor.removeListener("change",b.input)});b.input()}}function na(a){var b=a.wrapper.findOne(".cke_widget_mask");b||(b=new CKEDITOR.dom.element("img",a.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_mask"}),a.wrapper.append(b));a.mask=b}function oa(){if(this.wrapper){this.maskPart=this.maskPart||this.mask;var a=this.parts[this.maskPart],b;if(a&&"string"!=typeof a){b=this.wrapper.findOne(".cke_widget_partial_mask");
b||(b=new CKEDITOR.dom.element("img",this.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_partial_mask"}),this.wrapper.append(b));this.mask=b;var c=b.$,d=a.$,e=!(c.offsetTop==d.offsetTop&&c.offsetLeft==d.offsetLeft);if(c.offsetWidth!=d.offsetWidth||c.offsetHeight!=d.offsetHeight||e)c=a.getParent(),d=CKEDITOR.plugins.widget.isDomWidget(c),b.setStyles({top:a.$.offsetTop+(d?0:c.$.offsetTop)+"px",left:a.$.offsetLeft+(d?0:c.$.offsetLeft)+"px",width:a.$.offsetWidth+
"px",height:a.$.offsetHeight+"px"})}}}function ka(a){if(a.draggable){var b=a.editor,c=a.wrapper.getLast(h.isDomDragHandlerContainer),d;c?d=c.findOne("img"):(c=new CKEDITOR.dom.element("span",b.document),c.setAttributes({"class":"cke_reset cke_widget_drag_handler_container",style:"background:rgba(220,220,220,0.5);background-image:url("+b.plugins.widget.path+"images/handle.png);display:none;"}),d=new CKEDITOR.dom.element("img",b.document),d.setAttributes({"class":"cke_reset cke_widget_drag_handler",
"data-cke-widget-drag-handler":"1",src:CKEDITOR.tools.transparentImageData,width:15,title:b.lang.widget.move,height:15,role:"presentation"}),a.inline&&d.setAttribute("draggable","true"),c.append(d),a.wrapper.append(c));a.wrapper.on("dragover",function(a){a.data.preventDefault()});a.wrapper.on("mouseenter",a.updateDragHandlerPosition,a);setTimeout(function(){a.on("data",a.updateDragHandlerPosition,a)},50);if(!a.inline&&(d.on("mousedown",pa,a),CKEDITOR.env.ie&&9>CKEDITOR.env.version))d.on("dragstart",
function(a){a.data.preventDefault(!0)});a.dragHandlerContainer=c}}function pa(a){function b(){var b;for(r.reset();b=l.pop();)b.removeListener();var c=k;b=a.sender;var d=this.repository.finder,e=this.repository.liner,f=this.editor,g=this.editor.editable();CKEDITOR.tools.isEmpty(e.visible)||(c=d.getRange(c[0]),this.focus(),f.fire("drop",{dropRange:c,target:c.startContainer}));g.removeClass("cke_widget_dragging");e.hideVisible();f.fire("dragend",{target:b})}if(CKEDITOR.tools.getMouseButton(a)===CKEDITOR.MOUSE_BUTTON_LEFT){var c=
this.repository.finder,d=this.repository.locator,e=this.repository.liner,f=this.editor,g=f.editable(),l=[],k=[],h,m;this.repository._.draggedWidget=this;var w=c.greedySearch(),r=CKEDITOR.tools.eventsBuffer(50,function(){h=d.locate(w);k=d.sort(m,1);k.length&&(e.prepare(w,h),e.placeLine(k[0]),e.cleanup())});g.addClass("cke_widget_dragging");l.push(g.on("mousemove",function(a){m=a.data.$.clientY;r.input()}));f.fire("dragstart",{target:a.sender});l.push(f.document.once("mouseup",b,this));g.isInline()||
l.push(CKEDITOR.document.once("mouseup",b,this))}}function la(a){var b=null;a.on("data",function(){var a=this.data.classes,d;if(b!=a){for(d in b)a&&a[d]||this.removeClass(d);for(d in a)this.addClass(d);b=a}})}function ma(a){a.on("data",function(){if(a.wrapper){var b=this.getLabel?this.getLabel():this.editor.lang.widget.label.replace(/%1/,this.pathName||this.element.getName());a.wrapper.setAttribute("role","region");a.wrapper.setAttribute("aria-label",b)}},null,null,9999)}function v(a){a.element.data("cke-widget-data",
encodeURIComponent(JSON.stringify(a.data)))}function qa(){function a(){}function b(a,b,c){return c&&this.checkElement(a)?(a=c.widgets.getByElement(a,!0))&&a.checkStyleActive(this):!1}function c(a){function b(a,c,d){for(var e=a.length,f=0;f<e;){if(c.call(d,a[f],f,a))return a[f];f++}}function c(a){function b(a,c){var d=CKEDITOR.tools.object.keys(a),e=CKEDITOR.tools.object.keys(c);if(d.length!==e.length)return!1;for(var f in a)if(("object"!==typeof a[f]||"object"!==typeof c[f]||!b(a[f],c[f]))&&a[f]!==
c[f])return!1;return!0}return function(c){return b(a.getDefinition(),c.getDefinition())}}var h=a.widget,k;d[h]||(d[h]={});for(var n=0,m=a.group.length;n<m;n++)k=a.group[n],d[h][k]||(d[h][k]=[]),k=d[h][k],b(k,c(a))||k.push(a)}var d={};CKEDITOR.style.addCustomHandler({type:"widget",setup:function(a){this.widget=a.widget;(this.group="string"==typeof a.group?[a.group]:a.group)&&c(this)},apply:function(a){var b;a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&(b=a.widgets.focused,
this.group&&this.removeStylesFromSameGroup(a),b.applyStyle(this))},remove:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.removeStyle(this)},removeStylesFromSameGroup:function(a){var b=!1,c,h;if(!(a instanceof CKEDITOR.editor))return!1;h=a.elementPath();if(this.checkApplicable(h,a))for(var k=0,n=this.group.length;k<n;k++){c=d[this.widget][this.group[k]];for(var m=0;m<c.length;m++)c[m]!==this&&c[m].checkActive(h,a)&&(a.widgets.focused.removeStyle(c[m]),
b=!0)}return b},checkActive:function(a,b){return this.checkElementMatch(a.lastElement,0,b)},checkApplicable:function(a,b){return b instanceof CKEDITOR.editor?this.checkElement(a.lastElement):!1},checkElementMatch:b,checkElementRemovable:b,checkElement:function(a){return h.isDomWidgetWrapper(a)?(a=a.getFirst(h.isDomWidgetElement))&&a.data("widget")==this.widget:!1},buildPreview:function(a){return a||this._.definition.name},toAllowedContentRules:function(a){if(!a)return null;a=a.widgets.registered[this.widget];
var b,c={};if(!a)return null;if(a.styleableElements){b=this.getClassesArray();if(!b)return null;c[a.styleableElements]={classes:b,propertiesOnly:!0};return c}return a.styleToAllowedContentRules?a.styleToAllowedContentRules(this):null},getClassesArray:function(){var a=this._.definition.attributes&&this._.definition.attributes["class"];return a?CKEDITOR.tools.trim(a).split(/\s+/):null},applyToRange:a,removeFromRange:a,applyToObject:a})}CKEDITOR.plugins.add("widget",{requires:"lineutils,clipboard,widgetselection",
onLoad:function(){void 0!==CKEDITOR.document.$.querySelectorAll&&(CKEDITOR.addCss('.cke_widget_wrapper{position:relative;outline:none}.cke_widget_inline{display:inline-block}.cke_widget_wrapper:hover\x3e.cke_widget_element{outline:2px solid #ffd25c;cursor:default}.cke_widget_wrapper:hover .cke_widget_editable{outline:2px solid #ffd25c}.cke_widget_wrapper.cke_widget_focused\x3e.cke_widget_element,.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{outline:2px solid #47a4f5}.cke_widget_editable{cursor:text}.cke_widget_drag_handler_container{position:absolute;width:15px;height:0;display:block;opacity:0.75;transition:height 0s 0.2s;line-height:0}.cke_widget_wrapper:hover\x3e.cke_widget_drag_handler_container{height:15px;transition:none}.cke_widget_drag_handler_container:hover{opacity:1}.cke_editable[contenteditable\x3d"false"] .cke_widget_drag_handler_container{display:none;}img.cke_widget_drag_handler{cursor:move;width:15px;height:15px;display:inline-block}.cke_widget_mask{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.cke_widget_partial_mask{position:absolute;display:block}.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{cursor:move !important}'),
qa())},beforeInit:function(a){void 0!==CKEDITOR.document.$.querySelectorAll&&(a.widgets=new q(a))},afterInit:function(a){if(void 0!==CKEDITOR.document.$.querySelectorAll){var b=a.widgets.registered,c,d,e;for(d in b)c=b[d],(e=c.button)&&a.ui.addButton&&a.ui.addButton(CKEDITOR.tools.capitalize(c.name,!0),{label:e,command:c.name,toolbar:"insert,10"});ea(a);ha(a.undoManager)}}});q.prototype={MIN_SELECTION_CHECK_INTERVAL:500,add:function(a,b){var c=this.editor;b=CKEDITOR.tools.prototypedCopy(b);b.name=
a;b._=b._||{};c.fire("widgetDefinition",b);b.template&&(b.template=new CKEDITOR.template(b.template));aa(c,b);ba(this,b);this.registered[a]=b;if(b.dialog&&c.plugins.dialog)var d=CKEDITOR.on("dialogDefinition",function(a){a=a.data.definition;var f=a.dialog;a.getMode||f.getName()!==b.dialog||(a.getMode=function(){var a=f.getModel(c);return a&&a instanceof CKEDITOR.plugins.widget&&a.ready?CKEDITOR.dialog.EDITING_MODE:CKEDITOR.dialog.CREATION_MODE});d.removeListener()});return b},addUpcastCallback:function(a){this._.upcastCallbacks.push(a)},
checkSelection:function(){if(this.editor.getSelection()){var a=this.editor.getSelection(),b=a.getSelectedElement(),c=H(this),d;if(b&&(d=this.getByElement(b,!0)))return c.focus(d).select(d).commit();a=a.getRanges()[0];if(!a||a.collapsed)return c.commit();a=new CKEDITOR.dom.walker(a);for(a.evaluator=h.isDomWidgetWrapper;b=a.next();)c.select(this.getByElement(b));c.commit()}},checkWidgets:function(a){this.fire("checkWidgets",CKEDITOR.tools.copy(a||{}))},del:function(a){if(this.focused===a){var b=a.editor,
@@ -1290,12 +1291,12 @@ this._tasks.push(a);this._totalWeights+=a._weight;return a},_removeTask:function
function(a){return e.supportedTypes?g.isTypeSupported(a,e.supportedTypes):!0});if(e.fileToElement)a.on("paste",function(d){d=d.data;var l=a.widgets.registered[c],k=d.dataTransfer,e=k.getFilesCount(),h=l.loadMethod||"loadAndUpload",f,n;if(!d.dataValue&&e)for(n=0;n<e;n++)if(f=k.getFile(n),!l.supportedTypes||g.isTypeSupported(f,l.supportedTypes)){var m=l.fileToElement(f);f=b.create(f,void 0,l.loaderType);m&&(f[h](l.uploadUrl,l.additionalRequestParameters),CKEDITOR.fileTools.markElement(m,c,f.id),"loadAndUpload"!=
h&&"upload"!=h||l.skipNotifications||CKEDITOR.fileTools.bindNotifications(a,f),d.dataValue+=m.getOuterHtml())}},null,null,m);CKEDITOR.tools.extend(e,{downcast:function(){return new CKEDITOR.htmlParser.text("")},init:function(){var d=this,c=this.wrapper.findOne("[data-cke-upload-id]").data("cke-upload-id"),k=b.loaders[c],e=CKEDITOR.tools.capitalize,h,f;k.on("update",function(b){if("abort"===k.status&&"function"===typeof d.onAbort)d.onAbort(k);if(d.wrapper&&d.wrapper.getParent()){a.fire("lockSnapshot");
b="on"+e(k.status);if("abort"===k.status||"function"!==typeof d[b]||!1!==d[b](k))f="cke_upload_"+k.status,d.wrapper&&f!=h&&(h&&d.wrapper.removeClass(h),d.wrapper.addClass(f),h=f),"error"!=k.status&&"abort"!=k.status||a.widgets.del(d);a.fire("unlockSnapshot")}else CKEDITOR.instances[a.name]&&a.editable().find('[data-cke-upload-id\x3d"'+c+'"]').count()||k.abort(),b.removeListener()});k.update()},replaceWith:function(d,c){if(""===d.trim())a.widgets.del(this);else{var b=this==a.widgets.focused,e=a.editable(),
h=a.createRange(),f,g;b||(g=a.getSelection().createBookmarks());h.setStartBefore(this.wrapper);h.setEndAfter(this.wrapper);b&&(f=h.createBookmark());e.insertHtmlIntoRange(d,h,c);a.widgets.checkWidgets({initOnlyNew:!0});a.widgets.destroy(this,!0);b?(h.moveToBookmark(f),h.select()):a.getSelection().selectBookmarks(g)}},_getLoader:function(){var a=this.wrapper.findOne("[data-cke-upload-id]");return a?this.editor.uploadRepository.loaders[a.data("cke-upload-id")]:null}});a.widgets.add(c,e)},markElement:function(a,
c,e){a.setAttributes({"data-cke-upload-id":e,"data-widget":c})},bindNotifications:function(a,c){function e(){g=a._.uploadWidgetNotificaionAggregator;if(!g||g.isFinished())g=a._.uploadWidgetNotificaionAggregator=new CKEDITOR.plugins.notificationAggregator(a,a.lang.uploadwidget.uploadMany,a.lang.uploadwidget.uploadOne),g.once("finished",function(){var b=g.getTaskCount();0===b?g.notification.hide():g.notification.update({message:1==b?a.lang.uploadwidget.doneOne:a.lang.uploadwidget.doneMany.replace("%1",
b),type:"success",important:1})})}var g,b=null;c.on("update",function(){!b&&c.uploadTotal&&(e(),b=g.createTask({weight:c.uploadTotal}));b&&"uploading"==c.status&&b.update(c.uploaded)});c.on("uploaded",function(){b&&b.done()});c.on("error",function(){b&&b.cancel();a.showNotification(c.message,"warning")});c.on("abort",function(){b&&b.cancel();CKEDITOR.instances[a.name]&&a.showNotification(a.lang.uploadwidget.abort,"info")})}})})();(function(){function l(c){9>=c&&(c="0"+c);return String(c)}function n(c){var a=new Date,a=[a.getFullYear(),a.getMonth()+1,a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds()];e+=1;return"image-"+CKEDITOR.tools.array.map(a,l).join("")+"-"+e+"."+c}var e=0;CKEDITOR.plugins.add("uploadimage",{requires:"uploadwidget",onLoad:function(){CKEDITOR.addCss(".cke_upload_uploading img{opacity: 0.3}")},isSupportedEnvironment:function(){return CKEDITOR.plugins.clipboard.isFileApiSupported},init:function(c){if(this.isSupportedEnvironment()){var a=
CKEDITOR.fileTools,e=a.getUploadUrl(c.config,"image");e&&(a.addUploadWidget(c,"uploadimage",{supportedTypes:/image\/(jpeg|png|gif|bmp)/,uploadUrl:e,fileToElement:function(){var b=new CKEDITOR.dom.element("img");b.setAttribute("src","data:image/gif;base64,R0lGODlhDgAOAIAAAAAAAP///yH5BAAAAAAALAAAAAAOAA4AAAIMhI+py+0Po5y02qsKADs\x3d");return b},parts:{img:"img"},onUploading:function(b){this.parts.img.setAttribute("src",b.data)},onUploaded:function(b){var a=this.parts.img.$;this.replaceWith('\x3cimg src\x3d"'+
b.url+'" width\x3d"'+(b.responseData.width||a.naturalWidth)+'" height\x3d"'+(b.responseData.height||a.naturalHeight)+'"\x3e')}}),c.on("paste",function(b){if(b.data.dataValue.match(/<img[\s\S]+data:/i)){b=b.data;var f=document.implementation.createHTMLDocument(""),f=new CKEDITOR.dom.element(f.body),m,g,k;f.data("cke-editable",1);f.appendHtml(b.dataValue);m=f.find("img");for(k=0;k<m.count();k++){g=m.getItem(k);var d=g.getAttribute("src"),h=d&&"data:"==d.substring(0,5),l=null===g.data("cke-realelement");
h&&l&&!g.data("cke-upload-id")&&!g.isReadOnly(1)&&(h=(h=d.match(/image\/([a-z]+?);/i))&&h[1]||"jpg",d=c.uploadRepository.create(d,n(h)),d.upload(e),a.markElement(g,"uploadimage",d.id),a.bindNotifications(c,d))}b.dataValue=f.getHtml()}}))}}})})();(function(){function v(a){function e(a){var b=!1;h.attachListener(h,"keydown",function(){var d=c.getBody().getElementsByTag(a);if(!b){for(var e=0;e<d.count();e++)d.getItem(e).setCustomData("retain",!0);b=!0}},null,null,1);h.attachListener(h,"keyup",function(){var d=c.getElementsByTag(a);b&&(1==d.count()&&!d.getItem(0).getCustomData("retain")&&CKEDITOR.tools.isEmpty(d.getItem(0).getAttributes())&&d.getItem(0).remove(1),b=!1)})}var b=this.editor;if(b&&!b.isDetached()){var c=a.document,f=c.body,d=c.getElementById("cke_actscrpt");
h=a.createRange(),f,g;b||(g=a.getSelection().createBookmarks());h.setStartBefore(this.wrapper);h.setEndAfter(this.wrapper);b&&(f=h.createBookmark());e.insertHtmlIntoRange(d,h,c);a.widgets.checkWidgets({initOnlyNew:!0});a.widgets.destroy(this,!0);b?(h.moveToBookmark(f),h.select()):a.getSelection().selectBookmarks(g);a.fire("change")}},_getLoader:function(){var a=this.wrapper.findOne("[data-cke-upload-id]");return a?this.editor.uploadRepository.loaders[a.data("cke-upload-id")]:null}});a.widgets.add(c,
e)},markElement:function(a,c,e){a.setAttributes({"data-cke-upload-id":e,"data-widget":c})},bindNotifications:function(a,c){function e(){g=a._.uploadWidgetNotificaionAggregator;if(!g||g.isFinished())g=a._.uploadWidgetNotificaionAggregator=new CKEDITOR.plugins.notificationAggregator(a,a.lang.uploadwidget.uploadMany,a.lang.uploadwidget.uploadOne),g.once("finished",function(){var b=g.getTaskCount();0===b?g.notification.hide():g.notification.update({message:1==b?a.lang.uploadwidget.doneOne:a.lang.uploadwidget.doneMany.replace("%1",
b),type:"success",important:1})})}var g,b=null;c.on("update",function(){!b&&c.uploadTotal&&(e(),b=g.createTask({weight:c.uploadTotal}));b&&"uploading"==c.status&&b.update(c.uploaded)});c.on("uploaded",function(){b&&b.done()});c.on("error",function(){b&&b.cancel();a.showNotification(c.message,"warning")});c.on("abort",function(){b&&b.cancel();CKEDITOR.instances[a.name]&&a.showNotification(a.lang.uploadwidget.abort,"info")})}})})();(function(){function l(a){9>=a&&(a="0"+a);return String(a)}function n(a){var b=new Date,b=[b.getFullYear(),b.getMonth()+1,b.getDate(),b.getHours(),b.getMinutes(),b.getSeconds()];d+=1;return"image-"+CKEDITOR.tools.array.map(b,l).join("")+"-"+d+"."+a}var d=0;CKEDITOR.plugins.add("uploadimage",{requires:"uploadwidget",onLoad:function(){CKEDITOR.addCss(".cke_upload_uploading img{opacity: 0.3}")},isSupportedEnvironment:function(){return CKEDITOR.plugins.clipboard.isFileApiSupported},init:function(a){if(this.isSupportedEnvironment()){var b=
CKEDITOR.fileTools,d=b.getUploadUrl(a.config,"image");d&&(a.config.clipboard_handleImages&&(a.config.clipboard_handleImages=!1,CKEDITOR.warn("clipboard-image-handling-disabled",{editor:a.name,plugin:"uploadimage"})),b.addUploadWidget(a,"uploadimage",{supportedTypes:a.config.uploadImage_supportedTypes,uploadUrl:d,fileToElement:function(){var a=new CKEDITOR.dom.element("img");a.setAttribute("src","data:image/gif;base64,R0lGODlhDgAOAIAAAAAAAP///yH5BAAAAAAALAAAAAAOAA4AAAIMhI+py+0Po5y02qsKADs\x3d");return a},
parts:{img:"img"},onUploading:function(a){this.parts.img.setAttribute("src",a.data)},onUploaded:function(a){var b=this.parts.img.$;this.replaceWith('\x3cimg src\x3d"'+a.url+'" width\x3d"'+(a.responseData.width||b.naturalWidth)+'" height\x3d"'+(a.responseData.height||b.naturalHeight)+'"\x3e')}}),a.on("paste",function(g){if(g.data.dataValue.match(/<img[\s\S]+data:/i)){g=g.data;var e=document.implementation.createHTMLDocument(""),e=new CKEDITOR.dom.element(e.body),m,f,k;e.data("cke-editable",1);e.appendHtml(g.dataValue);
m=e.find("img");for(k=0;k<m.count();k++){f=m.getItem(k);var c=f.getAttribute("src"),h=c&&"data:"==c.substring(0,5),l=null===f.data("cke-realelement");h&&l&&!f.data("cke-upload-id")&&!f.isReadOnly(1)&&(h=(h=c.match(/image\/([a-z]+?);/i))&&h[1]||"jpg",c=a.uploadRepository.create(c,n(h)),c.upload(d),b.markElement(f,"uploadimage",c.id),b.bindNotifications(a,c))}g.dataValue=e.getHtml()}}))}}});CKEDITOR.config.uploadImage_supportedTypes=/image\/(jpeg|png|gif|bmp)/})();(function(){function v(a){function e(a){var b=!1;h.attachListener(h,"keydown",function(){var d=c.getBody().getElementsByTag(a);if(!b){for(var e=0;e<d.count();e++)d.getItem(e).setCustomData("retain",!0);b=!0}},null,null,1);h.attachListener(h,"keyup",function(){var d=c.getElementsByTag(a);b&&(1==d.count()&&!d.getItem(0).getCustomData("retain")&&CKEDITOR.tools.isEmpty(d.getItem(0).getAttributes())&&d.getItem(0).remove(1),b=!1)})}var b=this.editor;if(b&&!b.isDetached()){var c=a.document,f=c.body,d=c.getElementById("cke_actscrpt");
d&&d.parentNode.removeChild(d);(d=c.getElementById("cke_shimscrpt"))&&d.parentNode.removeChild(d);(d=c.getElementById("cke_basetagscrpt"))&&d.parentNode.removeChild(d);f.contentEditable=!0;CKEDITOR.env.ie&&(f.hideFocus=!0,f.disabled=!0,f.removeAttribute("disabled"));delete this._.isLoadingData;this.$=f;c=new CKEDITOR.dom.document(c);this.setup();this.fixInitialSelection();var h=this;CKEDITOR.env.ie&&!CKEDITOR.env.edge&&c.getDocumentElement().addClass(c.$.compatMode);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&
b.enterMode!=CKEDITOR.ENTER_P?e("p"):CKEDITOR.env.edge&&15>CKEDITOR.env.version&&b.enterMode!=CKEDITOR.ENTER_DIV&&e("div");if(CKEDITOR.env.webkit||CKEDITOR.env.ie&&10<CKEDITOR.env.version)c.getDocumentElement().on("mousedown",function(a){a.data.getTarget().is("html")&&setTimeout(function(){b.editable().focus()})});w(b);try{b.document.$.execCommand("2D-position",!1,!0)}catch(g){}(CKEDITOR.env.gecko||CKEDITOR.env.ie&&"CSS1Compat"==b.document.$.compatMode)&&this.attachListener(this,"keydown",function(a){var d=
a.data.getKeystroke();if(33==d||34==d)if(CKEDITOR.env.ie)setTimeout(function(){b.getSelection().scrollIntoView()},0);else if(b.window.$.innerHeight>this.$.offsetHeight){var c=b.createRange();c[33==d?"moveToElementEditStart":"moveToElementEditEnd"](this);c.select();a.data.preventDefault()}});CKEDITOR.env.ie&&this.attachListener(c,"blur",function(){try{c.$.selection.empty()}catch(a){}});CKEDITOR.env.iOS&&this.attachListener(c,"touchend",function(){a.focus()});f=b.document.getElementsByTag("title").getItem(0);
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see https://ckeditor.com/legal/ckeditor-oss-license
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*
Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
File diff suppressed because one or more lines are too long

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