]*>(.|[\r\n])*<\/blockquote>/gmi,"")):(a=$("#"+rcmail.env.composebody).val(),a=a.replace(/^>.*$/gmi,""));return a}function rcmail_check_message(a){var b;b=rcmail.get_label("keywords","attachment_reminder").split(",").concat([".doc",".pdf"]);b=$.map(b,function(a){return RegExp.escape(a)});b=RegExp("("+b.join("|")+")","i");return-1!=a.search(b)} +function rcmail_get_compose_message(){if(window.tinyMCE&&(ed=tinyMCE.get(rcmail.env.composebody))){var a=ed.getContent();a=a.replace(/]*>(.|[\r\n])*<\/blockquote>/gmi,"")}else a=$("#"+rcmail.env.composebody).val(),a=a.replace(/^>.*$/gmi,"");return a}function rcmail_check_message(a){var b=rcmail.get_label("keywords","attachment_reminder").split(",").concat([".doc",".pdf"]);b=$.map(b,function(a){return RegExp.escape(a)});b=new RegExp("("+b.join("|")+")","i");return-1!=a.search(b)} function rcmail_have_attachments(){return rcmail.env.attachments&&$("li",rcmail.gui_objects.attachmentlist).length} function rcmail_attachment_reminder_dialog(){var a={};a[rcmail.get_label("addattachment")]=function(){$(this).remove();window.UI&&UI.show_uploadform?UI.show_uploadform():window.rcmail_ui&&rcmail_ui.show_popup&&rcmail_ui.show_popup("uploadmenu",!0)};a[rcmail.get_label("send")]=function(a){$(this).remove();rcmail.env.attachment_reminder=!0;rcmail.command("send","",a)};rcmail.env.attachment_reminder=!1;rcmail.show_popup_dialog(rcmail.get_label("attachment_reminder.forgotattachment"),"",a)} window.rcmail&&rcmail.addEventListener("beforesend",function(a){a=rcmail_get_compose_message();var b=$("#compose-subject").val();if(!rcmail.env.attachment_reminder&&!rcmail_have_attachments()&&(rcmail_check_message(a)||rcmail_check_message(b)))return rcmail_attachment_reminder_dialog(),!1}); diff --git a/plugins/attachment_reminder/attachment_reminder.php b/plugins/attachment_reminder/attachment_reminder.php index 84cc5f3b..63337462 100644 --- a/plugins/attachment_reminder/attachment_reminder.php +++ b/plugins/attachment_reminder/attachment_reminder.php @@ -1,10 +1,9 @@ * diff --git a/plugins/attachment_reminder/localization/cs_CZ.inc b/plugins/attachment_reminder/localization/cs_CZ.inc index 3d216647..0338032b 100644 --- a/plugins/attachment_reminder/localization/cs_CZ.inc +++ b/plugins/attachment_reminder/localization/cs_CZ.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "ChybÄ›jÃcà pÅ™Ãloha?"; $messages['forgotattachment'] = "NezapomnÄ›li jste pÅ™ipojit pÅ™Ãlohu?"; $messages['reminderoption'] = "Upozorňovat na zapomenuté pÅ™Ãlohy"; $messages['keywords'] = "pÅ™Ãloha,pÅ™Ãlohy,pÅ™Ãloze,pÅ™Ãlohu,pÅ™iloženém,pÅ™ipojeném,CV,životopis"; diff --git a/plugins/attachment_reminder/localization/cy_GB.inc b/plugins/attachment_reminder/localization/cy_GB.inc index 0ce8a999..a5e067a3 100644 --- a/plugins/attachment_reminder/localization/cy_GB.inc +++ b/plugins/attachment_reminder/localization/cy_GB.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Atodiad ar goll?"; $messages['forgotattachment'] = "Wedi anghofio atodi ffeil?"; $messages['reminderoption'] = "Atgoffa am atodiadau ar goll"; $messages['keywords'] = "atodiad,atodi,atodaf,atodwyd,atodir,amgaedig,dogfen,llythyr,ffeil,attachment,file,attach,attached,attaching,enclosed,CV,cover letter,"; diff --git a/plugins/attachment_reminder/localization/de_CH.inc b/plugins/attachment_reminder/localization/de_CH.inc index 9aca61e6..1e8a5ef5 100644 --- a/plugins/attachment_reminder/localization/de_CH.inc +++ b/plugins/attachment_reminder/localization/de_CH.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Fehlender Anhang?"; $messages['forgotattachment'] = "Haben Sie möglicherweise vergessen eine Datei anzuhängen?"; $messages['reminderoption'] = "Vor vergessenen Anhängen warnen"; $messages['keywords'] = "anbei,anhang,angehängt,angefügt,beigefügt,beliegend"; diff --git a/plugins/attachment_reminder/localization/de_DE.inc b/plugins/attachment_reminder/localization/de_DE.inc index ec5ea0a2..97d630b5 100644 --- a/plugins/attachment_reminder/localization/de_DE.inc +++ b/plugins/attachment_reminder/localization/de_DE.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Fehlender Anhang?"; $messages['forgotattachment'] = "Haben Sie möglicherweise vergessen, eine Datei anzuhängen?"; $messages['reminderoption'] = "An vergessene Anhänge erinnern"; $messages['keywords'] = "anbei,im anhang,siehe anhang,angehängt,angefügt,beigefügt,beliegend"; diff --git a/plugins/attachment_reminder/localization/en_GB.inc b/plugins/attachment_reminder/localization/en_GB.inc index 730e206f..4e48b248 100644 --- a/plugins/attachment_reminder/localization/en_GB.inc +++ b/plugins/attachment_reminder/localization/en_GB.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Missing attachment?"; $messages['forgotattachment'] = "Did you forget to attach a file?"; $messages['reminderoption'] = "Remind about forgotten attachments"; $messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; diff --git a/plugins/attachment_reminder/localization/es_ES.inc b/plugins/attachment_reminder/localization/es_ES.inc index 2e4ffdf2..dbba9bf1 100644 --- a/plugins/attachment_reminder/localization/es_ES.inc +++ b/plugins/attachment_reminder/localization/es_ES.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "¿Falta archivo?"; $messages['forgotattachment'] = "¿Olvidó adjuntar un fichero al mensaje?"; $messages['reminderoption'] = "Recordatorio sobre adjuntos olvidados"; $messages['keywords'] = "adjunto, archivo, adjuntar, unido, adjuntando, cerrado, CV, carta de presentación"; diff --git a/plugins/attachment_reminder/localization/eu_ES.inc b/plugins/attachment_reminder/localization/eu_ES.inc index f658990e..131932e4 100644 --- a/plugins/attachment_reminder/localization/eu_ES.inc +++ b/plugins/attachment_reminder/localization/eu_ES.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Eranskina falta da?"; $messages['forgotattachment'] = "Ahaztu zaizu fitxategia eranstea?"; $messages['reminderoption'] = "Ohartarazi ahaztutako erankinez"; $messages['keywords'] = "eranskin,fitxategia,erantzi,erantzita,eransten,atxikita"; diff --git a/plugins/attachment_reminder/localization/fr_FR.inc b/plugins/attachment_reminder/localization/fr_FR.inc index 999affcc..007c021c 100644 --- a/plugins/attachment_reminder/localization/fr_FR.inc +++ b/plugins/attachment_reminder/localization/fr_FR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Pièce jointe manquante ?"; $messages['forgotattachment'] = "Avez-vous oublié de joindre un fichier ?"; $messages['reminderoption'] = "Rappel sur les pièces jointes oubliées"; $messages['keywords'] = "pièce jointe,fichier,joindre,joins,joint,attaché,inclus,ci-inclus,CV, lettre d'accompagnement"; diff --git a/plugins/attachment_reminder/localization/fy_NL.inc b/plugins/attachment_reminder/localization/fy_NL.inc new file mode 100644 index 00000000..ecf80e81 --- /dev/null +++ b/plugins/attachment_reminder/localization/fy_NL.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Hawwo jo ferjitten in bestân ta te heakjen?"; +$messages['reminderoption'] = "Herinnerje oer ferjitten taheaksels"; +$messages['keywords'] = "bestân,triem,hechtsje,ferbûn,taheak,ynsletten,CV,brief"; diff --git a/plugins/attachment_reminder/localization/ga_IE.inc b/plugins/attachment_reminder/localization/ga_IE.inc new file mode 100644 index 00000000..7a9c84dc --- /dev/null +++ b/plugins/attachment_reminder/localization/ga_IE.inc @@ -0,0 +1,21 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['missingattachment'] = "An bhfuil ceangaltán in easnamh?"; +$messages['forgotattachment'] = "Ar dhearmad tú comhad a cheangal leis?"; +$messages['reminderoption'] = "Cuimhneachán faoi cheangaltán dearmadta"; +$messages['keywords'] = "ceangaltán,comhad,ceangail,ceangailte,ag ceangail,iniata,CV,litir chumhdaigh"; diff --git a/plugins/attachment_reminder/localization/he_IL.inc b/plugins/attachment_reminder/localization/he_IL.inc index 2c348afb..4f6527db 100644 --- a/plugins/attachment_reminder/localization/he_IL.inc +++ b/plugins/attachment_reminder/localization/he_IL.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "×”×× ×—×¡×¨×” צרופה?"; $messages['forgotattachment'] = "×”×× ×©×›×—×ª לצרף קובץ?"; $messages['reminderoption'] = "להזכיר לצרף × ×¡×¤×—"; $messages['keywords'] = "× ×¡×¤×—,קובץ,לצרף,מצורף,מצרף,מצרפת,רצ\"ב,קו\"×—,קורות ×—×™×™×"; diff --git a/plugins/attachment_reminder/localization/hu_HU.inc b/plugins/attachment_reminder/localization/hu_HU.inc index b76a8cf9..67a8bef2 100644 --- a/plugins/attachment_reminder/localization/hu_HU.inc +++ b/plugins/attachment_reminder/localization/hu_HU.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Hiányzó csatolmány?"; $messages['forgotattachment'] = "Nem felejtetted el a csatolandó file-t?"; $messages['reminderoption'] = "Emlékeztessen a csatolandó csatolmányra"; $messages['keywords'] = "csatolmány, file, csatolás, csatolt, csatolni, közrezárt, CV, kisérÅ‘levél"; diff --git a/plugins/attachment_reminder/localization/ia.inc b/plugins/attachment_reminder/localization/ia.inc index 3b7af087..cb020f94 100644 --- a/plugins/attachment_reminder/localization/ia.inc +++ b/plugins/attachment_reminder/localization/ia.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Attachamento mancante?"; $messages['forgotattachment'] = "Ha vos oblidate de attachar un file?"; $messages['reminderoption'] = "Rememorar de attachamentos oblidate"; $messages['keywords'] = "attachamento,file,attachar,attachate,attachante,annexo,annexe,annexate,CV,curriculo de vita"; diff --git a/plugins/attachment_reminder/localization/id_ID.inc b/plugins/attachment_reminder/localization/id_ID.inc index e2a606aa..4e98e998 100644 --- a/plugins/attachment_reminder/localization/id_ID.inc +++ b/plugins/attachment_reminder/localization/id_ID.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Kehilangan lampiran?"; $messages['forgotattachment'] = "Apakah anda lupa melampirkan sebuah file?"; $messages['reminderoption'] = "Ingatkan tentang lampiran yang terlupakan"; -$messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; +$messages['keywords'] = "lampiran, file, terlampir, dilampirkan, melampirkan, lampiran tertutup, CV, sampul surat"; diff --git a/plugins/attachment_reminder/localization/is_IS.inc b/plugins/attachment_reminder/localization/is_IS.inc new file mode 100644 index 00000000..5454ff6c --- /dev/null +++ b/plugins/attachment_reminder/localization/is_IS.inc @@ -0,0 +1,21 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['missingattachment'] = "Vantar viðhengi?"; +$messages['forgotattachment'] = "Gleymdirðu að hengja við skrá?"; +$messages['reminderoption'] = "Minna á viðhengi sem gleymast"; +$messages['keywords'] = "viðhengi,skrá,hengja við,innfellt,CV,meðfylgjandi,ferilskrá,mynd"; diff --git a/plugins/attachment_reminder/localization/ja_JP.inc b/plugins/attachment_reminder/localization/ja_JP.inc index 5ba55d44..4c816702 100644 --- a/plugins/attachment_reminder/localization/ja_JP.inc +++ b/plugins/attachment_reminder/localization/ja_JP.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "添付ファイルを忘れã¦ã¾ã›ã‚“ã‹?"; $messages['forgotattachment'] = "ファイルã®æ·»ä»˜ã‚’忘れã¦ã„ã¾ã›ã‚“ã‹?"; $messages['reminderoption'] = "添付ファイルã®ä»˜ã‘忘れを確èª"; $messages['keywords'] = "添付,ファイル,添付ファイル,åŒå°,æ·»ãˆçŠ¶"; diff --git a/plugins/attachment_reminder/localization/kab.inc b/plugins/attachment_reminder/localization/kab.inc new file mode 100644 index 00000000..99c090e8 --- /dev/null +++ b/plugins/attachment_reminder/localization/kab.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "TettuḠad t-tessedduḠafaylu?"; +$messages['reminderoption'] = "Smekti af imeddayen yettwattun"; +$messages['keywords'] = "amedday,afaylu,seddu,yeddan,aseddu,yedda,CV,tabratt"; diff --git a/plugins/attachment_reminder/localization/lt_LT.inc b/plugins/attachment_reminder/localization/lt_LT.inc index a8ba0b88..1377e5dd 100644 --- a/plugins/attachment_reminder/localization/lt_LT.inc +++ b/plugins/attachment_reminder/localization/lt_LT.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "TrÅ«ksta priedo?"; $messages['forgotattachment'] = "Ar nepamirÅ¡ote prisegti priedo?"; $messages['reminderoption'] = "Priminti apie neprisegtus priedus"; $messages['keywords'] = "priedas, byla, prisegti, prisegta, prisegama, uždaras, CV, laiÅ¡kas"; diff --git a/plugins/attachment_reminder/localization/lv_LV.inc b/plugins/attachment_reminder/localization/lv_LV.inc index ee4feeb2..17813d9e 100644 --- a/plugins/attachment_reminder/localization/lv_LV.inc +++ b/plugins/attachment_reminder/localization/lv_LV.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "TrÅ«kst pielikums?"; $messages['forgotattachment'] = "Vai JÅ«s nepiemirsÄt pievienot failu?"; $messages['reminderoption'] = "AtgÄdinÄt par nepievienotajiem pielikumiem"; $messages['keywords'] = "pielikums,fails,pievienot,pielikt,pievienots,pielikts,ievietot,ievietots,CV"; diff --git a/plugins/attachment_reminder/localization/mk_MK.inc b/plugins/attachment_reminder/localization/mk_MK.inc new file mode 100644 index 00000000..846ed19d --- /dev/null +++ b/plugins/attachment_reminder/localization/mk_MK.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Дали заборави да прикачиш датотека ?"; +$messages['reminderoption'] = "ПотÑети за заборавени прикачувања "; +$messages['keywords'] = "Додаток, датотека, прикачени, прикалува, затворен, ЦВ, мотивационо пиÑмо"; diff --git a/plugins/attachment_reminder/localization/pl_PL.inc b/plugins/attachment_reminder/localization/pl_PL.inc index 06cede5d..4e02e68c 100644 --- a/plugins/attachment_reminder/localization/pl_PL.inc +++ b/plugins/attachment_reminder/localization/pl_PL.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "BrakujÄ…cy zaÅ‚Ä…cznik?"; $messages['forgotattachment'] = "Czy nie zapomniaÅ‚eÅ› zaÅ‚Ä…czyć pliku?"; $messages['reminderoption'] = "WÅ‚Ä…cz przypominanie o brakujÄ…cym zaÅ‚Ä…czniku"; $messages['keywords'] = "zaÅ‚Ä…cznik,plik,zaÅ‚Ä…cz,CV"; diff --git a/plugins/attachment_reminder/localization/pt_BR.inc b/plugins/attachment_reminder/localization/pt_BR.inc index 4b61e951..a687697d 100644 --- a/plugins/attachment_reminder/localization/pt_BR.inc +++ b/plugins/attachment_reminder/localization/pt_BR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Faltando anexo?"; $messages['forgotattachment'] = "Você esqueceu-se de anexar um arquivo?"; $messages['reminderoption'] = "Alertar sobre o possÃvel esquecimento de anexos"; $messages['keywords'] = "anexo,arquivo,anexar,anexado,anexando,incluso,CV,currÃculo"; diff --git a/plugins/attachment_reminder/localization/pt_PT.inc b/plugins/attachment_reminder/localization/pt_PT.inc index de2d04ef..3a56beec 100644 --- a/plugins/attachment_reminder/localization/pt_PT.inc +++ b/plugins/attachment_reminder/localization/pt_PT.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Falta anexo?"; $messages['forgotattachment'] = "Você esqueceu-se de anexar um ficheiro?"; $messages['reminderoption'] = "Lembrar sobre anexos esquecidos"; $messages['keywords'] = "anexo,ficheiro,anexar,anexado,a anexar,em anexo,currÃculo,carta de apresentação"; diff --git a/plugins/attachment_reminder/localization/ro_RO.inc b/plugins/attachment_reminder/localization/ro_RO.inc index ff115390..bb3b3d0c 100644 --- a/plugins/attachment_reminder/localization/ro_RO.inc +++ b/plugins/attachment_reminder/localization/ro_RO.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Lipsă ataÈ™ament?"; $messages['forgotattachment'] = "AÈ›i uitat să ataÈ™ati ?"; $messages['reminderoption'] = "Adu-mi aminte de ataÈ™amente"; $messages['keywords'] = "ataÈ™ament,atasament,atas,atasat,ataÈ™,attach,fisier,fiÈ™ier,attach,atach,attache"; diff --git a/plugins/attachment_reminder/localization/ru_RU.inc b/plugins/attachment_reminder/localization/ru_RU.inc index d592b1e3..38adacec 100644 --- a/plugins/attachment_reminder/localization/ru_RU.inc +++ b/plugins/attachment_reminder/localization/ru_RU.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Забыли вложение?"; $messages['forgotattachment'] = "Ð’Ñ‹ не забыли прикрепить файл?"; $messages['reminderoption'] = "Ðапоминать о забытых вложениÑÑ…"; $messages['keywords'] = "вложение,файл, вложенный, прикрепленный,резюме,документ"; diff --git a/plugins/attachment_reminder/localization/sk_SK.inc b/plugins/attachment_reminder/localization/sk_SK.inc index 344d1e6a..f6057e0b 100644 --- a/plugins/attachment_reminder/localization/sk_SK.inc +++ b/plugins/attachment_reminder/localization/sk_SK.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Chýbajúca prÃloha?"; $messages['forgotattachment'] = "Nezabudli ste pridaÅ¥ prÃlohu?"; $messages['reminderoption'] = "Pripomenúť zabudnuté prÃlohy"; $messages['keywords'] = "prÃloha,súbor,pripojiÅ¥,priložená,priložený,priložené,v prÃlohe,životopis,sprievodný list"; diff --git a/plugins/attachment_reminder/localization/sl_SI.inc b/plugins/attachment_reminder/localization/sl_SI.inc index 9531f8ed..449ce6ee 100644 --- a/plugins/attachment_reminder/localization/sl_SI.inc +++ b/plugins/attachment_reminder/localization/sl_SI.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Ste pozabili na priponko?"; $messages['forgotattachment'] = "Ste pozabili pripeti datoteko?"; $messages['reminderoption'] = "Opozorilo za dodajanje priponk"; $messages['keywords'] = "priponka,datoteka,pripeti,pripeta,pripenjati,priložen,priložiti,CV,spremno pismo"; diff --git a/plugins/attachment_reminder/localization/sq_AL.inc b/plugins/attachment_reminder/localization/sq_AL.inc index aadc33d9..87735b51 100644 --- a/plugins/attachment_reminder/localization/sq_AL.inc +++ b/plugins/attachment_reminder/localization/sq_AL.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Mungon bashkëngjitje?"; $messages['forgotattachment'] = "Mos harruat të bashkëngjitni një kartelë?"; $messages['reminderoption'] = "Kujtoji për bashkëngjitje të harruara"; -$messages['keywords'] = "bashkëngjitje,skedar,kartelë,bashkëngjite,bashkëngjitur,përfshirë,CV,letër shoqëruese"; +$messages['keywords'] = "bashkëngjitje,kartelë,bashkëngjite,bashkëngjitur,përfshirë,CV,letër shoqëruese"; diff --git a/plugins/attachment_reminder/localization/sv_SE.inc b/plugins/attachment_reminder/localization/sv_SE.inc index 744a9618..e1d8d1e4 100644 --- a/plugins/attachment_reminder/localization/sv_SE.inc +++ b/plugins/attachment_reminder/localization/sv_SE.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Saknas bilaga?"; $messages['forgotattachment'] = "Glömde du att bifoga en fil?"; $messages['reminderoption'] = "PÃ¥minn om glömda bilagor"; $messages['keywords'] = "bilaga,fil,bifoga,bifogad,bifogar,infogad,CV,personligt brev"; diff --git a/plugins/attachment_reminder/localization/tr_TR.inc b/plugins/attachment_reminder/localization/tr_TR.inc index c96e2f5c..d30c7a08 100644 --- a/plugins/attachment_reminder/localization/tr_TR.inc +++ b/plugins/attachment_reminder/localization/tr_TR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "Dosya eklemeyi unuttunuz mu?"; $messages['forgotattachment'] = "Dosya eklemeyi mi unuttunuz?"; $messages['reminderoption'] = "Dosya ekleme unutulduysa hatırlatılsın"; $messages['keywords'] = "ekleme,dosya,ek,eklenildi,ekleniliyor,ekteki,CV,mektup"; diff --git a/plugins/attachment_reminder/localization/uz.inc b/plugins/attachment_reminder/localization/uz.inc new file mode 100644 index 00000000..11fafa59 --- /dev/null +++ b/plugins/attachment_reminder/localization/uz.inc @@ -0,0 +1,21 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['missingattachment'] = "Ilovani yo‘qotdingizmi?"; +$messages['forgotattachment'] = "Ilova faylini unutdingizmi?"; +$messages['reminderoption'] = "Unutilgan ilovalar haqida eslatish"; +$messages['keywords'] = "ilova,fayl,ilovalash,ilova qilindi,ilova qilinmoqda,yopilgan,CV,xatjild"; diff --git a/plugins/attachment_reminder/localization/zh_CN.inc b/plugins/attachment_reminder/localization/zh_CN.inc index 6c44fe94..d44911c3 100644 --- a/plugins/attachment_reminder/localization/zh_CN.inc +++ b/plugins/attachment_reminder/localization/zh_CN.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "缺少附件å—?"; $messages['forgotattachment'] = "æ‚¨ä¼¼ä¹Žå¿˜è®°æ·»åŠ é™„ä»¶äº†ï¼Œæ˜¯å¦ç»§ç»å‘é€ï¼Ÿ"; $messages['reminderoption'] = "å¿˜è®°æ·»åŠ é™„ä»¶æ醒"; $messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; diff --git a/plugins/attachment_reminder/localization/zh_TW.inc b/plugins/attachment_reminder/localization/zh_TW.inc index aaa91cd2..df7d75d0 100644 --- a/plugins/attachment_reminder/localization/zh_TW.inc +++ b/plugins/attachment_reminder/localization/zh_TW.inc @@ -15,6 +15,6 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ -$messages['forgotattachment'] = "æ‚¨ä¼¼ä¹Žå¿˜è¨˜åŠ å…¥é™„ä»¶äº†ï¼Œä½ ç¢ºå®šè¦å¯„出?"; +$messages['forgotattachment'] = "ä¼¼ä¹Žå¿˜è¨˜åŠ å…¥é™„ä»¶ï¼Œç¢ºå®šè¦å¯„出嗎?"; $messages['reminderoption'] = "æé†’åŠ å…¥é™„ä»¶"; -$messages['keywords'] = "附件,é™„åŠ ,附檔,附上,é™„åŠ æª”æ¡ˆ"; +$messages['keywords'] = "附件,檔案,é™„åŠ ,附檔,附上,å±¥æ·,å°é¢"; diff --git a/plugins/database_attachments/database_attachments.php b/plugins/database_attachments/database_attachments.php index aacafae4..5e3268d8 100644 --- a/plugins/database_attachments/database_attachments.php +++ b/plugins/database_attachments/database_attachments.php @@ -12,7 +12,6 @@ * * @author Ziba Scott* @author Aleksander Machniak - * @version @package_version@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 @@ -85,6 +84,8 @@ function save($args) if ($args['data'] === false) { return $args; } + + $args['path'] = null; } $data = base64_encode($args['data']); @@ -131,10 +132,13 @@ function get($args) $cache = $this->get_cache(); $data = $cache->read($args['id']); - if ($data) { + if ($data !== null && $data !== false) { $args['data'] = base64_decode($data); $args['status'] = true; } + else { + $args['status'] = false; + } return $args; } diff --git a/plugins/debug_logger/debug_logger.php b/plugins/debug_logger/debug_logger.php index c66b8b6a..0ca22b9f 100644 --- a/plugins/debug_logger/debug_logger.php +++ b/plugins/debug_logger/debug_logger.php @@ -15,7 +15,6 @@ * Enable the plugin in config.inc.php and add your desired * log types and files. * - * @version @package_version@ * @author Ziba Scott * @website http://roundcube.net * @@ -75,7 +74,7 @@ function init() $log_config = rcmail::get_instance()->config->get('debug_logger',array()); - foreach($log_config as $type=>$file){ + foreach ($log_config as $type => $file){ $this->runlog->set_file(rcmail::get_instance()->config->get('log_dir').'/'.$file, $type); } diff --git a/plugins/debug_logger/runlog/runlog.php b/plugins/debug_logger/runlog/runlog.php index ae352bd5..6a373003 100644 --- a/plugins/debug_logger/runlog/runlog.php +++ b/plugins/debug_logger/runlog/runlog.php @@ -68,7 +68,7 @@ public function end() $this->indent--; if ($this->run_log[$lastk]['duration'] >= $this->threshold) { $tag_report = ""; - foreach($this->tag_count as $tag => $count){ + foreach ($this->tag_count as $tag => $count){ $tag_report .= "$tag: $count, "; } if (!empty($tag_report)) { diff --git a/plugins/emoticons/emoticons.php b/plugins/emoticons/emoticons.php index d5f0e9a1..5bc6f8c1 100644 --- a/plugins/emoticons/emoticons.php +++ b/plugins/emoticons/emoticons.php @@ -6,7 +6,6 @@ * Plugin to replace emoticons in plain text message body with real icons. * Also it enables emoticons in HTML compose editor. Both features are optional. * - * @version @package_version@ * @license GNU GPLv3+ * @author Thomas Bruederli * @author Aleksander Machniak @@ -91,7 +90,7 @@ function message_outgoing_body($args) * editor with plain text emoticons. * * This is executed on html2text action, i.e. when switching from HTML to text - * in compose window (or similiar place). Also when generating alternative + * in compose window (or similar place). Also when generating alternative * text/plain part. */ function html2text($args) diff --git a/plugins/enigma/README b/plugins/enigma/README index d29e2434..e2b3c824 100644 --- a/plugins/enigma/README +++ b/plugins/enigma/README @@ -19,11 +19,12 @@ Implemented features: + Handling of PGP keys attached to incoming messages + User preferences to disable plugin features + Attaching public keys to email ++ Key server(s) support (search, import) TODO: ----- -- Handling of big messages with temp files +- Handling of big messages with temp files (? - security) - Key info in contact details page (optional) - Extended key management: - disable, @@ -33,15 +34,13 @@ TODO: - export private keys - Generate revocation certs - Search filter to see invalid/expired keys -- Key server(s) support (search, import, upload, refresh) +- Key server(s) support (upload, refresh) - Mark keys as trusted/untrasted, display appropriate message in verify/decrypt status -- Change attachment icon on messages list for encrypted messages (like vcard_attachment plugin does) -- Support for multi-server installations (store keys in sql database?) -- Per-Identity settings (including keys/certs) +- Support for multi-server installations (store keys in sql database? probably impossible with GnuPG 2.1) - Performance improvements: - cache decrypted message key id so we can skip decryption if we have no password in session - cache (last or successful only?) sig verification status to not verify on every msg preview (optional) -- S/MIME: Certs generation +- S/MIME: Certs generation (?) - S/MIME: Certs management - S/MIME: signed messages verification - S/MIME: encrypted messages decryption @@ -52,9 +51,15 @@ TODO: KNOWN ISSUES: ------------- -There are some know issues with accepting key passphrases on various +There are some known issues with accepting key passphrases on various system configurations. This is caused by issues in PinEntry handling. Make sure that vendor/bin/crypt-gpg-pinentry works from command line. + Possible reasons: -- non-supported GnuPG version, i.e. >= 2.1 - non-working loader in shebang (#! /usr/bin/env php) + Make sure it works for the user the php scripts are executed upon + (i.e. apache, www-date, etc.) +- SELinux setting, try command: setsebool -P httpd_unified 0 + +Note: pinentry is used with gpg >= 2.0 and <= 2.1.12. +Note: for server use GnuPG developers still recommend version 1.4. diff --git a/plugins/enigma/composer.json b/plugins/enigma/composer.json index b12600d2..7357c01d 100644 --- a/plugins/enigma/composer.json +++ b/plugins/enigma/composer.json @@ -1,9 +1,9 @@ { "name": "roundcube/enigma", "type": "roundcube-plugin", - "description": "PGP Encryption for Roundcube", + "description": "Server-side PGP Encryption for Roundcube", "license": "GPLv3+", - "version": "0.6", + "version": "0.7", "authors": [ { "name": "Aleksander Machniak", @@ -12,10 +12,6 @@ } ], "repositories": [ - { - "type": "pear", - "url": "http://pear.php.net/" - }, { "type": "composer", "url": "http://plugins.roundcube.net" @@ -24,6 +20,6 @@ "require": { "php": ">=5.3.0", "roundcube/plugin-installer": "~0.1.6", - "pear-pear.php.net/crypt_gpg": "~1.4.2" + "pear/crypt_gpg": "~1.6.0" } } diff --git a/plugins/enigma/config.inc.php.dist b/plugins/enigma/config.inc.php.dist index 74e1669b..aa4280f4 100644 --- a/plugins/enigma/config.inc.php.dist +++ b/plugins/enigma/config.inc.php.dist @@ -24,6 +24,10 @@ $config['enigma_pgp_binary'] = ''; // It's used with GnuPG 2.x. $config['enigma_pgp_agent'] = ''; +// Location of gpgconf binary. By default it will be auto-detected. +// It's used with GnuPG >= 2.1. +$config['enigma_pgp_gpgconf'] = ''; + // Enables signatures verification feature. $config['enigma_signatures'] = true; @@ -46,17 +50,6 @@ $config['enigma_attach_pubkey'] = false; // When set to 0 passwords will be stored for the whole session. $config['enigma_password_time'] = 5; -// Enables server-side keys generation which would be used -// if user browser does not support web-crypto features. -// -// WARNING: Key generation requires true random numbers, and as such can be -// slow. If the operating system runs out of entropy, key generation will -// block until more entropy is available. -// -// To solve that a hardware entropy generator or -// an entropy gathering daemon may be installed (e.g. randomsound). -$config['enigma_keygen_server'] = false; - // With this option you can lock composing options // of the plugin forcing the user to use configured settings. // The array accepts: 'sign', 'encrypt', 'pubkey'. diff --git a/plugins/enigma/enigma.js b/plugins/enigma/enigma.js index e6de6b18..e9a5e395 100644 --- a/plugins/enigma/enigma.js +++ b/plugins/enigma/enigma.js @@ -23,6 +23,7 @@ window.rcmail && rcmail.addEventListener('init', function(evt) { rcmail.register_command('search', function(props) {return rcmail.enigma_search(props); }, true); rcmail.register_command('reset-search', function(props) {return rcmail.enigma_search_reset(props); }, true); rcmail.register_command('plugin.enigma-import', function() { rcmail.enigma_import(); }, true); + rcmail.register_command('plugin.enigma-import-search', function() { rcmail.enigma_import_search(); }, true); rcmail.register_command('plugin.enigma-key-export', function() { rcmail.enigma_export(); }); rcmail.register_command('plugin.enigma-key-export-selected', function() { rcmail.enigma_export(true); }); rcmail.register_command('plugin.enigma-key-import', function() { rcmail.enigma_key_import(); }, true); @@ -33,6 +34,19 @@ window.rcmail && rcmail.addEventListener('init', function(evt) { rcmail.addEventListener('responseafterplugin.enigmakeys', function() { rcmail.enable_command('plugin.enigma-key-export', rcmail.env.rowcount > 0); }); + + if (rcmail.gui_objects.importform) { + // make sure Enter key in search input starts searching + // instead of submitting the form + $('#rcmimportsearch').keydown(function(e) { + if (e.which == 13) { + rcmail.enigma_import_search(); + return false; + } + }); + + $('input[type="button"]:first').focus(); + } } } else if (rcmail.env.task == 'mail') { @@ -44,6 +58,8 @@ window.rcmail && rcmail.addEventListener('init', function(evt) { // don't close the menu on mouse click inside e.stopPropagation(); }); + + $('a.button.enigma').prop('tabindex', $('#messagetoolbar > a:first').prop('tabindex')); } $.each(['encrypt', 'sign'], function() { @@ -77,12 +93,15 @@ rcube_webmail.prototype.enigma_key_create = function() // Generate key(s) and submit them rcube_webmail.prototype.enigma_key_create_save = function() { - var options, lock, - user = $('#key-ident > option').filter(':selected').text(), + var options, lock, users = [], password = $('#key-pass').val(), confirm = $('#key-pass-confirm').val(), size = $('#key-size').val(); + $('[name="identity[]"]:checked').each(function() { + users.push({name: $(this).data('name') || '', email: $(this).data('email')}); + }); + // validate the form if (!password || !confirm) return alert(this.get_label('enigma.formerror')); @@ -90,37 +109,33 @@ rcube_webmail.prototype.enigma_key_create_save = function() if (password != confirm) return alert(this.get_label('enigma.passwordsdiffer')); - if (user.match(/^<[^>]+>$/)) - return alert(this.get_label('enigma.nonameident')); + if (!users.length) + return alert(this.get_label('enigma.noidentselected')); // generate keys // use OpenPGP.js if browser supports required features - if (window.openpgp && window.crypto && (window.crypto.getRandomValues || window.crypto.subtle)) { + if (window.openpgp && (window.msCrypto || (window.crypto && (window.crypto.getRandomValues || window.crypto.subtle)))) { lock = this.set_busy(true, 'enigma.keygenerating'); options = { numBits: size, - userId: user, + userIds: users, passphrase: password }; - openpgp.generateKeyPair(options).then(function(keypair) { + openpgp.generateKey(options).then(function(keypair) { // success - var post = {_a: 'import', _keys: keypair.privateKeyArmored}; + var post = {_a: 'import', _keys: keypair.privateKeyArmored, _generated: 1, + _passwd: password, _keyid: keypair.key.primaryKey.fingerprint}; // send request to server rcmail.http_post('plugin.enigmakeys', post, lock); }, function(error) { // failure + console.error(error); rcmail.set_busy(false, null, lock); rcmail.display_message(rcmail.get_label('enigma.keygenerateerror'), 'error'); }); } - // generate keys on the server - else if (rcmail.env.enigma_keygen_server) { - lock = this.set_busy(true, 'enigma.keygenerating'); - options = {_a: 'generate', _user: user, _password: password, _size: size}; - rcmail.http_post('plugin.enigmakeys', options, lock); - } else { rcmail.display_message(rcmail.get_label('enigma.keygennosupport'), 'error'); } @@ -153,12 +168,12 @@ rcube_webmail.prototype.enigma_export = function(selected) var priv = false, list = this.keys_list, keys = selected ? list.get_selection().join(',') : '*', - args = {_a: 'export', _keys: keys}; + args = {_keys: keys}; if (!keys.length) return; - // find out wether selected keys are private + // find out whether selected keys are private if (keys == '*') priv = true; else @@ -178,7 +193,7 @@ rcube_webmail.prototype.enigma_export = function(selected) [{ text: this.get_label('enigma.onlypubkeys'), click: function(e) { - rcmail.goto_url('plugin.enigmakeys', args, false, true); + rcmail.enigma_export_submit(args); $(this).remove(); } }, @@ -186,20 +201,40 @@ rcube_webmail.prototype.enigma_export = function(selected) text: this.get_label('enigma.withprivkeys'), click: function(e) { args._priv = 1; - rcmail.goto_url('plugin.enigmakeys', args, false, true); + rcmail.enigma_export_submit(args); $(this).remove(); } }], {width: 400} ); - this.goto_url('plugin.enigmakeys', args, false, true); + this.enigma_export_submit(args); +}; + +// Sumbitting request for key(s) export +// Done this way to handle password input +rcube_webmail.prototype.enigma_export_submit = function(data) +{ + var id = 'keyexport-' + new Date().getTime(), + form = $('