From f91f8533678c388b879d9e999a6bcc9e22ad7e19 Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Tue, 5 Aug 2014 16:44:07 +0200 Subject: lot of stuff --- .htaccess | 24 +- index.php | 11 +- main.inc.php.dist | 9 +- plugins/acl/acl.php | 56 +- plugins/acl/config.inc.php.dist | 16 +- plugins/acl/localization/az_AZ.inc | 11 +- plugins/acl/localization/bs_BA.inc | 9 + plugins/acl/localization/ca_ES.inc | 9 + plugins/acl/localization/cs_CZ.inc | 29 +- plugins/acl/localization/cy_GB.inc | 9 + plugins/acl/localization/da_DK.inc | 11 +- plugins/acl/localization/de_CH.inc | 9 + plugins/acl/localization/de_DE.inc | 9 + plugins/acl/localization/en_GB.inc | 10 + plugins/acl/localization/en_US.inc | 4 +- plugins/acl/localization/eo.inc | 35 + plugins/acl/localization/es_ES.inc | 11 +- plugins/acl/localization/et_EE.inc | 26 +- plugins/acl/localization/fa_IR.inc | 37 +- plugins/acl/localization/fi_FI.inc | 56 + plugins/acl/localization/fr_FR.inc | 9 + plugins/acl/localization/gl_ES.inc | 73 +- plugins/acl/localization/he_IL.inc | 11 +- plugins/acl/localization/hu_HU.inc | 9 + plugins/acl/localization/hy_AM.inc | 10 + plugins/acl/localization/id_ID.inc | 9 + plugins/acl/localization/it_IT.inc | 9 + plugins/acl/localization/ja_JP.inc | 9 + plugins/acl/localization/ko_KR.inc | 11 +- plugins/acl/localization/lt_LT.inc | 11 +- plugins/acl/localization/nb_NO.inc | 10 + plugins/acl/localization/nl_NL.inc | 9 + plugins/acl/localization/nn_NO.inc | 10 + plugins/acl/localization/pl_PL.inc | 11 +- plugins/acl/localization/pt_BR.inc | 9 + plugins/acl/localization/pt_PT.inc | 11 +- plugins/acl/localization/ro_RO.inc | 11 +- plugins/acl/localization/ru_RU.inc | 9 + plugins/acl/localization/sk_SK.inc | 15 +- plugins/acl/localization/sl_SI.inc | 9 + plugins/acl/localization/sr_CS.inc | 77 + plugins/acl/localization/sv_SE.inc | 9 + plugins/acl/localization/tr_TR.inc | 11 +- plugins/acl/localization/vi_VN.inc | 10 + plugins/acl/localization/zh_CN.inc | 18 + plugins/acl/localization/zh_TW.inc | 9 + plugins/acl/package.xml | 2 +- plugins/acl/skins/classic/acl.css | 4 +- plugins/acl/skins/larry/acl.css | 24 +- .../additional_message_headers.php | 4 +- .../additional_message_headers/config.inc.php.dist | 10 +- plugins/archive/archive.js | 44 +- plugins/archive/archive.php | 188 +- plugins/archive/localization/ar_SA.inc | 21 +- plugins/archive/localization/az_AZ.inc | 3 + plugins/archive/localization/be_BE.inc | 23 +- plugins/archive/localization/bg_BG.inc | 15 +- plugins/archive/localization/br.inc | 12 + plugins/archive/localization/bs_BA.inc | 3 + plugins/archive/localization/ca_ES.inc | 3 + plugins/archive/localization/cs_CZ.inc | 3 + plugins/archive/localization/cy_GB.inc | 3 + plugins/archive/localization/da_DK.inc | 3 + plugins/archive/localization/de_CH.inc | 3 + plugins/archive/localization/de_DE.inc | 3 + plugins/archive/localization/el_GR.inc | 3 + plugins/archive/localization/en_GB.inc | 12 + plugins/archive/localization/en_US.inc | 11 +- plugins/archive/localization/eo.inc | 12 + plugins/archive/localization/es_AR.inc | 3 + plugins/archive/localization/es_ES.inc | 3 + plugins/archive/localization/et_EE.inc | 3 + plugins/archive/localization/fa_IR.inc | 9 +- plugins/archive/localization/fi_FI.inc | 3 + plugins/archive/localization/fr_FR.inc | 3 + plugins/archive/localization/gl_ES.inc | 3 + plugins/archive/localization/he_IL.inc | 3 + plugins/archive/localization/hr_HR.inc | 12 + plugins/archive/localization/hu_HU.inc | 3 + plugins/archive/localization/hy_AM.inc | 12 + plugins/archive/localization/id_ID.inc | 3 + plugins/archive/localization/it_IT.inc | 3 + plugins/archive/localization/ja_JP.inc | 3 + plugins/archive/localization/km_KH.inc | 12 + plugins/archive/localization/ko_KR.inc | 3 + plugins/archive/localization/ku.inc | 12 + plugins/archive/localization/lt_LT.inc | 3 + plugins/archive/localization/lv_LV.inc | 25 +- plugins/archive/localization/ml_IN.inc | 12 + plugins/archive/localization/mr_IN.inc | 12 + plugins/archive/localization/nb_NO.inc | 3 + plugins/archive/localization/nl_NL.inc | 3 + plugins/archive/localization/nn_NO.inc | 3 + plugins/archive/localization/pl_PL.inc | 3 + plugins/archive/localization/pt_BR.inc | 3 + plugins/archive/localization/pt_PT.inc | 3 + plugins/archive/localization/ro_RO.inc | 3 + plugins/archive/localization/ru_RU.inc | 3 + plugins/archive/localization/si_LK.inc | 12 + plugins/archive/localization/sk_SK.inc | 21 +- plugins/archive/localization/sl_SI.inc | 3 + plugins/archive/localization/sr_CS.inc | 12 + plugins/archive/localization/sv_SE.inc | 3 + plugins/archive/localization/tr_TR.inc | 3 + plugins/archive/localization/uk_UA.inc | 12 + plugins/archive/localization/vi_VN.inc | 12 + plugins/archive/localization/zh_CN.inc | 3 + plugins/archive/localization/zh_TW.inc | 3 + plugins/archive/package.xml | 48 +- plugins/autologon/autologon.php | 4 +- .../database_attachments/database_attachments.php | 126 +- plugins/database_attachments/package.xml | 6 +- plugins/debug_logger/debug_logger.php | 10 +- plugins/debug_logger/runlog/runlog.php | 2 +- plugins/enigma/README | 35 - plugins/enigma/config.inc.php.dist | 14 - plugins/enigma/enigma.js | 206 - plugins/enigma/enigma.php | 476 -- plugins/enigma/home/.htaccess | 2 - plugins/enigma/lib/enigma_driver.php | 106 - plugins/enigma/lib/enigma_driver_gnupg.php | 305 - plugins/enigma/lib/enigma_engine.php | 533 -- plugins/enigma/lib/enigma_error.php | 62 - plugins/enigma/lib/enigma_key.php | 129 - plugins/enigma/lib/enigma_signature.php | 34 - plugins/enigma/lib/enigma_subkey.php | 57 - plugins/enigma/lib/enigma_ui.php | 455 -- plugins/enigma/lib/enigma_userid.php | 31 - plugins/enigma/localization/en_US.inc | 53 - plugins/enigma/localization/ja_JP.inc | 49 - plugins/enigma/localization/ru_RU.inc | 59 - plugins/enigma/skins/classic/enigma.css | 182 - plugins/enigma/skins/classic/enigma.png | Bin 1592 -> 0 bytes plugins/enigma/skins/classic/enigma_error.png | Bin 1960 -> 0 bytes plugins/enigma/skins/classic/key.png | Bin 1743 -> 0 bytes plugins/enigma/skins/classic/key_add.png | Bin 1967 -> 0 bytes plugins/enigma/skins/classic/keys_toolbar.png | Bin 14977 -> 0 bytes .../enigma/skins/classic/templates/keyimport.html | 20 - .../enigma/skins/classic/templates/keyinfo.html | 17 - plugins/enigma/skins/classic/templates/keys.html | 80 - plugins/enigma/tests/Enigma.php | 23 - .../filesystem_attachments.php | 1 - plugins/filesystem_attachments/package.xml | 2 +- plugins/help/config.inc.php.dist | 34 +- plugins/help/content/license.html | 2 +- plugins/help/help.php | 74 +- plugins/help/localization/ar_SA.inc | 3 + plugins/help/localization/az_AZ.inc | 3 + plugins/help/localization/ber.inc | 1 + plugins/help/localization/br.inc | 3 + plugins/help/localization/bs_BA.inc | 3 + plugins/help/localization/ca_ES.inc | 3 + plugins/help/localization/cs_CZ.inc | 3 + plugins/help/localization/cy_GB.inc | 3 + plugins/help/localization/da_DK.inc | 3 + plugins/help/localization/de_CH.inc | 3 + plugins/help/localization/de_DE.inc | 3 + plugins/help/localization/en_GB.inc | 3 + plugins/help/localization/en_US.inc | 4 +- plugins/help/localization/eo.inc | 3 + plugins/help/localization/es_ES.inc | 3 + plugins/help/localization/et_EE.inc | 3 + plugins/help/localization/fa_IR.inc | 3 + plugins/help/localization/fi_FI.inc | 3 + plugins/help/localization/fr_FR.inc | 3 + plugins/help/localization/gl_ES.inc | 5 +- plugins/help/localization/he_IL.inc | 3 + plugins/help/localization/hu_HU.inc | 3 + plugins/help/localization/hy_AM.inc | 3 + plugins/help/localization/id_ID.inc | 3 + plugins/help/localization/it_IT.inc | 3 + plugins/help/localization/ja_JP.inc | 3 + plugins/help/localization/km_KH.inc | 3 + plugins/help/localization/ko_KR.inc | 3 + plugins/help/localization/lt_LT.inc | 3 + plugins/help/localization/nb_NO.inc | 3 + plugins/help/localization/nl_NL.inc | 3 + plugins/help/localization/nn_NO.inc | 3 + plugins/help/localization/pl_PL.inc | 3 + plugins/help/localization/pt_BR.inc | 3 + plugins/help/localization/pt_PT.inc | 3 + plugins/help/localization/ru_RU.inc | 3 + plugins/help/localization/sk_SK.inc | 3 + plugins/help/localization/sl_SI.inc | 3 + plugins/help/localization/sr_CS.inc | 3 + plugins/help/localization/sv_SE.inc | 3 + plugins/help/localization/tr_TR.inc | 3 + plugins/help/localization/vi_VN.inc | 3 + plugins/help/localization/zh_CN.inc | 5 +- plugins/help/localization/zh_TW.inc | 3 + plugins/help/package.xml | 9 +- plugins/help/skins/classic/help.css | 16 +- plugins/help/skins/classic/templates/help.html | 17 +- plugins/help/skins/larry/help.css | 1 + plugins/help/skins/larry/templates/help.html | 8 +- plugins/hide_blockquote/hide_blockquote.php | 4 +- plugins/hide_blockquote/localization/az_AZ.inc | 3 + plugins/hide_blockquote/localization/bs_BA.inc | 3 + plugins/hide_blockquote/localization/ca_ES.inc | 3 + plugins/hide_blockquote/localization/cs_CZ.inc | 3 + plugins/hide_blockquote/localization/cy_GB.inc | 3 + plugins/hide_blockquote/localization/da_DK.inc | 3 + plugins/hide_blockquote/localization/de_CH.inc | 3 + plugins/hide_blockquote/localization/de_DE.inc | 3 + plugins/hide_blockquote/localization/en_GB.inc | 3 + plugins/hide_blockquote/localization/en_US.inc | 4 +- plugins/hide_blockquote/localization/eo.inc | 3 + plugins/hide_blockquote/localization/es_ES.inc | 3 + plugins/hide_blockquote/localization/et_EE.inc | 3 + plugins/hide_blockquote/localization/fa_IR.inc | 3 + plugins/hide_blockquote/localization/fi_FI.inc | 3 + plugins/hide_blockquote/localization/fr_FR.inc | 3 + plugins/hide_blockquote/localization/gl_ES.inc | 3 + plugins/hide_blockquote/localization/he_IL.inc | 3 + plugins/hide_blockquote/localization/hu_HU.inc | 3 + plugins/hide_blockquote/localization/hy_AM.inc | 3 + plugins/hide_blockquote/localization/id_ID.inc | 3 + plugins/hide_blockquote/localization/it_IT.inc | 3 + plugins/hide_blockquote/localization/ja_JP.inc | 3 + plugins/hide_blockquote/localization/ko_KR.inc | 3 + plugins/hide_blockquote/localization/lt_LT.inc | 3 + plugins/hide_blockquote/localization/nb_NO.inc | 3 + plugins/hide_blockquote/localization/nl_NL.inc | 3 + plugins/hide_blockquote/localization/nn_NO.inc | 3 + plugins/hide_blockquote/localization/pl_PL.inc | 3 + plugins/hide_blockquote/localization/pt_BR.inc | 3 + plugins/hide_blockquote/localization/pt_PT.inc | 3 + plugins/hide_blockquote/localization/ru_RU.inc | 3 + plugins/hide_blockquote/localization/sk_SK.inc | 3 + plugins/hide_blockquote/localization/sl_SI.inc | 3 + plugins/hide_blockquote/localization/sr_CS.inc | 3 + plugins/hide_blockquote/localization/sv_SE.inc | 3 + plugins/hide_blockquote/localization/tr_TR.inc | 3 + plugins/hide_blockquote/localization/vi_VN.inc | 3 + plugins/hide_blockquote/localization/zh_CN.inc | 3 + plugins/hide_blockquote/localization/zh_TW.inc | 3 + plugins/http_authentication/config.inc.php.dist | 4 +- .../http_authentication/http_authentication.php | 16 +- plugins/jqueryui/config.inc.php.dist | 4 +- plugins/jqueryui/css | 1 - plugins/jqueryui/jqueryui.php | 1 - plugins/jqueryui/js/i18n/jquery-ui-i18n.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-af.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-ar-DZ.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-ar.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-az.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-bg.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-bs.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-ca.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-cs.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-cy-GB.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-da.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-de.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-el.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-en-AU.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-en-GB.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-en-NZ.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-eo.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-es.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-et.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-eu.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-fa.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-fi.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-fo.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-fr-CH.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-fr.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-gl.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-he.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-hi.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-hr.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-hu.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-hy.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-id.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-is.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-it.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-ja.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-ka.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-kk.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-km.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-ko.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-lb.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-lt.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-lv.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-mk.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-ml.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-ms.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-nl-BE.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-nl.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-no.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-pl.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-pt-BR.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-pt.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-rm.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-ro.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-ru.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-sk.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-sl.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-sq.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-sr-SR.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-sr.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-sv.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-ta.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-th.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-tj.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-tr.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-uk.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-vi.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-zh-CN.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-zh-HK.js | 0 .../jqueryui/js/i18n/jquery.ui.datepicker-zh-TW.js | 0 plugins/jqueryui/js/jquery-ui-1.9.1.custom.min.js | 0 plugins/jqueryui/js/jquery-ui.min.js | 1 - .../classic/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin .../classic/images/ui-bg_flat_75_ffffff_40x100.png | Bin .../classic/images/ui-bg_flat_90_cc3333_40x100.png | Bin .../classic/images/ui-bg_glass_95_fef1ec_1x400.png | Bin .../ui-bg_highlight-hard_90_a3a3a3_1x100.png | Bin .../ui-bg_highlight-hard_90_e6e6e7_1x100.png | Bin .../ui-bg_highlight-hard_90_f4f4f4_1x100.png | Bin .../classic/images/ui-icons_000000_256x240.png | Bin .../classic/images/ui-icons_333333_256x240.png | Bin .../classic/images/ui-icons_666666_256x240.png | Bin .../classic/images/ui-icons_cc3333_256x240.png | Bin .../classic/images/ui-icons_dddddd_256x240.png | Bin .../themes/classic/jquery-ui-1.9.1.custom.css | 0 .../ui-bg_highlight-hard_55_b0ccd7_1x100.png | Bin .../ui-bg_highlight-hard_65_ffffff_1x100.png | Bin .../ui-bg_highlight-hard_75_eaeaea_1x100.png | Bin .../ui-bg_highlight-hard_75_f8f8f8_1x100.png | Bin .../ui-bg_highlight-soft_75_fafafa_1x100.png | Bin .../ui-bg_highlight-soft_90_e4e4e4_1x100.png | Bin .../themes/larry/images/ui-icons-datepicker.png | Bin 437 -> 1160 bytes .../larry/images/ui-icons_004458_256x240.png | Bin .../larry/images/ui-icons_d7211e_256x240.png | Bin .../themes/larry/jquery-ui-1.9.1.custom.css | 31 +- .../redmond/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin .../redmond/images/ui-bg_flat_55_fbec88_40x100.png | Bin .../redmond/images/ui-bg_glass_75_d0e5f5_1x400.png | Bin .../redmond/images/ui-bg_glass_85_dfeffc_1x400.png | Bin .../redmond/images/ui-bg_glass_95_fef1ec_1x400.png | Bin .../images/ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin .../images/ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin .../images/ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin .../redmond/images/ui-icons_217bc0_256x240.png | Bin .../redmond/images/ui-icons_2e83ff_256x240.png | Bin .../redmond/images/ui-icons_469bdd_256x240.png | Bin .../redmond/images/ui-icons_6da8d5_256x240.png | Bin .../redmond/images/ui-icons_cd0a0a_256x240.png | Bin .../redmond/images/ui-icons_d8e7f3_256x240.png | Bin .../redmond/images/ui-icons_f9bd01_256x240.png | Bin .../themes/redmond/jquery-ui-1.9.1.custom.css | 0 plugins/managesieve/Changelog | 43 +- plugins/managesieve/config.inc.php.dist | 34 +- plugins/managesieve/lib/Roundcube/rcube_sieve.php | 16 +- .../lib/Roundcube/rcube_sieve_script.php | 492 +- plugins/managesieve/localization/az_AZ.inc | 17 + plugins/managesieve/localization/be_BE.inc | 287 +- plugins/managesieve/localization/bg_BG.inc | 221 +- plugins/managesieve/localization/bs_BA.inc | 31 +- plugins/managesieve/localization/ca_ES.inc | 59 +- plugins/managesieve/localization/cs_CZ.inc | 33 +- plugins/managesieve/localization/cy_GB.inc | 33 +- plugins/managesieve/localization/da_DK.inc | 37 +- plugins/managesieve/localization/de_CH.inc | 45 +- plugins/managesieve/localization/de_DE.inc | 39 +- plugins/managesieve/localization/el_GR.inc | 34 +- plugins/managesieve/localization/en_GB.inc | 39 + plugins/managesieve/localization/en_US.inc | 33 +- plugins/managesieve/localization/eo.inc | 126 + plugins/managesieve/localization/es_AR.inc | 94 + plugins/managesieve/localization/es_ES.inc | 55 +- plugins/managesieve/localization/et_EE.inc | 42 +- plugins/managesieve/localization/fa_IR.inc | 39 +- plugins/managesieve/localization/fi_FI.inc | 114 + plugins/managesieve/localization/fr_FR.inc | 40 +- plugins/managesieve/localization/gl_ES.inc | 46 +- plugins/managesieve/localization/he_IL.inc | 39 +- plugins/managesieve/localization/hr_HR.inc | 39 + plugins/managesieve/localization/hu_HU.inc | 35 +- plugins/managesieve/localization/hy_AM.inc | 39 + plugins/managesieve/localization/ia.inc | 156 + plugins/managesieve/localization/id_ID.inc | 20 + plugins/managesieve/localization/it_IT.inc | 49 +- plugins/managesieve/localization/ja_JP.inc | 49 +- plugins/managesieve/localization/ko_KR.inc | 43 +- plugins/managesieve/localization/lt_LT.inc | 40 +- plugins/managesieve/localization/lv_LV.inc | 171 +- plugins/managesieve/localization/ml_IN.inc | 39 + plugins/managesieve/localization/mr_IN.inc | 143 + plugins/managesieve/localization/nb_NO.inc | 38 +- plugins/managesieve/localization/nl_NL.inc | 67 +- plugins/managesieve/localization/nn_NO.inc | 21 + plugins/managesieve/localization/pl_PL.inc | 37 +- plugins/managesieve/localization/pt_BR.inc | 45 +- plugins/managesieve/localization/pt_PT.inc | 35 +- plugins/managesieve/localization/ro_RO.inc | 114 +- plugins/managesieve/localization/ru_RU.inc | 43 +- plugins/managesieve/localization/si_LK.inc | 135 + plugins/managesieve/localization/sk_SK.inc | 91 +- plugins/managesieve/localization/sl_SI.inc | 41 +- plugins/managesieve/localization/sv_SE.inc | 27 +- plugins/managesieve/localization/tr_TR.inc | 31 +- plugins/managesieve/localization/uk_UA.inc | 98 + plugins/managesieve/localization/vi_VN.inc | 23 + plugins/managesieve/localization/zh_CN.inc | 33 +- plugins/managesieve/localization/zh_TW.inc | 29 +- plugins/managesieve/managesieve.js | 187 +- plugins/managesieve/managesieve.php | 1919 +++++- plugins/managesieve/package.xml | 18 +- plugins/managesieve/skins/classic/managesieve.css | 103 +- .../managesieve/skins/classic/managesieve_mail.css | 2 +- .../skins/classic/templates/managesieve.html | 6 +- plugins/managesieve/skins/larry/managesieve.css | 116 +- plugins/managesieve/tests/src/parser | 4 +- plugins/managesieve/tests/src/parser.out | 6 +- plugins/managesieve/tests/src/parser_enotify_b | 6 +- plugins/managesieve/tests/src/parser_notify_b | 6 +- plugins/managesieve/tests/src/parser_relational | 2 +- plugins/managesieve/tests/src/parser_subaddress | 2 +- plugins/markasjunk/localization/az_AZ.inc | 3 + plugins/markasjunk/localization/be_BE.inc | 7 +- plugins/markasjunk/localization/ber.inc | 1 + plugins/markasjunk/localization/br.inc | 3 + plugins/markasjunk/localization/bs_BA.inc | 3 + plugins/markasjunk/localization/ca_ES.inc | 3 + plugins/markasjunk/localization/cs_CZ.inc | 3 + plugins/markasjunk/localization/cy_GB.inc | 3 + plugins/markasjunk/localization/da_DK.inc | 3 + plugins/markasjunk/localization/de_CH.inc | 3 + plugins/markasjunk/localization/de_DE.inc | 3 + plugins/markasjunk/localization/el_GR.inc | 3 + plugins/markasjunk/localization/en_GB.inc | 3 + plugins/markasjunk/localization/en_US.inc | 4 +- plugins/markasjunk/localization/eo.inc | 3 + plugins/markasjunk/localization/es_AR.inc | 3 + plugins/markasjunk/localization/es_ES.inc | 3 + plugins/markasjunk/localization/et_EE.inc | 3 + plugins/markasjunk/localization/fa_IR.inc | 3 + plugins/markasjunk/localization/fi_FI.inc | 3 + plugins/markasjunk/localization/fr_FR.inc | 3 + plugins/markasjunk/localization/gl_ES.inc | 3 + plugins/markasjunk/localization/he_IL.inc | 3 + plugins/markasjunk/localization/hr_HR.inc | 4 + plugins/markasjunk/localization/hu_HU.inc | 3 + plugins/markasjunk/localization/hy_AM.inc | 3 + plugins/markasjunk/localization/id_ID.inc | 3 + plugins/markasjunk/localization/it_IT.inc | 3 + plugins/markasjunk/localization/ja_JP.inc | 3 + plugins/markasjunk/localization/km_KH.inc | 3 + plugins/markasjunk/localization/ko_KR.inc | 3 + plugins/markasjunk/localization/ku.inc | 4 + plugins/markasjunk/localization/lt_LT.inc | 3 + plugins/markasjunk/localization/lv_LV.inc | 9 +- plugins/markasjunk/localization/ml_IN.inc | 4 + plugins/markasjunk/localization/mr_IN.inc | 4 + plugins/markasjunk/localization/nb_NO.inc | 3 + plugins/markasjunk/localization/nl_NL.inc | 3 + plugins/markasjunk/localization/nn_NO.inc | 3 + plugins/markasjunk/localization/pl_PL.inc | 3 + plugins/markasjunk/localization/pt_BR.inc | 3 + plugins/markasjunk/localization/pt_PT.inc | 3 + plugins/markasjunk/localization/ro_RO.inc | 3 + plugins/markasjunk/localization/ru_RU.inc | 7 +- plugins/markasjunk/localization/si_LK.inc | 4 + plugins/markasjunk/localization/sk_SK.inc | 3 + plugins/markasjunk/localization/sl_SI.inc | 3 + plugins/markasjunk/localization/sr_CS.inc | 3 + plugins/markasjunk/localization/sv_SE.inc | 3 + plugins/markasjunk/localization/tr_TR.inc | 3 + plugins/markasjunk/localization/uk_UA.inc | 4 + plugins/markasjunk/localization/vi_VN.inc | 3 + plugins/markasjunk/localization/zh_CN.inc | 3 + plugins/markasjunk/localization/zh_TW.inc | 3 + plugins/new_user_dialog/localization/az_AZ.inc | 3 + plugins/new_user_dialog/localization/be_BE.inc | 7 +- plugins/new_user_dialog/localization/bg_BG.inc | 7 +- plugins/new_user_dialog/localization/bs_BA.inc | 3 + plugins/new_user_dialog/localization/ca_ES.inc | 3 + plugins/new_user_dialog/localization/cs_CZ.inc | 3 + plugins/new_user_dialog/localization/cy_GB.inc | 3 + plugins/new_user_dialog/localization/da_DK.inc | 3 + plugins/new_user_dialog/localization/de_CH.inc | 3 + plugins/new_user_dialog/localization/de_DE.inc | 3 + plugins/new_user_dialog/localization/el_GR.inc | 3 + plugins/new_user_dialog/localization/en_GB.inc | 3 + plugins/new_user_dialog/localization/en_US.inc | 4 +- plugins/new_user_dialog/localization/eo.inc | 3 + plugins/new_user_dialog/localization/es_ES.inc | 3 + plugins/new_user_dialog/localization/et_EE.inc | 3 + plugins/new_user_dialog/localization/fa_IR.inc | 3 + plugins/new_user_dialog/localization/fi_FI.inc | 3 + plugins/new_user_dialog/localization/fr_FR.inc | 3 + plugins/new_user_dialog/localization/gl_ES.inc | 3 + plugins/new_user_dialog/localization/he_IL.inc | 3 + plugins/new_user_dialog/localization/hr_HR.inc | 3 + plugins/new_user_dialog/localization/hu_HU.inc | 3 + plugins/new_user_dialog/localization/hy_AM.inc | 3 + plugins/new_user_dialog/localization/id_ID.inc | 3 + plugins/new_user_dialog/localization/it_IT.inc | 3 + plugins/new_user_dialog/localization/ja_JP.inc | 3 + plugins/new_user_dialog/localization/km_KH.inc | 3 + plugins/new_user_dialog/localization/ko_KR.inc | 3 + plugins/new_user_dialog/localization/ku.inc | 3 + plugins/new_user_dialog/localization/lt_LT.inc | 3 + plugins/new_user_dialog/localization/lv_LV.inc | 7 +- plugins/new_user_dialog/localization/ml_IN.inc | 3 + plugins/new_user_dialog/localization/mr_IN.inc | 3 + plugins/new_user_dialog/localization/nb_NO.inc | 3 + plugins/new_user_dialog/localization/nl_NL.inc | 3 + plugins/new_user_dialog/localization/nn_NO.inc | 3 + plugins/new_user_dialog/localization/pl_PL.inc | 3 + plugins/new_user_dialog/localization/pt_BR.inc | 3 + plugins/new_user_dialog/localization/pt_PT.inc | 3 + plugins/new_user_dialog/localization/ro_RO.inc | 3 + plugins/new_user_dialog/localization/ru_RU.inc | 3 + plugins/new_user_dialog/localization/sk_SK.inc | 3 + plugins/new_user_dialog/localization/sl_SI.inc | 3 + plugins/new_user_dialog/localization/sr_CS.inc | 3 + plugins/new_user_dialog/localization/sv_SE.inc | 3 + plugins/new_user_dialog/localization/tr_TR.inc | 3 + plugins/new_user_dialog/localization/uk_UA.inc | 3 + plugins/new_user_dialog/localization/vi_VN.inc | 3 + plugins/new_user_dialog/localization/zh_CN.inc | 3 + plugins/new_user_dialog/localization/zh_TW.inc | 3 + plugins/new_user_dialog/new_user_dialog.php | 69 +- plugins/new_user_dialog/package.xml | 91 +- plugins/new_user_identity/new_user_identity.php | 11 +- plugins/new_user_identity/package.xml | 2 +- plugins/newmail_notifier/config.inc.php.dist | 9 +- plugins/newmail_notifier/localization/ar_SA.inc | 2 + plugins/newmail_notifier/localization/az_AZ.inc | 2 + plugins/newmail_notifier/localization/be_BE.inc | 13 +- plugins/newmail_notifier/localization/br.inc | 9 + plugins/newmail_notifier/localization/bs_BA.inc | 3 +- plugins/newmail_notifier/localization/ca_ES.inc | 3 +- plugins/newmail_notifier/localization/cs_CZ.inc | 3 +- plugins/newmail_notifier/localization/cy_GB.inc | 3 +- plugins/newmail_notifier/localization/da_DK.inc | 3 +- plugins/newmail_notifier/localization/de_CH.inc | 3 +- plugins/newmail_notifier/localization/de_DE.inc | 3 +- plugins/newmail_notifier/localization/en_GB.inc | 2 + plugins/newmail_notifier/localization/en_US.inc | 3 +- plugins/newmail_notifier/localization/eo.inc | 2 + plugins/newmail_notifier/localization/es_ES.inc | 3 +- plugins/newmail_notifier/localization/et_EE.inc | 2 + plugins/newmail_notifier/localization/fa_IR.inc | 3 +- plugins/newmail_notifier/localization/fi_FI.inc | 3 +- plugins/newmail_notifier/localization/fr_FR.inc | 3 +- plugins/newmail_notifier/localization/gl_ES.inc | 2 + plugins/newmail_notifier/localization/he_IL.inc | 2 + plugins/newmail_notifier/localization/hr_HR.inc | 2 + plugins/newmail_notifier/localization/hu_HU.inc | 3 +- plugins/newmail_notifier/localization/hy_AM.inc | 2 + plugins/newmail_notifier/localization/ia.inc | 7 + plugins/newmail_notifier/localization/id_ID.inc | 2 + plugins/newmail_notifier/localization/it_IT.inc | 3 +- plugins/newmail_notifier/localization/ja_JP.inc | 3 +- plugins/newmail_notifier/localization/km_KH.inc | 6 + plugins/newmail_notifier/localization/ko_KR.inc | 2 + plugins/newmail_notifier/localization/lt_LT.inc | 2 + plugins/newmail_notifier/localization/lv_LV.inc | 19 +- plugins/newmail_notifier/localization/ml_IN.inc | 2 + plugins/newmail_notifier/localization/mr_IN.inc | 6 + plugins/newmail_notifier/localization/nb_NO.inc | 2 + plugins/newmail_notifier/localization/nl_NL.inc | 3 +- plugins/newmail_notifier/localization/nn_NO.inc | 2 + plugins/newmail_notifier/localization/pl_PL.inc | 3 +- plugins/newmail_notifier/localization/pt_BR.inc | 3 +- plugins/newmail_notifier/localization/pt_PT.inc | 3 +- plugins/newmail_notifier/localization/ro_RO.inc | 3 +- plugins/newmail_notifier/localization/ru_RU.inc | 3 +- plugins/newmail_notifier/localization/si_LK.inc | 10 + plugins/newmail_notifier/localization/sk_SK.inc | 3 +- plugins/newmail_notifier/localization/sl_SI.inc | 3 +- plugins/newmail_notifier/localization/sr_CS.inc | 2 + plugins/newmail_notifier/localization/sv_SE.inc | 3 +- plugins/newmail_notifier/localization/tr_TR.inc | 3 +- plugins/newmail_notifier/localization/uk_UA.inc | 2 + plugins/newmail_notifier/localization/vi_VN.inc | 2 + plugins/newmail_notifier/localization/zh_CN.inc | 6 +- plugins/newmail_notifier/localization/zh_TW.inc | 3 +- plugins/newmail_notifier/newmail_notifier.js | 116 +- plugins/newmail_notifier/newmail_notifier.php | 110 +- plugins/newmail_notifier/package.xml | 8 +- plugins/password/README | 116 +- plugins/password/config.inc.php.dist | 142 +- plugins/password/drivers/chpasswd.php | 2 +- plugins/password/drivers/cpanel.php | 110 +- plugins/password/drivers/dbmail.php | 2 +- plugins/password/drivers/directadmin.php | 3 +- plugins/password/drivers/domainfactory.php | 117 +- plugins/password/drivers/expect.php | 2 +- plugins/password/drivers/hmail.php | 12 +- plugins/password/drivers/ldap.php | 169 +- plugins/password/drivers/ldap_simple.php | 228 +- plugins/password/drivers/pam.php | 4 +- plugins/password/drivers/pw_usermod.php | 2 +- plugins/password/drivers/sasl.php | 2 +- plugins/password/drivers/smb.php | 14 +- plugins/password/drivers/sql.php | 19 +- plugins/password/drivers/virtualmin.php | 2 +- plugins/password/drivers/xmail.php | 16 +- plugins/password/localization/az_AZ.inc | 5 + plugins/password/localization/ber.inc | 1 + plugins/password/localization/bg_BG.inc | 21 +- plugins/password/localization/br.inc | 6 + plugins/password/localization/bs_BA.inc | 5 + plugins/password/localization/ca_ES.inc | 5 + plugins/password/localization/cs_CZ.inc | 5 + plugins/password/localization/cy_GB.inc | 5 + plugins/password/localization/da_DK.inc | 5 + plugins/password/localization/de_CH.inc | 5 + plugins/password/localization/de_DE.inc | 5 + plugins/password/localization/en_GB.inc | 5 + plugins/password/localization/en_US.inc | 2 +- plugins/password/localization/eo.inc | 5 + plugins/password/localization/es_AR.inc | 5 + plugins/password/localization/es_ES.inc | 5 + plugins/password/localization/et_EE.inc | 5 + plugins/password/localization/fa_IR.inc | 5 + plugins/password/localization/fi_FI.inc | 5 + plugins/password/localization/fr_FR.inc | 5 + plugins/password/localization/gl_ES.inc | 7 +- plugins/password/localization/he_IL.inc | 5 + plugins/password/localization/hr_HR.inc | 5 + plugins/password/localization/hu_HU.inc | 5 + plugins/password/localization/hy_AM.inc | 5 + plugins/password/localization/id_ID.inc | 5 + plugins/password/localization/it_IT.inc | 5 + plugins/password/localization/ja_JP.inc | 5 + plugins/password/localization/ko_KR.inc | 5 + plugins/password/localization/ku.inc | 18 + plugins/password/localization/lt_LT.inc | 5 + plugins/password/localization/lv_LV.inc | 21 +- plugins/password/localization/nb_NO.inc | 5 + plugins/password/localization/nl_NL.inc | 5 + plugins/password/localization/nn_NO.inc | 5 + plugins/password/localization/pl_PL.inc | 5 + plugins/password/localization/pt_BR.inc | 5 + plugins/password/localization/pt_PT.inc | 5 + plugins/password/localization/ro_RO.inc | 5 + plugins/password/localization/ru_RU.inc | 9 +- plugins/password/localization/sk_SK.inc | 5 + plugins/password/localization/sl_SI.inc | 5 + plugins/password/localization/sr_CS.inc | 5 + plugins/password/localization/sv_SE.inc | 5 + plugins/password/localization/tr_TR.inc | 5 + plugins/password/localization/vi_VN.inc | 5 + plugins/password/localization/zh_CN.inc | 5 + plugins/password/localization/zh_TW.inc | 5 + plugins/password/package.xml | 40 +- plugins/password/password.js | 7 +- plugins/password/password.php | 92 +- plugins/show_additional_headers/package.xml | 2 +- .../show_additional_headers.php | 6 +- plugins/squirrelmail_usercopy/config.inc.php.dist | 18 +- .../squirrelmail_usercopy.php | 18 +- .../subscriptions_option/localization/bs_BA.inc | 3 + .../subscriptions_option/localization/ca_ES.inc | 3 + .../subscriptions_option/localization/cs_CZ.inc | 3 + .../subscriptions_option/localization/cy_GB.inc | 3 + .../subscriptions_option/localization/da_DK.inc | 3 + .../subscriptions_option/localization/de_CH.inc | 3 + .../subscriptions_option/localization/de_DE.inc | 3 + .../subscriptions_option/localization/en_GB.inc | 3 + .../subscriptions_option/localization/en_US.inc | 2 +- plugins/subscriptions_option/localization/eo.inc | 3 + .../subscriptions_option/localization/es_ES.inc | 3 + .../subscriptions_option/localization/et_EE.inc | 3 + .../subscriptions_option/localization/fa_IR.inc | 3 + .../subscriptions_option/localization/fi_FI.inc | 3 + .../subscriptions_option/localization/fr_FR.inc | 3 + .../subscriptions_option/localization/gl_ES.inc | 5 +- .../subscriptions_option/localization/he_IL.inc | 3 + .../subscriptions_option/localization/hu_HU.inc | 3 + .../subscriptions_option/localization/hy_AM.inc | 3 + .../subscriptions_option/localization/it_IT.inc | 3 + .../subscriptions_option/localization/ja_JP.inc | 3 + .../subscriptions_option/localization/ko_KR.inc | 3 + .../subscriptions_option/localization/lt_LT.inc | 3 + .../subscriptions_option/localization/nb_NO.inc | 3 + .../subscriptions_option/localization/nl_NL.inc | 3 + .../subscriptions_option/localization/pl_PL.inc | 3 + .../subscriptions_option/localization/pt_BR.inc | 3 + .../subscriptions_option/localization/pt_PT.inc | 3 + .../subscriptions_option/localization/ru_RU.inc | 5 +- .../subscriptions_option/localization/sk_SK.inc | 3 + .../subscriptions_option/localization/sl_SI.inc | 3 + .../subscriptions_option/localization/sr_CS.inc | 3 + .../subscriptions_option/localization/sv_SE.inc | 3 + .../subscriptions_option/localization/tr_TR.inc | 3 + .../subscriptions_option/localization/vi_VN.inc | 3 + .../subscriptions_option/localization/zh_CN.inc | 3 + .../subscriptions_option/localization/zh_TW.inc | 3 + plugins/subscriptions_option/package.xml | 2 +- .../subscriptions_option/subscriptions_option.php | 9 +- plugins/userinfo/localization/ar_SA.inc | 3 + plugins/userinfo/localization/az_AZ.inc | 3 + plugins/userinfo/localization/be_BE.inc | 5 +- plugins/userinfo/localization/ber.inc | 1 + plugins/userinfo/localization/br.inc | 4 + plugins/userinfo/localization/bs_BA.inc | 3 + plugins/userinfo/localization/ca_ES.inc | 3 + plugins/userinfo/localization/cs_CZ.inc | 3 + plugins/userinfo/localization/cy_GB.inc | 3 + plugins/userinfo/localization/da_DK.inc | 3 + plugins/userinfo/localization/de_CH.inc | 3 + plugins/userinfo/localization/de_DE.inc | 3 + plugins/userinfo/localization/en_GB.inc | 3 + plugins/userinfo/localization/en_US.inc | 2 +- plugins/userinfo/localization/eo.inc | 3 + plugins/userinfo/localization/es_ES.inc | 3 + plugins/userinfo/localization/et_EE.inc | 3 + plugins/userinfo/localization/fa_IR.inc | 3 + plugins/userinfo/localization/fi_FI.inc | 3 + plugins/userinfo/localization/fr_FR.inc | 3 + plugins/userinfo/localization/gl_ES.inc | 3 + plugins/userinfo/localization/he_IL.inc | 3 + plugins/userinfo/localization/hr_HR.inc | 3 + plugins/userinfo/localization/hu_HU.inc | 3 + plugins/userinfo/localization/hy_AM.inc | 3 + plugins/userinfo/localization/ia.inc | 3 + plugins/userinfo/localization/id_ID.inc | 3 + plugins/userinfo/localization/it_IT.inc | 3 + plugins/userinfo/localization/ja_JP.inc | 3 + plugins/userinfo/localization/km_KH.inc | 3 + plugins/userinfo/localization/ko_KR.inc | 3 + plugins/userinfo/localization/ku.inc | 3 + plugins/userinfo/localization/lt_LT.inc | 3 + plugins/userinfo/localization/lv_LV.inc | 3 + plugins/userinfo/localization/ml_IN.inc | 3 + plugins/userinfo/localization/mr_IN.inc | 5 + plugins/userinfo/localization/nb_NO.inc | 3 + plugins/userinfo/localization/nl_NL.inc | 3 + plugins/userinfo/localization/nn_NO.inc | 3 + plugins/userinfo/localization/pl_PL.inc | 3 + plugins/userinfo/localization/pt_BR.inc | 3 + plugins/userinfo/localization/pt_PT.inc | 3 + plugins/userinfo/localization/ro_RO.inc | 3 + plugins/userinfo/localization/ru_RU.inc | 3 + plugins/userinfo/localization/sk_SK.inc | 3 + plugins/userinfo/localization/sl_SI.inc | 3 + plugins/userinfo/localization/sr_CS.inc | 3 + plugins/userinfo/localization/sv_SE.inc | 3 + plugins/userinfo/localization/tr_TR.inc | 3 + plugins/userinfo/localization/uk_UA.inc | 3 + plugins/userinfo/localization/vi_VN.inc | 3 + plugins/userinfo/localization/zh_CN.inc | 3 + plugins/userinfo/localization/zh_TW.inc | 3 + plugins/userinfo/userinfo.php | 24 +- plugins/vcard_attachments/localization/az_AZ.inc | 3 + plugins/vcard_attachments/localization/be_BE.inc | 3 + plugins/vcard_attachments/localization/bs_BA.inc | 3 + plugins/vcard_attachments/localization/ca_ES.inc | 3 + plugins/vcard_attachments/localization/cs_CZ.inc | 3 + plugins/vcard_attachments/localization/cy_GB.inc | 3 + plugins/vcard_attachments/localization/da_DK.inc | 3 + plugins/vcard_attachments/localization/de_CH.inc | 3 + plugins/vcard_attachments/localization/de_DE.inc | 3 + plugins/vcard_attachments/localization/en_GB.inc | 3 + plugins/vcard_attachments/localization/en_US.inc | 2 +- plugins/vcard_attachments/localization/eo.inc | 3 + plugins/vcard_attachments/localization/es_ES.inc | 3 + plugins/vcard_attachments/localization/et_EE.inc | 3 + plugins/vcard_attachments/localization/fa_IR.inc | 3 + plugins/vcard_attachments/localization/fi_FI.inc | 3 + plugins/vcard_attachments/localization/fr_FR.inc | 3 + plugins/vcard_attachments/localization/gl_ES.inc | 7 +- plugins/vcard_attachments/localization/he_IL.inc | 3 + plugins/vcard_attachments/localization/hr_HR.inc | 3 + plugins/vcard_attachments/localization/hu_HU.inc | 3 + plugins/vcard_attachments/localization/hy_AM.inc | 3 + plugins/vcard_attachments/localization/id_ID.inc | 3 + plugins/vcard_attachments/localization/it_IT.inc | 3 + plugins/vcard_attachments/localization/ja_JP.inc | 3 + plugins/vcard_attachments/localization/km_KH.inc | 3 + plugins/vcard_attachments/localization/ko_KR.inc | 3 + plugins/vcard_attachments/localization/lt_LT.inc | 3 + plugins/vcard_attachments/localization/lv_LV.inc | 3 + plugins/vcard_attachments/localization/ml_IN.inc | 3 + plugins/vcard_attachments/localization/mr_IN.inc | 3 + plugins/vcard_attachments/localization/nb_NO.inc | 3 + plugins/vcard_attachments/localization/nl_NL.inc | 3 + plugins/vcard_attachments/localization/nn_NO.inc | 3 + plugins/vcard_attachments/localization/pl_PL.inc | 3 + plugins/vcard_attachments/localization/pt_BR.inc | 3 + plugins/vcard_attachments/localization/pt_PT.inc | 3 + plugins/vcard_attachments/localization/ro_RO.inc | 3 + plugins/vcard_attachments/localization/ru_RU.inc | 3 + plugins/vcard_attachments/localization/si_LK.inc | 3 + plugins/vcard_attachments/localization/sk_SK.inc | 3 + plugins/vcard_attachments/localization/sl_SI.inc | 3 + plugins/vcard_attachments/localization/sr_CS.inc | 3 + plugins/vcard_attachments/localization/sv_SE.inc | 3 + plugins/vcard_attachments/localization/tr_TR.inc | 3 + plugins/vcard_attachments/localization/uk_UA.inc | 3 + plugins/vcard_attachments/localization/vi_VN.inc | 3 + plugins/vcard_attachments/localization/zh_CN.inc | 3 + plugins/vcard_attachments/localization/zh_TW.inc | 3 + plugins/vcard_attachments/vcard_attachments.php | 15 +- plugins/virtuser_file/virtuser_file.php | 92 +- plugins/virtuser_query/package.xml | 8 +- plugins/virtuser_query/virtuser_query.php | 64 +- plugins/zipdownload/README | 2 +- plugins/zipdownload/config.inc.php.dist | 8 +- plugins/zipdownload/localization/az_AZ.inc | 3 + plugins/zipdownload/localization/br.inc | 3 + plugins/zipdownload/localization/bs_BA.inc | 3 + plugins/zipdownload/localization/ca_ES.inc | 3 + plugins/zipdownload/localization/cs_CZ.inc | 3 + plugins/zipdownload/localization/cy_GB.inc | 3 + plugins/zipdownload/localization/da_DK.inc | 3 + plugins/zipdownload/localization/de_CH.inc | 3 + plugins/zipdownload/localization/de_DE.inc | 3 + plugins/zipdownload/localization/en_GB.inc | 3 + plugins/zipdownload/localization/en_US.inc | 2 +- plugins/zipdownload/localization/es_AR.inc | 3 + plugins/zipdownload/localization/es_ES.inc | 3 + plugins/zipdownload/localization/et_EE.inc | 3 + plugins/zipdownload/localization/fa_IR.inc | 3 + plugins/zipdownload/localization/fr_FR.inc | 3 + plugins/zipdownload/localization/gl_ES.inc | 3 + plugins/zipdownload/localization/he_IL.inc | 3 + plugins/zipdownload/localization/hu_HU.inc | 3 + plugins/zipdownload/localization/it_IT.inc | 3 + plugins/zipdownload/localization/ja_JP.inc | 3 + plugins/zipdownload/localization/km_KH.inc | 3 + plugins/zipdownload/localization/lt_LT.inc | 3 + plugins/zipdownload/localization/nb_NO.inc | 3 + plugins/zipdownload/localization/nl_NL.inc | 3 + plugins/zipdownload/localization/nn_NO.inc | 3 + plugins/zipdownload/localization/pl_PL.inc | 3 + plugins/zipdownload/localization/pt_BR.inc | 3 + plugins/zipdownload/localization/pt_PT.inc | 3 + plugins/zipdownload/localization/ro_RO.inc | 3 + plugins/zipdownload/localization/ru_RU.inc | 5 +- plugins/zipdownload/localization/sk_SK.inc | 3 + plugins/zipdownload/localization/sr_CS.inc | 3 + plugins/zipdownload/localization/sv_SE.inc | 3 + plugins/zipdownload/localization/tr_TR.inc | 3 + plugins/zipdownload/localization/vi_VN.inc | 3 + plugins/zipdownload/localization/zh_TW.inc | 3 + plugins/zipdownload/skins/larry/zipdownload.css | 4 +- plugins/zipdownload/zipdownload.php | 27 +- program/include/bc.php | 16 +- program/include/iniset.php | 9 +- program/include/rcmail.php | 431 +- program/include/rcmail_output_html.php | 155 +- program/include/rcmail_output_json.php | 7 - program/js/app.js | 7271 +------------------- program/js/common.js | 732 +- program/js/editor.js | 17 +- program/js/googiespell.js | 1136 +-- program/js/jquery.min.js | 3 +- program/js/jstz.min.js | 13 +- program/js/list.js | 1626 +---- program/lib/Roundcube/bootstrap.php | 30 +- program/lib/Roundcube/html.php | 85 +- program/lib/Roundcube/rcube.php | 304 +- program/lib/Roundcube/rcube_addressbook.php | 57 +- program/lib/Roundcube/rcube_base_replacer.php | 6 +- program/lib/Roundcube/rcube_browser.php | 2 +- program/lib/Roundcube/rcube_cache.php | 45 +- program/lib/Roundcube/rcube_config.php | 276 +- program/lib/Roundcube/rcube_contacts.php | 8 +- program/lib/Roundcube/rcube_content_filter.php | 2 +- program/lib/Roundcube/rcube_csv2vcard.php | 59 +- program/lib/Roundcube/rcube_db.php | 216 +- program/lib/Roundcube/rcube_db_mssql.php | 32 +- program/lib/Roundcube/rcube_db_mysql.php | 48 +- program/lib/Roundcube/rcube_db_pgsql.php | 47 +- program/lib/Roundcube/rcube_db_sqlite.php | 47 +- program/lib/Roundcube/rcube_db_sqlsrv.php | 29 +- program/lib/Roundcube/rcube_enriched.php | 2 +- program/lib/Roundcube/rcube_html2text.php | 13 +- program/lib/Roundcube/rcube_image.php | 99 +- program/lib/Roundcube/rcube_imap.php | 290 +- program/lib/Roundcube/rcube_imap_cache.php | 340 +- program/lib/Roundcube/rcube_imap_generic.php | 293 +- program/lib/Roundcube/rcube_ldap.php | 1375 ++-- program/lib/Roundcube/rcube_message.php | 128 +- program/lib/Roundcube/rcube_mime.php | 20 +- program/lib/Roundcube/rcube_plugin.php | 36 +- program/lib/Roundcube/rcube_plugin_api.php | 119 +- program/lib/Roundcube/rcube_result_set.php | 47 +- program/lib/Roundcube/rcube_session.php | 187 +- program/lib/Roundcube/rcube_smtp.php | 12 +- program/lib/Roundcube/rcube_spellchecker.php | 343 +- program/lib/Roundcube/rcube_storage.php | 22 +- program/lib/Roundcube/rcube_string_replacer.php | 54 +- program/lib/Roundcube/rcube_user.php | 21 +- program/lib/Roundcube/rcube_utils.php | 173 +- program/lib/Roundcube/rcube_vcard.php | 40 +- program/lib/Roundcube/rcube_washtml.php | 28 +- program/localization/ar_SA/labels.inc | 100 +- program/localization/ar_SA/messages.inc | 19 + program/localization/ast/labels.inc | 575 +- program/localization/ast/messages.inc | 255 +- program/localization/az_AZ/labels.inc | 75 +- program/localization/az_AZ/messages.inc | 15 +- program/localization/be_BE/labels.inc | 945 +-- program/localization/be_BE/messages.inc | 304 +- program/localization/ber/labels.inc | 1 + program/localization/bg_BG/labels.inc | 465 +- program/localization/bg_BG/messages.inc | 270 +- program/localization/bn_BD/labels.inc | 285 + program/localization/bn_BD/messages.inc | 86 + program/localization/br/labels.inc | 334 + program/localization/br/messages.inc | 98 + program/localization/bs_BA/labels.inc | 77 +- program/localization/bs_BA/messages.inc | 12 +- program/localization/ca_ES/labels.inc | 83 +- program/localization/ca_ES/messages.inc | 18 +- program/localization/cs_CZ/labels.inc | 85 +- program/localization/cs_CZ/messages.inc | 20 +- program/localization/cy_GB/labels.inc | 77 +- program/localization/cy_GB/messages.inc | 14 +- program/localization/da_DK/labels.inc | 85 +- program/localization/da_DK/messages.inc | 20 +- program/localization/de_CH/labels.inc | 83 +- program/localization/de_CH/messages.inc | 16 +- program/localization/de_DE/labels.inc | 75 +- program/localization/de_DE/messages.inc | 15 +- program/localization/el_GR/labels.inc | 71 +- program/localization/el_GR/messages.inc | 15 +- program/localization/en_GB/labels.inc | 76 + program/localization/en_GB/messages.inc | 12 +- program/localization/en_US/csv2vcard.inc | 19 +- program/localization/en_US/labels.inc | 32 +- program/localization/en_US/messages.inc | 15 +- program/localization/eo/labels.inc | 214 +- program/localization/eo/messages.inc | 90 + program/localization/es_AR/labels.inc | 121 + program/localization/es_AR/messages.inc | 10 + program/localization/es_ES/labels.inc | 77 +- program/localization/es_ES/messages.inc | 16 +- program/localization/et_EE/labels.inc | 71 +- program/localization/et_EE/messages.inc | 15 +- program/localization/eu_ES/labels.inc | 530 +- program/localization/eu_ES/messages.inc | 199 +- program/localization/fa_AF/labels.inc | 285 + program/localization/fa_AF/messages.inc | 119 +- program/localization/fa_IR/labels.inc | 109 +- program/localization/fa_IR/messages.inc | 168 +- program/localization/fi_FI/labels.inc | 79 +- program/localization/fi_FI/messages.inc | 25 +- program/localization/fr_FR/csv2vcard.inc | 11 + program/localization/fr_FR/labels.inc | 87 +- program/localization/fr_FR/messages.inc | 18 +- program/localization/fy_NL/labels.inc | 452 ++ program/localization/fy_NL/messages.inc | 18 +- program/localization/ga_IE/labels.inc | 346 + program/localization/ga_IE/messages.inc | 102 + program/localization/gl_ES/labels.inc | 70 +- program/localization/gl_ES/messages.inc | 10 +- program/localization/he_IL/labels.inc | 71 +- program/localization/he_IL/messages.inc | 15 +- program/localization/hi_IN/labels.inc | 347 + program/localization/hi_IN/messages.inc | 105 + program/localization/hr_HR/labels.inc | 101 + program/localization/hr_HR/messages.inc | 18 + program/localization/hu_HU/labels.inc | 83 +- program/localization/hu_HU/messages.inc | 16 +- program/localization/hy_AM/labels.inc | 94 + program/localization/hy_AM/messages.inc | 16 + program/localization/ia/labels.inc | 250 + program/localization/ia/messages.inc | 130 + program/localization/id_ID/labels.inc | 85 +- program/localization/id_ID/messages.inc | 17 +- program/localization/index.inc | 3 - program/localization/is_IS/labels.inc | 100 + program/localization/is_IS/messages.inc | 113 + program/localization/it_IT/labels.inc | 77 +- program/localization/it_IT/messages.inc | 20 +- program/localization/ja_JP/labels.inc | 83 +- program/localization/ja_JP/messages.inc | 16 +- program/localization/ka_GE/labels.inc | 181 + program/localization/ka_GE/messages.inc | 55 + program/localization/km_KH/labels.inc | 152 + program/localization/km_KH/messages.inc | 44 + program/localization/ko_KR/labels.inc | 83 +- program/localization/ko_KR/messages.inc | 15 +- program/localization/ku/labels.inc | 358 + program/localization/ku/messages.inc | 98 + program/localization/lt_LT/labels.inc | 77 +- program/localization/lt_LT/messages.inc | 15 +- program/localization/lv_LV/labels.inc | 397 +- program/localization/lv_LV/messages.inc | 102 +- program/localization/mk_MK/labels.inc | 265 + program/localization/mk_MK/messages.inc | 73 + program/localization/ml_IN/labels.inc | 263 + program/localization/ml_IN/messages.inc | 144 + program/localization/mr_IN/labels.inc | 156 + program/localization/mr_IN/messages.inc | 57 + program/localization/ms_MY/labels.inc | 257 + program/localization/ms_MY/messages.inc | 98 + program/localization/nb_NO/labels.inc | 65 + program/localization/nb_NO/messages.inc | 10 +- program/localization/ne_NP/labels.inc | 328 + program/localization/ne_NP/messages.inc | 102 + program/localization/nl_BE/labels.inc | 167 + program/localization/nl_BE/messages.inc | 10 + program/localization/nl_NL/labels.inc | 83 +- program/localization/nl_NL/messages.inc | 14 +- program/localization/nn_NO/labels.inc | 70 + program/localization/nn_NO/messages.inc | 10 + program/localization/pl_PL/csv2vcard.inc | 7 + program/localization/pl_PL/labels.inc | 79 +- program/localization/pl_PL/messages.inc | 14 +- program/localization/ps/labels.inc | 285 + program/localization/ps/messages.inc | 86 + program/localization/pt_BR/labels.inc | 87 +- program/localization/pt_BR/messages.inc | 14 +- program/localization/pt_PT/labels.inc | 87 +- program/localization/pt_PT/messages.inc | 18 +- program/localization/ro_RO/labels.inc | 77 +- program/localization/ro_RO/messages.inc | 15 +- program/localization/ru_RU/labels.inc | 89 +- program/localization/ru_RU/messages.inc | 180 +- program/localization/si_LK/labels.inc | 221 + program/localization/si_LK/messages.inc | 83 + program/localization/sk_SK/labels.inc | 123 +- program/localization/sk_SK/messages.inc | 32 +- program/localization/sl_SI/labels.inc | 91 +- program/localization/sl_SI/messages.inc | 14 +- program/localization/sq_AL/labels.inc | 358 + program/localization/sq_AL/messages.inc | 98 + program/localization/sr_CS/labels.inc | 119 + program/localization/sr_CS/messages.inc | 10 + program/localization/sv_SE/labels.inc | 83 +- program/localization/sv_SE/messages.inc | 68 +- program/localization/ta_IN/labels.inc | 265 + program/localization/ta_IN/messages.inc | 73 + program/localization/th_TH/labels.inc | 243 + program/localization/th_TH/messages.inc | 86 + program/localization/tr_TR/labels.inc | 79 +- program/localization/tr_TR/messages.inc | 20 +- program/localization/uk_UA/labels.inc | 588 +- program/localization/uk_UA/messages.inc | 114 +- program/localization/vi_VN/labels.inc | 76 +- program/localization/vi_VN/messages.inc | 10 + program/localization/zh_CN/labels.inc | 129 +- program/localization/zh_CN/messages.inc | 21 +- program/localization/zh_TW/csv2vcard.inc | 9 + program/localization/zh_TW/labels.inc | 108 +- program/localization/zh_TW/messages.inc | 17 +- program/steps/addressbook/copy.inc | 12 +- program/steps/addressbook/delete.inc | 38 +- program/steps/addressbook/export.inc | 113 +- program/steps/addressbook/func.inc | 187 +- program/steps/addressbook/import.inc | 71 +- program/steps/addressbook/list.inc | 49 +- program/steps/addressbook/save.inc | 29 +- program/steps/addressbook/show.inc | 63 +- program/steps/addressbook/undo.inc | 25 +- program/steps/mail/check_recent.inc | 9 +- program/steps/mail/compose.inc | 224 +- program/steps/mail/func.inc | 420 +- program/steps/mail/get.inc | 109 +- program/steps/mail/list.inc | 1 + program/steps/mail/list_contacts.inc | 29 +- program/steps/mail/move_del.inc | 11 +- program/steps/mail/sendmail.inc | 86 +- program/steps/mail/show.inc | 58 +- program/steps/settings/about.inc | 67 +- program/steps/settings/edit_folder.inc | 9 +- program/steps/settings/edit_prefs.inc | 9 +- program/steps/settings/folders.inc | 20 +- program/steps/settings/func.inc | 2063 +++--- program/steps/settings/save_folder.inc | 6 +- program/steps/settings/save_prefs.inc | 6 - program/steps/utils/spell.inc | 10 - program/steps/utils/spell_html.inc | 5 - skins/classic/addressbook.css | 79 +- skins/classic/common.css | 122 +- skins/classic/embed.css | 2 +- skins/classic/functions.js | 287 +- skins/classic/ie6hacks.css | 24 +- skins/classic/iehacks.css | 6 +- skins/classic/images/favicon.ico | Bin 34494 -> 1150 bytes skins/classic/images/mail_toolbar.png | Bin 39276 -> 36649 bytes skins/classic/includes/messagetoolbar.html | 2 +- skins/classic/includes/settingstabs.html | 6 +- skins/classic/mail.css | 400 +- skins/classic/settings.css | 36 +- skins/classic/templates/about.html | 7 - skins/classic/templates/addressbook.html | 28 +- skins/classic/templates/compose.html | 21 +- skins/classic/templates/contact.html | 2 +- skins/classic/templates/contactadd.html | 9 +- skins/classic/templates/contactedit.html | 9 +- skins/classic/templates/folders.html | 6 +- skins/classic/templates/login.html | 2 +- skins/classic/templates/mail.html | 18 +- skins/classic/templates/message.html | 26 +- skins/classic/templates/messageerror.html | 8 +- skins/classic/templates/messagepart.html | 38 +- skins/classic/templates/messagepreview.html | 24 +- skins/classic/templates/messageprint.html | 2 +- skins/larry/addressbook.css | 93 +- skins/larry/embed.css | 2 +- skins/larry/ie7hacks.css | 4 +- skins/larry/iehacks.css | 9 +- skins/larry/images/buttons.gif | Bin 14997 -> 13054 bytes skins/larry/images/buttons.png | Bin 38715 -> 36693 bytes skins/larry/images/favicon.ico | Bin 34494 -> 1150 bytes skins/larry/images/filetypes.png | Bin 9018 -> 8551 bytes skins/larry/images/listicons.png | Bin 26389 -> 25486 bytes skins/larry/includes/footer.html | 12 - skins/larry/includes/header.html | 8 +- skins/larry/includes/settingstabs.html | 4 +- skins/larry/mail.css | 455 +- skins/larry/settings.css | 56 +- skins/larry/styles.css | 249 +- skins/larry/svggradients.css | 7 +- skins/larry/templates/about.html | 4 - skins/larry/templates/addressbook.html | 23 +- skins/larry/templates/compose.html | 25 +- skins/larry/templates/contact.html | 2 +- skins/larry/templates/contactedit.html | 2 +- skins/larry/templates/importcontacts.html | 11 +- skins/larry/templates/login.html | 4 +- skins/larry/templates/mail.html | 17 +- skins/larry/templates/message.html | 27 +- skins/larry/templates/messageerror.html | 2 +- skins/larry/templates/messagepart.html | 34 +- skins/larry/templates/messagepreview.html | 19 - skins/larry/templates/messageprint.html | 2 +- skins/larry/ui.js | 245 +- skins/larry/watermark.html | 2 +- 1130 files changed, 26705 insertions(+), 27960 deletions(-) delete mode 100644 plugins/enigma/README delete mode 100644 plugins/enigma/config.inc.php.dist delete mode 100644 plugins/enigma/enigma.js delete mode 100644 plugins/enigma/enigma.php delete mode 100644 plugins/enigma/home/.htaccess delete mode 100644 plugins/enigma/lib/enigma_driver.php delete mode 100644 plugins/enigma/lib/enigma_driver_gnupg.php delete mode 100644 plugins/enigma/lib/enigma_engine.php delete mode 100644 plugins/enigma/lib/enigma_error.php delete mode 100644 plugins/enigma/lib/enigma_key.php delete mode 100644 plugins/enigma/lib/enigma_signature.php delete mode 100644 plugins/enigma/lib/enigma_subkey.php delete mode 100644 plugins/enigma/lib/enigma_ui.php delete mode 100644 plugins/enigma/lib/enigma_userid.php delete mode 100644 plugins/enigma/localization/en_US.inc delete mode 100644 plugins/enigma/localization/ja_JP.inc delete mode 100644 plugins/enigma/localization/ru_RU.inc delete mode 100644 plugins/enigma/skins/classic/enigma.css delete mode 100644 plugins/enigma/skins/classic/enigma.png delete mode 100644 plugins/enigma/skins/classic/enigma_error.png delete mode 100644 plugins/enigma/skins/classic/key.png delete mode 100644 plugins/enigma/skins/classic/key_add.png delete mode 100644 plugins/enigma/skins/classic/keys_toolbar.png delete mode 100644 plugins/enigma/skins/classic/templates/keyimport.html delete mode 100644 plugins/enigma/skins/classic/templates/keyinfo.html delete mode 100644 plugins/enigma/skins/classic/templates/keys.html delete mode 100644 plugins/enigma/tests/Enigma.php delete mode 120000 plugins/jqueryui/css mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery-ui-i18n.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-af.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar-DZ.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-az.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-bg.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-bs.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-ca.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-cs.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-cy-GB.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-da.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-de.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-el.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-AU.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-GB.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-NZ.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-eo.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-es.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-et.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-eu.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-fa.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-fi.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-fo.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr-CH.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-gl.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-he.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-hi.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-hr.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-hu.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-hy.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-id.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-is.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-it.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-ja.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-ka.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-kk.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-km.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-ko.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-lb.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-lt.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-lv.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-mk.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-ml.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-ms.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl-BE.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-no.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-pl.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt-BR.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-rm.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-ro.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-ru.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-sk.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-sl.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-sq.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr-SR.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-sv.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-ta.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-th.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-tj.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-tr.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-uk.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-vi.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-CN.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-HK.js mode change 100755 => 100644 plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-TW.js mode change 100755 => 100644 plugins/jqueryui/js/jquery-ui-1.9.1.custom.min.js delete mode 120000 plugins/jqueryui/js/jquery-ui.min.js mode change 100755 => 100644 plugins/jqueryui/themes/classic/images/ui-bg_flat_0_aaaaaa_40x100.png mode change 100755 => 100644 plugins/jqueryui/themes/classic/images/ui-bg_flat_75_ffffff_40x100.png mode change 100755 => 100644 plugins/jqueryui/themes/classic/images/ui-bg_flat_90_cc3333_40x100.png mode change 100755 => 100644 plugins/jqueryui/themes/classic/images/ui-bg_glass_95_fef1ec_1x400.png mode change 100755 => 100644 plugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_a3a3a3_1x100.png mode change 100755 => 100644 plugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_e6e6e7_1x100.png mode change 100755 => 100644 plugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_f4f4f4_1x100.png mode change 100755 => 100644 plugins/jqueryui/themes/classic/images/ui-icons_000000_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/classic/images/ui-icons_333333_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/classic/images/ui-icons_666666_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/classic/images/ui-icons_cc3333_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/classic/images/ui-icons_dddddd_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/classic/jquery-ui-1.9.1.custom.css mode change 100755 => 100644 plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_55_b0ccd7_1x100.png mode change 100755 => 100644 plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_65_ffffff_1x100.png mode change 100755 => 100644 plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_75_eaeaea_1x100.png mode change 100755 => 100644 plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_75_f8f8f8_1x100.png mode change 100755 => 100644 plugins/jqueryui/themes/larry/images/ui-bg_highlight-soft_75_fafafa_1x100.png mode change 100755 => 100644 plugins/jqueryui/themes/larry/images/ui-bg_highlight-soft_90_e4e4e4_1x100.png mode change 100755 => 100644 plugins/jqueryui/themes/larry/images/ui-icons_004458_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/larry/images/ui-icons_d7211e_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/larry/jquery-ui-1.9.1.custom.css mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.png mode change 100755 => 100644 plugins/jqueryui/themes/redmond/jquery-ui-1.9.1.custom.css mode change 100644 => 120000 program/js/jquery.min.js diff --git a/.htaccess b/.htaccess index 43ab5b04f..345d26dba 100644 --- a/.htaccess +++ b/.htaccess @@ -21,32 +21,20 @@ php_flag session.auto_start Off php_value session.gc_maxlifetime 21600 php_value session.gc_divisor 500 php_value session.gc_probability 1 + +# http://bugs.php.net/bug.php?id=30766 +php_value mbstring.func_overload 0 RewriteEngine On RewriteRule ^favicon\.ico$ skins/larry/images/favicon.ico - # security rules -RewriteRule ^/?(\.git|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F] -RewriteRule /?(README(.md)?|composer\.json-dist|composer\.json|package\.xml)$ - [F] +RewriteRule \.git - [F] +RewriteRule ^/?(README(.md)?|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ - [F] +RewriteRule ^/?(SQL|bin) - [F] -# deny access to all files not containing a "." (dot) -# to block access to different README, Changelog, INSTALL, etc. -# files of various skins and plugins. - - # Apache 2.4 - - Require all denied - - # Apache 2.2 - - Order Allow,Deny - Deny from all - - - SetOutputFilter DEFLATE diff --git a/index.php b/index.php index 727c66163..72515203d 100644 --- a/index.php +++ b/index.php @@ -2,7 +2,7 @@ /* +-------------------------------------------------------------------------+ | Roundcube Webmail IMAP Client | - | Version 0.9.2 | + | Version 0.9.5 | | | | Copyright (C) 2005-2013, The Roundcube Dev Team | | | @@ -39,7 +39,7 @@ require_once 'program/include/iniset.php'; // init application, start session, init output class, etc. -$RCMAIL = rcmail::get_instance($GLOBALS['env']); +$RCMAIL = rcmail::get_instance(); // Make the whole PHP output non-cacheable (#1487797) $RCMAIL->output->nocacheing_headers(); @@ -138,7 +138,7 @@ if ($RCMAIL->task == 'login' && $RCMAIL->action == 'login') { } else { if (!$auth['valid']) { - $error_code = RCMAIL::ERROR_INVALID_REQUEST; + $error_code = RCMAIL::ERROR_INVALID_REQUEST; } else { $error_code = $auth['error'] ? $auth['error'] : $RCMAIL->login_error(); @@ -153,9 +153,6 @@ if ($RCMAIL->task == 'login' && $RCMAIL->action == 'login') { $error_message = $error_labels[$error_code] ? $error_labels[$error_code] : 'loginfailed'; - // log failed login - $RCMAIL->log_login($auth['user'], true, $error_code); - $OUTPUT->show_message($error_message, 'warning'); $RCMAIL->plugins->exec_hook('login_failed', array( 'code' => $error_code, 'host' => $auth['host'], 'user' => $auth['user'])); @@ -294,7 +291,7 @@ while ($redirects < 5) { } if ($RCMAIL->action == 'refresh') { - $RCMAIL->plugins->exec_hook('refresh', array('last' => intval(rcube_utils::get_input_value('_last', rcube_utils::INPUT_GPC)))); + $RCMAIL->plugins->exec_hook('refresh', array()); } // parse main template (default) diff --git a/main.inc.php.dist b/main.inc.php.dist index 11297155f..15512f5dc 100644 --- a/main.inc.php.dist +++ b/main.inc.php.dist @@ -174,6 +174,8 @@ $rcmail_config['smtp_auth_pw'] = null; $rcmail_config['smtp_helo_host'] = ''; // SMTP connection timeout, in seconds. Default: 0 (no limit) +// Note: There's a known issue where using ssl connection with +// timeout > 0 causes connection errors (https://bugs.php.net/bug.php?id=54511) $rcmail_config['smtp_timeout'] = 0; // ---------------------------------- @@ -251,6 +253,9 @@ $rcmail_config['session_domain'] = ''; // Session name. Default: 'roundcube_sessid' $rcmail_config['session_name'] = null; +// Session authentication cookie name. Default: 'roundcube_sessauth' +$rcmail_config['session_auth_name'] = null; + // Session path. Defaults to PHP session.cookie_path setting. $rcmail_config['session_path'] = null; @@ -431,7 +436,8 @@ $rcmail_config['language'] = null; $rcmail_config['date_format'] = 'Y-m-d'; // give this choice of date formats to the user to select from -$rcmail_config['date_formats'] = array('Y-m-d', 'd-m-Y', 'Y/m/d', 'm/d/Y', 'd/m/Y', 'd.m.Y', 'j.n.Y'); +// Note: do not use ambiguous formats like m/d/Y +$rcmail_config['date_formats'] = array('Y-m-d', 'Y/m/d', 'Y.m.d', 'd-m-Y', 'd/m/Y', 'd.m.Y', 'j.n.Y'); // use this format for time display (date or strftime format) $rcmail_config['time_format'] = 'H:i'; @@ -866,6 +872,7 @@ $rcmail_config['mdn_requests'] = 0; $rcmail_config['mdn_default'] = 0; // Delivery Status Notification checkbox default state +// Note: This can be used only if smtp_server is non-empty $rcmail_config['dsn_default'] = 0; // Place replies in the folder of the message being replied to diff --git a/plugins/acl/acl.php b/plugins/acl/acl.php index a840bcd58..466185dcc 100644 --- a/plugins/acl/acl.php +++ b/plugins/acl/acl.php @@ -9,18 +9,18 @@ * * Copyright (C) 2011-2012, Kolab Systems AG * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later 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 + * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/. + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ class acl extends rcube_plugin @@ -55,7 +55,7 @@ class acl extends rcube_plugin */ function acl_actions() { - $action = trim(rcube_utils::get_input_value('_act', rcube_utils::INPUT_GPC)); + $action = trim(get_input_value('_act', RCUBE_INPUT_GPC)); // Connect to IMAP $this->rc->storage_init(); @@ -85,8 +85,8 @@ class acl extends rcube_plugin { $this->load_config(); - $search = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GPC, true); - $sid = rcube_utils::get_input_value('_id', rcube_utils::INPUT_GPC); + $search = get_input_value('_search', RCUBE_INPUT_GPC, true); + $sid = get_input_value('_id', RCUBE_INPUT_GPC); $users = array(); if ($this->init_ldap()) { @@ -148,7 +148,6 @@ class acl extends rcube_plugin // Load localization and include scripts $this->load_config(); - $this->specials = $this->rc->config->get('acl_specials', $this->specials); $this->add_texts('localization/', array('deleteconfirm', 'norights', 'nouser', 'deleting', 'saving')); $this->include_script('acl.js'); @@ -158,12 +157,12 @@ class acl extends rcube_plugin // add Info fieldset if it doesn't exist if (!isset($args['form']['props']['fieldsets']['info'])) $args['form']['props']['fieldsets']['info'] = array( - 'name' => $this->rc->gettext('info'), + 'name' => rcube_label('info'), 'content' => array()); // Display folder rights to 'Info' fieldset $args['form']['props']['fieldsets']['info']['content']['myrights'] = array( - 'label' => rcube::Q($this->gettext('myrights')), + 'label' => Q($this->gettext('myrights')), 'value' => $this->acl2text($myrights) ); @@ -187,7 +186,7 @@ class acl extends rcube_plugin $this->rc->output->add_label('autocompletechars', 'autocompletemore'); $args['form']['sharing'] = array( - 'name' => rcube::Q($this->gettext('sharing')), + 'name' => Q($this->gettext('sharing')), 'content' => $this->rc->output->parse('acl.table', false, false), ); @@ -385,6 +384,7 @@ class acl extends rcube_plugin $table->add_header(array('class' => 'acl'.$key, 'title' => $label), $label); } + $i = 1; $js_table = array(); foreach ($acl as $user => $rights) { if ($this->rc->storage->conn->user == $user) { @@ -393,14 +393,14 @@ class acl extends rcube_plugin // filter out virtual rights (c or d) the server may return $userrights = array_intersect($rights, $supported); - $userid = rcube_utils::html_identifier($user); + $userid = html_identifier($user); if (!empty($this->specials) && in_array($user, $this->specials)) { $user = $this->gettext($user); } $table->add_row(array('id' => 'rcmrow'.$userid)); - $table->add('user', rcube::Q($user)); + $table->add('user', Q($user)); foreach ($items as $key => $right) { $in = $this->acl_compare($userrights, $right); @@ -428,10 +428,10 @@ class acl extends rcube_plugin */ private function action_save() { - $mbox = trim(rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GPC, true)); // UTF7-IMAP - $user = trim(rcube_utils::get_input_value('_user', rcube_utils::INPUT_GPC)); - $acl = trim(rcube_utils::get_input_value('_acl', rcube_utils::INPUT_GPC)); - $oldid = trim(rcube_utils::get_input_value('_old', rcube_utils::INPUT_GPC)); + $mbox = trim(get_input_value('_mbox', RCUBE_INPUT_GPC, true)); // UTF7-IMAP + $user = trim(get_input_value('_user', RCUBE_INPUT_GPC)); + $acl = trim(get_input_value('_acl', RCUBE_INPUT_GPC)); + $oldid = trim(get_input_value('_old', RCUBE_INPUT_GPC)); $acl = array_intersect(str_split($acl), $this->rights_supported()); $users = $oldid ? array($user) : explode(',', $user); @@ -445,7 +445,7 @@ class acl extends rcube_plugin } else if (!empty($user)) { if (!strpos($user, '@') && ($realm = $this->get_realm())) { - $user .= '@' . rcube_utils::idn_to_ascii(preg_replace('/^@/', '', $realm)); + $user .= '@' . rcube_idn_to_ascii(preg_replace('/^@/', '', $realm)); } $username = $user; } @@ -459,7 +459,7 @@ class acl extends rcube_plugin if ($user != $_SESSION['username'] && $username != $_SESSION['username']) { if ($this->rc->storage->set_acl($mbox, $user, $acl)) { - $ret = array('id' => rcube_utils::html_identifier($user), + $ret = array('id' => html_identifier($user), 'username' => $username, 'acl' => implode($acl), 'old' => $oldid); $this->rc->output->command('acl_update', $ret); $result++; @@ -480,15 +480,15 @@ class acl extends rcube_plugin */ private function action_delete() { - $mbox = trim(rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GPC, true)); //UTF7-IMAP - $user = trim(rcube_utils::get_input_value('_user', rcube_utils::INPUT_GPC)); + $mbox = trim(get_input_value('_mbox', RCUBE_INPUT_GPC, true)); //UTF7-IMAP + $user = trim(get_input_value('_user', RCUBE_INPUT_GPC)); $user = explode(',', $user); foreach ($user as $u) { $u = trim($u); if ($this->rc->storage->delete_acl($mbox, $u)) { - $this->rc->output->command('acl_remove_row', rcube_utils::html_identifier($u)); + $this->rc->output->command('acl_remove_row', html_identifier($u)); } else { $error = true; @@ -512,8 +512,8 @@ class acl extends rcube_plugin return; } - $this->mbox = trim(rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GPC, true)); // UTF7-IMAP - $advanced = trim(rcube_utils::get_input_value('_mode', rcube_utils::INPUT_GPC)); + $this->mbox = trim(get_input_value('_mbox', RCUBE_INPUT_GPC, true)); // UTF7-IMAP + $advanced = trim(get_input_value('_mode', RCUBE_INPUT_GPC)); $advanced = $advanced == 'advanced' ? true : false; // Save state in user preferences @@ -548,12 +548,12 @@ class acl extends rcube_plugin foreach ($supported as $right) { if (in_array($right, $rights)) { - $list[] = html::tag('li', null, rcube::Q($this->gettext('acl' . $right))); + $list[] = html::tag('li', null, Q($this->gettext('acl' . $right))); } } if (count($list) == count($supported)) - return rcube::Q($this->gettext('aclfull')); + return Q($this->gettext('aclfull')); return html::tag('ul', $attrib, implode("\n", $list)); } diff --git a/plugins/acl/config.inc.php.dist b/plugins/acl/config.inc.php.dist index 3f0b1efb6..f957a233a 100644 --- a/plugins/acl/config.inc.php.dist +++ b/plugins/acl/config.inc.php.dist @@ -3,23 +3,17 @@ // Default look of access rights table // In advanced mode all access rights are displayed separately // In simple mode access rights are grouped into four groups: read, write, delete, full -$config['acl_advanced_mode'] = false; +$rcmail_config['acl_advanced_mode'] = false; // LDAP addressbook that would be searched for user names autocomplete. -// That should be an array refering to the $config['ldap_public'] array key +// That should be an array refering to the $rcmail_config['ldap_public'] array key // or complete addressbook configuration array. -$config['acl_users_source'] = ''; +$rcmail_config['acl_users_source'] = ''; // The LDAP attribute which will be used as ACL user identifier -$config['acl_users_field'] = 'mail'; +$rcmail_config['acl_users_field'] = 'mail'; // The LDAP search filter will be &'d with search queries -$config['acl_users_filter'] = ''; - -// Include the following 'special' access control subjects in the ACL dialog; -// Defaults to array('anyone', 'anonymous') (not when set to an empty array) -// Example: array('anyone') to exclude 'anonymous'. -// Set to an empty array to exclude all special aci subjects. -$config['acl_specials'] = array('anyone', 'anonymous'); +$rcmail_config['acl_users_filter'] = ''; ?> diff --git a/plugins/acl/localization/az_AZ.inc b/plugins/acl/localization/az_AZ.inc index d1cbb076d..d5543ddaa 100644 --- a/plugins/acl/localization/az_AZ.inc +++ b/plugins/acl/localization/az_AZ.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Paylaşma'; $labels['myrights'] = 'Giriş hüququ'; $labels['username'] = 'İstifadəçi:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Giriş hüququ ilə hərəkət...'; $labels['anyone'] = 'Bütün istifadəçilər (istənilən)'; $labels['anonymous'] = 'Qonaqlar (anonimlər)'; $labels['identifier'] = 'İdentifikator'; + $labels['acll'] = 'Baxış'; $labels['aclr'] = 'Məktubu oxu'; $labels['acls'] = 'Oxunulan kimi saxla'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Məktubu sil'; $labels['acle'] = 'Poz'; $labels['aclx'] = 'Qovluğu sil'; $labels['acla'] = 'İdarə'; + $labels['aclfull'] = 'Tam idarə'; $labels['aclother'] = 'Digər'; $labels['aclread'] = 'Oxu'; $labels['aclwrite'] = 'Yaz'; $labels['acldelete'] = 'Sil'; + $labels['shortacll'] = 'Baxış'; $labels['shortaclr'] = 'Oxu'; $labels['shortacls'] = 'Saxla'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Sil'; $labels['shortacle'] = 'Poz'; $labels['shortaclx'] = 'Qovluğun silinməsi'; $labels['shortacla'] = 'İdarə'; + $labels['shortaclother'] = 'Digər'; $labels['shortaclread'] = 'Oxu'; $labels['shortaclwrite'] = 'Yaz'; $labels['shortacldelete'] = 'Sil'; + $labels['longacll'] = 'Qovluq siyahıda görünür və yazılmağa hazırdır'; $labels['longaclr'] = 'Bu qovluq oxunmaq üçün açıla bilər'; $labels['longacls'] = 'Oxunulan flaqı dəyişdirilə bilər'; @@ -72,19 +78,22 @@ $labels['longaclt'] = 'Silinən flaqı dəyişdirilə bilər'; $labels['longacle'] = 'Məktublar pozula bilər'; $labels['longaclx'] = 'Bu qovluq silinə və ya adı dəyişdirilə bilər'; $labels['longacla'] = 'Bu qovluğa giriş hüququ dəyişdirilə bilər'; + $labels['longaclfull'] = 'Qovluğun idarəsi ilə birlikdə, tam giriş.'; $labels['longaclread'] = 'Bu qovluq oxunmaq üçün açıla bilər'; $labels['longaclwrite'] = 'Məktubu bu qovluğa qeyd etmək, yazmaq və kopyalamaq olar'; $labels['longacldelete'] = 'Məktubu silmək olar'; + $messages['deleting'] = 'Giriş hüququnun silinməsi...'; $messages['saving'] = 'Giriş hüququnun saxlanılması...'; $messages['updatesuccess'] = 'Giriş hüququ dəyişdirildi'; $messages['deletesuccess'] = 'Giriş hüququ silindi'; $messages['createsuccess'] = 'Giriş hüququ əlavə edildi'; -$messages['updateerror'] = 'Hüquqları yeniləmək alınmadı'; +$messages['updateerror'] = 'Giriş hüququnu yeniləmək mümkün deyil'; $messages['deleteerror'] = 'Giriş hüququnu silmək mümkün deyil'; $messages['createerror'] = 'Giriş hüququnu əlavə etmək mümkün deyil'; $messages['deleteconfirm'] = 'Seçilmiş istifadəçilərin giriş hüququnu silməkdə əminsiniz?'; $messages['norights'] = 'Giriş hüquqları göstərilməyib!'; $messages['nouser'] = 'İstifadəçi adı təyin olunmayıb!'; + ?> diff --git a/plugins/acl/localization/bs_BA.inc b/plugins/acl/localization/bs_BA.inc index 7cedc8c5c..b14db1b67 100644 --- a/plugins/acl/localization/bs_BA.inc +++ b/plugins/acl/localization/bs_BA.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Razmjena'; $labels['myrights'] = 'Prava pristupa'; $labels['username'] = 'Korisnik:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Akcije za prava pristupa...'; $labels['anyone'] = 'Svi korisnici (bilo ko)'; $labels['anonymous'] = 'Gosti (anonimno)'; $labels['identifier'] = 'Identifikator'; + $labels['acll'] = 'Pronađi'; $labels['aclr'] = 'Pročitaj poruke'; $labels['acls'] = 'Zadrži stanje pregleda'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Obriši poruke'; $labels['acle'] = 'Izbriši'; $labels['aclx'] = 'Obriši folder'; $labels['acla'] = 'Administracija'; + $labels['aclfull'] = 'Puna kontrola'; $labels['aclother'] = 'Ostalo'; $labels['aclread'] = 'Pročitano'; $labels['aclwrite'] = 'Piši'; $labels['acldelete'] = 'Obriši'; + $labels['shortacll'] = 'Pronađi'; $labels['shortaclr'] = 'Pročitano'; $labels['shortacls'] = 'Zadrži'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Obriši'; $labels['shortacle'] = 'Izbriši'; $labels['shortaclx'] = 'Brisanje foldera'; $labels['shortacla'] = 'Administracija'; + $labels['shortaclother'] = 'Ostalo'; $labels['shortaclread'] = 'Pročitano'; $labels['shortaclwrite'] = 'Piši'; $labels['shortacldelete'] = 'Obriši'; + $labels['longacll'] = 'Ovaj folder je vidljiv u listama i moguće je izvršiti pretplatu na njega'; $labels['longaclr'] = 'Folder je moguće otvoriti radi čitanja'; $labels['longacls'] = 'Oznaka čitanja za poruke se može promijeniti'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'Oznaka za obrisane poruke se može mijenjati'; $labels['longacle'] = 'Poruke je moguće obrisati'; $labels['longaclx'] = 'Folder je moguće obrisati ili preimenovati'; $labels['longacla'] = 'Pristupna prava foldera je moguće promijeniti'; + $labels['longaclfull'] = 'Puna kontrola uključujući i administraciju foldera'; $labels['longaclread'] = 'Folder je moguće otvoriti radi čitanja'; $labels['longaclwrite'] = 'Moguće je označavati, zapisivati i kopirati poruke u folder'; $labels['longacldelete'] = 'Moguće je obrisati poruke'; + $messages['deleting'] = 'Brišem prava pristupa...'; $messages['saving'] = 'Snimam prava pristupa...'; $messages['updatesuccess'] = 'Prava pristupa su uspješno promijenjena'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Nije moguće dodati prava pristupa'; $messages['deleteconfirm'] = 'Jeste li sigurni da želite ukloniti prava pristupa za odabrane korisnike?'; $messages['norights'] = 'Niste odabrali prava pristupa!'; $messages['nouser'] = 'Niste odabrali korisničko ime!'; + ?> diff --git a/plugins/acl/localization/ca_ES.inc b/plugins/acl/localization/ca_ES.inc index d238524b3..f660b8505 100644 --- a/plugins/acl/localization/ca_ES.inc +++ b/plugins/acl/localization/ca_ES.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Comparteix'; $labels['myrights'] = 'Permisos d\'accés'; $labels['username'] = 'Usuari:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Accions dels permisos d\'accés'; $labels['anyone'] = 'Tots els usuaris'; $labels['anonymous'] = 'Convidats'; $labels['identifier'] = 'Identificador'; + $labels['acll'] = 'Cerca'; $labels['aclr'] = 'Llegeix missatges'; $labels['acls'] = 'Conserva\'l com a llegit'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Suprimeix missatges'; $labels['acle'] = 'Buida'; $labels['aclx'] = 'Suprimeix carpeta'; $labels['acla'] = 'Administra'; + $labels['aclfull'] = 'Control total'; $labels['aclother'] = 'Un altre'; $labels['aclread'] = 'Lectura'; $labels['aclwrite'] = 'Escriptura'; $labels['acldelete'] = 'Suprimeix'; + $labels['shortacll'] = 'Cerca'; $labels['shortaclr'] = 'Lectura'; $labels['shortacls'] = 'Conserva'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Suprimeix'; $labels['shortacle'] = 'Buida'; $labels['shortaclx'] = 'Suprimeix carpeta'; $labels['shortacla'] = 'Administra'; + $labels['shortaclother'] = 'Un altre'; $labels['shortaclread'] = 'Lectura'; $labels['shortaclwrite'] = 'Escriptura'; $labels['shortacldelete'] = 'Suprimeix'; + $labels['longacll'] = 'La carpeta és visible a les llistes i s\'hi pot subscriure'; $labels['longaclr'] = 'La carpeta pot ser oberta per llegir'; $labels['longacls'] = 'Els missatges marcats com a Llegit poden ser canviats'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'Poden ser canviats els missatges amb l\'indicador Suprimi $labels['longacle'] = 'Els missatges poden ser purgats'; $labels['longaclx'] = 'La carpeta pot ser suprimida o reanomenada'; $labels['longacla'] = 'Els permisos d\'accés a la carpeta poden ser canviats'; + $labels['longaclfull'] = 'Control total fins i tot la gestió de carpetes'; $labels['longaclread'] = 'La carpeta pot ser oberta per llegir'; $labels['longaclwrite'] = 'Els missatges poden ser marcats, escrits o copiats a la carpeta'; $labels['longacldelete'] = 'Els missatges poden ser suprimits'; + $messages['deleting'] = 'Suprimint els permisos d\'accés...'; $messages['saving'] = 'Desant els permisos d\'accés...'; $messages['updatesuccess'] = 'Els permisos d\'accés han estat canviats correctament'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'No s\'ha pogut afegir els permisos d\'accés'; $messages['deleteconfirm'] = 'Esteu segurs que voleu suprimir els permisos d\'accés de l\'usuari o usuaris seleccionats?'; $messages['norights'] = 'No s\'ha especificat cap permís'; $messages['nouser'] = 'No s\'ha especificat cap nom d\'usuari'; + ?> diff --git a/plugins/acl/localization/cs_CZ.inc b/plugins/acl/localization/cs_CZ.inc index 437b46aef..167788b4c 100644 --- a/plugins/acl/localization/cs_CZ.inc +++ b/plugins/acl/localization/cs_CZ.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Sdílení'; $labels['myrights'] = 'Přístupová práva'; $labels['username'] = 'Uživatel:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Přístupové právo akce ...'; $labels['anyone'] = 'Všichni uživatelé (kdokoli)'; $labels['anonymous'] = 'Hosté (anonymní)'; $labels['identifier'] = 'Identifikátor'; + $labels['acll'] = 'Vyhledat'; $labels['aclr'] = 'Číst zprávy'; $labels['acls'] = 'Ponechat stav Přečteno'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Smazat zprávy'; $labels['acle'] = 'Vyprázdnit'; $labels['aclx'] = 'Smazat složku'; $labels['acla'] = 'Spravovat'; + $labels['aclfull'] = 'Plný přístup'; $labels['aclother'] = 'Ostatní'; $labels['aclread'] = 'Číst'; $labels['aclwrite'] = 'Zapsat'; $labels['acldelete'] = 'Smazat'; + $labels['shortacll'] = 'Vyhledat'; $labels['shortaclr'] = 'Číst'; $labels['shortacls'] = 'Zachovat'; @@ -55,36 +59,41 @@ $labels['shortaclt'] = 'Smazat'; $labels['shortacle'] = 'Vyprázdnit'; $labels['shortaclx'] = 'Mazat složky'; $labels['shortacla'] = 'Spravovat'; + $labels['shortaclother'] = 'Ostatní'; $labels['shortaclread'] = 'Číst'; $labels['shortaclwrite'] = 'Zapsat'; $labels['shortacldelete'] = 'Smazat'; + $labels['longacll'] = 'Složka je viditelná v seznamu a může být přihlášena'; $labels['longaclr'] = 'Složka může být otevřena pro čtení'; $labels['longacls'] = 'Označená zpráva byla změněna'; $labels['longaclw'] = 'Značky a klíčová slova u zpráv je možné měnit, kromě příznaku Přečteno a Smazáno'; -$labels['longacli'] = 'Zpráva může být napsána nebo zkopírována do složky'; -$labels['longaclp'] = 'Zpráva může být odeslána do této složky'; +$labels['longacli'] = 'Zpŕava může být napsána nebo zkopírována do složky'; +$labels['longaclp'] = 'Zpráva byla odeslána do složky'; $labels['longaclc'] = 'Složka může být vytvořena (nebo přejmenována) přimo v této složce'; $labels['longaclk'] = 'Složka může být vytvořena (nebo přejmenována) přimo v této složce'; -$labels['longacld'] = 'Příznak smazané zprávy může být změněn'; -$labels['longaclt'] = 'Příznak smazané zprávy může být změněn'; +$labels['longacld'] = 'Značka o smazání zprávy může být změněna'; +$labels['longaclt'] = 'Značka o smazání zprávy může být změněna'; $labels['longacle'] = 'Zpráva může být smazána'; $labels['longaclx'] = 'Složka může být smazána nebo přejmenována'; $labels['longacla'] = 'Přístupová práva složky mohou být změněna'; + $labels['longaclfull'] = 'Plný přístup včetně správy složky'; $labels['longaclread'] = 'Složka může být otevřena pro čtení'; $labels['longaclwrite'] = 'Zpráva může být označena, napsána nebo zkopírována do složky'; $labels['longacldelete'] = 'Zprávy mohou být smazány'; + $messages['deleting'] = 'Odstraňuji přístupová práva...'; $messages['saving'] = 'Ukládám přístupová práva...'; $messages['updatesuccess'] = 'Přístupová práva byla úspěšně změněna'; -$messages['deletesuccess'] = 'Přístupová práva byla úspěšně odstraněna'; -$messages['createsuccess'] = 'Přístupová práva byla úspěšně přidána'; -$messages['updateerror'] = 'Úprava přístupových práv se nezdařila'; -$messages['deleteerror'] = 'Smazání přístupových práv se nezdařilo'; -$messages['createerror'] = 'Přidání přístupových práv se nezdařilo'; +$messages['deletesuccess'] = 'Přístupová páva byla úspěšně odstraněna'; +$messages['createsuccess'] = 'Přístupová práva byla úspěšně přídána'; +$messages['updateerror'] = 'Nelze upravit přístupová práva'; +$messages['deleteerror'] = 'Nelze odstranit přístupová práva'; +$messages['createerror'] = 'Nelze přidat přístupová práva'; $messages['deleteconfirm'] = 'Opravdu si přejete odstranit přístupová práva pro vybrané(ho) uživatele?'; $messages['norights'] = 'Nejsou specifikována žádná práva!'; -$messages['nouser'] = 'Není specifikováno uživatelské jméno!'; +$messages['nouser'] = 'Není specifikováno uživatelské jméno'; + ?> diff --git a/plugins/acl/localization/cy_GB.inc b/plugins/acl/localization/cy_GB.inc index 30b0aaffe..bf6e870e8 100644 --- a/plugins/acl/localization/cy_GB.inc +++ b/plugins/acl/localization/cy_GB.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Rhannu'; $labels['myrights'] = 'Hawliau Mynediad'; $labels['username'] = 'Defnyddiwr:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Gweithredoedd hawl mynediad...'; $labels['anyone'] = 'Pob defnyddiwr (unrhywun)'; $labels['anonymous'] = 'Gwestai (anhysbys)'; $labels['identifier'] = 'Dynodwr'; + $labels['acll'] = 'Chwilio'; $labels['aclr'] = 'Darllen negeseuon'; $labels['acls'] = 'Cadw stad Gwelwyd'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Dileu negeseuon'; $labels['acle'] = 'Dileu'; $labels['aclx'] = 'Dileu ffolder'; $labels['acla'] = 'Gweinyddu'; + $labels['aclfull'] = 'Rheolaeth lawn'; $labels['aclother'] = 'Arall'; $labels['aclread'] = 'Darllen'; $labels['aclwrite'] = 'Ysgrifennu'; $labels['acldelete'] = 'Dileu'; + $labels['shortacll'] = 'Chwilio'; $labels['shortaclr'] = 'Darllen'; $labels['shortacls'] = 'Cadw'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Dileu'; $labels['shortacle'] = 'Dileu'; $labels['shortaclx'] = 'Dileu ffolder'; $labels['shortacla'] = 'Gweinyddu'; + $labels['shortaclother'] = 'Arall'; $labels['shortaclread'] = 'Darllen'; $labels['shortaclwrite'] = 'Ysgrifennu'; $labels['shortacldelete'] = 'Dileu'; + $labels['longacll'] = 'Mae\'r ffolder hwn i\'w weld ar y rhestrau a mae\'n bosib tanysgrifio iddo'; $labels['longaclr'] = 'Gellir agor y ffolder hwn i\'w ddarllen'; $labels['longacls'] = 'Gellir newid y fflag negeseuon Gwelwyd'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'Gellir newid fflag neges Dileu'; $labels['longacle'] = 'Gellir gwaredu negeseuon'; $labels['longaclx'] = 'Gellir dileu neu ail-enwi\'r ffolder'; $labels['longacla'] = 'Gellir newid hawliau mynediad y ffolder'; + $labels['longaclfull'] = 'Rheolaeth lawn yn cynnwys rheolaeth ffolderi'; $labels['longaclread'] = 'Gellir agor y ffolder hwn i\'w ddarllen'; $labels['longaclwrite'] = 'Gellir nodi, ysgrifennu neu copïo negeseuon i\'r ffolder'; $labels['longacldelete'] = 'Gellir dileu negeseuon'; + $messages['deleting'] = 'Yn dileu hawliau mynediad...'; $messages['saving'] = 'Yn cadw hawliau mynediad...'; $messages['updatesuccess'] = 'Wedi newid hawliau mynediad yn llwyddiannus'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Methwyd ychwanegu hawliau mynediad'; $messages['deleteconfirm'] = 'Ydych chi\'n siwr eich bod am ddileu hawliau mynediad y defnyddiwr/wyr ddewiswyd?'; $messages['norights'] = 'Nid oes hawliau wedi eu nodi!'; $messages['nouser'] = 'Nid oes enw defnyddiwr wedi ei nodi!'; + ?> diff --git a/plugins/acl/localization/da_DK.inc b/plugins/acl/localization/da_DK.inc index f31137644..0830ccd99 100644 --- a/plugins/acl/localization/da_DK.inc +++ b/plugins/acl/localization/da_DK.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Deling'; $labels['myrights'] = 'Adgangrettigheder'; $labels['username'] = 'Bruger:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Tilgangsrettigheder...'; $labels['anyone'] = 'Alle brugere'; $labels['anonymous'] = 'Gæst (anonym)'; $labels['identifier'] = 'Identifikator'; + $labels['acll'] = 'Slå op'; $labels['aclr'] = 'Læs beskeder'; $labels['acls'] = 'Behold læst-status'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Slet beskeder'; $labels['acle'] = 'Udslet'; $labels['aclx'] = 'Slet mappe'; $labels['acla'] = 'Administrer'; + $labels['aclfull'] = 'Fuld kontrol'; $labels['aclother'] = 'Andet'; $labels['aclread'] = 'Læse'; $labels['aclwrite'] = 'Skrive'; $labels['acldelete'] = 'Slet'; + $labels['shortacll'] = 'Slå op'; $labels['shortaclr'] = 'Læse'; $labels['shortacls'] = 'Behold'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Slet'; $labels['shortacle'] = 'Udslet'; $labels['shortaclx'] = 'Slet mappe'; $labels['shortacla'] = 'Administrer'; + $labels['shortaclother'] = 'Andet'; $labels['shortaclread'] = 'Læse'; $labels['shortaclwrite'] = 'Skrive'; $labels['shortacldelete'] = 'Slet'; + $labels['longacll'] = 'Mappen er synlig på listen og kan abonneres på'; $labels['longaclr'] = 'Mappen kan åbnes for læsning'; $labels['longacls'] = 'Beskeders Læst-flag kan ændres'; @@ -72,19 +78,22 @@ $labels['longaclt'] = 'Beskeders Slet-flag kan ændres'; $labels['longacle'] = 'Beskeder kan slettes'; $labels['longaclx'] = 'Mappen kan blive slettet eller omdøbt'; $labels['longacla'] = 'Mappen adgangsrettigheder kan ændres'; + $labels['longaclfull'] = 'Fuld kontrol inklusiv mappeadministration'; $labels['longaclread'] = 'Mappen kan åbnes for læsning'; $labels['longaclwrite'] = 'Beskeder kan blive markeret, skrevet eller kopieret til mappen'; $labels['longacldelete'] = 'Beskeder kan slettes'; + $messages['deleting'] = 'Slette rettigheder...'; $messages['saving'] = 'Gemme rettigheder...'; $messages['updatesuccess'] = 'Tilgangsrettighederne blev ændret'; $messages['deletesuccess'] = 'Sletterettigheder blev ændret'; $messages['createsuccess'] = 'Tilgangsrettigheder blev tilføjet'; -$messages['updateerror'] = 'Kunne ikke opdatere adgangsrettigheder'; +$messages['updateerror'] = 'Kunne ikke opdatere tilgangsrettigheder'; $messages['deleteerror'] = 'Kunne ikke slette tilgangsrettigheder'; $messages['createerror'] = 'Kunne ikke tilføje tilgangsrettigheder'; $messages['deleteconfirm'] = 'Er du sikker på, at du vil slette tilgangsrettigheder fra de(n) valgte bruger(e)?'; $messages['norights'] = 'Der er ikke specificeret nogle rettigheder!'; $messages['nouser'] = 'Der er ikke angiver et brugernavn!'; + ?> diff --git a/plugins/acl/localization/de_CH.inc b/plugins/acl/localization/de_CH.inc index 98e555a64..4f596678c 100644 --- a/plugins/acl/localization/de_CH.inc +++ b/plugins/acl/localization/de_CH.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Freigabe'; $labels['myrights'] = 'Zugriffsrechte'; $labels['username'] = 'Benutzer:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Zugriffsrechte Aktionen...'; $labels['anyone'] = 'Alle Benutzer (anyone)'; $labels['anonymous'] = 'Gäste (anonymous)'; $labels['identifier'] = 'Bezeichnung'; + $labels['acll'] = 'Sichtbar'; $labels['aclr'] = 'Nachrichten lesen'; $labels['acls'] = 'Lesestatus ändern'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Nachrichten als gelöscht markieren'; $labels['acle'] = 'Endgültig löschen'; $labels['aclx'] = 'Ordner löschen'; $labels['acla'] = 'Verwalten'; + $labels['aclfull'] = 'Vollzugriff'; $labels['aclother'] = 'Andere'; $labels['aclread'] = 'Lesen'; $labels['aclwrite'] = 'Schreiben'; $labels['acldelete'] = 'Löschen'; + $labels['shortacll'] = 'Sichtbar'; $labels['shortaclr'] = 'Lesen'; $labels['shortacls'] = 'Behalte'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Löschen'; $labels['shortacle'] = 'Endgültig löschen'; $labels['shortaclx'] = 'Ordner löschen'; $labels['shortacla'] = 'Verwalten'; + $labels['shortaclother'] = 'Andere'; $labels['shortaclread'] = 'Lesen'; $labels['shortaclwrite'] = 'Schreiben'; $labels['shortacldelete'] = 'Löschen'; + $labels['longacll'] = 'Der Ordner ist sichtbar und kann abonniert werden'; $labels['longaclr'] = 'Der Ordnerinhalt kann gelesen werden'; $labels['longacls'] = 'Der Lesestatus von Nachrichten kann geändert werden'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'Der "gelöscht" Status von Nachrichten kann geändert wer $labels['longacle'] = 'Als "gelöscht" markierte Nachrichten können entfernt werden'; $labels['longaclx'] = 'Der Ordner kann gelöscht oder umbenannt werden'; $labels['longacla'] = 'Die Zugriffsrechte des Ordners können geändert werden'; + $labels['longaclfull'] = 'Vollzugriff inklusive Ordner-Verwaltung'; $labels['longaclread'] = 'Der Ordnerinhalt kann gelesen werden'; $labels['longaclwrite'] = 'Nachrichten können markiert, an den Ordner gesendet und in den Ordner kopiert oder verschoben werden'; $labels['longacldelete'] = 'Nachrichten können gelöscht werden'; + $messages['deleting'] = 'Zugriffsrechte werden entzogen...'; $messages['saving'] = 'Zugriffsrechte werden gespeichert...'; $messages['updatesuccess'] = 'Zugriffsrechte erfolgreich geändert'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Zugriffsrechte konnten nicht gewährt werden'; $messages['deleteconfirm'] = 'Sind Sie sicher, dass Sie die Zugriffsrechte den ausgewählten Benutzern entziehen möchten?'; $messages['norights'] = 'Es wurden keine Zugriffsrechte ausgewählt!'; $messages['nouser'] = 'Es wurde kein Benutzer ausgewählt!'; + ?> diff --git a/plugins/acl/localization/de_DE.inc b/plugins/acl/localization/de_DE.inc index 3df3dc63f..de8c13a33 100644 --- a/plugins/acl/localization/de_DE.inc +++ b/plugins/acl/localization/de_DE.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Freigabe'; $labels['myrights'] = 'Zugriffsrechte'; $labels['username'] = 'Benutzer:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Zugriffsrechte Aktionen...'; $labels['anyone'] = 'Alle Benutzer (anyone)'; $labels['anonymous'] = 'Gäste (anonymous)'; $labels['identifier'] = 'Bezeichnung'; + $labels['acll'] = 'Sichtbar'; $labels['aclr'] = 'Nachrichten lesen'; $labels['acls'] = 'Lesestatus ändern'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Nachrichten als gelöscht markieren'; $labels['acle'] = 'Endgültig löschen'; $labels['aclx'] = 'Ordner löschen'; $labels['acla'] = 'Verwalten'; + $labels['aclfull'] = 'Vollzugriff'; $labels['aclother'] = 'Andere'; $labels['aclread'] = 'Lesen'; $labels['aclwrite'] = 'Schreiben'; $labels['acldelete'] = 'Löschen'; + $labels['shortacll'] = 'Sichtbar'; $labels['shortaclr'] = 'Lesen'; $labels['shortacls'] = 'Lesestatus'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Löschen'; $labels['shortacle'] = 'Endgültig löschen'; $labels['shortaclx'] = 'Ordner löschen'; $labels['shortacla'] = 'Verwalten'; + $labels['shortaclother'] = 'Andere'; $labels['shortaclread'] = 'Lesen'; $labels['shortaclwrite'] = 'Schreiben'; $labels['shortacldelete'] = 'Löschen'; + $labels['longacll'] = 'Der Ordner ist sichtbar und kann abonniert werden'; $labels['longaclr'] = 'Der Ordnerinhalt kann gelesen werden'; $labels['longacls'] = 'Der Lesestatus von Nachrichten kann geändert werden'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'Der "gelöscht" Status von Nachrichten kann geändert wer $labels['longacle'] = 'Als "gelöscht" markiert Nachrichten können gelöscht werden.'; $labels['longaclx'] = 'Der Ordner kann gelöscht oder umbenannt werden'; $labels['longacla'] = 'Die Zugriffsrechte des Ordners können geändert werden'; + $labels['longaclfull'] = 'Vollzugriff inklusive Ordner-Verwaltung'; $labels['longaclread'] = 'Der Ordnerinhalt kann gelesen werden'; $labels['longaclwrite'] = 'Nachrichten können markiert, an den Ordner gesendet und in den Ordner kopiert oder verschoben werden'; $labels['longacldelete'] = 'Nachrichten können gelöscht werden'; + $messages['deleting'] = 'Zugriffsrechte werden entzogen...'; $messages['saving'] = 'Zugriffsrechte werden gewährt...'; $messages['updatesuccess'] = 'Zugriffsrechte erfolgreich geändert'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Zugriffsrechte konnten nicht gewährt werden'; $messages['deleteconfirm'] = 'Sind Sie sicher, daß Sie die Zugriffsrechte den ausgewählten Benutzern entziehen möchten?'; $messages['norights'] = 'Es wurden keine Zugriffsrechte ausgewählt!'; $messages['nouser'] = 'Es wurde kein Benutzer ausgewählt!'; + ?> diff --git a/plugins/acl/localization/en_GB.inc b/plugins/acl/localization/en_GB.inc index 16616c746..e1b33fbfc 100644 --- a/plugins/acl/localization/en_GB.inc +++ b/plugins/acl/localization/en_GB.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Sharing'; $labels['myrights'] = 'Access Rights'; $labels['username'] = 'User:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Access right actions...'; $labels['anyone'] = 'All users (anyone)'; $labels['anonymous'] = 'Guests (anonymous)'; $labels['identifier'] = 'Identifier'; + $labels['acll'] = 'Look-up'; $labels['aclr'] = 'Read messages'; $labels['acls'] = 'Keep Seen state'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Delete messages'; $labels['acle'] = 'Expunge'; $labels['aclx'] = 'Delete folder'; $labels['acla'] = 'Administer'; + $labels['aclfull'] = 'Full control'; $labels['aclother'] = 'Other'; $labels['aclread'] = 'Read'; $labels['aclwrite'] = 'Write'; $labels['acldelete'] = 'Delete'; + $labels['shortacll'] = 'Look-up'; $labels['shortaclr'] = 'Read'; $labels['shortacls'] = 'Keep'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Delete'; $labels['shortacle'] = 'Expunge'; $labels['shortaclx'] = 'Folder delete'; $labels['shortacla'] = 'Administer'; + $labels['shortaclother'] = 'Other'; $labels['shortaclread'] = 'Read'; $labels['shortaclwrite'] = 'Write'; $labels['shortacldelete'] = 'Delete'; + $labels['longacll'] = 'The folder is visible on lists and can be subscribed to.'; $labels['longaclr'] = 'The folder can be opened for reading'; $labels['longacls'] = 'Messages Seen flag can be changed'; @@ -72,18 +78,22 @@ $labels['longaclt'] = 'Messages Delete flag can be changed'; $labels['longacle'] = 'Messages can be expunged'; $labels['longaclx'] = 'The folder can be deleted or renamed'; $labels['longacla'] = 'The folder access rights can be changed'; + $labels['longaclfull'] = 'Full control including folder administration'; $labels['longaclread'] = 'The folder can be opened for reading'; $labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder'; $labels['longacldelete'] = 'Messages can be deleted'; + $messages['deleting'] = 'Deleting access rights...'; $messages['saving'] = 'Saving access rights...'; $messages['updatesuccess'] = 'Successfully changed access rights'; $messages['deletesuccess'] = 'Successfully deleted access rights'; $messages['createsuccess'] = 'Successfully added access rights'; +$messages['updateerror'] = 'Ubable to update access rights'; $messages['deleteerror'] = 'Unable to delete access rights'; $messages['createerror'] = 'Unable to add access rights'; $messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?'; $messages['norights'] = 'No rights has been specified!'; $messages['nouser'] = 'No username has been specified!'; + ?> diff --git a/plugins/acl/localization/en_US.inc b/plugins/acl/localization/en_US.inc index 3c61266be..8eebdc60c 100644 --- a/plugins/acl/localization/en_US.inc +++ b/plugins/acl/localization/en_US.inc @@ -5,7 +5,7 @@ | plugins/acl/localization/.inc | | | | Localization file of the Roundcube Webmail ACL plugin | - | Copyright (C) 2012-2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | @@ -89,7 +89,7 @@ $messages['saving'] = 'Saving access rights...'; $messages['updatesuccess'] = 'Successfully changed access rights'; $messages['deletesuccess'] = 'Successfully deleted access rights'; $messages['createsuccess'] = 'Successfully added access rights'; -$messages['updateerror'] = 'Unable to update access rights'; +$messages['updateerror'] = 'Ubable to update access rights'; $messages['deleteerror'] = 'Unable to delete access rights'; $messages['createerror'] = 'Unable to add access rights'; $messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?'; diff --git a/plugins/acl/localization/eo.inc b/plugins/acl/localization/eo.inc index 888ea4def..ddfacd6f8 100644 --- a/plugins/acl/localization/eo.inc +++ b/plugins/acl/localization/eo.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Kunhavigado'; $labels['myrights'] = 'Atingrajtoj'; $labels['username'] = 'Uzanto:'; @@ -24,22 +25,27 @@ $labels['actions'] = 'Agoj de atingrajtoj...'; $labels['anyone'] = 'Ĉiuj uzantoj (iu ajn)'; $labels['anonymous'] = 'Gasto (sennome)'; $labels['identifier'] = 'Identigilo'; + $labels['acll'] = 'Elserĉo'; $labels['aclr'] = 'Legi mesaĝojn'; $labels['acls'] = 'Manteni legitan staton'; +$labels['aclw'] = 'Write flags'; $labels['acli'] = 'Enmeti (alglui)'; $labels['aclp'] = 'Afiŝi'; $labels['aclc'] = 'Krei subdosierujojn'; $labels['aclk'] = 'Krei subdosierujojn'; $labels['acld'] = 'Forigi mesaĝojn'; $labels['aclt'] = 'Forigi mesaĝojn'; +$labels['acle'] = 'Expunge'; $labels['aclx'] = 'Forigi dosierujon'; $labels['acla'] = 'Administri'; + $labels['aclfull'] = 'Plena kontrolo'; $labels['aclother'] = 'Alia'; $labels['aclread'] = 'Legi'; $labels['aclwrite'] = 'Skribi'; $labels['acldelete'] = 'Forigi'; + $labels['shortacll'] = 'Elserĉo'; $labels['shortaclr'] = 'Legi'; $labels['shortacls'] = 'Manteni'; @@ -50,15 +56,44 @@ $labels['shortaclc'] = 'Krei'; $labels['shortaclk'] = 'Krei'; $labels['shortacld'] = 'Forigi'; $labels['shortaclt'] = 'Forigi'; +$labels['shortacle'] = 'Expunge'; $labels['shortaclx'] = 'Forigo de dosierujo'; $labels['shortacla'] = 'Administri'; + $labels['shortaclother'] = 'Alia'; $labels['shortaclread'] = 'Legi'; $labels['shortaclwrite'] = 'Skribi'; $labels['shortacldelete'] = 'Forigi'; + $labels['longacll'] = 'La dosierujo videblas en listoj kaj oni povas aboni al ĝi'; $labels['longaclr'] = 'La dosierujo malfermeblas por legado'; +$labels['longacls'] = 'Messages Seen flag can be changed'; +$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted'; $labels['longacli'] = 'Mesaĝoj skribeblas aŭ kopieblas en la dosierujo'; $labels['longaclp'] = 'Mesaĝoj afiŝeblas en ĉi tiu dosierujo'; +$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longacld'] = 'Messages Delete flag can be changed'; +$labels['longaclt'] = 'Messages Delete flag can be changed'; +$labels['longacle'] = 'Messages can be expunged'; +$labels['longaclx'] = 'The folder can be deleted or renamed'; +$labels['longacla'] = 'The folder access rights can be changed'; + +$labels['longaclfull'] = 'Full control including folder administration'; $labels['longaclread'] = 'La dosierujo malfermeblas por legado'; +$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder'; +$labels['longacldelete'] = 'Messages can be deleted'; + +$messages['deleting'] = 'Deleting access rights...'; +$messages['saving'] = 'Saving access rights...'; +$messages['updatesuccess'] = 'Successfully changed access rights'; +$messages['deletesuccess'] = 'Successfully deleted access rights'; +$messages['createsuccess'] = 'Successfully added access rights'; +$messages['updateerror'] = 'Ubable to update access rights'; +$messages['deleteerror'] = 'Unable to delete access rights'; +$messages['createerror'] = 'Unable to add access rights'; +$messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?'; +$messages['norights'] = 'No rights has been specified!'; +$messages['nouser'] = 'No username has been specified!'; + ?> diff --git a/plugins/acl/localization/es_ES.inc b/plugins/acl/localization/es_ES.inc index 3e64bfee6..62f89dcea 100644 --- a/plugins/acl/localization/es_ES.inc +++ b/plugins/acl/localization/es_ES.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Compartir'; $labels['myrights'] = 'Permisos de acceso'; $labels['username'] = 'Usuario:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Acciones sobre los permisos de acceso…'; $labels['anyone'] = 'Todos los usuarios (cualquiera)'; $labels['anonymous'] = 'Invitados (anónimo)'; $labels['identifier'] = 'Identificador'; + $labels['acll'] = 'Búsqueda'; $labels['aclr'] = 'Leer mensajes'; $labels['acls'] = 'Mantener como "Leído'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Borrar mensajes'; $labels['acle'] = 'Expurgar'; $labels['aclx'] = 'Borrar carpeta'; $labels['acla'] = 'Administrar'; + $labels['aclfull'] = 'Control total'; $labels['aclother'] = 'Otro'; $labels['aclread'] = 'Leer'; $labels['aclwrite'] = 'Escribir'; $labels['acldelete'] = 'Borrar'; + $labels['shortacll'] = 'Búsqueda'; $labels['shortaclr'] = 'Leer'; $labels['shortacls'] = 'Conservar'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Borrar'; $labels['shortacle'] = 'Expurgar'; $labels['shortaclx'] = 'Borrar carpeta'; $labels['shortacla'] = 'Administrar'; + $labels['shortaclother'] = 'Otro'; $labels['shortaclread'] = 'Leer'; $labels['shortaclwrite'] = 'Escribir'; $labels['shortacldelete'] = 'Borrar'; + $labels['longacll'] = 'La carpeta es visible en las listas y es posible suscribirse a ella'; $labels['longaclr'] = 'Se puede abrir la carpeta para leer'; $labels['longacls'] = 'Se pueden cambiar los mensajes con la etiqueta "Leído'; @@ -72,19 +78,22 @@ $labels['longaclt'] = 'No se pueden cambiar los mensajes etiquetados como "Borra $labels['longacle'] = 'No se pueden expurgar los mensajes'; $labels['longaclx'] = 'La carpeta se puede borrar o renombrar'; $labels['longacla'] = 'Se pueden cambiar los permisos de acceso'; + $labels['longaclfull'] = 'Control total, incluyendo la gestión de carpetas'; $labels['longaclread'] = 'Se puede abrir la carpeta para leer'; $labels['longaclwrite'] = 'Se pueden etiquetar, escribir o copiar mensajes a la carpeta'; $labels['longacldelete'] = 'Los mensajes se pueden borrar'; + $messages['deleting'] = 'Borrando permisos de acceso…'; $messages['saving'] = 'Guardando permisos de acceso…'; $messages['updatesuccess'] = 'Se han cambiado los permisos de acceso'; $messages['deletesuccess'] = 'Se han borrado los permisos de acceso'; $messages['createsuccess'] = 'Se han añadido los permisos de acceso'; -$messages['updateerror'] = 'No ha sido posible actualizar los derechos de acceso'; +$messages['updateerror'] = 'No se han podido actualizar los permisos de acceso'; $messages['deleteerror'] = 'No se han podido borrar los permisos de acceso'; $messages['createerror'] = 'No se han podido añadir los permisos de acceso'; $messages['deleteconfirm'] = '¿Seguro que quiere borrar los permisos de acceso del usuairo seleccionado?'; $messages['norights'] = 'No se han especificado los permisos de acceso'; $messages['nouser'] = 'No se ha especificado un nombre de usuario'; + ?> diff --git a/plugins/acl/localization/et_EE.inc b/plugins/acl/localization/et_EE.inc index 5a64ac8fb..e41275a7d 100644 --- a/plugins/acl/localization/et_EE.inc +++ b/plugins/acl/localization/et_EE.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Jagamine'; $labels['myrights'] = 'Ligipääsuõigused'; $labels['username'] = 'Kasutaja:'; @@ -24,7 +25,11 @@ $labels['actions'] = 'Ligipääsuõiguste toimingud...'; $labels['anyone'] = 'Kõik kasutajad'; $labels['anonymous'] = 'Külalised (anonüümsed)'; $labels['identifier'] = 'Tuvastaja'; + +$labels['acll'] = 'Lookup'; $labels['aclr'] = 'Lugeda kirju'; +$labels['acls'] = 'Keep Seen state'; +$labels['aclw'] = 'Write flags'; $labels['acli'] = 'Sisesta (kopeeri)'; $labels['aclp'] = 'Postita'; $labels['aclc'] = 'Luua alamkaustu'; @@ -34,11 +39,14 @@ $labels['aclt'] = 'Kustutada kirju'; $labels['acle'] = 'Eemalda'; $labels['aclx'] = 'Kustutada kausta'; $labels['acla'] = 'Administreerida'; + $labels['aclfull'] = 'Täis kontroll'; $labels['aclother'] = 'Muu'; $labels['aclread'] = 'Loe'; $labels['aclwrite'] = 'Kirjuta'; $labels['acldelete'] = 'Kustuta'; + +$labels['shortacll'] = 'Lookup'; $labels['shortaclr'] = 'Loe'; $labels['shortacls'] = 'Säilita'; $labels['shortaclw'] = 'Kirjuta'; @@ -51,29 +59,41 @@ $labels['shortaclt'] = 'Kustuta'; $labels['shortacle'] = 'Eemalda'; $labels['shortaclx'] = 'Kausta kustutamine'; $labels['shortacla'] = 'Administreerida'; + $labels['shortaclother'] = 'Muu'; $labels['shortaclread'] = 'Loe'; $labels['shortaclwrite'] = 'Kirjuta'; $labels['shortacldelete'] = 'Kustuta'; + $labels['longacll'] = 'See kaust on nimekirjas nähtav ja seda saab tellida'; $labels['longaclr'] = 'Kausta saab lugemiseks avada'; -$labels['longacld'] = 'Kirja kustutamis lippu saab muuta'; -$labels['longaclt'] = 'Kirja kustutamis lippu saab muuta'; +$labels['longacls'] = 'Messages Seen flag can be changed'; +$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted'; +$labels['longacli'] = 'Messages can be written or copied to the folder'; +$labels['longaclp'] = 'Messages can be posted to this folder'; +$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longacld'] = 'Messages Delete flag can be changed'; +$labels['longaclt'] = 'Messages Delete flag can be changed'; $labels['longacle'] = 'Kirju saab eemaldada'; $labels['longaclx'] = 'Seda kausta ei saa kustutada ega ümber nimetada'; $labels['longacla'] = 'Selle kausta ligipääsuõigusi saab muuta'; + $labels['longaclfull'] = 'Täielik kontroll koos kaustade haldamisega'; $labels['longaclread'] = 'Kausta saab lugemiseks avada'; +$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder'; $labels['longacldelete'] = 'Kirju saab kustutada'; + $messages['deleting'] = 'Ligipääsuõiguste kustutamine...'; $messages['saving'] = 'Ligipääsuõiguste salvestamine...'; $messages['updatesuccess'] = 'Ligipääsuõigused on muudetud'; $messages['deletesuccess'] = 'Ligipääsuõigused on kustutatud'; $messages['createsuccess'] = 'Ligipääsuõigused on lisatud'; -$messages['updateerror'] = 'Ligipääsuõiguste uuendamine nurjus'; +$messages['updateerror'] = 'Unable to update access rights'; $messages['deleteerror'] = 'Ligipääsuõiguste kustutamine nurjus'; $messages['createerror'] = 'Ligipääsuõiguste andmine nurjus'; $messages['deleteconfirm'] = 'Oled sa kindel, et sa soovid valitudkasutaja(te) õiguseid kustutada?'; $messages['norights'] = 'Õigusi pole määratud!'; $messages['nouser'] = 'Kasutajanime pole määratud!'; + ?> diff --git a/plugins/acl/localization/fa_IR.inc b/plugins/acl/localization/fa_IR.inc index 993783ff4..48fb8a225 100644 --- a/plugins/acl/localization/fa_IR.inc +++ b/plugins/acl/localization/fa_IR.inc @@ -15,52 +15,58 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'اشتراک‌گذاری'; $labels['myrights'] = 'مجوزهای دسترسی'; $labels['username'] = 'کاربر:'; $labels['advanced'] = 'حالت پیشرفته'; $labels['newuser'] = 'افزودن مدخل'; $labels['actions'] = 'فعالیت‌های مجوز دسترسی...'; -$labels['anyone'] = 'همه‌ی کاربران (هر کسی)'; -$labels['anonymous'] = 'مهمان‌ها (ناشناس)'; +$labels['anyone'] = 'همه کاربران (هر کسی)'; +$labels['anonymous'] = 'مهمان‌ها (ناشناس‌ها)'; $labels['identifier'] = 'شناساگر'; + $labels['acll'] = 'یافتن'; -$labels['aclr'] = 'پیغام‌های خوانده شده'; +$labels['aclr'] = 'پیام های خوانده شده'; $labels['acls'] = 'نگه داشتن حالت بازدید'; $labels['aclw'] = 'پرچم‌های نوشتن'; $labels['acli'] = 'وارد کردن (کپی کردن در)'; -$labels['aclp'] = 'ارسال'; +$labels['aclp'] = 'نوشته'; $labels['aclc'] = 'ایجاد زیرپوشه‌ها'; $labels['aclk'] = 'ایجاد زیرپوشه‌ها'; $labels['acld'] = 'پاک کردن پیغام‌ها'; $labels['aclt'] = 'پاک کردن پیغام‌ها'; $labels['acle'] = 'پاک کردن'; $labels['aclx'] = 'حذف پوشه'; -$labels['acla'] = 'مدیریت کردن'; +$labels['acla'] = 'مدیر'; + $labels['aclfull'] = 'کنترل کامل'; $labels['aclother'] = 'دیگر'; -$labels['aclread'] = 'خواندن'; +$labels['aclread'] = 'خوانده شده'; $labels['aclwrite'] = 'نوشتن'; $labels['acldelete'] = 'حذف'; + $labels['shortacll'] = 'یافتن'; -$labels['shortaclr'] = 'خواندن'; +$labels['shortaclr'] = 'خوانده شده'; $labels['shortacls'] = 'نگه داشتن'; $labels['shortaclw'] = 'نوشتن'; -$labels['shortacli'] = 'اضافه کردن'; -$labels['shortaclp'] = 'ارسال'; +$labels['shortacli'] = 'جاگذارى'; +$labels['shortaclp'] = 'نوشته'; $labels['shortaclc'] = 'ایجاد'; $labels['shortaclk'] = 'ایجاد'; $labels['shortacld'] = 'حذف'; $labels['shortaclt'] = 'حذف'; $labels['shortacle'] = 'پاک کردن'; $labels['shortaclx'] = 'حذف کردن پوشه'; -$labels['shortacla'] = 'مدیریت کردن'; +$labels['shortacla'] = 'مدیر'; + $labels['shortaclother'] = 'دیگر'; -$labels['shortaclread'] = 'خواندن'; +$labels['shortaclread'] = 'خوانده شده'; $labels['shortaclwrite'] = 'نوشتن'; $labels['shortacldelete'] = 'حذف'; -$labels['longacll'] = 'پوشه را می‌توان در فهرست‌ها دید و در آن مشترک شد'; -$labels['longaclr'] = 'پوشه می‌تواند برای خوانده شدن باز شود'; + +$labels['longacll'] = 'پوشه در فهرست‌ها قابل مشاهده است و می‌تواند مشترک به'; +$labels['longaclr'] = 'پوشه می‌تواند برای خواندن باز شود'; $labels['longacls'] = 'پرچم بازدید پیغام‌ها می‌تواند تغییر داده شود'; $labels['longaclw'] = 'پرچم و کلیدواژه پیغام‌ها می‌تواند تغییر داده شود، به غیر از بازدید و حذف'; $labels['longacli'] = 'پیغام‌ها می‌توانند کپی یا نوشته شوند به پوشه'; @@ -72,19 +78,22 @@ $labels['longaclt'] = 'پرچم حذف پیغام‌ها می‌تواند تغ $labels['longacle'] = 'پیغام‌ها می‌توانند حذف شوند'; $labels['longaclx'] = 'پوشه می‌تواند حذف یا تغییر نام داده شود'; $labels['longacla'] = 'قوانین دسترسی پوشه می‌تواند تغییر داده شود'; + $labels['longaclfull'] = 'کنترل کامل شما مدیریت پوشه'; $labels['longaclread'] = 'پوشه می‌تواند برای خواندن باز شود'; $labels['longaclwrite'] = 'پیغام‌ها می‌توانند علامتگذاری، نوشته و یا کپی شوند در پوشه'; $labels['longacldelete'] = 'پیغام‌ها می‌توانند حذف شوند'; + $messages['deleting'] = 'حذف کردن قوانین دسترسی...'; $messages['saving'] = 'ذخیره قوانین دسترسی...'; $messages['updatesuccess'] = 'قوانین دسترسی با موفقیت تغییر کردند'; $messages['deletesuccess'] = 'قوانین دسترسی با موفقیت حذف شدند'; $messages['createsuccess'] = 'قوانین دسترسی با موفقیت اضافه شدند'; -$messages['updateerror'] = 'ناتوانی در به روز کردن قوانین دسترسی'; +$messages['updateerror'] = 'ناتوانی در بروزرسانی قوانین دسترسی'; $messages['deleteerror'] = 'ناتوانی در حذف قوانین دسترسی'; $messages['createerror'] = 'ناتوانی در اضافه کردن قوانین دسترسی'; $messages['deleteconfirm'] = 'آیا شما مطمئن هستید که می‌خواهید قوانین دسترسی را برای کاربر(ان) انتخاب شده حذف نمایید؟'; $messages['norights'] = 'هیچ قانونی مشخص نشده است!'; $messages['nouser'] = 'هیج نام‌کاربری‌ای مشخص نشده است!'; + ?> diff --git a/plugins/acl/localization/fi_FI.inc b/plugins/acl/localization/fi_FI.inc index ab3222464..1238b0fd3 100644 --- a/plugins/acl/localization/fi_FI.inc +++ b/plugins/acl/localization/fi_FI.inc @@ -15,21 +15,75 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Jakaminen'; $labels['myrights'] = 'Käyttöoikeudet'; $labels['username'] = 'Käyttäjä:'; $labels['advanced'] = 'edistynyt tila'; +$labels['newuser'] = 'Add entry'; +$labels['actions'] = 'Access right actions...'; $labels['anyone'] = 'Kaikki käyttäjät (kuka tahansa)'; $labels['anonymous'] = 'Vieraat (anonyymit)'; +$labels['identifier'] = 'Identifier'; + +$labels['acll'] = 'Lookup'; +$labels['aclr'] = 'Read messages'; +$labels['acls'] = 'Keep Seen state'; +$labels['aclw'] = 'Write flags'; +$labels['acli'] = 'Insert (Copy into)'; +$labels['aclp'] = 'Post'; +$labels['aclc'] = 'Create subfolders'; +$labels['aclk'] = 'Create subfolders'; +$labels['acld'] = 'Delete messages'; +$labels['aclt'] = 'Delete messages'; +$labels['acle'] = 'Expunge'; +$labels['aclx'] = 'Delete folder'; +$labels['acla'] = 'Administer'; + +$labels['aclfull'] = 'Full control'; $labels['aclother'] = 'Muu'; +$labels['aclread'] = 'Read'; +$labels['aclwrite'] = 'Write'; +$labels['acldelete'] = 'Delete'; + +$labels['shortacll'] = 'Lookup'; +$labels['shortaclr'] = 'Read'; +$labels['shortacls'] = 'Keep'; +$labels['shortaclw'] = 'Write'; +$labels['shortacli'] = 'Insert'; +$labels['shortaclp'] = 'Post'; $labels['shortaclc'] = 'Luo'; $labels['shortaclk'] = 'Luo'; $labels['shortacld'] = 'Poista'; $labels['shortaclt'] = 'Poista'; +$labels['shortacle'] = 'Expunge'; +$labels['shortaclx'] = 'Folder delete'; +$labels['shortacla'] = 'Administer'; + $labels['shortaclother'] = 'Muu'; +$labels['shortaclread'] = 'Read'; +$labels['shortaclwrite'] = 'Write'; +$labels['shortacldelete'] = 'Delete'; + +$labels['longacll'] = 'The folder is visible on lists and can be subscribed to'; $labels['longaclr'] = 'Kansion voi avata lukua varten'; +$labels['longacls'] = 'Messages Seen flag can be changed'; +$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted'; +$labels['longacli'] = 'Messages can be written or copied to the folder'; +$labels['longaclp'] = 'Messages can be posted to this folder'; +$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longacld'] = 'Messages Delete flag can be changed'; +$labels['longaclt'] = 'Messages Delete flag can be changed'; +$labels['longacle'] = 'Messages can be expunged'; $labels['longaclx'] = 'Kansio voidaan poistaa tai nimetä uudelleen'; $labels['longacla'] = 'Kansion käyttöoikeuksia voi muuttaa'; + +$labels['longaclfull'] = 'Full control including folder administration'; +$labels['longaclread'] = 'The folder can be opened for reading'; +$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder'; +$labels['longacldelete'] = 'Messages can be deleted'; + $messages['deleting'] = 'Poistetaan käyttöoikeuksia...'; $messages['saving'] = 'Tallennetaan käyttöoikeuksia...'; $messages['updatesuccess'] = 'Käyttöoikeuksia muutettiin onnistuneesti'; @@ -38,6 +92,8 @@ $messages['createsuccess'] = 'Käyttöoikeuksia lisättiin onnistuneesti'; $messages['updateerror'] = 'Käyttöoikeuksien päivitys epäonnistui'; $messages['deleteerror'] = 'Käyttöoikeuksien poistaminen epäonnistui'; $messages['createerror'] = 'Käyttöoikeuksien lisääminen epäonnistui'; +$messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?'; $messages['norights'] = 'Oikeuksia ei ole määritelty!'; $messages['nouser'] = 'Käyttäjänimeä ei ole määritelty!'; + ?> diff --git a/plugins/acl/localization/fr_FR.inc b/plugins/acl/localization/fr_FR.inc index b4e47bb17..4ac90b6d2 100644 --- a/plugins/acl/localization/fr_FR.inc +++ b/plugins/acl/localization/fr_FR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Partage'; $labels['myrights'] = 'Droits d\'accès'; $labels['username'] = 'Utilisateur :'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Action sur les droits d\'accès...'; $labels['anyone'] = 'Tous les utilisateurs (tout le monde)'; $labels['anonymous'] = 'Invités (anonymes)'; $labels['identifier'] = 'Identifiant'; + $labels['acll'] = 'Consultation'; $labels['aclr'] = 'Lire les messages'; $labels['acls'] = 'Garder l\'état vu'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Supprimer des messages'; $labels['acle'] = 'Purger'; $labels['aclx'] = 'Supprimer un dossier'; $labels['acla'] = 'Administrer'; + $labels['aclfull'] = 'Contrôle total'; $labels['aclother'] = 'Autre'; $labels['aclread'] = 'Lecture'; $labels['aclwrite'] = 'Écriture'; $labels['acldelete'] = 'Translation can be either \'Supprimer\' or \'Effacer\' depends of the whole context.'; + $labels['shortacll'] = 'Consultation'; $labels['shortaclr'] = 'Lecture'; $labels['shortacls'] = 'Conserver'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Translation can be either \'Supprimer\' or \'Effacer\' $labels['shortacle'] = 'Purger'; $labels['shortaclx'] = 'Supprimer un dossier'; $labels['shortacla'] = 'Administrer'; + $labels['shortaclother'] = 'Autre'; $labels['shortaclread'] = 'Lecture'; $labels['shortaclwrite'] = 'Écriture'; $labels['shortacldelete'] = 'Translation can be either \'Supprimer\' or \'Effacer\' depends of the whole context.'; + $labels['longacll'] = 'Ce dossier est visible dans les listes et peut être souscrit'; $labels['longaclr'] = 'Le dossier peut-être ouvert pour lecture'; $labels['longacls'] = 'L\'étiquette Lu peut-être changée'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'L\'étiquette de suppression des messages peut-être modi $labels['longacle'] = 'Les messages peuvent-être purgés'; $labels['longaclx'] = 'Le dossier peut-être supprimé ou renommé'; $labels['longacla'] = 'Les droits d\'accès au dossier peuvent-être modifiés'; + $labels['longaclfull'] = 'Contrôle total, dossier d\'administration inclus'; $labels['longaclread'] = 'Le dossier peut-être ouvert pour lecture'; $labels['longaclwrite'] = 'Les messages peuvent-être marqué, écrit ou copié dans ce dossier'; $labels['longacldelete'] = 'Les messages peuvent-être supprimé'; + $messages['deleting'] = 'Suppression des droits d\'accès…'; $messages['saving'] = 'Sauvegarde des droits d\'accès…'; $messages['updatesuccess'] = 'Les droits d\'accès ont été changé avec succès'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Impossible d\'ajouter des droits d\'accès'; $messages['deleteconfirm'] = 'Êtes-vous sûr de vouloir retirer les droits d\'accès du/des utilisateur(s) sélectionné ?'; $messages['norights'] = 'Aucun droit n\'a été spécifié !'; $messages['nouser'] = 'Aucun nom d\'utilisateur n\'a été spécifié !'; + ?> diff --git a/plugins/acl/localization/gl_ES.inc b/plugins/acl/localization/gl_ES.inc index 17aaf2599..bb8837190 100644 --- a/plugins/acl/localization/gl_ES.inc +++ b/plugins/acl/localization/gl_ES.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Compartindo'; $labels['myrights'] = 'Dereitos de acceso'; $labels['username'] = 'Usuario:'; @@ -24,67 +25,75 @@ $labels['actions'] = 'Accións sobre os dereitos de acceso...'; $labels['anyone'] = 'Tódolos usuarios (calquera)'; $labels['anonymous'] = 'Invitados (anónimo)'; $labels['identifier'] = 'Identificador'; + $labels['acll'] = 'Bloquear'; $labels['aclr'] = 'Ler mensaxes'; -$labels['acls'] = 'Manter o estado coma visto'; -$labels['aclw'] = 'Marcas de lectura'; -$labels['acli'] = 'Engadir (Copiar en)'; -$labels['aclp'] = 'Envío'; +$labels['acls'] = 'Keep Seen state'; +$labels['aclw'] = 'Write flags'; +$labels['acli'] = 'Insert (Copy into)'; +$labels['aclp'] = 'Post'; $labels['aclc'] = 'Crear subcartafoles'; $labels['aclk'] = 'Crear subcartafoles'; $labels['acld'] = 'Borrar mensaxes'; $labels['aclt'] = 'Borrar mensaxes'; -$labels['acle'] = 'Expurga'; +$labels['acle'] = 'Expunge'; $labels['aclx'] = 'Eliminar carpeta'; $labels['acla'] = 'Administrar'; + $labels['aclfull'] = 'Control total'; $labels['aclother'] = 'Outros'; $labels['aclread'] = 'Lectura'; $labels['aclwrite'] = 'Escritura'; $labels['acldelete'] = 'Borrado'; + $labels['shortacll'] = 'Busca'; $labels['shortaclr'] = 'Ler'; $labels['shortacls'] = 'Manter'; $labels['shortaclw'] = 'Escribir'; $labels['shortacli'] = 'Insertar'; -$labels['shortaclp'] = 'Envío'; +$labels['shortaclp'] = 'Post'; $labels['shortaclc'] = 'Crear'; $labels['shortaclk'] = 'Crear'; $labels['shortacld'] = 'Borrar'; $labels['shortaclt'] = 'Borrar'; -$labels['shortacle'] = 'Expurga'; +$labels['shortacle'] = 'Expunge'; $labels['shortaclx'] = 'Borrar cartafol'; $labels['shortacla'] = 'Administrar'; + $labels['shortaclother'] = 'Outros'; $labels['shortaclread'] = 'Lectura'; $labels['shortaclwrite'] = 'Escritura'; $labels['shortacldelete'] = 'Borrado'; + $labels['longacll'] = 'O cartafol é visible e pode ser suscrito'; -$labels['longaclr'] = 'Pódese abrir o cartafol para lectura'; -$labels['longacls'] = 'Pódese mudar o marcador de Mensaxes Enviadas'; -$labels['longaclw'] = 'Pódense mudar marcadores e palabras chave agás Olladas e Borradas'; -$labels['longacli'] = 'Pódense escreber ou copiar as mensaxes a este cartafol'; -$labels['longaclp'] = 'Pódense enviar as mensaxes a este cartafol'; -$labels['longaclc'] = 'Pódense crear (ou renomear) os cartafois directamente baixo deste cartafol'; -$labels['longaclk'] = 'Pódense crear (ou renomear) os cartafois directamente baixo deste cartafol'; -$labels['longacld'] = 'Pódense mudar as mensaxes coa marca de Borrado'; -$labels['longaclt'] = 'Pódense mudar as mensaxes coa marca de Borrado'; -$labels['longacle'] = 'Pódense eliminar as mensaxes'; -$labels['longaclx'] = 'Pódese borrar ou renomear o cartafol'; -$labels['longacla'] = 'Pódense mudar os dereitos de acceso ao cartafol'; -$labels['longaclfull'] = 'Control total inclúe administración de cartafois'; -$labels['longaclread'] = 'Pódese abrir o cartafol para lectura'; -$labels['longaclwrite'] = 'Pódense marcar, escribir ou copiar as mensaxes no cartafol'; -$labels['longacldelete'] = 'Pódense borrar as mensaxes'; -$messages['deleting'] = 'Borrando dereitos de acceso...'; -$messages['saving'] = 'Gardando dereitos de acceso...'; -$messages['updatesuccess'] = 'Mudados con éxito os dereitos de acceso'; -$messages['deletesuccess'] = 'Borrados con éxito os dereitos de acceso'; -$messages['createsuccess'] = 'Engadidos con éxito os dereitos de acceso'; -$messages['updateerror'] = 'Non se poden actualizar os dereitos de acceso'; -$messages['deleteerror'] = 'Non se poden borrar os dereitos de acceso'; -$messages['createerror'] = 'Non se poden engadir dereitos de acceso'; -$messages['deleteconfirm'] = 'De certo quere eliminar os dereitos de acceso do usuario(s) escollido?'; +$labels['longaclr'] = 'The folder can be opened for reading'; +$labels['longacls'] = 'Messages Seen flag can be changed'; +$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted'; +$labels['longacli'] = 'Messages can be written or copied to the folder'; +$labels['longaclp'] = 'Messages can be posted to this folder'; +$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longacld'] = 'Messages Delete flag can be changed'; +$labels['longaclt'] = 'Messages Delete flag can be changed'; +$labels['longacle'] = 'Messages can be expunged'; +$labels['longaclx'] = 'The folder can be deleted or renamed'; +$labels['longacla'] = 'The folder access rights can be changed'; + +$labels['longaclfull'] = 'Full control including folder administration'; +$labels['longaclread'] = 'The folder can be opened for reading'; +$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder'; +$labels['longacldelete'] = 'Messages can be deleted'; + +$messages['deleting'] = 'Deleting access rights...'; +$messages['saving'] = 'Saving access rights...'; +$messages['updatesuccess'] = 'Successfully changed access rights'; +$messages['deletesuccess'] = 'Successfully deleted access rights'; +$messages['createsuccess'] = 'Successfully added access rights'; +$messages['updateerror'] = 'Ubable to update access rights'; +$messages['deleteerror'] = 'Unable to delete access rights'; +$messages['createerror'] = 'Unable to add access rights'; +$messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?'; $messages['norights'] = 'Non se especificaron permisos!'; $messages['nouser'] = 'Non se especificou o nome de usuario!'; + ?> diff --git a/plugins/acl/localization/he_IL.inc b/plugins/acl/localization/he_IL.inc index 921c6eef6..d7b027a40 100644 --- a/plugins/acl/localization/he_IL.inc +++ b/plugins/acl/localization/he_IL.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'שיתוף'; $labels['myrights'] = 'זכויות גישה'; $labels['username'] = 'משתמש:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'פעולות על זכויות גישה...'; $labels['anyone'] = 'כל המשתמשים (כל אחד)'; $labels['anonymous'] = 'אורחים (אנונימי)'; $labels['identifier'] = 'מזהה'; + $labels['acll'] = 'חיפוש'; $labels['aclr'] = 'קריאת הודעות'; $labels['acls'] = 'שמירה על סטטוס נראה'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'מחיקת הודעות'; $labels['acle'] = 'ניקוי רשומות שבוטלו'; $labels['aclx'] = 'מחיקת תיקיה'; $labels['acla'] = 'מנהל'; + $labels['aclfull'] = 'שליטה מלאה'; $labels['aclother'] = 'אחר'; $labels['aclread'] = 'קריאה'; $labels['aclwrite'] = 'כתיבה'; $labels['acldelete'] = 'מחיקה'; + $labels['shortacll'] = 'חיפוש'; $labels['shortaclr'] = 'קריאה'; $labels['shortacls'] = 'להשאיר'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'מחיקה'; $labels['shortacle'] = 'ניקוי רשומות שבוטלו'; $labels['shortaclx'] = 'מחיקת תיקיה'; $labels['shortacla'] = 'מנהל'; + $labels['shortaclother'] = 'אחר'; $labels['shortaclread'] = 'קריאה'; $labels['shortaclwrite'] = 'כתיבה'; $labels['shortacldelete'] = 'מחיקה'; + $labels['longacll'] = 'התיקיה תראה ברשימות וניתן יהיה להרשם אליה'; $labels['longaclr'] = 'ניתן לפתוח את התיקיה ולקרוא בה'; $labels['longacls'] = 'ניתן לשנות דגל נראה בהודעות'; @@ -72,19 +78,22 @@ $labels['longaclt'] = 'ניתן לשנות דגל נמחק של הודעות'; $labels['longacle'] = 'ניתן לנקות הודעות שסומנו כמבוטלות'; $labels['longaclx'] = 'ניתן למחוק תיקיה זו או לשנות שמה'; $labels['longacla'] = 'ניתן לשנות זכויות גישה של תיקיה זו'; + $labels['longaclfull'] = 'שליטה מלאה כולל ניהול התיקיה'; $labels['longaclread'] = 'ניתן לפתוח את התיקיה ולקרוא בה'; $labels['longaclwrite'] = 'ניתן לסמן, לכתוב או להעתיק הודעות לתיקיה זו'; $labels['longacldelete'] = 'ניתן למחוק הודעות'; + $messages['deleting'] = 'זכויות גישה נמחקות...'; $messages['saving'] = 'זכויות גישה נשמרות...'; $messages['updatesuccess'] = 'זכויות גישה שונו בהצלחה'; $messages['deletesuccess'] = 'זכויות גישה נמחקו בהצלחה'; $messages['createsuccess'] = 'זכויות גישה נוספו בהצלחה'; -$messages['updateerror'] = 'לא ניתן לעדכן הרשאות גישה'; +$messages['updateerror'] = 'לא ניתן לעדכן זכויות גישה'; $messages['deleteerror'] = 'לא ניתן למחוק זכויות גישה'; $messages['createerror'] = 'לא ניתן להוסיף זכויות גישה'; $messages['deleteconfirm'] = 'האם ודאי שברצונך להסיר זכויות גישה של המשתמש(ים) שנבחרו?'; $messages['norights'] = 'לא צוינו זכויות גישה כלשהן !'; $messages['nouser'] = 'לא צוין שם משתמש כלשהו!'; + ?> diff --git a/plugins/acl/localization/hu_HU.inc b/plugins/acl/localization/hu_HU.inc index b61a2eb1f..adc6ad8b3 100644 --- a/plugins/acl/localization/hu_HU.inc +++ b/plugins/acl/localization/hu_HU.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Megosztás'; $labels['myrights'] = 'Hozzáférési jogok'; $labels['username'] = 'Felhasználó:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Hozzáférési jogok müveletei..'; $labels['anyone'] = 'Minden felhasználó (bárki)'; $labels['anonymous'] = 'Vendégek (névtelen)'; $labels['identifier'] = 'Azonosító'; + $labels['acll'] = 'Keresés'; $labels['aclr'] = 'Üzenetek olvasása'; $labels['acls'] = 'Olvasottsági állapot megtartása'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Üzenetek törlése'; $labels['acle'] = 'Törölt üzenetek eltávolítása'; $labels['aclx'] = 'Mappa törlés'; $labels['acla'] = 'Adminisztrátor'; + $labels['aclfull'] = 'Teljes hozzáférés'; $labels['aclother'] = 'Egyéb'; $labels['aclread'] = 'Olvasás'; $labels['aclwrite'] = 'Írás'; $labels['acldelete'] = 'Törlés'; + $labels['shortacll'] = 'Keresés'; $labels['shortaclr'] = 'Olvasás'; $labels['shortacls'] = 'Megtartás'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Törlés'; $labels['shortacle'] = 'Törölt üzenetek eltávolítása'; $labels['shortaclx'] = 'Mappa törlése'; $labels['shortacla'] = 'Adminisztrátor'; + $labels['shortaclother'] = 'Egyéb'; $labels['shortaclread'] = 'Olvasás'; $labels['shortaclwrite'] = 'Írás'; $labels['shortacldelete'] = 'Törlés'; + $labels['longacll'] = 'A mappa látható a listán és fel tudsz rá iratkozni.'; $labels['longaclr'] = 'A mappa olvasásra megnyitható'; $labels['longacls'] = 'Az üzenet megtekintési állapota módosítható'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'Üzenet törölve jelző módositható.'; $labels['longacle'] = 'Az üzenetek véglegesen eltávolíthatóak'; $labels['longaclx'] = 'A mappa törölhető vagy átnevezhető'; $labels['longacla'] = 'A mappa hozzáférési jogai módosíthatóak'; + $labels['longaclfull'] = 'Teljes hozzáférés beleértve a mappák kezelését'; $labels['longaclread'] = 'A mappa olvasásra megnyitható'; $labels['longaclwrite'] = 'Az üzenetek megjelölhetök, irhatók és másolhatók ebbe a mappába'; $labels['longacldelete'] = 'Az üzenetek törölhetőek'; + $messages['deleting'] = 'Hozzáférési jogok törlése...'; $messages['saving'] = 'Hozzáférési jogok mentése...'; $messages['updatesuccess'] = 'A hozzáférési jogok sikeresen módosultak.'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Nem sikerült a hozzáférési jogok hozzáadása'; $messages['deleteconfirm'] = 'Biztosan eltávolítja a kiválasztott felhasználó(k) hozzáférési jogait?'; $messages['norights'] = 'Nincsennek jogok megadva.'; $messages['nouser'] = 'A felhasználónév nincs megadva.'; + ?> diff --git a/plugins/acl/localization/hy_AM.inc b/plugins/acl/localization/hy_AM.inc index b474f6309..d39c19a46 100644 --- a/plugins/acl/localization/hy_AM.inc +++ b/plugins/acl/localization/hy_AM.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Կիսվել'; $labels['myrights'] = 'Մուտքի իրավունքներ'; $labels['username'] = 'Օգտատեր`'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Մուտքի իրավունքների գործողությ $labels['anyone'] = 'Բոլոր օգտվողները (ցանկացած)'; $labels['anonymous'] = 'Հյուրերը (անանուն)'; $labels['identifier'] = 'Նկարագրիչ'; + $labels['acll'] = 'Փնտրում'; $labels['aclr'] = 'Կարդալ հաղորդագրությունները'; $labels['acls'] = 'Պահպանել դիտման կարգավիճակը'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Ջնջել հաղորդագրությունները'; $labels['acle'] = 'Հեռացնել'; $labels['aclx'] = 'Ջնջել պանակը'; $labels['acla'] = 'Կառավարել'; + $labels['aclfull'] = 'Լրիվ վերահսկում'; $labels['aclother'] = 'Այլ'; $labels['aclread'] = 'Կարդալ'; $labels['aclwrite'] = 'Գրել'; $labels['acldelete'] = 'Ջնջել'; + $labels['shortacll'] = 'Փնտրում'; $labels['shortaclr'] = 'Կարդալ'; $labels['shortacls'] = 'Պահել'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Ջնջել'; $labels['shortacle'] = 'Հեռացնել'; $labels['shortaclx'] = 'Պանակի ջնջում'; $labels['shortacla'] = 'Կառավարել'; + $labels['shortaclother'] = 'Այլ'; $labels['shortaclread'] = 'Կարդալ'; $labels['shortaclwrite'] = 'Գրել'; $labels['shortacldelete'] = 'Ջնջել'; + $labels['longacll'] = 'Պանակը երևում է ցուցակներում և նրան հնարավոր է բաժանորդագրվել'; $labels['longaclr'] = 'Պանակը կարող է բացվել ընթերցման համար'; $labels['longacls'] = 'Տեսված հաղորդագրությունների նշումը կարող է փոփոխվել'; @@ -72,18 +78,22 @@ $labels['longaclt'] = 'Հաղորդագրությունների Ջնջել նշ $labels['longacle'] = 'Հաղորդագրությունները կարող են հեռացվել'; $labels['longaclx'] = 'Պանակը կարող է ջնջվել կամ վերանվանվել'; $labels['longacla'] = 'Պանակի մուտքի իրավունքները կարող են փոփոխվել'; + $labels['longaclfull'] = 'Լրիվ վերահսկում ներառյալ պանակների կառավարումը'; $labels['longaclread'] = 'Պանակը կարող է բացվել ընթերցման համար'; $labels['longaclwrite'] = 'Հաղորդագրությունները կարող են նշվել, ստեղծվել և պատճենվել այս պանակում'; $labels['longacldelete'] = 'Հաղորդագրությունները կարող են ջնջվել'; + $messages['deleting'] = 'Ջնջվում են մուտքի իրավունքները…'; $messages['saving'] = 'Պահպանվում են մուտքի իրավունքները…'; $messages['updatesuccess'] = 'Մուտքի իրավունքները բարեհաջող փոփոխվեցին։'; $messages['deletesuccess'] = 'Մուտքի իրավունքները բարեհաջող ջնջվեցին։'; $messages['createsuccess'] = 'Մուտքի իրավունքները բարեհաջող ավելացվեցվին։'; +$messages['updateerror'] = 'Մուտքի իրավունքները թարմացումը ձախողվեց։'; $messages['deleteerror'] = 'Մուտքի իրավունքները ջնջումը ձախողվեց։'; $messages['createerror'] = 'Մուտքի իրավունքները ավելացումը ձախողվեց։'; $messages['deleteconfirm'] = 'Դուք վստա՞հ էք, որ ցանկանում եք նշված օգտվողներին զրկել մուտքի իրավունքներից։'; $messages['norights'] = 'Ոչ մի իրավունք չի՛ նշվել։'; $messages['nouser'] = 'Օգտվողի անունը չի՛ նշվել։'; + ?> diff --git a/plugins/acl/localization/id_ID.inc b/plugins/acl/localization/id_ID.inc index d7c4b55cd..8e8afc0b8 100644 --- a/plugins/acl/localization/id_ID.inc +++ b/plugins/acl/localization/id_ID.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Berbagi'; $labels['myrights'] = 'Hak Akses'; $labels['username'] = 'Pengguna:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Aksi hak akses...'; $labels['anyone'] = 'Semua pengguna (siapa saja)'; $labels['anonymous'] = 'Para tamu (anonim)'; $labels['identifier'] = 'Yang mengidentifikasi'; + $labels['acll'] = 'Cari'; $labels['aclr'] = 'Baca pesan'; $labels['acls'] = 'Jaga status terbaca'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Hapus pesan'; $labels['acle'] = 'Menghapus'; $labels['aclx'] = 'Hapus folder'; $labels['acla'] = 'Kelola'; + $labels['aclfull'] = 'Kendali penuh'; $labels['aclother'] = 'Lainnya'; $labels['aclread'] = 'Baca'; $labels['aclwrite'] = 'Tulis'; $labels['acldelete'] = 'Hapus'; + $labels['shortacll'] = 'Cari'; $labels['shortaclr'] = 'Baca'; $labels['shortacls'] = 'Simpan'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Hapus'; $labels['shortacle'] = 'Buang'; $labels['shortaclx'] = 'Hapus folder'; $labels['shortacla'] = 'Kelola'; + $labels['shortaclother'] = 'Lainnya'; $labels['shortaclread'] = 'Baca'; $labels['shortaclwrite'] = 'Tulis'; $labels['shortacldelete'] = 'Hapus'; + $labels['longacll'] = 'Folder terlihat di daftar dan dapat dijadikan langganan'; $labels['longaclr'] = 'Folder dapat dibuka untuk dibaca'; $labels['longacls'] = 'Tanda pesan terbaca dapat diubah'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'Tanda hapus pesan dapat diubah'; $labels['longacle'] = 'Pesan dapat dibuang'; $labels['longaclx'] = 'Folder dapat dihapus atau diubah namanya'; $labels['longacla'] = 'Hak akses folder dapat diubah'; + $labels['longaclfull'] = 'Kendali penuh penuh termasuk administrasi'; $labels['longaclread'] = 'Folder dapat dibuka untuk dibaca'; $labels['longaclwrite'] = 'Pesan dapat ditandai, ditulis atau disalin kedalam folder'; $labels['longacldelete'] = 'Pesan dapat dihapus'; + $messages['deleting'] = 'Menghapus hak akses...'; $messages['saving'] = 'Menyimpan hak akses...'; $messages['updatesuccess'] = 'Hak akses berhasil diubah'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Tidak dapat menambah hak akses'; $messages['deleteconfirm'] = 'Apakah Anda yakin ingin menghapus hak akses dari user terpilih?'; $messages['norights'] = 'Hak belum ditentukan!'; $messages['nouser'] = 'Username belum ditentukan!'; + ?> diff --git a/plugins/acl/localization/it_IT.inc b/plugins/acl/localization/it_IT.inc index f610ac031..11d905387 100644 --- a/plugins/acl/localization/it_IT.inc +++ b/plugins/acl/localization/it_IT.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Condivisione'; $labels['myrights'] = 'Diritti d\'accesso'; $labels['username'] = 'Utente:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Azioni permessi d\'accesso...'; $labels['anyone'] = 'Tutti gli utenti'; $labels['anonymous'] = 'Osptiti (anonimi)'; $labels['identifier'] = 'Identificatore'; + $labels['acll'] = 'Ricerca'; $labels['aclr'] = 'Leggi messaggi'; $labels['acls'] = 'Mantieni lo stato Visto'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Elimina messaggi'; $labels['acle'] = 'Elimina'; $labels['aclx'] = 'Elimina cartella'; $labels['acla'] = 'Amministra'; + $labels['aclfull'] = 'Controllo completo'; $labels['aclother'] = 'Altro'; $labels['aclread'] = 'Lettura'; $labels['aclwrite'] = 'Scrittura'; $labels['acldelete'] = 'Elimina'; + $labels['shortacll'] = 'Ricerca'; $labels['shortaclr'] = 'Lettura'; $labels['shortacls'] = 'Mantieni'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Elimina'; $labels['shortacle'] = 'Elimina'; $labels['shortaclx'] = 'Elimina cartella'; $labels['shortacla'] = 'Amministra'; + $labels['shortaclother'] = 'Altro'; $labels['shortaclread'] = 'Lettura'; $labels['shortaclwrite'] = 'Scrittura'; $labels['shortacldelete'] = 'Elimina'; + $labels['longacll'] = 'La cartella è visibile sulle liste e può essere sottoscritta'; $labels['longaclr'] = 'Questa cartella può essere aperta in lettura'; $labels['longacls'] = 'Il flag Messaggio Visto può essere cambiato'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'Il flag Messaggio Eliminato può essere cambiato'; $labels['longacle'] = 'I messaggi possono essere cancellati'; $labels['longaclx'] = 'La cartella può essere eliminata o rinominata'; $labels['longacla'] = 'I diritti di accesso della cartella possono essere cambiati'; + $labels['longaclfull'] = 'Controllo completo incluso cartella di amministrazione'; $labels['longaclread'] = 'Questa cartella può essere aperta in lettura'; $labels['longaclwrite'] = 'I messaggi possono essere marcati, scritti o copiati nella cartella'; $labels['longacldelete'] = 'I messaggi possono essere eliminati'; + $messages['deleting'] = 'Sto eliminando i diritti di accesso...'; $messages['saving'] = 'Sto salvando i diritti di accesso...'; $messages['updatesuccess'] = 'I diritti d\'accesso sono stati cambiati'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Impossibile aggiungere i diritti d\'accesso'; $messages['deleteconfirm'] = 'Sei sicuro, vuoi rimuovere i diritti d\'accesso degli utenti selezionati?'; $messages['norights'] = 'Nessun diritto specificato!'; $messages['nouser'] = 'Lo username non è stato specificato!'; + ?> diff --git a/plugins/acl/localization/ja_JP.inc b/plugins/acl/localization/ja_JP.inc index 15da70b3d..29e96e6fe 100644 --- a/plugins/acl/localization/ja_JP.inc +++ b/plugins/acl/localization/ja_JP.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = '共有'; $labels['myrights'] = 'アクセス権'; $labels['username'] = 'ユーザー:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'アクセス権の動作...'; $labels['anyone'] = '(誰でも)すべてのユーザー'; $labels['anonymous'] = 'ゲスト(匿名)'; $labels['identifier'] = '識別子'; + $labels['acll'] = '検索'; $labels['aclr'] = 'メッセージを読む'; $labels['acls'] = '既読の状態を保持'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'メッセージを削除'; $labels['acle'] = '抹消'; $labels['aclx'] = 'フォルダーを削除'; $labels['acla'] = '管理'; + $labels['aclfull'] = '完全な制御'; $labels['aclother'] = 'その他'; $labels['aclread'] = '読み込み'; $labels['aclwrite'] = '書き込み'; $labels['acldelete'] = '削除'; + $labels['shortacll'] = '検索'; $labels['shortaclr'] = '読み込み'; $labels['shortacls'] = '保持'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = '削除'; $labels['shortacle'] = '抹消'; $labels['shortaclx'] = 'フォルダーの削除'; $labels['shortacla'] = '管理'; + $labels['shortaclother'] = 'その他'; $labels['shortaclread'] = '読み込み'; $labels['shortaclwrite'] = '書き込み'; $labels['shortacldelete'] = '削除'; + $labels['longacll'] = 'フォルダーをリストに見えるようにして登録可能:'; $labels['longaclr'] = 'フォルダーを読むことを可能'; $labels['longacls'] = 'メッセージの既読のフラッグの変更を可能'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'メッセージの削除フラッグの変更を可能'; $labels['longacle'] = 'メッセージの抹消を可能'; $labels['longaclx'] = 'このフォルダーの削除や名前の変更を可能'; $labels['longacla'] = 'フォルダーのアクセス権の変更を可能'; + $labels['longaclfull'] = 'フォルダーの管理を含めた完全な制御を可能'; $labels['longaclread'] = 'フォルダーを読むことを可能'; $labels['longaclwrite'] = 'メッセージにマークの設定、書き込み、フォルダーに複製を可能'; $labels['longacldelete'] = 'メッセージの削除を可能'; + $messages['deleting'] = 'アクセス権を削除中...'; $messages['saving'] = 'アクセス権を保存中...'; $messages['updatesuccess'] = 'アクセス権を変更しました。'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'アクセス権を追加できません。'; $messages['deleteconfirm'] = '選択したユーザーのアクセス件を本当に削除したいですか?'; $messages['norights'] = '何の権限も指定されていません!'; $messages['nouser'] = 'ユーザー名を指定していません!'; + ?> diff --git a/plugins/acl/localization/ko_KR.inc b/plugins/acl/localization/ko_KR.inc index c7c3e466e..524427a4e 100644 --- a/plugins/acl/localization/ko_KR.inc +++ b/plugins/acl/localization/ko_KR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = '공유'; $labels['myrights'] = '접근 권한'; $labels['username'] = '사용자:'; @@ -24,6 +25,7 @@ $labels['actions'] = '접근 권한 동작...'; $labels['anyone'] = '모든 사용자 (아무나)'; $labels['anonymous'] = '방문자 (익명)'; $labels['identifier'] = '식별자'; + $labels['acll'] = '조회'; $labels['aclr'] = '읽은 메시지'; $labels['acls'] = '읽은 상태로 유지'; @@ -37,11 +39,13 @@ $labels['aclt'] = '메시지 삭제'; $labels['acle'] = '영구 제거'; $labels['aclx'] = '폴더 삭제'; $labels['acla'] = '관리자'; + $labels['aclfull'] = '전체 제어권'; $labels['aclother'] = '기타'; $labels['aclread'] = '읽기'; $labels['aclwrite'] = '쓰기'; $labels['acldelete'] = '삭제'; + $labels['shortacll'] = '조회'; $labels['shortaclr'] = '읽기'; $labels['shortacls'] = '보관'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = '삭제'; $labels['shortacle'] = '지움'; $labels['shortaclx'] = '폴더 삭제'; $labels['shortacla'] = '관리'; + $labels['shortaclother'] = '기타'; $labels['shortaclread'] = '읽기'; $labels['shortaclwrite'] = '쓱'; $labels['shortacldelete'] = '삭제'; + $labels['longacll'] = '폴더가 목록에 나타나고 다음 사용자가 구독할 수 있음:'; $labels['longaclr'] = '읽기 위해 폴더를 열 수 있음'; $labels['longacls'] = '읽은 메시지 깃발이 변경될 수 있음'; @@ -72,19 +78,22 @@ $labels['longaclt'] = '메시지 삭제 깃발이 변경될 수 있음'; $labels['longacle'] = '메시지가 영구 제거될 수 있음'; $labels['longaclx'] = '폴더를 삭제하거나 이름을 변경 할 수 있음'; $labels['longacla'] = '폴더의 접근 권한을 변경할 수 있음'; + $labels['longaclfull'] = '폴더 관리를 포함한 모든 제어권'; $labels['longaclread'] = '폴더를 열어 읽을 수 있음'; $labels['longaclwrite'] = '메시지에 표시하거나, 폴더로 이동하거나 복사할 수 있음'; $labels['longacldelete'] = '메시지를 삭제할 수 있음'; + $messages['deleting'] = '접근 권한을 삭제하는 중...'; $messages['saving'] = '접근 권한을 저장하는 중...'; $messages['updatesuccess'] = '접근 권한을 성공적으로 변경함.'; $messages['deletesuccess'] = '접근 권한을 성공적으로 삭제함.'; $messages['createsuccess'] = '접근 권한을 성공적으로 추가함.'; -$messages['updateerror'] = '접근 권한을 업데이트 할 수 없음'; +$messages['updateerror'] = '접근 권한을 업데이트할 수 없음.'; $messages['deleteerror'] = '접근 권한을 삭제할 수 없음.'; $messages['createerror'] = '접근 권한을 추가할 수 없음.'; $messages['deleteconfirm'] = '정말로 선택한 사용자의 접근 권한을 삭제하시겠습니까?'; $messages['norights'] = '지정된 권한이 없음!'; $messages['nouser'] = '지정된 사용자명이 없음!'; + ?> diff --git a/plugins/acl/localization/lt_LT.inc b/plugins/acl/localization/lt_LT.inc index ab4cbbaa1..59393012f 100644 --- a/plugins/acl/localization/lt_LT.inc +++ b/plugins/acl/localization/lt_LT.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Dalinimasis'; $labels['myrights'] = 'Prieigos teisės'; $labels['username'] = 'Vartotojas:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Prieigos teisių veiksmai...'; $labels['anyone'] = 'Visi vartotojai (bet kas)'; $labels['anonymous'] = 'Svečias (anonimas)'; $labels['identifier'] = 'Identifikatorius'; + $labels['acll'] = 'Paieška'; $labels['aclr'] = 'Perskaityti pranešimus'; $labels['acls'] = 'Palikti būseną "Žiūrėtas"'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Ištrinti žinutes'; $labels['acle'] = 'Išbraukti'; $labels['aclx'] = 'Ištrinti aplanką'; $labels['acla'] = 'Valdyti'; + $labels['aclfull'] = 'Visiška kontrolė'; $labels['aclother'] = 'Kita'; $labels['aclread'] = 'Skaityti'; $labels['aclwrite'] = 'Įrašyti'; $labels['acldelete'] = 'Trinti'; + $labels['shortacll'] = 'Paieška'; $labels['shortaclr'] = 'Skaityti'; $labels['shortacls'] = 'Palikti'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Trinti'; $labels['shortacle'] = 'Išbraukti'; $labels['shortaclx'] = 'Ištrinti aplanką'; $labels['shortacla'] = 'Valdyti'; + $labels['shortaclother'] = 'Kita'; $labels['shortaclread'] = 'Skaityti'; $labels['shortaclwrite'] = 'Įrašyti'; $labels['shortacldelete'] = 'Trinti'; + $labels['longacll'] = 'Aplankas yra matomas sąrašuose ir gali būti prenumeruojamas'; $labels['longaclr'] = 'Aplanką galima peržiūrėti'; $labels['longacls'] = 'Pranešimų vėliavėlė "Matyta" gali būti pakeista'; @@ -72,19 +78,22 @@ $labels['longaclt'] = 'Pranešimų vėliavėlė "Ištrintas" gali būti pakeista $labels['longacle'] = 'Pranešimai gali būti išbraukti'; $labels['longaclx'] = 'Aplankas gali būti pašalintas arba pervadintas'; $labels['longacla'] = 'Aplanko prieigos teisės gali būti pakeistos'; + $labels['longaclfull'] = 'Visiška kontrolė įskaitant aplanko administravimą'; $labels['longaclread'] = 'Aplanką galima peržiūrėti'; $labels['longaclwrite'] = 'Pranešimai gali būti pažymėti, įrašyti arba nukopijuoti į aplanką'; $labels['longacldelete'] = 'Pranešimai gali būti ištrinti'; + $messages['deleting'] = 'Panaikinamos prieigos teisės'; $messages['saving'] = 'Išsaugomos prieigos teisės'; $messages['updatesuccess'] = 'Prieigos teisės sėkmingai pakeistos'; $messages['deletesuccess'] = 'Prieigos teisės sėkmingai panaikintos'; $messages['createsuccess'] = 'Prieigos teisės sėkmingai pridėtos'; -$messages['updateerror'] = 'Nepavyko pakeisti prieigos teisių'; +$messages['updateerror'] = 'Neįmanoma atnaujinti prieigos teises'; $messages['deleteerror'] = 'Neįmanoma panaikinti prieigos teises'; $messages['createerror'] = 'Neišeina pridėti prieigos teises'; $messages['deleteconfirm'] = 'Ar jūs esate įsitikinę, jog norite panaikinti prieigos teises pažymėtiems vartotojams(-ui)?'; $messages['norights'] = 'Nenurodytos jokios teisės!'; $messages['nouser'] = 'Nenurodytas joks vartotojas!'; + ?> diff --git a/plugins/acl/localization/nb_NO.inc b/plugins/acl/localization/nb_NO.inc index 56a9b20a7..26171578b 100644 --- a/plugins/acl/localization/nb_NO.inc +++ b/plugins/acl/localization/nb_NO.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Deling'; $labels['myrights'] = 'Tilgangsrettigheter'; $labels['username'] = 'Bruker:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Valg for tilgangsrettigheter.'; $labels['anyone'] = 'Alle brukere (alle)'; $labels['anonymous'] = 'Gjester (anonyme)'; $labels['identifier'] = 'Identifikator'; + $labels['acll'] = 'Oppslag'; $labels['aclr'] = 'Les meldinger'; $labels['acls'] = 'Behold lesestatus'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Slett meldinger'; $labels['acle'] = 'Slett fullstendig'; $labels['aclx'] = 'Slett mappe'; $labels['acla'] = 'Administrer'; + $labels['aclfull'] = 'Full kontroll'; $labels['aclother'] = 'Annet'; $labels['aclread'] = 'Les'; $labels['aclwrite'] = 'Skriv'; $labels['acldelete'] = 'Slett'; + $labels['shortacll'] = 'Oppslag'; $labels['shortaclr'] = 'Les'; $labels['shortacls'] = 'Behold'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Slett'; $labels['shortacle'] = 'Slett fullstendig'; $labels['shortaclx'] = 'Slett mappe'; $labels['shortacla'] = 'Administrer'; + $labels['shortaclother'] = 'Annet'; $labels['shortaclread'] = 'Les'; $labels['shortaclwrite'] = 'Skriv'; $labels['shortacldelete'] = 'Slett'; + $labels['longacll'] = 'Mappen er synlig og kan abonneres på'; $labels['longaclr'] = 'Mappen kan åpnes for lesing'; $labels['longacls'] = 'Meldingenes lesestatusflagg kan endres'; @@ -72,18 +78,22 @@ $labels['longaclt'] = 'Meldingenes flagg for sletting kan endres'; $labels['longacle'] = 'Meldingen kan slettes for godt'; $labels['longaclx'] = 'Mappen kan slettes eller gis nytt navn'; $labels['longacla'] = 'Mappens tilgangsrettigheter kan endres'; + $labels['longaclfull'] = 'Full kontroll, inkludert mappeadministrasjon'; $labels['longaclread'] = 'Mappen kan åpnes for lesing'; $labels['longaclwrite'] = 'Meldinger kan merkes, lagres i eller flyttes til mappen'; $labels['longacldelete'] = 'Meldingen kan slettes'; + $messages['deleting'] = 'Sletter tilgangsrettigheter'; $messages['saving'] = 'Lagrer tilgangsrettigheter'; $messages['updatesuccess'] = 'Tilgangsrettigheter ble endret'; $messages['deletesuccess'] = 'Tilgangsrettigheter ble slettet'; $messages['createsuccess'] = 'Tilgangsrettigheter ble lagt til'; +$messages['updateerror'] = 'Kunne ikke oppdatere tilgangsrettigheter'; $messages['deleteerror'] = 'Kunne ikke fjerne tilgangsrettigheter'; $messages['createerror'] = 'Kunne ikke legge til tilgangsrettigheter'; $messages['deleteconfirm'] = 'Er du sikker på at du vil fjerne tilgangen til valgte brukere'; $messages['norights'] = 'Ingen rettigheter er spesifisert!'; $messages['nouser'] = 'Brukernavn er ikke spesifisert!'; + ?> diff --git a/plugins/acl/localization/nl_NL.inc b/plugins/acl/localization/nl_NL.inc index 4bf6870ed..b5ca0c3d8 100644 --- a/plugins/acl/localization/nl_NL.inc +++ b/plugins/acl/localization/nl_NL.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Delen'; $labels['myrights'] = 'Toegangsrechten'; $labels['username'] = 'Gebruiker:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Toegangsrechtenopties...'; $labels['anyone'] = 'Alle gebruikers (iedereen)'; $labels['anonymous'] = 'Gasten (anoniem)'; $labels['identifier'] = 'Identificatie'; + $labels['acll'] = 'Opzoeken'; $labels['aclr'] = 'Berichten lezen'; $labels['acls'] = 'Onthoud gelezen-status'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Berichten verwijderen'; $labels['acle'] = 'Vernietigen'; $labels['aclx'] = 'Map verwijderen'; $labels['acla'] = 'Beheren'; + $labels['aclfull'] = 'Volledige toegang'; $labels['aclother'] = 'Overig'; $labels['aclread'] = 'Lezen'; $labels['aclwrite'] = 'Schrijven'; $labels['acldelete'] = 'Verwijderen'; + $labels['shortacll'] = 'Opzoeken'; $labels['shortaclr'] = 'Lezen'; $labels['shortacls'] = 'Behouden'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Verwijderen'; $labels['shortacle'] = 'Vernietigen'; $labels['shortaclx'] = 'Map verwijderen'; $labels['shortacla'] = 'Beheren'; + $labels['shortaclother'] = 'Overig'; $labels['shortaclread'] = 'Lezen'; $labels['shortaclwrite'] = 'Schrijven'; $labels['shortacldelete'] = 'Verwijderen'; + $labels['longacll'] = 'De map is zichtbaar in lijsten en het is mogelijk om te abonneren op deze map'; $labels['longaclr'] = 'De map kan geopend worden om te lezen'; $labels['longacls'] = 'De berichtmarkering \'Gelezen\' kan aangepast worden'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'De berichtmarkering \'Verwijderd\' kan aangepast worden'; $labels['longacle'] = 'Berichten kunnen vernietigd worden'; $labels['longaclx'] = 'De map kan verwijderd of hernoemd worden'; $labels['longacla'] = 'De toegangsrechten voor deze map kunnen veranderd worden'; + $labels['longaclfull'] = 'Volledige controle inclusief mappenbeheer'; $labels['longaclread'] = 'De map kan geopend worden om te lezen'; $labels['longaclwrite'] = 'Berichten kunnen gemarkeerd worden, opgesteld worden of gekopieerd worden naar deze map'; $labels['longacldelete'] = 'Berichten kunnen verwijderd worden'; + $messages['deleting'] = 'Toegangsrechten worden verwijderd...'; $messages['saving'] = 'Toegangsrechten worden opgeslagen...'; $messages['updatesuccess'] = 'Toegangsrechten succesvol veranderd'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Toegangsrechten kunnen niet toegevoegd worden'; $messages['deleteconfirm'] = 'Weet u zeker dat u de toegangsrechten van de geselecteerde gebruiker(s) wilt verwijderen?'; $messages['norights'] = 'Er zijn geen toegangsrechten opgegeven!'; $messages['nouser'] = 'Er is geen gebruikersnaam opgegeven!'; + ?> diff --git a/plugins/acl/localization/nn_NO.inc b/plugins/acl/localization/nn_NO.inc index 4690a304c..743d2c8b8 100644 --- a/plugins/acl/localization/nn_NO.inc +++ b/plugins/acl/localization/nn_NO.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Deling'; $labels['myrights'] = 'Tilgangsrettar'; $labels['username'] = 'Brukar:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Val for tilgangsrettar...'; $labels['anyone'] = 'Alle brukarar (alle)'; $labels['anonymous'] = 'Gjester (anonyme)'; $labels['identifier'] = 'Identifikator'; + $labels['acll'] = 'Oppslag'; $labels['aclr'] = 'Les meldingar'; $labels['acls'] = 'Behald lesestatus'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Slett meldingar'; $labels['acle'] = 'Slett fullstendig'; $labels['aclx'] = 'Slett mappe'; $labels['acla'] = 'Administrér'; + $labels['aclfull'] = 'Full kontroll'; $labels['aclother'] = 'Anna'; $labels['aclread'] = 'Les'; $labels['aclwrite'] = 'Skriv'; $labels['acldelete'] = 'Slett'; + $labels['shortacll'] = 'Oppslag'; $labels['shortaclr'] = 'Les'; $labels['shortacls'] = 'Behald'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Slett'; $labels['shortacle'] = 'Slett fullstendig'; $labels['shortaclx'] = 'Slett mappe'; $labels['shortacla'] = 'Administrér'; + $labels['shortaclother'] = 'Anna'; $labels['shortaclread'] = 'Les'; $labels['shortaclwrite'] = 'Skriv'; $labels['shortacldelete'] = 'Slett'; + $labels['longacll'] = 'Mappa er synleg og kan abonnerast på'; $labels['longaclr'] = 'Mappa kan opnast for lesing'; $labels['longacls'] = 'Meldingane sine lesestatusflagg kan endrast'; @@ -72,18 +78,22 @@ $labels['longaclt'] = 'Meldingane sine flagg for sletting kan endrast'; $labels['longacle'] = 'Meldinga kan slettast for godt'; $labels['longaclx'] = 'Mappa kan slettast eller få nytt namn'; $labels['longacla'] = 'Mappa sine tilgangsrettar kan endrast'; + $labels['longaclfull'] = 'Full kontroll, inkludert mappeadministrasjon'; $labels['longaclread'] = 'Mappa kan opnast for lesing'; $labels['longaclwrite'] = 'Meldingar kan merkast, lagrast i eller flyttast til mappa'; $labels['longacldelete'] = 'Meldinga kan slettast'; + $messages['deleting'] = 'Slettar tilgangsrettar…'; $messages['saving'] = 'Lagrar tilgangsrettar…'; $messages['updatesuccess'] = 'Tilgangsrettiar vart endra'; $messages['deletesuccess'] = 'Tilgangsretter vart sletta'; $messages['createsuccess'] = 'Tilgangsrettar vart legne til'; +$messages['updateerror'] = 'Kunne ikkje oppdatere tilgangsrettar'; $messages['deleteerror'] = 'Kunne ikkje fjerne tilgangsrettar'; $messages['createerror'] = 'Kunne ikkje leggje til tilgangsrettar'; $messages['deleteconfirm'] = 'Er du sikker på at du vil fjerne tilgangen til valde brukarar?'; $messages['norights'] = 'Ingen rettar er spesifisert!'; $messages['nouser'] = 'Brukarnamn er ikkje spesifisert!'; + ?> diff --git a/plugins/acl/localization/pl_PL.inc b/plugins/acl/localization/pl_PL.inc index d3804ac26..73c0fc4fb 100644 --- a/plugins/acl/localization/pl_PL.inc +++ b/plugins/acl/localization/pl_PL.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Udostępnianie'; $labels['myrights'] = 'Prawa dostępu'; $labels['username'] = 'Użytkownik:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Akcje na prawach...'; $labels['anyone'] = 'Wszyscy (anyone)'; $labels['anonymous'] = 'Goście (anonymous)'; $labels['identifier'] = 'Identyfikator'; + $labels['acll'] = 'Podgląd'; $labels['aclr'] = 'Odczyt (Read)'; $labels['acls'] = 'Zmiana stanu wiadomości (Keep)'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Usuwanie wiadomości (Delete)'; $labels['acle'] = 'Porządkowanie'; $labels['aclx'] = 'Usuwanie folderu (Delete)'; $labels['acla'] = 'Administracja'; + $labels['aclfull'] = 'Wszystkie'; $labels['aclother'] = 'Pozostałe'; $labels['aclread'] = 'Odczyt'; $labels['aclwrite'] = 'Zapis'; $labels['acldelete'] = 'Usuwanie'; + $labels['shortacll'] = 'Podgląd'; $labels['shortaclr'] = 'Odczyt'; $labels['shortacls'] = 'Zmiana'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Usuwanie'; $labels['shortacle'] = 'Porządkowanie'; $labels['shortaclx'] = 'Usuwanie folderu'; $labels['shortacla'] = 'Administracja'; + $labels['shortaclother'] = 'Pozostałe'; $labels['shortaclread'] = 'Odczyt'; $labels['shortaclwrite'] = 'Zapis'; $labels['shortacldelete'] = 'Usuwanie'; + $labels['longacll'] = 'Pozwala na subskrybowanie folderu i powoduje, że jest on widoczny na liście'; $labels['longaclr'] = 'Folder może być otwarty w trybie do odczytu'; $labels['longacls'] = 'Pozwala na zmienę stanu wiadomości'; @@ -72,19 +78,22 @@ $labels['longaclt'] = 'Pozwala zmianiać flagę "Usunięto" wiadomości'; $labels['longacle'] = 'Pozwala na usuwanie wiadomości oznaczonych do usunięcia'; $labels['longaclx'] = 'Pozwala na zmianę nazwy lub usunięcie folderu'; $labels['longacla'] = 'Pozwala na zmiane praw dostępu do folderu'; + $labels['longaclfull'] = 'Pełna kontrola włącznie z administrowaniem folderem'; $labels['longaclread'] = 'Folder może być otwarty w trybie do odczytu'; $labels['longaclwrite'] = 'Wiadomości mogą być oznaczane, zapisywane i kopiowane do folderu'; $labels['longacldelete'] = 'Wiadomości mogą być usuwane'; + $messages['deleting'] = 'Usuwanie praw dostępu...'; $messages['saving'] = 'Zapisywanie praw dostępu...'; $messages['updatesuccess'] = 'Pomyślnie zmieniono prawa dostępu'; $messages['deletesuccess'] = 'Pomyślnie usunięto prawa dostępu'; $messages['createsuccess'] = 'Pomyślnie dodano prawa dostępu'; -$messages['updateerror'] = 'Nie udało się zaktualizować praw dostępu'; +$messages['updateerror'] = 'Nie udało się zmienić praw dostępu'; $messages['deleteerror'] = 'Nie udało się usunąć praw dostępu'; $messages['createerror'] = 'Nie udało się dodać praw dostępu'; $messages['deleteconfirm'] = 'Czy na pewno chcesz usunąć prawa wybranym użytkownikom?'; $messages['norights'] = 'Nie wybrano praw dostępu!'; $messages['nouser'] = 'Nie podano nazwy użytkownika!'; + ?> diff --git a/plugins/acl/localization/pt_BR.inc b/plugins/acl/localization/pt_BR.inc index 70217626f..eaf042110 100644 --- a/plugins/acl/localization/pt_BR.inc +++ b/plugins/acl/localization/pt_BR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Compartilhamento'; $labels['myrights'] = 'Permissões de Acesso'; $labels['username'] = 'Usuário:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Ações de direito de acesso...'; $labels['anyone'] = 'Todos os usuários (qualquer um)'; $labels['anonymous'] = 'Convidados (anônimos)'; $labels['identifier'] = 'Identificador'; + $labels['acll'] = 'Pesquisar'; $labels['aclr'] = 'Ler mensagens'; $labels['acls'] = 'Manter estado de enviado'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Apagar mensagens'; $labels['acle'] = 'Expurgar'; $labels['aclx'] = 'Apagar pasta'; $labels['acla'] = 'Administrar'; + $labels['aclfull'] = 'Controle total'; $labels['aclother'] = 'Outro'; $labels['aclread'] = 'Ler'; $labels['aclwrite'] = 'Salvar'; $labels['acldelete'] = 'Excluir'; + $labels['shortacll'] = 'Pesquisar'; $labels['shortaclr'] = 'Ler'; $labels['shortacls'] = 'Manter'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Excluir'; $labels['shortacle'] = 'Expurgar'; $labels['shortaclx'] = 'Excluir pasta'; $labels['shortacla'] = 'Administrar'; + $labels['shortaclother'] = 'Outro'; $labels['shortaclread'] = 'Ler'; $labels['shortaclwrite'] = 'Salvar'; $labels['shortacldelete'] = 'Excluir'; + $labels['longacll'] = 'A pasta está visível nas listas e pode ser inscrita para'; $labels['longaclr'] = 'A pasta pode ser aberta para leitura'; $labels['longacls'] = 'Marcador de Mensagem Enviada pode ser modificadas'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'O marcador de Mensagens Excluídas podem ser modificadas' $labels['longacle'] = 'As mensagens podem ser expurgadas'; $labels['longaclx'] = 'A pasta pode ser apagada ou renomeada'; $labels['longacla'] = 'As permissões de acesso da pasta podem ser alteradas'; + $labels['longaclfull'] = 'Controle total incluindo a pasta de administração'; $labels['longaclread'] = 'A pasta pode ser aberta para leitura'; $labels['longaclwrite'] = 'As mensagens podem ser marcadas, salvas ou copiadas para a pasta'; $labels['longacldelete'] = 'Mensagens podem ser apagadas'; + $messages['deleting'] = 'Apagando permissões de acesso...'; $messages['saving'] = 'Salvando permissões de acesso...'; $messages['updatesuccess'] = 'Permissões de acesso alteradas com sucesso'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Não foi possível adicionar as permissões de acess $messages['deleteconfirm'] = 'Tem certeza que deseja remover as permissões de acesso do(s) usuário(s) delecionado(s)?'; $messages['norights'] = 'Não foram definidas permissões!'; $messages['nouser'] = 'Nome de usuário não especificado!'; + ?> diff --git a/plugins/acl/localization/pt_PT.inc b/plugins/acl/localization/pt_PT.inc index 3f1a8f076..9a2e9a320 100644 --- a/plugins/acl/localization/pt_PT.inc +++ b/plugins/acl/localization/pt_PT.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Partilhar'; $labels['myrights'] = 'Permissões de acesso'; $labels['username'] = 'Utilizador:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Acções de permissão de acesso...'; $labels['anyone'] = 'Todos os utilizadores (todos)'; $labels['anonymous'] = 'Convidado (anónimo)'; $labels['identifier'] = 'Identificador'; + $labels['acll'] = 'Pesquisar'; $labels['aclr'] = 'Ler mensagens'; $labels['acls'] = 'Manter estado de enviado'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Eliminar mensagens'; $labels['acle'] = 'Eliminar'; $labels['aclx'] = 'Eliminar pasta'; $labels['acla'] = 'Administrar'; + $labels['aclfull'] = 'Controlo total'; $labels['aclother'] = 'Outro'; $labels['aclread'] = 'Ler'; $labels['aclwrite'] = 'Guardar'; $labels['acldelete'] = 'Eliminar'; + $labels['shortacll'] = 'Pesquisar'; $labels['shortaclr'] = 'Ler'; $labels['shortacls'] = 'Manter'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Eliminar'; $labels['shortacle'] = 'Eliminar'; $labels['shortaclx'] = 'Eliminar pasta'; $labels['shortacla'] = 'Administrar'; + $labels['shortaclother'] = 'Outro'; $labels['shortaclread'] = 'Ler'; $labels['shortaclwrite'] = 'Guardar'; $labels['shortacldelete'] = 'Eliminar'; + $labels['longacll'] = 'A pasta está visível na lista e pode subscrita para'; $labels['longaclr'] = 'A pasta pode ser aberta para leitura'; $labels['longacls'] = 'O marcador de mensagem enviada pode ser alterado'; @@ -72,19 +78,22 @@ $labels['longaclt'] = 'O marcador de mensagens Eliminadas pode ser alterado'; $labels['longacle'] = 'As mensagens podem ser eliminadas'; $labels['longaclx'] = 'A pasta pode ser eliminada ou renomeada'; $labels['longacla'] = 'As permissões de acesso da pasta podem ser alteradas'; + $labels['longaclfull'] = 'Controlo total incluindo administração da pasta'; $labels['longaclread'] = 'A pasta pode ser aberta para leitura'; $labels['longaclwrite'] = 'As mensagens podem ser marcadas, guardadas ou copiadas para a pasta'; $labels['longacldelete'] = 'As mensagens podem ser eliminadas'; + $messages['deleting'] = 'A eliminar as permissões de acesso...'; $messages['saving'] = 'A guardar as permissões de acesso...'; $messages['updatesuccess'] = 'Permissões de acesso alteradas com sucesso'; $messages['deletesuccess'] = 'Permissões de acesso eliminadas com sucesso'; $messages['createsuccess'] = 'Permissões de acesso adicionadas com sucesso'; -$messages['updateerror'] = 'Não foi possível actualizar os direitos de acesso'; +$messages['updateerror'] = 'Não foi possível actualizar as permissões de acesso'; $messages['deleteerror'] = 'Não foi possível eliminar as permissões de acesso'; $messages['createerror'] = 'Não foi possível adicionar as permissões de acesso'; $messages['deleteconfirm'] = 'Tem a certeza que pretende remover as permissões de acesso do(s) utilizador(es) seleccionado(s)?'; $messages['norights'] = 'Não foram especificadas quaisquer permissões!'; $messages['nouser'] = 'Não foi especificado nenhum nome de utilizador!'; + ?> diff --git a/plugins/acl/localization/ro_RO.inc b/plugins/acl/localization/ro_RO.inc index 571314b42..17124e48b 100644 --- a/plugins/acl/localization/ro_RO.inc +++ b/plugins/acl/localization/ro_RO.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Partajare'; $labels['myrights'] = 'Drepturi de acces'; $labels['username'] = 'Utilizator:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Acțiunea drepturilor de acces...'; $labels['anyone'] = 'Toți utilizatori (oricare)'; $labels['anonymous'] = 'Vizitator'; $labels['identifier'] = 'Identificator'; + $labels['acll'] = 'Caută'; $labels['aclr'] = 'Citire mesaje'; $labels['acls'] = 'Menține starea citirii'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Ștergere mesaje'; $labels['acle'] = 'Elimină'; $labels['aclx'] = 'Ștergere dosar'; $labels['acla'] = 'Administrează'; + $labels['aclfull'] = 'Control complet'; $labels['aclother'] = 'Altul'; $labels['aclread'] = 'Citeşte'; $labels['aclwrite'] = 'Scrie'; $labels['acldelete'] = 'Șterge'; + $labels['shortacll'] = 'Caută'; $labels['shortaclr'] = 'Citeşte'; $labels['shortacls'] = 'Păstrează'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Șterge'; $labels['shortacle'] = 'Elimină'; $labels['shortaclx'] = 'Ștergere dosar'; $labels['shortacla'] = 'Administrează'; + $labels['shortaclother'] = 'Altul'; $labels['shortaclread'] = 'Citeşte'; $labels['shortaclwrite'] = 'Scrie'; $labels['shortacldelete'] = 'Șterge'; + $labels['longacll'] = 'Dosarul este vizibil pe liste și se poate subscrie la acesta'; $labels['longaclr'] = 'Dosarul se poate deschide pentru citire'; $labels['longacls'] = 'Indicatorul de Văzut a fost schimbat'; @@ -72,19 +78,22 @@ $labels['longaclt'] = 'Indicatorul de Șters al mesajelor se poate modifica'; $labels['longacle'] = 'Mesajele se pot elimina'; $labels['longaclx'] = 'Dosarul se poate șterge sau redenumi'; $labels['longacla'] = 'Drepturile de acces la dosar se pot schimba'; + $labels['longaclfull'] = 'Control complet include și administrare dosar'; $labels['longaclread'] = 'Dosarul se poate deschide pentru citire'; $labels['longaclwrite'] = 'Mesajul se poate marca, scrie sau copia într-un dosar'; $labels['longacldelete'] = 'Mesajele se pot șterge'; + $messages['deleting'] = 'Șterg drepturile de access...'; $messages['saving'] = 'Salvez drepturi accesare...'; $messages['updatesuccess'] = 'Drepturile de acces au fost schimbate cu succes'; $messages['deletesuccess'] = 'Drepturile de acces au fost șterse cu succes'; $messages['createsuccess'] = 'Drepturile de acces au fost adăugate cu succes'; -$messages['updateerror'] = 'Nu s-au putut actualiza drepturile de acces'; +$messages['updateerror'] = 'Unable to update access rights'; $messages['deleteerror'] = 'Nu s-au putut șterge drepturile de acces'; $messages['createerror'] = 'Nu s-au putut adăuga drepturi de acces'; $messages['deleteconfirm'] = 'Sunteți sigur că doriți să ștergeți drepturile de acces la utilizatorul (ii) selectați?'; $messages['norights'] = 'Nu au fost specificate drepturi!'; $messages['nouser'] = 'Nu a fost specificat niciun utilizator!'; + ?> diff --git a/plugins/acl/localization/ru_RU.inc b/plugins/acl/localization/ru_RU.inc index 3fcb3f970..93eb9eff2 100644 --- a/plugins/acl/localization/ru_RU.inc +++ b/plugins/acl/localization/ru_RU.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Совместный доступ'; $labels['myrights'] = 'Права доступа'; $labels['username'] = 'Пользователь:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Действия с правами доступа...'; $labels['anyone'] = 'Все пользователи (любые)'; $labels['anonymous'] = 'Гости (анонимные)'; $labels['identifier'] = 'Идентификатор'; + $labels['acll'] = 'Поиск'; $labels['aclr'] = 'Прочитать сообщения'; $labels['acls'] = 'Оставить состояние Увидено'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Удалить сообщения'; $labels['acle'] = 'Уничтожить сообщения'; $labels['aclx'] = 'Удалить папку'; $labels['acla'] = 'Администрировать'; + $labels['aclfull'] = 'Полный доступ'; $labels['aclother'] = 'Другое'; $labels['aclread'] = 'Чтение'; $labels['aclwrite'] = 'Запись'; $labels['acldelete'] = 'Удаление'; + $labels['shortacll'] = 'Поиск'; $labels['shortaclr'] = 'Чтение'; $labels['shortacls'] = 'Оставить'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Удаление'; $labels['shortacle'] = 'Уничтожить сообщения'; $labels['shortaclx'] = 'Удаление папки'; $labels['shortacla'] = 'Администрировать'; + $labels['shortaclother'] = 'Другое'; $labels['shortaclread'] = 'Чтение'; $labels['shortaclwrite'] = 'Запись'; $labels['shortacldelete'] = 'Удаление'; + $labels['longacll'] = 'Папка видима в списках и доступна для подписки'; $labels['longaclr'] = 'Эта папка может быть открыта для чтения'; $labels['longacls'] = 'Флаг Прочитано может быть изменен'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'Флаг Удалено может быть измене $labels['longacle'] = 'Сообщения могут быть уничтожены'; $labels['longaclx'] = 'Эта папка может быть переименована или удалена'; $labels['longacla'] = 'Права доступа к папке могут быть изменены'; + $labels['longaclfull'] = 'Полный доступ, включая управление папкой'; $labels['longaclread'] = 'Эта папка может быть открыта для чтения'; $labels['longaclwrite'] = 'Сообщения можно помечать, записывать или копировать в папку'; $labels['longacldelete'] = 'Сообщения можно удалять'; + $messages['deleting'] = 'Удаление прав доступа...'; $messages['saving'] = 'Сохранение прав доступа...'; $messages['updatesuccess'] = 'Права доступа успешно изменены'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Невозможно добавить права д $messages['deleteconfirm'] = 'Вы уверены в том, что хотите удалить права доступа выбранных пользователей?'; $messages['norights'] = 'Права доступа не установлены!'; $messages['nouser'] = 'Не определено имя пользователя!'; + ?> diff --git a/plugins/acl/localization/sk_SK.inc b/plugins/acl/localization/sk_SK.inc index eb410f119..64b146cfc 100644 --- a/plugins/acl/localization/sk_SK.inc +++ b/plugins/acl/localization/sk_SK.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Zdieľanie'; $labels['myrights'] = 'Prístupové práva'; $labels['username'] = 'Používateľ:'; @@ -24,12 +25,13 @@ $labels['actions'] = 'Prístupové práva činností...'; $labels['anyone'] = 'Všetci užívatelia (ktokoľvek)'; $labels['anonymous'] = 'Hostia (anonymne)'; $labels['identifier'] = 'Identifikátor'; + $labels['acll'] = 'Vyhľadať'; $labels['aclr'] = 'Čítať správy'; $labels['acls'] = 'Ponechať ako prečítané'; $labels['aclw'] = 'Príznaky na zapisovanie'; $labels['acli'] = 'Vložiť (Skopírovať do)'; -$labels['aclp'] = 'Odoslať na'; +$labels['aclp'] = 'Post'; $labels['aclc'] = 'Vytvoriť podpriečinky'; $labels['aclk'] = 'Vytvoriť podpriečinky'; $labels['acld'] = 'Zmazať správy'; @@ -37,17 +39,19 @@ $labels['aclt'] = 'Zmazať správy'; $labels['acle'] = 'Vyčistiť'; $labels['aclx'] = 'Zmazať priečinok'; $labels['acla'] = 'Spravovať'; + $labels['aclfull'] = 'Plný prístup'; $labels['aclother'] = 'Ostatné'; $labels['aclread'] = 'Čítanie'; $labels['aclwrite'] = 'Zápis'; $labels['acldelete'] = 'Odstrániť'; + $labels['shortacll'] = 'Vyhľadať'; $labels['shortaclr'] = 'Čítanie'; $labels['shortacls'] = 'Ponechať'; $labels['shortaclw'] = 'Zápis'; $labels['shortacli'] = 'Vložiť'; -$labels['shortaclp'] = 'Odoslať na'; +$labels['shortaclp'] = 'Post'; $labels['shortaclc'] = 'Vytvoriť'; $labels['shortaclk'] = 'Vytvoriť'; $labels['shortacld'] = 'Odstrániť'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Odstrániť'; $labels['shortacle'] = 'Vyčistiť'; $labels['shortaclx'] = 'Odstrániť priečinok'; $labels['shortacla'] = 'Spravovať'; + $labels['shortaclother'] = 'Ostatné'; $labels['shortaclread'] = 'Čítanie'; $labels['shortaclwrite'] = 'Zápis'; $labels['shortacldelete'] = 'Odstrániť'; + $labels['longacll'] = 'Priečinok je v zoznamoch viditeľný a dá sa doň zapísať'; $labels['longaclr'] = 'Prečinok je možné otvoriť na čítanie'; $labels['longacls'] = 'Príznak "Prečítané" je možné zmeniť'; @@ -72,19 +78,22 @@ $labels['longaclt'] = 'Príznak správ "Vymazané" je možné zmeniť'; $labels['longacle'] = 'Správy je možné vymazať'; $labels['longaclx'] = 'Priečinok je možné vymazať alebo premenovať'; $labels['longacla'] = 'Je možné zmeniť prístupové práva k priečinku'; + $labels['longaclfull'] = 'Úplný prístup, vrátane správy priečinka'; $labels['longaclread'] = 'Prečinok je možné otvoriť na čítanie'; $labels['longaclwrite'] = 'Správy je možné označiť, zapísať alebo skopírovať do prečinka'; $labels['longacldelete'] = 'Správy je možné vymazať'; + $messages['deleting'] = 'Odstraňovanie prístupových práv...'; $messages['saving'] = 'Ukladanie prístupových práv...'; $messages['updatesuccess'] = 'Prístupové práva boli úspešne zmenené'; $messages['deletesuccess'] = 'Prístupové práva boli úspešne vymazané'; $messages['createsuccess'] = 'Prístupové práva boli úspešne pridané'; -$messages['updateerror'] = 'Nemožno aktualizovať prístupové práva'; +$messages['updateerror'] = 'Prístupové práva sa nepodarilo aktualizovať'; $messages['deleteerror'] = 'Prístupové práva sa nepodarilo vymazať'; $messages['createerror'] = 'Prístupové práva sa nepodarilo pridať'; $messages['deleteconfirm'] = 'Ste si istý, že chcete odstrániť prístupové práva vybranému používateľovi/používateľom?'; $messages['norights'] = 'Neboli určené žiadne práva!'; $messages['nouser'] = 'Nebolo určené žiadne meno používateľa!'; + ?> diff --git a/plugins/acl/localization/sl_SI.inc b/plugins/acl/localization/sl_SI.inc index fb75af833..8c8a552a7 100644 --- a/plugins/acl/localization/sl_SI.inc +++ b/plugins/acl/localization/sl_SI.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Skupna raba'; $labels['myrights'] = 'Pravice dostopa'; $labels['username'] = 'Uporabnik:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Nastavitve pravic dostopa'; $labels['anyone'] = 'Vsi uporabniki'; $labels['anonymous'] = 'Gosti'; $labels['identifier'] = 'Označevalnik'; + $labels['acll'] = 'Iskanje'; $labels['aclr'] = 'Prebrana sporočila'; $labels['acls'] = 'Ohrani status \'Prebrano\''; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Izbriši sporočila'; $labels['acle'] = 'Izbriši'; $labels['aclx'] = 'Izbriši mapo'; $labels['acla'] = 'Uredi'; + $labels['aclfull'] = 'Popolno upravljanje'; $labels['aclother'] = 'Ostalo'; $labels['aclread'] = 'Preberi'; $labels['aclwrite'] = 'Sestavi'; $labels['acldelete'] = 'Izbriši'; + $labels['shortacll'] = 'Iskanje'; $labels['shortaclr'] = 'Preberi'; $labels['shortacls'] = 'Ohrani'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Izbriši'; $labels['shortacle'] = 'Izbriši'; $labels['shortaclx'] = 'Izbriši mapo'; $labels['shortacla'] = 'Uredi'; + $labels['shortaclother'] = 'Ostalo'; $labels['shortaclread'] = 'Preberi'; $labels['shortaclwrite'] = 'Sestavi'; $labels['shortacldelete'] = 'Izbriši'; + $labels['longacll'] = 'Mapa je vidna na seznamih in jo lahko naročite'; $labels['longaclr'] = 'Mapa je na voljo za branje'; $labels['longacls'] = 'Oznaka \'Prebrano sporočilo\' je lahko spremenjena'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'Oznako sporočila \'Izbrisano\' je mogoče spremeniti'; $labels['longacle'] = 'Sporočila so lahko izbrisana'; $labels['longaclx'] = 'Mapa je lahko izbrisana ali preimenovana'; $labels['longacla'] = 'Pravice na mapi so lahko spremenjene'; + $labels['longaclfull'] = 'Popolno upravljanje, vključno z urejanjem map'; $labels['longaclread'] = 'Mapa je na voljo za branje'; $labels['longaclwrite'] = 'Sporočila je mogoče označiti, sestaviti ali kopirati v mapo'; $labels['longacldelete'] = 'Sporočila so lahko izbrisana'; + $messages['deleting'] = 'Brisanje pravic'; $messages['saving'] = 'Shranjevanje pravic'; $messages['updatesuccess'] = 'Pravice so bile uspešno spremenjene'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Pravic ni bilo mogoče dodati'; $messages['deleteconfirm'] = 'Ste prepričani, da želite odstraniti pravice dostopa za izbrane uporabnike?'; $messages['norights'] = 'Pravic niste določili'; $messages['nouser'] = 'Niste določili uporabnišlega imena'; + ?> diff --git a/plugins/acl/localization/sr_CS.inc b/plugins/acl/localization/sr_CS.inc index 9e9a78028..19f744066 100644 --- a/plugins/acl/localization/sr_CS.inc +++ b/plugins/acl/localization/sr_CS.inc @@ -15,8 +15,85 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Дељење'; $labels['myrights'] = 'Права приступа'; $labels['username'] = 'Корисник:'; +$labels['advanced'] = 'advanced mode'; $labels['newuser'] = 'Додај унос'; +$labels['actions'] = 'Access right actions...'; +$labels['anyone'] = 'All users (anyone)'; +$labels['anonymous'] = 'Guests (anonymous)'; +$labels['identifier'] = 'Identifier'; + +$labels['acll'] = 'Lookup'; +$labels['aclr'] = 'Read messages'; +$labels['acls'] = 'Keep Seen state'; +$labels['aclw'] = 'Write flags'; +$labels['acli'] = 'Insert (Copy into)'; +$labels['aclp'] = 'Post'; +$labels['aclc'] = 'Create subfolders'; +$labels['aclk'] = 'Create subfolders'; +$labels['acld'] = 'Delete messages'; +$labels['aclt'] = 'Delete messages'; +$labels['acle'] = 'Expunge'; +$labels['aclx'] = 'Delete folder'; +$labels['acla'] = 'Administer'; + +$labels['aclfull'] = 'Full control'; +$labels['aclother'] = 'Other'; +$labels['aclread'] = 'Read'; +$labels['aclwrite'] = 'Write'; +$labels['acldelete'] = 'Delete'; + +$labels['shortacll'] = 'Lookup'; +$labels['shortaclr'] = 'Read'; +$labels['shortacls'] = 'Keep'; +$labels['shortaclw'] = 'Write'; +$labels['shortacli'] = 'Insert'; +$labels['shortaclp'] = 'Post'; +$labels['shortaclc'] = 'Create'; +$labels['shortaclk'] = 'Create'; +$labels['shortacld'] = 'Delete'; +$labels['shortaclt'] = 'Delete'; +$labels['shortacle'] = 'Expunge'; +$labels['shortaclx'] = 'Folder delete'; +$labels['shortacla'] = 'Administer'; + +$labels['shortaclother'] = 'Other'; +$labels['shortaclread'] = 'Read'; +$labels['shortaclwrite'] = 'Write'; +$labels['shortacldelete'] = 'Delete'; + +$labels['longacll'] = 'The folder is visible on lists and can be subscribed to'; +$labels['longaclr'] = 'The folder can be opened for reading'; +$labels['longacls'] = 'Messages Seen flag can be changed'; +$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted'; +$labels['longacli'] = 'Messages can be written or copied to the folder'; +$labels['longaclp'] = 'Messages can be posted to this folder'; +$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longacld'] = 'Messages Delete flag can be changed'; +$labels['longaclt'] = 'Messages Delete flag can be changed'; +$labels['longacle'] = 'Messages can be expunged'; +$labels['longaclx'] = 'The folder can be deleted or renamed'; +$labels['longacla'] = 'The folder access rights can be changed'; + +$labels['longaclfull'] = 'Full control including folder administration'; +$labels['longaclread'] = 'The folder can be opened for reading'; +$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder'; +$labels['longacldelete'] = 'Messages can be deleted'; + +$messages['deleting'] = 'Deleting access rights...'; +$messages['saving'] = 'Saving access rights...'; +$messages['updatesuccess'] = 'Successfully changed access rights'; +$messages['deletesuccess'] = 'Successfully deleted access rights'; +$messages['createsuccess'] = 'Successfully added access rights'; +$messages['updateerror'] = 'Ubable to update access rights'; +$messages['deleteerror'] = 'Unable to delete access rights'; +$messages['createerror'] = 'Unable to add access rights'; +$messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?'; +$messages['norights'] = 'No rights has been specified!'; +$messages['nouser'] = 'No username has been specified!'; + ?> diff --git a/plugins/acl/localization/sv_SE.inc b/plugins/acl/localization/sv_SE.inc index 37c374a29..6c68080de 100644 --- a/plugins/acl/localization/sv_SE.inc +++ b/plugins/acl/localization/sv_SE.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Utdelning'; $labels['myrights'] = 'Åtkomsträttigheter'; $labels['username'] = 'Användare:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Hantera åtkomsträttigheter...'; $labels['anyone'] = 'Alla användare (alla)'; $labels['anonymous'] = 'Gäster (anonyma)'; $labels['identifier'] = 'Identifikation'; + $labels['acll'] = 'Uppslagning'; $labels['aclr'] = 'Läs meddelanden'; $labels['acls'] = 'Behåll status Sett'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Ta bort meddelanden'; $labels['acle'] = 'Utplåna'; $labels['aclx'] = 'Ta bort katalog'; $labels['acla'] = 'Administrera'; + $labels['aclfull'] = 'Full kontroll'; $labels['aclother'] = 'Övrig'; $labels['aclread'] = 'Läs'; $labels['aclwrite'] = 'Skriv'; $labels['acldelete'] = 'Ta bort'; + $labels['shortacll'] = 'Uppslagning'; $labels['shortaclr'] = 'Läs'; $labels['shortacls'] = 'Behåll'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Ta bort'; $labels['shortacle'] = 'Utplåna'; $labels['shortaclx'] = 'Ta bort katalog'; $labels['shortacla'] = 'Administrera'; + $labels['shortaclother'] = 'Övrig'; $labels['shortaclread'] = 'Läs'; $labels['shortaclwrite'] = 'Skriv'; $labels['shortacldelete'] = 'Ta bort'; + $labels['longacll'] = 'Katalogen är synlig i listor och den kan prenumereras på'; $labels['longaclr'] = 'Katalogen kan öppnas för läsning'; $labels['longacls'] = 'Meddelandeflagga Sett kan ändras'; @@ -72,10 +78,12 @@ $labels['longaclt'] = 'Meddelandeflagga Raderat kan ändras'; $labels['longacle'] = 'Meddelanden kan utplånas'; $labels['longaclx'] = 'Katalogen kan tas bort eller ges annat namn'; $labels['longacla'] = 'Katalogens åtkomsträttigheter kan ändras'; + $labels['longaclfull'] = 'Full kontroll inklusive katalogadministration'; $labels['longaclread'] = 'Katalogen kan öppnas för läsning'; $labels['longaclwrite'] = 'Meddelanden kan märkas, skrivas eller kopieras till katalogen'; $labels['longacldelete'] = 'Meddelanden kan tas bort'; + $messages['deleting'] = 'Tar bort åtkomsträttigheter...'; $messages['saving'] = 'Sparar åtkomsträttigheter...'; $messages['updatesuccess'] = 'Åtkomsträttigheterna är ändrade'; @@ -87,4 +95,5 @@ $messages['createerror'] = 'Åtkomsträttigheterna kunde inte läggas till'; $messages['deleteconfirm'] = 'Vill du verkligen ta bort åtkomsträttigheterna för markerade användare?'; $messages['norights'] = 'Inga åtkomsträttigheter angavs!'; $messages['nouser'] = 'Inget användarnamn angavs!'; + ?> diff --git a/plugins/acl/localization/tr_TR.inc b/plugins/acl/localization/tr_TR.inc index 673403b0b..1569b5926 100644 --- a/plugins/acl/localization/tr_TR.inc +++ b/plugins/acl/localization/tr_TR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Paylaşım'; $labels['myrights'] = 'Erişim Hakları'; $labels['username'] = 'Kullanıcı:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Erişim hakları aksiyonları...'; $labels['anyone'] = 'Tüm kullanıcılar(kim olursa)'; $labels['anonymous'] = 'Ziyaretçiler(anonim)'; $labels['identifier'] = 'Tanımlayıcı'; + $labels['acll'] = 'Arama'; $labels['aclr'] = 'Mesajları oku'; $labels['acls'] = 'Göründü durumunu muhafaza et'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Mesajları sil'; $labels['acle'] = 'Sil'; $labels['aclx'] = 'Dizini sil'; $labels['acla'] = 'Yönet'; + $labels['aclfull'] = 'Tam kontrol'; $labels['aclother'] = 'Diğer'; $labels['aclread'] = 'Oku'; $labels['aclwrite'] = 'Yaz'; $labels['acldelete'] = 'Sil'; + $labels['shortacll'] = 'Arama'; $labels['shortaclr'] = 'Oku'; $labels['shortacls'] = 'Koru'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Sil'; $labels['shortacle'] = 'Sil'; $labels['shortaclx'] = 'Dizin sil'; $labels['shortacla'] = 'Yönet'; + $labels['shortaclother'] = 'Diğer'; $labels['shortaclread'] = 'Oku'; $labels['shortaclwrite'] = 'Yaz'; $labels['shortacldelete'] = 'Sil'; + $labels['longacll'] = 'Klasör listesinde görülebilir ve abone olunabilir'; $labels['longaclr'] = 'Dizin yazma için okunabilir'; $labels['longacls'] = 'Mesajların göründü bayrağı değiştirilebilir'; @@ -72,19 +78,22 @@ $labels['longaclt'] = 'mesajları sil bayrakları değiştirilebilir'; $labels['longacle'] = 'Mesajlar silinebilir'; $labels['longaclx'] = 'Klasörü silinebilir veya yeniden adlandırılabilir'; $labels['longacla'] = 'Dizin erişim hakları değiştirilebilir'; + $labels['longaclfull'] = 'Dizin yönetimi de dahil olmak üzere tam kontrol'; $labels['longaclread'] = 'Dizin yazma için okunabilir'; $labels['longaclwrite'] = 'Dizin yönetimi de dahil olmak üzere tam kontrol'; $labels['longacldelete'] = 'Mesajlar silinebilir'; + $messages['deleting'] = 'Erişim hakları siliniyor...'; $messages['saving'] = 'Erişim hakları saklanıyor...'; $messages['updatesuccess'] = 'Erişim hakları başarıyla değiştirildi'; $messages['deletesuccess'] = 'Erişim hakları başarıyla silindi'; $messages['createsuccess'] = 'Erişim hakları başarıyla eklendi'; -$messages['updateerror'] = 'Erişim hakları güncellenemedi'; +$messages['updateerror'] = 'Erişim haklarını güncellenemedi'; $messages['deleteerror'] = 'Erişim haklarını silinemedi'; $messages['createerror'] = 'Erişim hakları eklenemedi'; $messages['deleteconfirm'] = 'Seçilen kullanıcılar için erişim haklarını silmek istediğinizden emin misiniz?'; $messages['norights'] = 'Hiçbir hak belirtilmemiş!'; $messages['nouser'] = 'Hiçbir kullanıcı belirtilmemiş!'; + ?> diff --git a/plugins/acl/localization/vi_VN.inc b/plugins/acl/localization/vi_VN.inc index a3839982b..1a6ea58e7 100644 --- a/plugins/acl/localization/vi_VN.inc +++ b/plugins/acl/localization/vi_VN.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = 'Chia sẻ'; $labels['myrights'] = 'Quyền truy cập'; $labels['username'] = 'Người dùng:'; @@ -24,6 +25,7 @@ $labels['actions'] = 'Cách ứng xử quyền truy cập'; $labels['anyone'] = 'Tất cả người dùng (bất kỳ ai)'; $labels['anonymous'] = 'Khách (nặc danh)'; $labels['identifier'] = 'Định danh'; + $labels['acll'] = 'Tìm kiếm'; $labels['aclr'] = 'Đọc thư'; $labels['acls'] = 'Giữ trạng thái đã xem qua'; @@ -37,11 +39,13 @@ $labels['aclt'] = 'Xóa thư'; $labels['acle'] = 'Thải bỏ'; $labels['aclx'] = 'Xóa giữ liệu'; $labels['acla'] = 'Quản lý'; + $labels['aclfull'] = 'Quản lý toàn bộ'; $labels['aclother'] = 'Loại khác'; $labels['aclread'] = 'Đọc'; $labels['aclwrite'] = 'Viết'; $labels['acldelete'] = 'Xoá'; + $labels['shortacll'] = 'Tìm kiếm'; $labels['shortaclr'] = 'Đọc'; $labels['shortacls'] = 'Giữ'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = 'Xoá'; $labels['shortacle'] = 'Thải bỏ'; $labels['shortaclx'] = 'Giữ liệu được xóa'; $labels['shortacla'] = 'Quản lý'; + $labels['shortaclother'] = 'Loại khác'; $labels['shortaclread'] = 'Đọc'; $labels['shortaclwrite'] = 'Viết'; $labels['shortacldelete'] = 'Xoá'; + $labels['longacll'] = 'Giữ liệu đã được liệt kê và có thể đóng góp'; $labels['longaclr'] = 'Giữ liệu có thể được mở để đọc'; $labels['longacls'] = 'Cờ đánh dấu thư đã xem qua có thể thay đổi'; @@ -72,18 +78,22 @@ $labels['longaclt'] = 'Cờ đánh dấu thư xóa có thể thay đổi'; $labels['longacle'] = 'Thư có thể thải bỏ'; $labels['longaclx'] = 'Giữ liệu có thể xóa được hoặc đặt lại tên'; $labels['longacla'] = 'Quyên truy cập giữ liệu có thể thay đổi'; + $labels['longaclfull'] = 'Quản lý toàn bộ bao gồm cả sự thi hành giữ liệu'; $labels['longaclread'] = 'Giữ liệu có thể được mở để đọc'; $labels['longaclwrite'] = 'Thư có thể được đánh dấu, ghi hoăc sao chép vào giữ liệu'; $labels['longacldelete'] = 'Thư có thể bị xóa'; + $messages['deleting'] = 'Xóa quyền truy cập...'; $messages['saving'] = 'Lưu quyền truy cập...'; $messages['updatesuccess'] = 'Thay đổi quyền truy cập thành công...'; $messages['deletesuccess'] = 'Xóa quyền truy cập thành công...'; $messages['createsuccess'] = 'Thêm quyền truy cập thành công...'; +$messages['updateerror'] = 'Không thể cập nhật quyền truy cập'; $messages['deleteerror'] = 'Khôngthể xóa quyền truy cập'; $messages['createerror'] = 'Không thể thêm quyền truy cập'; $messages['deleteconfirm'] = 'Bạn có chắc là muốn xóa bỏ quyền truy cập của người dùng được chọn?'; $messages['norights'] = 'Chưa có quyền nào được chỉ định!'; $messages['nouser'] = 'Chưa có tên truy nhập được chỉ định!'; + ?> diff --git a/plugins/acl/localization/zh_CN.inc b/plugins/acl/localization/zh_CN.inc index 68d294489..ebf314043 100644 --- a/plugins/acl/localization/zh_CN.inc +++ b/plugins/acl/localization/zh_CN.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = '共享'; $labels['myrights'] = '访问权限'; $labels['username'] = '用户:'; @@ -24,6 +25,7 @@ $labels['actions'] = '权限设置...'; $labels['anyone'] = '所有用户(任何人)'; $labels['anonymous'] = '来宾(匿名)'; $labels['identifier'] = '标识符'; + $labels['acll'] = '查找'; $labels['aclr'] = '读取消息'; $labels['acls'] = '保存已读状态'; @@ -37,11 +39,13 @@ $labels['aclt'] = '删除消息'; $labels['acle'] = '清除'; $labels['aclx'] = '删除文件夹'; $labels['acla'] = '管理'; + $labels['aclfull'] = '全部控制'; $labels['aclother'] = '其它'; $labels['aclread'] = '读取'; $labels['aclwrite'] = '写入'; $labels['acldelete'] = '删除'; + $labels['shortacll'] = '查找'; $labels['shortaclr'] = '读取'; $labels['shortacls'] = '保存'; @@ -55,27 +59,41 @@ $labels['shortaclt'] = '删除'; $labels['shortacle'] = '清除'; $labels['shortaclx'] = '删除文件夹'; $labels['shortacla'] = '管理'; + $labels['shortaclother'] = '其他'; $labels['shortaclread'] = '读取'; $labels['shortaclwrite'] = '写入'; $labels['shortacldelete'] = '删除'; + $labels['longacll'] = '该文件夹在列表上可见且可被订阅'; $labels['longaclr'] = '该文件夹可被打开阅读'; +$labels['longacls'] = 'Messages Seen flag can be changed'; +$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted'; $labels['longacli'] = '消息可写或可被复制至文件夹中'; +$labels['longaclp'] = 'Messages can be posted to this folder'; +$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longacld'] = 'Messages Delete flag can be changed'; +$labels['longaclt'] = 'Messages Delete flag can be changed'; $labels['longacle'] = '消息可被清除'; $labels['longaclx'] = '该文件夹可被删除或重命名'; $labels['longacla'] = '文件夹访问权限可被修改'; + +$labels['longaclfull'] = 'Full control including folder administration'; $labels['longaclread'] = '该文件夹可被打开阅读'; $labels['longaclwrite'] = '消息可被标记,撰写或复制至文件夹中'; $labels['longacldelete'] = '信息可被删除'; + $messages['deleting'] = '删除访问权限中…'; $messages['saving'] = '保存访问权限中…'; $messages['updatesuccess'] = '成功修改访问权限'; $messages['deletesuccess'] = '成功删除访问权限'; $messages['createsuccess'] = '成功添加访问权限'; +$messages['updateerror'] = '无法更新访问权限'; $messages['deleteerror'] = '无法删除访问权限'; $messages['createerror'] = '无法添加访问权限'; $messages['deleteconfirm'] = '您确定要移除选中用户的访问权限吗?'; $messages['norights'] = '没有已指定的权限!'; $messages['nouser'] = '没有已指定的用户名!'; + ?> diff --git a/plugins/acl/localization/zh_TW.inc b/plugins/acl/localization/zh_TW.inc index e3adc04a3..821f7b321 100644 --- a/plugins/acl/localization/zh_TW.inc +++ b/plugins/acl/localization/zh_TW.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ */ + $labels['sharing'] = '分享'; $labels['myrights'] = '存取權限'; $labels['username'] = '使用者:'; @@ -24,6 +25,7 @@ $labels['actions'] = '權限設定'; $labels['anyone'] = '所有使用者 (anyone)'; $labels['anonymous'] = '訪客 (anonymous)'; $labels['identifier'] = '識別'; + $labels['acll'] = '尋找'; $labels['aclr'] = '讀取訊息'; $labels['acls'] = '保持上線狀態'; @@ -37,11 +39,13 @@ $labels['aclt'] = '刪除訊息'; $labels['acle'] = '刪去'; $labels['aclx'] = '刪除資料夾'; $labels['acla'] = '管理者'; + $labels['aclfull'] = '完全控制'; $labels['aclother'] = '其它'; $labels['aclread'] = '讀取'; $labels['aclwrite'] = '寫入'; $labels['acldelete'] = '刪除'; + $labels['shortacll'] = '尋找'; $labels['shortaclr'] = '讀取'; $labels['shortacls'] = '保存'; @@ -55,10 +59,12 @@ $labels['shortaclt'] = '刪除'; $labels['shortacle'] = '刪去'; $labels['shortaclx'] = '資料夾刪除'; $labels['shortacla'] = '管理者'; + $labels['shortaclother'] = '其它'; $labels['shortaclread'] = '讀取'; $labels['shortaclwrite'] = '寫入'; $labels['shortacldelete'] = '刪除'; + $labels['longacll'] = '此資料夾權限可以訂閱和瀏覽'; $labels['longaclr'] = '資料夾能被打開與讀取'; $labels['longacls'] = '能修改訊息標幟'; @@ -72,10 +78,12 @@ $labels['longaclt'] = '能修改訊息刪除標幟'; $labels['longacle'] = '能抹除訊息'; $labels['longaclx'] = '資料夾能被刪除或重新命名'; $labels['longacla'] = '能變更資料夾權限'; + $labels['longaclfull'] = '完全控制包含資料夾管理'; $labels['longaclread'] = '資料夾能被打開與讀取'; $labels['longaclwrite'] = '信件可以被標記、編寫或複製到資料夾'; $labels['longacldelete'] = '訊息能被刪除'; + $messages['deleting'] = '刪除權限...'; $messages['saving'] = '儲存權限...'; $messages['updatesuccess'] = '權限變更完成'; @@ -87,4 +95,5 @@ $messages['createerror'] = '無法新增權限'; $messages['deleteconfirm'] = '您確定要刪除所選取使用者的權限嗎?'; $messages['norights'] = '沒有指定任何權限'; $messages['nouser'] = '沒有指定用戶名稱'; + ?> diff --git a/plugins/acl/package.xml b/plugins/acl/package.xml index 98460e82f..52e234f37 100644 --- a/plugins/acl/package.xml +++ b/plugins/acl/package.xml @@ -22,7 +22,7 @@ stable stable - GNU GPLv3+ + GNU GPLv2 - diff --git a/plugins/acl/skins/classic/acl.css b/plugins/acl/skins/classic/acl.css index cf3391f49..0764465a0 100644 --- a/plugins/acl/skins/classic/acl.css +++ b/plugins/acl/skins/classic/acl.css @@ -47,12 +47,12 @@ #acltable tbody td.partial { - background: url(images/partial.png) center no-repeat; + background: url(images/partial.png?v=05d7.389) center no-repeat; } #acltable tbody td.enabled { - background: url(images/enabled.png) center no-repeat; + background: url(images/enabled.png?v=9d9a.674) center no-repeat; } #acltable tr.selected td diff --git a/plugins/acl/skins/larry/acl.css b/plugins/acl/skins/larry/acl.css index e392a269e..67512a619 100644 --- a/plugins/acl/skins/larry/acl.css +++ b/plugins/acl/skins/larry/acl.css @@ -65,14 +65,14 @@ #acltable tbody td.partial { - background-image: url(images/partial.png); + background-image: url(images/partial.png?v=05d7.389); background-position: center; background-repeat: no-repeat; } #acltable tbody td.enabled { - background-image: url(images/enabled.png); + background-image: url(images/enabled.png?v=9d9a.674); background-position: center; background-repeat: no-repeat; } @@ -80,21 +80,21 @@ #acltable tbody tr.selected td.partial { background-color: #019bc6; - background-image: url(images/partial.png), -moz-linear-gradient(top, #019bc6 0%, #017cb4 100%); - background-image: url(images/partial.png), -webkit-gradient(linear, left top, left bottom, color-stop(0%,#019bc6), color-stop(100%,#017cb4)); - background-image: url(images/partial.png), -o-linear-gradient(top, #019bc6 0%, #017cb4 100%); - background-image: url(images/partial.png), -ms-linear-gradient(top, #019bc6 0%, #017cb4 100%); - background-image: url(images/partial.png), linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/partial.png?v=05d7.389), -moz-linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/partial.png?v=05d7.389), -webkit-gradient(linear, left top, left bottom, color-stop(0%,#019bc6), color-stop(100%,#017cb4)); + background-image: url(images/partial.png?v=05d7.389), -o-linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/partial.png?v=05d7.389), -ms-linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/partial.png?v=05d7.389), linear-gradient(top, #019bc6 0%, #017cb4 100%); } #acltable tbody tr.selected td.enabled { background-color: #019bc6; - background-image: url(images/enabled.png), -moz-linear-gradient(top, #019bc6 0%, #017cb4 100%); - background-image: url(images/enabled.png), -webkit-gradient(linear, left top, left bottom, color-stop(0%,#019bc6), color-stop(100%,#017cb4)); - background-image: url(images/enabled.png), -o-linear-gradient(top, #019bc6 0%, #017cb4 100%); - background-image: url(images/enabled.png), -ms-linear-gradient(top, #019bc6 0%, #017cb4 100%); - background-image: url(images/enabled.png), linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/enabled.png?v=9d9a.674), -moz-linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/enabled.png?v=9d9a.674), -webkit-gradient(linear, left top, left bottom, color-stop(0%,#019bc6), color-stop(100%,#017cb4)); + background-image: url(images/enabled.png?v=9d9a.674), -o-linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/enabled.png?v=9d9a.674), -ms-linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/enabled.png?v=9d9a.674), linear-gradient(top, #019bc6 0%, #017cb4 100%); } #aclform diff --git a/plugins/additional_message_headers/additional_message_headers.php b/plugins/additional_message_headers/additional_message_headers.php index 0d16e605e..43f9d0098 100644 --- a/plugins/additional_message_headers/additional_message_headers.php +++ b/plugins/additional_message_headers/additional_message_headers.php @@ -6,8 +6,8 @@ * Very simple plugin which will add additional headers * to or remove them from outgoing messages. * - * Enable the plugin in config.inc.php and add your desired headers: - * $config['additional_message_headers'] = array('User-Agent' => 'My-Very-Own-Webmail'); + * Enable the plugin in config/main.inc.php and add your desired headers: + * $rcmail_config['additional_message_headers'] = array('User-Agent'); * * @version @package_version@ * @author Ziba Scott diff --git a/plugins/additional_message_headers/config.inc.php.dist b/plugins/additional_message_headers/config.inc.php.dist index 72a4f1cee..83ccd869c 100644 --- a/plugins/additional_message_headers/config.inc.php.dist +++ b/plugins/additional_message_headers/config.inc.php.dist @@ -1,14 +1,14 @@ diff --git a/plugins/archive/archive.js b/plugins/archive/archive.js index 6ed4f971a..af2b0d26d 100644 --- a/plugins/archive/archive.js +++ b/plugins/archive/archive.js @@ -1,56 +1,34 @@ /* * Archive plugin script - * @version 2.1 + * @version @package_version@ */ function rcmail_archive(prop) { if (!rcmail.env.uid && (!rcmail.message_list || !rcmail.message_list.get_selection().length)) return; - - if (!rcmail_is_archive()) { - if (!rcmail.env.archive_type) { - // simply move to archive folder (if no partition type is set) - rcmail.command('move', rcmail.env.archive_folder); - } - else { - // let the server sort the messages to the according subfolders - rcmail.http_post('plugin.move2archive', rcmail.selection_post_data()); - } - } -} - -function rcmail_is_archive() -{ - // check if current folder is an archive folder or one of its children - if (rcmail.env.mailbox == rcmail.env.archive_folder - || rcmail.env.mailbox.startsWith(rcmail.env.archive_folder + rcmail.env.delimiter) - ) { - return true; - } + + if (rcmail.env.mailbox != rcmail.env.archive_folder) + rcmail.command('moveto', rcmail.env.archive_folder); } // callback for app-onload event if (window.rcmail) { rcmail.addEventListener('init', function(evt) { + // register command (directly enable in message view mode) - rcmail.register_command('plugin.archive', rcmail_archive, rcmail.env.uid && !rcmail_is_archive()); - + rcmail.register_command('plugin.archive', rcmail_archive, (rcmail.env.uid && rcmail.env.mailbox != rcmail.env.archive_folder)); + // add event-listener to message list if (rcmail.message_list) - rcmail.message_list.addEventListener('select', function(list) { - rcmail.enable_command('plugin.archive', list.get_selection().length > 0 && !rcmail_is_archive()); + rcmail.message_list.addEventListener('select', function(list){ + rcmail.enable_command('plugin.archive', (list.get_selection().length > 0 && rcmail.env.mailbox != rcmail.env.archive_folder)); }); - + // set css style for archive folder var li; if (rcmail.env.archive_folder && (li = rcmail.get_folder_li(rcmail.env.archive_folder, '', true))) $(li).addClass('archive'); - - // callback for server response - rcmail.addEventListener('plugin.move2archive_response', function(result) { - if (result.update) - rcmail.command('list'); // refresh list - }); }) } + diff --git a/plugins/archive/archive.php b/plugins/archive/archive.php index 4a00d5f58..0a298cbe3 100644 --- a/plugins/archive/archive.php +++ b/plugins/archive/archive.php @@ -6,9 +6,9 @@ * Plugin that adds a new button to the mailbox toolbar * to move messages to a (user selectable) archive folder. * - * @version 2.1 + * @version @package_version@ * @license GNU GPLv3+ - * @author Andre Rodier, Thomas Bruederli, Aleksander Machniak + * @author Andre Rodier, Thomas Bruederli */ class archive extends rcube_plugin { @@ -41,23 +41,18 @@ class archive extends rcube_plugin 'domain' => $this->ID, ), 'toolbar'); - + // register hook to localize the archive folder $this->add_hook('render_mailboxlist', array($this, 'render_mailboxlist')); - // set env variables for client + // set env variable for client $rcmail->output->set_env('archive_folder', $archive_folder); - $rcmail->output->set_env('archive_type', $rcmail->config->get('archive_type','')); // add archive folder to the list of default mailboxes if (($default_folders = $rcmail->config->get('default_folders')) && !in_array($archive_folder, $default_folders)) { $default_folders[] = $archive_folder; $rcmail->config->set('default_folders', $default_folders); - } - } - else if ($rcmail->task == 'mail') { - // handler for ajax request - $this->register_action('plugin.move2archive', array($this, 'move_messages')); + } } else if ($rcmail->task == 'settings') { $dont_override = $rcmail->config->get('dont_override', array()); @@ -67,18 +62,15 @@ class archive extends rcube_plugin } } } - - /** - * Hook to give the archive folder a localized name in the mailbox list - */ + function render_mailboxlist($p) { $rcmail = rcmail::get_instance(); $archive_folder = $rcmail->config->get('archive_mbox'); - $show_real_name = $rcmail->config->get('show_real_foldernames'); + $localize_name = $rcmail->config->get('archive_localize_name', true); // set localized name for the configured archive folder - if ($archive_folder && !$show_real_name) { + if ($archive_folder && $localize_name) { if (isset($p['list'][$archive_folder])) $p['list'][$archive_folder]['name'] = $this->gettext('archivefolder'); else // search in subfolders @@ -88,10 +80,7 @@ class archive extends rcube_plugin return $p; } - /** - * Helper method to find the archive folder in the mailbox tree - */ - private function _mod_folder_name(&$list, $folder, $new_name) + function _mod_folder_name(&$list, $folder, $new_name) { foreach ($list as $idx => $item) { if ($item['id'] == $folder) { @@ -104,140 +93,6 @@ class archive extends rcube_plugin return false; } - /** - * Plugin action to move the submitted list of messages to the archive subfolders - * according to the user settings and their headers. - */ - function move_messages() - { - $this->add_texts('localization'); - - $rcmail = rcmail::get_instance(); - $storage = $rcmail->get_storage(); - $delimiter = $storage->get_hierarchy_delimiter(); - $archive_folder = $rcmail->config->get('archive_mbox'); - $archive_type = $rcmail->config->get('archive_type', ''); - - $storage->set_folder(($current_mbox = rcube_utils::get_input_value('_mbox', RCUBE_INPUT_POST))); - - $result = array('reload' => false, 'update' => false, 'errors' => array()); - $folders = array(); - $uids = rcube_utils::get_input_value('_uid', RCUBE_INPUT_POST); - $search_request = get_input_value('_search', RCUBE_INPUT_GPC); - - if ($uids == '*') { - $index = $storage->index(null, rcmail_sort_column(), rcmail_sort_order()); - $uids = $index->get(); - } - else { - $uids = explode(',', $uids); - } - - foreach ($uids as $uid) { - if (!$archive_folder || !($message = $rcmail->storage->get_message($uid))) { - continue; - } - - $subfolder = null; - switch ($archive_type) { - case 'year': - $subfolder = $rcmail->format_date($message->timestamp, 'Y'); - break; - - case 'month': - $subfolder = $rcmail->format_date($message->timestamp, 'Y') . $delimiter . $rcmail->format_date($message->timestamp, 'm'); - break; - - case 'folder': - $subfolder = $current_mbox; - break; - - case 'sender': - $from = $message->get('from'); - if (preg_match('/[\b<](.+@.+)[\b>]/i', $from, $m)) { - $subfolder = $m[1]; - } - else { - $subfolder = $this->gettext('unkownsender'); - } - - // replace reserved characters in folder name - $repl = $delimiter == '-' ? '_' : '-'; - $replacements[$delimiter] = $repl; - $replacements['.'] = $repl; // some IMAP server do not allow . characters - $subfolder = strtr($subfolder, $replacements); - break; - - default: - $subfolder = ''; - break; - } - - // compose full folder path - $folder = $archive_folder . ($subfolder ? $delimiter . $subfolder : ''); - - // create archive subfolder if it doesn't yet exist - // we'll create all folders in the path - if (!in_array($folder, $folders)) { - if (empty($list)) { - $list = $storage->list_folders('', $archive_folder . '*', 'mail', null, true); - } - $path = explode($delimiter, $folder); - - for ($i=0; $icreate_folder($_folder, true)) { - $result['reload'] = true; - $list[] = $_folder; - } - } - } - - $folders[] = $folder; - } - - // move message to target folder - if ($storage->move_message(array($uid), $folder)) { - $result['update'] = true; - } - else { - $result['errors'][] = $uid; - } - } // end for - - // send response - if ($result['errors']) { - $rcmail->output->show_message($this->gettext('archiveerror'), 'warning'); - } - if ($result['reload']) { - $rcmail->output->show_message($this->gettext('archivedreload'), 'confirmation'); - } - else if ($result['update']) { - $rcmail->output->show_message($this->gettext('archived'), 'confirmation'); - } - - // refresh saved search set after moving some messages - if ($search_request && $rcmail->storage->get_search_set()) { - $_SESSION['search'] = $rcmail->storage->refresh_search(); - } - - if ($_POST['_from'] == 'show' && !empty($result['update'])) { - if ($next = get_input_value('_next_uid', RCUBE_INPUT_GPC)) { - $rcmail->output->command('show_message', $next); - } - else { - $rcmail->output->command('command', 'list'); - } - } - else { - $rcmail->output->command('plugin.move2archive_response', $result); - } - } - - /** - * Hook to inject plugin-specific user settings - */ function prefs_table($args) { global $CURR_SECTION; @@ -249,7 +104,7 @@ class archive extends rcube_plugin // load folders list when needed if ($CURR_SECTION) - $select = $rcmail->folder_selector(array('noselection' => '---', 'realnames' => true, + $select = rcmail_mailbox_select(array('noselection' => '---', 'realnames' => true, 'maxlength' => 30, 'exceptions' => array('INBOX'), 'folder_filter' => 'mail', 'folder_rights' => 'w')); else $select = new html_select(); @@ -258,36 +113,15 @@ class archive extends rcube_plugin 'title' => $this->gettext('archivefolder'), 'content' => $select->show($rcmail->config->get('archive_mbox'), array('name' => "_archive_mbox")) ); - - // add option for structuring the archive folder - $archive_type = new html_select(array('name' => '_archive_type', 'id' => 'ff_archive_type')); - $archive_type->add($this->gettext('none'), ''); - $archive_type->add($this->gettext('archivetypeyear'), 'year'); - $archive_type->add($this->gettext('archivetypemonth'), 'month'); - $archive_type->add($this->gettext('archivetypesender'), 'sender'); - $archive_type->add($this->gettext('archivetypefolder'), 'folder'); - - $args['blocks']['archive'] = array( - 'name' => Q(rcube_label('settingstitle', 'archive')), - 'options' => array('archive_type' => array( - 'title' => $this->gettext('archivetype'), - 'content' => $archive_type->show($rcmail->config->get('archive_type')) - ) - ) - ); } return $args; } - /** - * Hook to save plugin-specific user settings - */ function save_prefs($args) { if ($args['section'] == 'folders') { - $args['prefs']['archive_mbox'] = rcube_utils::get_input_value('_archive_mbox', rcube_utils::INPUT_POST); - $args['prefs']['archive_type'] = rcube_utils::get_input_value('_archive_type', rcube_utils::INPUT_POST); + $args['prefs']['archive_mbox'] = get_input_value('_archive_mbox', RCUBE_INPUT_POST); return $args; } } diff --git a/plugins/archive/localization/ar_SA.inc b/plugins/archive/localization/ar_SA.inc index 737f745d8..33e15c56f 100644 --- a/plugins/archive/localization/ar_SA.inc +++ b/plugins/archive/localization/ar_SA.inc @@ -15,17 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'الأرشيف'; $labels['buttontitle'] = 'أرشف هذه الرسالة'; $labels['archived'] = 'أُرشفت بنجاح'; -$labels['archivedreload'] = 'ارشفت بنجاح. اعد تحميل الصفحه لاضهار الملف المؤرشف'; -$labels['archiveerror'] = 'بعض الرسائل لايمكن ارشفتها'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'الأرشيف'; -$labels['settingstitle'] = 'الأرشيف'; -$labels['archivetype'] = 'تقسيم الأرشيف ب'; -$labels['archivetypeyear'] = 'السنة (مثال. الارشيف/2012)'; -$labels['archivetypemonth'] = 'الشهر (مثال. الارشيف/2012/06)'; -$labels['archivetypefolder'] = 'المجلد الاصلي'; -$labels['archivetypesender'] = 'ايميل المرسل'; -$labels['unkownsender'] = 'مجهول'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/az_AZ.inc b/plugins/archive/localization/az_AZ.inc index ab2311776..19a409d41 100644 --- a/plugins/archive/localization/az_AZ.inc +++ b/plugins/archive/localization/az_AZ.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arxiv'; $labels['buttontitle'] = 'Mesajı arxivə göndər'; $labels['archived'] = 'Arxivə göndərildi'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Ay (məs. Arxiv/2012/06)'; $labels['archivetypefolder'] = 'Orijinal qovluq'; $labels['archivetypesender'] = 'Göndərənin E-Poçtu'; $labels['unkownsender'] = 'naməlum'; + ?> diff --git a/plugins/archive/localization/be_BE.inc b/plugins/archive/localization/be_BE.inc index 90e4417d7..ab78b2912 100644 --- a/plugins/archive/localization/be_BE.inc +++ b/plugins/archive/localization/be_BE.inc @@ -15,17 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Архіў'; $labels['buttontitle'] = 'Перанесці ў Архіў'; -$labels['archived'] = 'Перанесена ў Архіў'; -$labels['archivedreload'] = 'Перанесена ў Архіў. Перазагрузіце старонку, каб пабачыць новыя архіўныя папкі.'; -$labels['archiveerror'] = 'Некаторыя паведамленні не могуць быць перанесены ў архіў'; +$labels['archived'] = 'Паспяхова перанесены ў Архіў'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Архіў'; -$labels['settingstitle'] = 'Архіў'; -$labels['archivetype'] = 'Раздзяліць архіў паводле'; -$labels['archivetypeyear'] = 'года (прыкладам, Архіў/2012)'; -$labels['archivetypemonth'] = 'месяца (прыкладам, Архіў/2012/06)'; -$labels['archivetypefolder'] = 'Арыгінальная папка'; -$labels['archivetypesender'] = 'Эл. пошта адпраўніка'; -$labels['unkownsender'] = 'невядомы'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/bg_BG.inc b/plugins/archive/localization/bg_BG.inc index 9f9b868cb..b7be242e0 100644 --- a/plugins/archive/localization/bg_BG.inc +++ b/plugins/archive/localization/bg_BG.inc @@ -15,17 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ -$labels['buttontext'] = 'Архивирай'; -$labels['buttontitle'] = 'Архивиране на писмото'; -$labels['archived'] = 'Архивирането премина успешно'; + +$labels = array(); +$labels['buttontext'] = 'Архивиране'; +$labels['buttontitle'] = 'Архивиране на съобщението'; +$labels['archived'] = 'Архивирането е успешно'; $labels['archivedreload'] = 'Успешно архивирано. Презаредете страницата за да видите архивираните папки.'; -$labels['archiveerror'] = 'Някои писма не бяха архивирани'; -$labels['archivefolder'] = 'Архивирай'; +$labels['archiveerror'] = 'Някои съобщения не бяха архивирани'; +$labels['archivefolder'] = 'Архивиране'; $labels['settingstitle'] = 'Архив'; $labels['archivetype'] = 'Раздели архива по'; $labels['archivetypeyear'] = 'Година (пр. Архив/2012)'; $labels['archivetypemonth'] = 'Месец (пр. Архив/2012/06)'; $labels['archivetypefolder'] = 'Оригинална папка'; -$labels['archivetypesender'] = 'E-mail адрес на подател'; +$labels['archivetypesender'] = 'Email адрес на изпращача'; $labels['unkownsender'] = 'неизвестно'; + ?> diff --git a/plugins/archive/localization/br.inc b/plugins/archive/localization/br.inc index b3a322903..6b7859936 100644 --- a/plugins/archive/localization/br.inc +++ b/plugins/archive/localization/br.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Diell'; $labels['buttontitle'] = 'Dielliñ ar gemenadenn-mañ'; $labels['archived'] = 'Diellet gant berzh'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Diell'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/bs_BA.inc b/plugins/archive/localization/bs_BA.inc index 47d138ca5..06a5999a0 100644 --- a/plugins/archive/localization/bs_BA.inc +++ b/plugins/archive/localization/bs_BA.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arhiva'; $labels['buttontitle'] = 'Arhiviraj ovu poruku'; $labels['archived'] = 'Arhiviranje uspješno'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Mjesecima (npr Arhiva/2012/06)'; $labels['archivetypefolder'] = 'Originalni folder'; $labels['archivetypesender'] = 'Email pošiljaoca'; $labels['unkownsender'] = 'nepoznato'; + ?> diff --git a/plugins/archive/localization/ca_ES.inc b/plugins/archive/localization/ca_ES.inc index bce2c202a..04ade1dbf 100644 --- a/plugins/archive/localization/ca_ES.inc +++ b/plugins/archive/localization/ca_ES.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arxiva'; $labels['buttontitle'] = 'Arxiva aquest missatge'; $labels['archived'] = 'Arxivat correctament'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Mes (p.ex. Arxiu/2012/06)'; $labels['archivetypefolder'] = 'Carpeta original'; $labels['archivetypesender'] = 'Adreça del remitent'; $labels['unkownsender'] = 'desconegut'; + ?> diff --git a/plugins/archive/localization/cs_CZ.inc b/plugins/archive/localization/cs_CZ.inc index ef26a09f3..e71aa5fa6 100644 --- a/plugins/archive/localization/cs_CZ.inc +++ b/plugins/archive/localization/cs_CZ.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archiv'; $labels['buttontitle'] = 'Archivovat zprávu'; $labels['archived'] = 'Úspěšně vloženo do archivu'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Měsíc (např. Archiv/2012/06)'; $labels['archivetypefolder'] = 'Původní složka'; $labels['archivetypesender'] = 'E-mail odesílatele'; $labels['unkownsender'] = 'neznámý'; + ?> diff --git a/plugins/archive/localization/cy_GB.inc b/plugins/archive/localization/cy_GB.inc index 8fa6c65df..454c26da5 100644 --- a/plugins/archive/localization/cy_GB.inc +++ b/plugins/archive/localization/cy_GB.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archif'; $labels['buttontitle'] = 'Archifo\'r neges hwn'; $labels['archived'] = 'Archifwyd yn llwyddiannus'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Mis (e.g. Archif/2012/06)'; $labels['archivetypefolder'] = 'Ffolder gwreiddiol'; $labels['archivetypesender'] = 'Ebost anfonwr'; $labels['unkownsender'] = 'anhysbys'; + ?> diff --git a/plugins/archive/localization/da_DK.inc b/plugins/archive/localization/da_DK.inc index f3dedf8bf..ac67700a4 100644 --- a/plugins/archive/localization/da_DK.inc +++ b/plugins/archive/localization/da_DK.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arkiv'; $labels['buttontitle'] = 'Arkivér denne besked'; $labels['archived'] = 'Succesfuldt arkiveret.'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Måned (f.eks. Arkiv/2012/06)'; $labels['archivetypefolder'] = 'Original mappe'; $labels['archivetypesender'] = 'Afsenders email'; $labels['unkownsender'] = 'ukendt'; + ?> diff --git a/plugins/archive/localization/de_CH.inc b/plugins/archive/localization/de_CH.inc index 90ab3ad16..65cf6efe0 100644 --- a/plugins/archive/localization/de_CH.inc +++ b/plugins/archive/localization/de_CH.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archiv'; $labels['buttontitle'] = 'Nachricht(en) archivieren'; $labels['archived'] = 'Nachricht(en) erfolgreich archiviert'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Monat (z.B. Archiv/2012/06)'; $labels['archivetypefolder'] = 'Originalordner'; $labels['archivetypesender'] = 'Absender'; $labels['unkownsender'] = 'unbekannt'; + ?> diff --git a/plugins/archive/localization/de_DE.inc b/plugins/archive/localization/de_DE.inc index ee39acfcb..8d4f9e39f 100644 --- a/plugins/archive/localization/de_DE.inc +++ b/plugins/archive/localization/de_DE.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archiv'; $labels['buttontitle'] = 'Nachricht archivieren'; $labels['archived'] = 'Nachricht erfolgreich archiviert'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Monat (z.B. Archiv/2012/06)'; $labels['archivetypefolder'] = 'Originalordner'; $labels['archivetypesender'] = 'Absender E-Mail'; $labels['unkownsender'] = 'unbekannt'; + ?> diff --git a/plugins/archive/localization/el_GR.inc b/plugins/archive/localization/el_GR.inc index 17eefab11..6da9f7dbf 100644 --- a/plugins/archive/localization/el_GR.inc +++ b/plugins/archive/localization/el_GR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Αρχειοθέτηση'; $labels['buttontitle'] = 'Αρχειοθέτηση μηνύματος'; $labels['archived'] = 'Αρχειοθετήθηκε με επιτυχία'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Μηνας (π.χ. Αρχειο/2012/06)'; $labels['archivetypefolder'] = 'Αυθεντικος φακελος'; $labels['archivetypesender'] = 'Αποστολέας email'; $labels['unkownsender'] = 'άγνωστο'; + ?> diff --git a/plugins/archive/localization/en_GB.inc b/plugins/archive/localization/en_GB.inc index 5c03b82d5..d3714c118 100644 --- a/plugins/archive/localization/en_GB.inc +++ b/plugins/archive/localization/en_GB.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archive'; $labels['buttontitle'] = 'Archive this message'; $labels['archived'] = 'Successfully archived'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Archive'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/en_US.inc b/plugins/archive/localization/en_US.inc index d3714c118..fade70852 100644 --- a/plugins/archive/localization/en_US.inc +++ b/plugins/archive/localization/en_US.inc @@ -5,7 +5,7 @@ | plugins/archive/localization/.inc | | | | Localization file of the Roundcube Webmail Archive plugin | - | Copyright (C) 2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | @@ -20,15 +20,6 @@ $labels = array(); $labels['buttontext'] = 'Archive'; $labels['buttontitle'] = 'Archive this message'; $labels['archived'] = 'Successfully archived'; -$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; -$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Archive'; -$labels['settingstitle'] = 'Archive'; -$labels['archivetype'] = 'Divide archive by'; -$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; -$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; -$labels['archivetypefolder'] = 'Original folder'; -$labels['archivetypesender'] = 'Sender email'; -$labels['unkownsender'] = 'unknown'; ?> diff --git a/plugins/archive/localization/eo.inc b/plugins/archive/localization/eo.inc index bd0c2618c..fa323effd 100644 --- a/plugins/archive/localization/eo.inc +++ b/plugins/archive/localization/eo.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arkivigi'; $labels['buttontitle'] = 'Arkivigi ĉi tiun mesaĝon'; $labels['archived'] = 'Sukcese arkivigita'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Arkivo'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/es_AR.inc b/plugins/archive/localization/es_AR.inc index 44e974c19..5fb082497 100644 --- a/plugins/archive/localization/es_AR.inc +++ b/plugins/archive/localization/es_AR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archivo'; $labels['buttontitle'] = 'Archivar este mensaje'; $labels['archived'] = 'Mensaje Archivado'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Mes (ej. Archivo/2012/06)'; $labels['archivetypefolder'] = 'Carpeta original'; $labels['archivetypesender'] = 'Remitente del correo'; $labels['unkownsender'] = 'desconocido'; + ?> diff --git a/plugins/archive/localization/es_ES.inc b/plugins/archive/localization/es_ES.inc index 115751f67..44b27691b 100644 --- a/plugins/archive/localization/es_ES.inc +++ b/plugins/archive/localization/es_ES.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archivo'; $labels['buttontitle'] = 'Archivar este mensaje'; $labels['archived'] = 'Mensaje Archivado'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Mes (p.ej. Archivo/2012/06)'; $labels['archivetypefolder'] = 'Bandeja original'; $labels['archivetypesender'] = 'Email del remitente'; $labels['unkownsender'] = 'desconocido'; + ?> diff --git a/plugins/archive/localization/et_EE.inc b/plugins/archive/localization/et_EE.inc index aec89984a..55cdbc934 100644 --- a/plugins/archive/localization/et_EE.inc +++ b/plugins/archive/localization/et_EE.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arhiveeri'; $labels['buttontitle'] = 'Arhiveeri see kiri'; $labels['archived'] = 'Edukalt arhiveeritud'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Kuu (nt. Arhiiv/2012/06)'; $labels['archivetypefolder'] = 'Esialgne kaust'; $labels['archivetypesender'] = 'Saatja e-post'; $labels['unkownsender'] = 'teadmata'; + ?> diff --git a/plugins/archive/localization/fa_IR.inc b/plugins/archive/localization/fa_IR.inc index 9e9efcf70..9df31ed31 100644 --- a/plugins/archive/localization/fa_IR.inc +++ b/plugins/archive/localization/fa_IR.inc @@ -15,17 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'بایگانی'; $labels['buttontitle'] = 'بایگانی این پیغام'; $labels['archived'] = 'با موفقیت بایگانی شد'; -$labels['archivedreload'] = 'با موفقیت بایگانی شد. برای دیدن پوشه‌های بایگانی جدید صفحه را مجددا بارگذاری نمایید.'; -$labels['archiveerror'] = 'برخی از پیغام‌ها بایگانی نشدند.'; +$labels['archivedreload'] = 'با موفقیت بایگانی شد، بارگذاری مجدد صفحه برای دیدن پوشه‌های بایگانی جدید.'; +$labels['archiveerror'] = 'برخی پیغام‌ها بایگانی نخواهند شد'; $labels['archivefolder'] = 'بایگانی'; $labels['settingstitle'] = 'بایگانی'; -$labels['archivetype'] = 'تقسیم بایگانی با'; +$labels['archivetype'] = 'جدا کردن بایگانی با'; $labels['archivetypeyear'] = 'سال (به عنوان مثال بایگانی/۲۰۱۲)'; $labels['archivetypemonth'] = 'ماه (به عنوان مثال بایگانی/۲۰۱۲/۰۶)'; $labels['archivetypefolder'] = 'پوشه اصلی'; $labels['archivetypesender'] = 'ایمیل فرستنده'; $labels['unkownsender'] = 'ناشناخته'; + ?> diff --git a/plugins/archive/localization/fi_FI.inc b/plugins/archive/localization/fi_FI.inc index 09142374d..9dda46ec0 100644 --- a/plugins/archive/localization/fi_FI.inc +++ b/plugins/archive/localization/fi_FI.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arkistoi'; $labels['buttontitle'] = 'Arkistoi viesti'; $labels['archived'] = 'Arkistoitu onnistuneesti'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Kuukaudella (esim. Arkisto/2012/06)'; $labels['archivetypefolder'] = 'Alkuperäinen kansio'; $labels['archivetypesender'] = 'Lähettäjän osoite'; $labels['unkownsender'] = 'tuntematon'; + ?> diff --git a/plugins/archive/localization/fr_FR.inc b/plugins/archive/localization/fr_FR.inc index 989abc74e..638de3a40 100644 --- a/plugins/archive/localization/fr_FR.inc +++ b/plugins/archive/localization/fr_FR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archive'; $labels['buttontitle'] = 'Archiver ce message'; $labels['archived'] = 'Message archivé avec succès'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Mois (ex Archives/2012/06)'; $labels['archivetypefolder'] = 'Dossier original'; $labels['archivetypesender'] = 'Courriel de l\'émetteur'; $labels['unkownsender'] = 'inconnu'; + ?> diff --git a/plugins/archive/localization/gl_ES.inc b/plugins/archive/localization/gl_ES.inc index 1eda2542b..55180fefe 100644 --- a/plugins/archive/localization/gl_ES.inc +++ b/plugins/archive/localization/gl_ES.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arquivo'; $labels['buttontitle'] = 'Arquivar esta mensaxe'; $labels['archived'] = 'Aquivouse a mensaxe'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Mes (p.ex. Arquivo/2012/06)'; $labels['archivetypefolder'] = 'Cartafol orixe'; $labels['archivetypesender'] = 'Enderezo do remitente'; $labels['unkownsender'] = 'descoñecido'; + ?> diff --git a/plugins/archive/localization/he_IL.inc b/plugins/archive/localization/he_IL.inc index e4e042652..37bcaaa3f 100644 --- a/plugins/archive/localization/he_IL.inc +++ b/plugins/archive/localization/he_IL.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'ארכיון'; $labels['buttontitle'] = 'משלוח ההודעה לארכיב'; $labels['archived'] = 'עדכון הארכיון הצליח'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'חודש ( לדוגמה, ארכיב/2012/96 )'; $labels['archivetypefolder'] = 'תיקיה מקורית'; $labels['archivetypesender'] = 'שולח ההודעה'; $labels['unkownsender'] = 'לא ידוע'; + ?> diff --git a/plugins/archive/localization/hr_HR.inc b/plugins/archive/localization/hr_HR.inc index 2a99cb687..86ef2a98f 100644 --- a/plugins/archive/localization/hr_HR.inc +++ b/plugins/archive/localization/hr_HR.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arhiva'; $labels['buttontitle'] = 'Arhiviraj poruku'; $labels['archived'] = 'Uspješno arhivirana'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Arhiva'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/hu_HU.inc b/plugins/archive/localization/hu_HU.inc index 799de1619..970a24184 100644 --- a/plugins/archive/localization/hu_HU.inc +++ b/plugins/archive/localization/hu_HU.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archiválás'; $labels['buttontitle'] = 'Üzenet archiválása'; $labels['archived'] = 'Sikeres archiválás'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Honap ( pl Arhívum/2012/06)'; $labels['archivetypefolder'] = 'Eredeti mappa'; $labels['archivetypesender'] = 'Feladó'; $labels['unkownsender'] = 'ismeretlen'; + ?> diff --git a/plugins/archive/localization/hy_AM.inc b/plugins/archive/localization/hy_AM.inc index a380346d4..d807ae507 100644 --- a/plugins/archive/localization/hy_AM.inc +++ b/plugins/archive/localization/hy_AM.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Արխիվ'; $labels['buttontitle'] = 'Արխիվացնել այս հաղորդագրությունը'; $labels['archived'] = 'Բարեհաջող արխիվացվեց'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Արխիվ'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/id_ID.inc b/plugins/archive/localization/id_ID.inc index 0fa59ae71..09b5ed547 100644 --- a/plugins/archive/localization/id_ID.inc +++ b/plugins/archive/localization/id_ID.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arsip'; $labels['buttontitle'] = 'Arsipkan pesan ini'; $labels['archived'] = 'Berhasil mengarsipkan'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Bulan (contoh: Arsip/2012/06)'; $labels['archivetypefolder'] = 'Folder asli'; $labels['archivetypesender'] = 'Email pengirim'; $labels['unkownsender'] = 'Tidak dikenal'; + ?> diff --git a/plugins/archive/localization/it_IT.inc b/plugins/archive/localization/it_IT.inc index a15d80063..66092f8ae 100644 --- a/plugins/archive/localization/it_IT.inc +++ b/plugins/archive/localization/it_IT.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archivio'; $labels['buttontitle'] = 'Archivia questo messaggio'; $labels['archived'] = 'Archiviato correttamente'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Mese (es. Archivio/2012/06)'; $labels['archivetypefolder'] = 'Cartella originale'; $labels['archivetypesender'] = 'Mittente email'; $labels['unkownsender'] = 'sconosciuto'; + ?> diff --git a/plugins/archive/localization/ja_JP.inc b/plugins/archive/localization/ja_JP.inc index c9454be18..b260e2458 100644 --- a/plugins/archive/localization/ja_JP.inc +++ b/plugins/archive/localization/ja_JP.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'アーカイブ'; $labels['buttontitle'] = 'このメッセージをアーカイブ'; $labels['archived'] = 'アーカイブしました。'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = '月 (e.g. アーカイブ/2012/06)'; $labels['archivetypefolder'] = '元のフォルダー'; $labels['archivetypesender'] = '電子メールの送信者'; $labels['unkownsender'] = '不明'; + ?> diff --git a/plugins/archive/localization/km_KH.inc b/plugins/archive/localization/km_KH.inc index d4b1c3baa..6872026ec 100644 --- a/plugins/archive/localization/km_KH.inc +++ b/plugins/archive/localization/km_KH.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'ប័ណ្ណសារ'; $labels['buttontitle'] = 'ប័ណ្ណសារ សារលិខិត នេះ'; $labels['archived'] = 'ប័ណ្ណសារ បានសំរេច'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'ប័ណ្ណសារ'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/ko_KR.inc b/plugins/archive/localization/ko_KR.inc index bf23f3a41..4226420a0 100644 --- a/plugins/archive/localization/ko_KR.inc +++ b/plugins/archive/localization/ko_KR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = '보관'; $labels['buttontitle'] = '이 메시지를 보관'; $labels['archived'] = '성공적으로 보관됨'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = '월 (예: 보관 편지함/2012/06)'; $labels['archivetypefolder'] = '원본 폴더'; $labels['archivetypesender'] = '발신인 이메일'; $labels['unkownsender'] = '알 수 없음'; + ?> diff --git a/plugins/archive/localization/ku.inc b/plugins/archive/localization/ku.inc index 494951502..15a7c61b1 100644 --- a/plugins/archive/localization/ku.inc +++ b/plugins/archive/localization/ku.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arşîv'; $labels['buttontitle'] = 'am masaja bxa arşiv'; $labels['archived'] = 'ba gşti Arşiv kra'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Arşîv'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/lt_LT.inc b/plugins/archive/localization/lt_LT.inc index fdcf34336..069a65665 100644 --- a/plugins/archive/localization/lt_LT.inc +++ b/plugins/archive/localization/lt_LT.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archyvuoti'; $labels['buttontitle'] = 'Perkelti šį laišką į archyvą'; $labels['archived'] = 'Laiškas sėkmingai perkeltas į archyvą'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Mėnesis (pvz. Archyvas/2012/06)'; $labels['archivetypefolder'] = 'Tikrasis aplankas'; $labels['archivetypesender'] = 'Siuntėjo el. pašto adresas'; $labels['unkownsender'] = 'nežinomas'; + ?> diff --git a/plugins/archive/localization/lv_LV.inc b/plugins/archive/localization/lv_LV.inc index 5215786b2..ad2812fba 100644 --- a/plugins/archive/localization/lv_LV.inc +++ b/plugins/archive/localization/lv_LV.inc @@ -15,17 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arhīvs'; -$labels['buttontitle'] = 'Arhivēt šo vēstuli'; -$labels['archived'] = 'Vēstule veiksmīgi arhivēta'; -$labels['archivedreload'] = 'Arhīvs veiksmīgi izveidots. Lai redzētu jaunās arhīva mapes, pārlādējiet lapu.'; -$labels['archiveerror'] = 'Dažas vēstules nebija iespējams arhivēt'; +$labels['buttontitle'] = 'Arhivēt vēstuli'; +$labels['archived'] = 'Vēstule sekmīgi arhivēta'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Arhīvs'; -$labels['settingstitle'] = 'Arhīvs'; -$labels['archivetype'] = 'Sadalīt arhīvu pa'; -$labels['archivetypeyear'] = 'Gadiem (piem. Arhīvs/2012)'; -$labels['archivetypemonth'] = 'Mēnešiem (piem. Arhīvs/2012/06)'; -$labels['archivetypefolder'] = 'Sākotnējā mape'; -$labels['archivetypesender'] = 'Sūtītāja e-pasts'; -$labels['unkownsender'] = 'nezināms'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/ml_IN.inc b/plugins/archive/localization/ml_IN.inc index 047223f83..097ea14b9 100644 --- a/plugins/archive/localization/ml_IN.inc +++ b/plugins/archive/localization/ml_IN.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'ശേഖരം'; $labels['buttontitle'] = 'ഈ മെസ്സേജ് ശേഖരിക്കുക'; $labels['archived'] = 'വിജയകരമായി ശേഖരിച്ചു'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'ശേഖരം'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/mr_IN.inc b/plugins/archive/localization/mr_IN.inc index 96ecbc26b..8b2397937 100644 --- a/plugins/archive/localization/mr_IN.inc +++ b/plugins/archive/localization/mr_IN.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'जतन केलेला'; $labels['buttontitle'] = 'हा संदेश जतन करा'; $labels['archived'] = 'यशस्वीरीत्या जतन केला'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'जतन केलेला'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/nb_NO.inc b/plugins/archive/localization/nb_NO.inc index c0f193aa6..accad4efa 100644 --- a/plugins/archive/localization/nb_NO.inc +++ b/plugins/archive/localization/nb_NO.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arkiv'; $labels['buttontitle'] = 'Arkiver meldingen'; $labels['archived'] = 'Arkivert'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Måned (f.eks. Arkiv/2012/06)'; $labels['archivetypefolder'] = 'Opprinnelig mappe'; $labels['archivetypesender'] = 'Avsender'; $labels['unkownsender'] = 'ukjent'; + ?> diff --git a/plugins/archive/localization/nl_NL.inc b/plugins/archive/localization/nl_NL.inc index edec96761..263874236 100644 --- a/plugins/archive/localization/nl_NL.inc +++ b/plugins/archive/localization/nl_NL.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archief'; $labels['buttontitle'] = 'Archiveer dit bericht'; $labels['archived'] = 'Succesvol gearchiveerd'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Maand (bijv. Archief/2012/06)'; $labels['archivetypefolder'] = 'Originele map'; $labels['archivetypesender'] = 'Afzender e-mail'; $labels['unkownsender'] = 'onbekend'; + ?> diff --git a/plugins/archive/localization/nn_NO.inc b/plugins/archive/localization/nn_NO.inc index d4279c7cb..4b2801688 100644 --- a/plugins/archive/localization/nn_NO.inc +++ b/plugins/archive/localization/nn_NO.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arkiver'; $labels['buttontitle'] = 'Arkiver meldinga'; $labels['archived'] = 'Arkivert'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Månad (f.eks. Arkiv/2012/06)'; $labels['archivetypefolder'] = 'Opprinneleg mappe'; $labels['archivetypesender'] = 'Avsendar'; $labels['unkownsender'] = 'ukjent'; + ?> diff --git a/plugins/archive/localization/pl_PL.inc b/plugins/archive/localization/pl_PL.inc index 9d066e518..316ca702d 100644 --- a/plugins/archive/localization/pl_PL.inc +++ b/plugins/archive/localization/pl_PL.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archiwum'; $labels['buttontitle'] = 'Przenieś do archiwum'; $labels['archived'] = 'Pomyślnie zarchiwizowano'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Miesiąca (np. Archiwum/2012/06)'; $labels['archivetypefolder'] = 'Oryginalny folder'; $labels['archivetypesender'] = 'E-mail nadawcy'; $labels['unkownsender'] = 'nieznany'; + ?> diff --git a/plugins/archive/localization/pt_BR.inc b/plugins/archive/localization/pt_BR.inc index b819ad2d3..3df6cfdad 100644 --- a/plugins/archive/localization/pt_BR.inc +++ b/plugins/archive/localization/pt_BR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arquivo'; $labels['buttontitle'] = 'Arquivar esta mensagem'; $labels['archived'] = 'Arquivada com sucesso'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Mês (isto é, Arquivo/2012/06)'; $labels['archivetypefolder'] = 'Pasta original'; $labels['archivetypesender'] = 'E-mail do remetente'; $labels['unkownsender'] = 'desconhecido'; + ?> diff --git a/plugins/archive/localization/pt_PT.inc b/plugins/archive/localization/pt_PT.inc index a2a3e20de..b932022b5 100644 --- a/plugins/archive/localization/pt_PT.inc +++ b/plugins/archive/localization/pt_PT.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arquivo'; $labels['buttontitle'] = 'Arquivar esta mensagem'; $labels['archived'] = 'Arquivada com sucesso'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Mês (ex. Arquivo/2012/06)'; $labels['archivetypefolder'] = 'Pasta original'; $labels['archivetypesender'] = 'E-mail do remetente'; $labels['unkownsender'] = 'desconhecido'; + ?> diff --git a/plugins/archive/localization/ro_RO.inc b/plugins/archive/localization/ro_RO.inc index 6cd9df5ee..6fa5cee22 100644 --- a/plugins/archive/localization/ro_RO.inc +++ b/plugins/archive/localization/ro_RO.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arhivă'; $labels['buttontitle'] = 'Arhivează mesajul.'; $labels['archived'] = 'Arhivare reuşită.'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Luni (ex. Arhiva/2013/06)'; $labels['archivetypefolder'] = 'Dosar original'; $labels['archivetypesender'] = 'E-mail expeditor'; $labels['unkownsender'] = 'necunoscut'; + ?> diff --git a/plugins/archive/localization/ru_RU.inc b/plugins/archive/localization/ru_RU.inc index b3058b62e..9a18981d3 100644 --- a/plugins/archive/localization/ru_RU.inc +++ b/plugins/archive/localization/ru_RU.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Архив'; $labels['buttontitle'] = 'Переместить выбранное в архив'; $labels['archived'] = 'Перенесено в Архив'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Месяц (например, Архив/2012/06) $labels['archivetypefolder'] = 'Исходная папка'; $labels['archivetypesender'] = 'Адрес отправителя'; $labels['unkownsender'] = 'неизвестно'; + ?> diff --git a/plugins/archive/localization/si_LK.inc b/plugins/archive/localization/si_LK.inc index 24f49ab4f..91e47aee0 100644 --- a/plugins/archive/localization/si_LK.inc +++ b/plugins/archive/localization/si_LK.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'සංරක්‍ෂණය'; $labels['buttontitle'] = 'මෙම පණිවිඩය සංරක්‍ෂණය කරන්න'; $labels['archived'] = 'සංරක්‍ෂණය සාර්ථකයි'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'සංරක්‍ෂණය'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/sk_SK.inc b/plugins/archive/localization/sk_SK.inc index f3f447b90..ce7f63e1c 100644 --- a/plugins/archive/localization/sk_SK.inc +++ b/plugins/archive/localization/sk_SK.inc @@ -15,17 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Archivovať'; $labels['buttontitle'] = 'Archivovať túto správu'; $labels['archived'] = 'Úspešne archivované'; -$labels['archivedreload'] = 'Archivovanie bolo úspešne dokončené. Ak si chcete prezrieť nové archívne priečinky, obnovte stránku.'; -$labels['archiveerror'] = 'Niektoré správy nebolo možné archivovať'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Archivovať'; -$labels['settingstitle'] = 'Archív'; -$labels['archivetype'] = 'Rozdeliť archív po'; -$labels['archivetypeyear'] = 'Rok (napríklad Archív/2012)'; -$labels['archivetypemonth'] = 'Mesiac (napríklad Archív/2012/06)'; -$labels['archivetypefolder'] = 'Pôvodný priečinok'; -$labels['archivetypesender'] = 'E-mailová adresa odosielateľa'; -$labels['unkownsender'] = 'neznámy'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/sl_SI.inc b/plugins/archive/localization/sl_SI.inc index 60d772591..b49fe93ab 100644 --- a/plugins/archive/localization/sl_SI.inc +++ b/plugins/archive/localization/sl_SI.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arhiv'; $labels['buttontitle'] = 'Arhiviraj to sporočilo'; $labels['archived'] = 'Sporočilo je bilo uspešno arhivirano'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Mesec (npr. Arhiv/2012/06)'; $labels['archivetypefolder'] = 'Izvorna mapa'; $labels['archivetypesender'] = 'Naslov pošiljatelja'; $labels['unkownsender'] = 'neznan'; + ?> diff --git a/plugins/archive/localization/sr_CS.inc b/plugins/archive/localization/sr_CS.inc index 9d501e9d0..686038d4c 100644 --- a/plugins/archive/localization/sr_CS.inc +++ b/plugins/archive/localization/sr_CS.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arhiva'; $labels['buttontitle'] = 'Arhivirati ovu poruku'; $labels['archived'] = 'Uspěšno arhivirano'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Arhiva'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/sv_SE.inc b/plugins/archive/localization/sv_SE.inc index 361b7b6d9..49ab09300 100644 --- a/plugins/archive/localization/sv_SE.inc +++ b/plugins/archive/localization/sv_SE.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arkivera'; $labels['buttontitle'] = 'Arkivera meddelande'; $labels['archived'] = 'Meddelandet är arkiverat'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Månad (ex. Arkiv/2012/06)'; $labels['archivetypefolder'] = 'Ursprunglig katalog'; $labels['archivetypesender'] = 'Avsändaradress'; $labels['unkownsender'] = 'Okänd'; + ?> diff --git a/plugins/archive/localization/tr_TR.inc b/plugins/archive/localization/tr_TR.inc index bbadfda7c..b6960ea89 100644 --- a/plugins/archive/localization/tr_TR.inc +++ b/plugins/archive/localization/tr_TR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Arşiv'; $labels['buttontitle'] = 'Bu postayı arşivle'; $labels['archived'] = 'Başarıyla arşivlendi'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = 'Ay(Arşiv/2012/06)'; $labels['archivetypefolder'] = 'Özgün dosya'; $labels['archivetypesender'] = 'E-Posta Göndericisi'; $labels['unkownsender'] = 'bilinmeyen'; + ?> diff --git a/plugins/archive/localization/uk_UA.inc b/plugins/archive/localization/uk_UA.inc index d2b461fca..777be6167 100644 --- a/plugins/archive/localization/uk_UA.inc +++ b/plugins/archive/localization/uk_UA.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Архів'; $labels['buttontitle'] = 'Архівувати це повідомлення'; $labels['archived'] = 'Перенесено в архів'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Архів'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/vi_VN.inc b/plugins/archive/localization/vi_VN.inc index 61e02085b..fa2be9895 100644 --- a/plugins/archive/localization/vi_VN.inc +++ b/plugins/archive/localization/vi_VN.inc @@ -15,8 +15,20 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = 'Lưu trữ'; $labels['buttontitle'] = 'Lưu lại bức thư này'; $labels['archived'] = 'Lưu lại thành công'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; $labels['archivefolder'] = 'Lưu trữ'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; + ?> diff --git a/plugins/archive/localization/zh_CN.inc b/plugins/archive/localization/zh_CN.inc index 89837c141..4a13d541a 100644 --- a/plugins/archive/localization/zh_CN.inc +++ b/plugins/archive/localization/zh_CN.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = '存档'; $labels['buttontitle'] = '存档该信息'; $labels['archived'] = '存档成功'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = '月(例如 存档/2012/06)'; $labels['archivetypefolder'] = '原始文件夹'; $labels['archivetypesender'] = '发件人邮件'; $labels['unkownsender'] = '未知'; + ?> diff --git a/plugins/archive/localization/zh_TW.inc b/plugins/archive/localization/zh_TW.inc index a50ef2845..6eac3a391 100644 --- a/plugins/archive/localization/zh_TW.inc +++ b/plugins/archive/localization/zh_TW.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ */ + +$labels = array(); $labels['buttontext'] = '封存'; $labels['buttontitle'] = '封存此信件'; $labels['archived'] = '已成功封存'; @@ -28,4 +30,5 @@ $labels['archivetypemonth'] = '月份(例如: 封存/2012/06)'; $labels['archivetypefolder'] = '原始資料夾'; $labels['archivetypesender'] = '寄件者電子信箱'; $labels['unkownsender'] = '未知'; + ?> diff --git a/plugins/archive/package.xml b/plugins/archive/package.xml index ec3323e4b..1aeffaf41 100644 --- a/plugins/archive/package.xml +++ b/plugins/archive/package.xml @@ -6,23 +6,17 @@ archive pear.roundcube.net Archive feature for Roundcube - This adds a button to move the selected messages to an archive folder. The folder (and the optional structure of subfolders) can be selected in the settings panel. + This adds a button to move the selected messages to an archive folder. The folder can be selected in the settings panel. Thomas Bruederli thomasb roundcube@gmail.com yes - - Aleksander Machniak - alec - alec@alec.pl - yes - - 2013-10-30 + 2011-11-23 - 2.1 - 2.0 + 1.6 + 1.6 stable @@ -40,55 +34,21 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/plugins/autologon/autologon.php b/plugins/autologon/autologon.php index 9c7d5b6fc..63ffb943e 100644 --- a/plugins/autologon/autologon.php +++ b/plugins/autologon/autologon.php @@ -19,6 +19,8 @@ class autologon extends rcube_plugin function startup($args) { + $rcmail = rcmail::get_instance(); + // change action to login if (empty($_SESSION['user_id']) && !empty($_GET['_autologin']) && $this->is_localhost()) $args['action'] = 'login'; @@ -35,7 +37,7 @@ class autologon extends rcube_plugin $args['cookiecheck'] = false; $args['valid'] = true; } - + return $args; } diff --git a/plugins/database_attachments/database_attachments.php b/plugins/database_attachments/database_attachments.php index 5ec351404..079f4e567 100644 --- a/plugins/database_attachments/database_attachments.php +++ b/plugins/database_attachments/database_attachments.php @@ -1,6 +1,6 @@ * @version @package_version@ */ - -require_once INSTALL_PATH . 'plugins/filesystem_attachments/filesystem_attachments.php'; - +require_once('plugins/filesystem_attachments/filesystem_attachments.php'); class database_attachments extends filesystem_attachments { - // Cache object - protected $cache; // A prefix for the cache key used in the session and in the key field of the cache table - protected $prefix = "db_attach"; + private $cache_prefix = "db_attach"; + + /** + * Helper method to generate a unique key for the given attachment file + */ + private function _key($args) + { + $uname = $args['path'] ? $args['path'] : $args['name']; + return $this->cache_prefix . $args['group'] . md5(mktime() . $uname . $_SESSION['user_id']); + } /** * Save a newly uploaded attachment @@ -30,17 +35,23 @@ class database_attachments extends filesystem_attachments function upload($args) { $args['status'] = false; + $rcmail = rcmail::get_instance(); + $key = $this->_key($args); - $cache = $this->get_cache(); - $key = $this->_key($args); - $data = file_get_contents($args['path']); + $data = file_get_contents($args['path']); - if ($data === false) { + if ($data === false) return $args; - } - $data = base64_encode($data); - $status = $cache->write($key, $data); + $data = base64_encode($data); + + $status = $rcmail->db->query( + "INSERT INTO ".get_table_name('cache') + ." (created, user_id, cache_key, data)" + ." VALUES (".$rcmail->db->now().", ?, ?, ?)", + $_SESSION['user_id'], + $key, + $data); if ($status) { $args['id'] = $key; @@ -57,20 +68,26 @@ class database_attachments extends filesystem_attachments function save($args) { $args['status'] = false; + $rcmail = rcmail::get_instance(); - $cache = $this->get_cache(); - $key = $this->_key($args); + $key = $this->_key($args); if ($args['path']) { $args['data'] = file_get_contents($args['path']); - if ($args['data'] === false) { + if ($args['data'] === false) return $args; - } } - $data = base64_encode($args['data']); - $status = $cache->write($key, $data); + $data = base64_encode($args['data']); + + $status = $rcmail->db->query( + "INSERT INTO ".get_table_name('cache') + ." (created, user_id, cache_key, data)" + ." VALUES (".$rcmail->db->now().", ?, ?, ?)", + $_SESSION['user_id'], + $key, + $data); if ($status) { $args['id'] = $key; @@ -86,10 +103,18 @@ class database_attachments extends filesystem_attachments */ function remove($args) { - $cache = $this->get_cache(); - $status = $cache->remove($args['id']); + $args['status'] = false; + $rcmail = rcmail::get_instance(); + $status = $rcmail->db->query( + "DELETE FROM ".get_table_name('cache') + ." WHERE user_id = ?" + ." AND cache_key = ?", + $_SESSION['user_id'], + $args['id']); - $args['status'] = true; + if ($status) { + $args['status'] = true; + } return $args; } @@ -110,11 +135,18 @@ class database_attachments extends filesystem_attachments */ function get($args) { - $cache = $this->get_cache(); - $data = $cache->read($args['id']); - - if ($data) { - $args['data'] = base64_decode($data); + $rcmail = rcmail::get_instance(); + + $sql_result = $rcmail->db->query( + "SELECT data" + ." FROM ".get_table_name('cache') + ." WHERE user_id=?" + ." AND cache_key=?", + $_SESSION['user_id'], + $args['id']); + + if ($sql_arr = $rcmail->db->fetch_assoc($sql_result)) { + $args['data'] = base64_decode($sql_arr['data']); $args['status'] = true; } @@ -126,36 +158,12 @@ class database_attachments extends filesystem_attachments */ function cleanup($args) { - $cache = $this->get_cache(); - $cache->remove($args['group'], true); - } - - /** - * Helper method to generate a unique key for the given attachment file - */ - protected function _key($args) - { - $uname = $args['path'] ? $args['path'] : $args['name']; - return $args['group'] . md5(mktime() . $uname . $_SESSION['user_id']); - } - - /** - * Initialize and return cache object - */ - protected function get_cache() - { - if (!$this->cache) { - $this->load_config(); - - $rcmail = rcube::get_instance(); - $ttl = 12 * 60 * 60; // default: 12 hours - $ttl = $rcmail->config->get('database_attachments_cache_ttl', $ttl); - $type = $rcmail->config->get('database_attachments_cache', 'db'); - - // Init SQL cache (disable cache data serialization) - $this->cache = $rcmail->get_cache($this->prefix, 'db', $ttl, false); - } - - return $this->cache; + $prefix = $this->cache_prefix . $args['group']; + $rcmail = rcmail::get_instance(); + $rcmail->db->query( + "DELETE FROM ".get_table_name('cache') + ." WHERE user_id = ?" + ." AND cache_key LIKE '{$prefix}%'", + $_SESSION['user_id']); } } diff --git a/plugins/database_attachments/package.xml b/plugins/database_attachments/package.xml index 44adc219e..40db858a4 100644 --- a/plugins/database_attachments/package.xml +++ b/plugins/database_attachments/package.xml @@ -5,7 +5,7 @@ http://pear.php.net/dtd/package-2.0.xsd"> database_attachments pear.roundcube.net - Database storage for uploaded attachments + SQL database storage for uploaded attachments This plugin which provides database backed storage for temporary attachment file handling. The primary advantage of this plugin @@ -24,9 +24,9 @@ ziba@umich.edu yes - 2013-06-13 + 2011-11-21 - 1.1 + 1.0 1.0 diff --git a/plugins/debug_logger/debug_logger.php b/plugins/debug_logger/debug_logger.php index 88237d767..87a163785 100644 --- a/plugins/debug_logger/debug_logger.php +++ b/plugins/debug_logger/debug_logger.php @@ -12,7 +12,7 @@ * which can redirect messages to files. The resulting log files * provide timing and tag quantity results. * - * Enable the plugin in config.inc.php and add your desired + * Enable the plugin in config/main.inc.php and add your desired * log types and files. * * @version @package_version@ @@ -21,13 +21,13 @@ * * Example: * - * config.inc.php: + * config/main.inc.php: * - * // $config['debug_logger'][type of logging] = name of file in log_dir + * // $rcmail_config['debug_logger'][type of logging] = name of file in log_dir * // The 'master' log includes timing information - * $config['debug_logger']['master'] = 'master'; + * $rcmail_config['debug_logger']['master'] = 'master'; * // If you want sql messages to also go into a separate file - * $config['debug_logger']['sql'] = 'sql'; + * $rcmail_config['debug_logger']['sql'] = 'sql'; * * index.php (just after $RCMAIL->plugins->init()): * diff --git a/plugins/debug_logger/runlog/runlog.php b/plugins/debug_logger/runlog/runlog.php index 0c766a13c..c9f672615 100644 --- a/plugins/debug_logger/runlog/runlog.php +++ b/plugins/debug_logger/runlog/runlog.php @@ -194,7 +194,7 @@ class runlog { public function print_totals(){ $totals = array(); - foreach ($this->run_log as $entry) { + foreach ( $this->run_log as $k => $entry ) { if ( $entry['type'] == 'start' && $entry['ended'] == true) { $totals[$entry['value']]['duration'] += $entry['duration']; $totals[$entry['value']]['count'] += 1; diff --git a/plugins/enigma/README b/plugins/enigma/README deleted file mode 100644 index 22d6e513a..000000000 --- a/plugins/enigma/README +++ /dev/null @@ -1,35 +0,0 @@ ------------------------------------------------------------------- -THIS IS NOT EVEN AN "ALPHA" STATE. USE ONLY FOR DEVELOPMENT!!!!!!! ------------------------------------------------------------------- - -WARNING: Don't use with gnupg-2.x! - -Enigma Plugin Status: - -* DONE: - -- PGP signed messages verification -- Handling of PGP keys files attached to incoming messages -- PGP encrypted messages decryption (started) -- PGP keys management UI (started) - -* TODO (must have): - -- Parsing of decrypted messages into array (see rcube_mime_struct) and then into rcube_message_part structure - (create core class rcube_mime_parser or take over PEAR::Mail_mimeDecode package and improve it) -- Sending encrypted/signed messages (probably some changes in core will be needed) -- Per-Identity settings (including keys/certs) -- Handling big messages with temp files (including changes in Roundcube core) -- Performance improvements (some caching, code review) -- better (and more) icons - -* TODO (later): - -- Keys generation -- Certs generation -- Keys/Certs info in Contacts details page (+ split Contact details page into tabs) -- Key server support -- S/MIME signed messages verification -- S/MIME encrypted messages decryption -- Handling of S/MIME certs files attached to incoming messages -- SSL (S/MIME) Certs management diff --git a/plugins/enigma/config.inc.php.dist b/plugins/enigma/config.inc.php.dist deleted file mode 100644 index 2adb4d9f6..000000000 --- a/plugins/enigma/config.inc.php.dist +++ /dev/null @@ -1,14 +0,0 @@ - 1) - page = this.env.current_page - 1; - else if (page == 'first' && this.env.current_page > 1) - page = 1; - - this.enigma_list(page); -} - -// Remove list rows -rcube_webmail.prototype.enigma_clear_list = function() -{ - this.enigma_loadframe(); - if (this.keys_list) - this.keys_list.clear(true); -} - -// Adds a row to the list -rcube_webmail.prototype.enigma_add_list_row = function(r) -{ - if (!this.gui_objects.keyslist || !this.keys_list) - return false; - - var list = this.keys_list, - tbody = this.gui_objects.keyslist.tBodies[0], - rowcount = tbody.rows.length, - even = rowcount%2, - css_class = 'message' - + (even ? ' even' : ' odd'), - // for performance use DOM instead of jQuery here - row = document.createElement('tr'), - col = document.createElement('td'); - - row.id = 'rcmrow' + r.id; - row.className = css_class; - - col.innerHTML = r.name; - row.appendChild(col); - list.insert_row(row); -} - -/*********************************************************/ -/********* Enigma Message methods *********/ -/*********************************************************/ - -// Import attached keys/certs file -rcube_webmail.prototype.enigma_import_attachment = function(mime_id) -{ - var lock = this.set_busy(true, 'loading'); - this.http_post('plugin.enigmaimport', '_uid='+this.env.uid+'&_mbox=' - +urlencode(this.env.mailbox)+'&_part='+urlencode(mime_id), lock); - - return false; -}; - diff --git a/plugins/enigma/enigma.php b/plugins/enigma/enigma.php deleted file mode 100644 index 25520a27d..000000000 --- a/plugins/enigma/enigma.php +++ /dev/null @@ -1,476 +0,0 @@ - | - +-------------------------------------------------------------------------+ -*/ - -/* - This class contains only hooks and action handlers. - Most plugin logic is placed in enigma_engine and enigma_ui classes. -*/ - -class enigma extends rcube_plugin -{ - public $task = 'mail|settings'; - public $rc; - public $engine; - - private $env_loaded; - private $message; - private $keys_parts = array(); - private $keys_bodies = array(); - - - /** - * Plugin initialization. - */ - function init() - { - $rcmail = rcmail::get_instance(); - $this->rc = $rcmail; - - $section = rcube_utils::get_input_value('_section', rcube_utils::INPUT_GET); - - if ($this->rc->task == 'mail') { - // message parse/display hooks - $this->add_hook('message_part_structure', array($this, 'parse_structure')); - $this->add_hook('message_body_prefix', array($this, 'status_message')); - - // message displaying - if ($rcmail->action == 'show' || $rcmail->action == 'preview') { - $this->add_hook('message_load', array($this, 'message_load')); - $this->add_hook('template_object_messagebody', array($this, 'message_output')); - $this->register_action('plugin.enigmaimport', array($this, 'import_file')); - } - // message composing - else if ($rcmail->action == 'compose') { - $this->load_ui(); - $this->ui->init($section); - } - // message sending (and draft storing) - else if ($rcmail->action == 'sendmail') { - //$this->add_hook('outgoing_message_body', array($this, 'msg_encode')); - //$this->add_hook('outgoing_message_body', array($this, 'msg_sign')); - } - } - else if ($this->rc->task == 'settings') { - // add hooks for Enigma settings - $this->add_hook('preferences_sections_list', array($this, 'preferences_section')); - $this->add_hook('preferences_list', array($this, 'preferences_list')); - $this->add_hook('preferences_save', array($this, 'preferences_save')); - - // register handler for keys/certs management - $this->register_action('plugin.enigma', array($this, 'preferences_ui')); - - // grab keys/certs management iframe requests - if ($this->rc->action == 'edit-prefs' && preg_match('/^enigma(certs|keys)/', $section)) { - $this->load_ui(); - $this->ui->init($section); - } - } - } - - /** - * Plugin environment initialization. - */ - function load_env() - { - if ($this->env_loaded) - return; - - $this->env_loaded = true; - - // Add include path for Enigma classes and drivers - $include_path = $this->home . '/lib' . PATH_SEPARATOR; - $include_path .= ini_get('include_path'); - set_include_path($include_path); - - // load the Enigma plugin configuration - $this->load_config(); - - // include localization (if wasn't included before) - $this->add_texts('localization/'); - } - - /** - * Plugin UI initialization. - */ - function load_ui() - { - if ($this->ui) - return; - - // load config/localization - $this->load_env(); - - // Load UI - $this->ui = new enigma_ui($this, $this->home); - } - - /** - * Plugin engine initialization. - */ - function load_engine() - { - if ($this->engine) - return; - - // load config/localization - $this->load_env(); - - $this->engine = new enigma_engine($this); - } - - /** - * Handler for message_part_structure hook. - * Called for every part of the message. - * - * @param array Original parameters - * - * @return array Modified parameters - */ - function parse_structure($p) - { -// $struct = $p['structure']; - - if ($p['mimetype'] == 'text/plain' || $p['mimetype'] == 'application/pgp') { - $this->parse_plain($p); - } - else if ($p['mimetype'] == 'multipart/signed') { - $this->parse_signed($p); - } - else if ($p['mimetype'] == 'multipart/encrypted') { - $this->parse_encrypted($p); - } - else if ($p['mimetype'] == 'application/pkcs7-mime') { - $this->parse_encrypted($p); - } - - return $p; - } - - /** - * Handler for preferences_sections_list hook. - * Adds Enigma settings sections into preferences sections list. - * - * @param array Original parameters - * - * @return array Modified parameters - */ - function preferences_section($p) - { - // add labels - $this->add_texts('localization/'); - - $p['list']['enigmasettings'] = array( - 'id' => 'enigmasettings', 'section' => $this->gettext('enigmasettings'), - ); - $p['list']['enigmacerts'] = array( - 'id' => 'enigmacerts', 'section' => $this->gettext('enigmacerts'), - ); - $p['list']['enigmakeys'] = array( - 'id' => 'enigmakeys', 'section' => $this->gettext('enigmakeys'), - ); - - return $p; - } - - /** - * Handler for preferences_list hook. - * Adds options blocks into Enigma settings sections in Preferences. - * - * @param array Original parameters - * - * @return array Modified parameters - */ - function preferences_list($p) - { - if ($p['section'] == 'enigmasettings') { - // This makes that section is not removed from the list - $p['blocks']['dummy']['options']['dummy'] = array(); - } - else if ($p['section'] == 'enigmacerts') { - // This makes that section is not removed from the list - $p['blocks']['dummy']['options']['dummy'] = array(); - } - else if ($p['section'] == 'enigmakeys') { - // This makes that section is not removed from the list - $p['blocks']['dummy']['options']['dummy'] = array(); - } - - return $p; - } - - /** - * Handler for preferences_save hook. - * Executed on Enigma settings form submit. - * - * @param array Original parameters - * - * @return array Modified parameters - */ - function preferences_save($p) - { - if ($p['section'] == 'enigmasettings') { - $a['prefs'] = array( -// 'dummy' => rcube_utils::get_input_value('_dummy', rcube_utils::INPUT_POST), - ); - } - - return $p; - } - - /** - * Handler for keys/certs management UI template. - */ - function preferences_ui() - { - $this->load_ui(); - $this->ui->init(); - } - - /** - * Handler for message_body_prefix hook. - * Called for every displayed (content) part of the message. - * Adds infobox about signature verification and/or decryption - * status above the body. - * - * @param array Original parameters - * - * @return array Modified parameters - */ - function status_message($p) - { - $part_id = $p['part']->mime_id; - - // skip: not a message part - if ($p['part'] instanceof rcube_message) - return $p; - - // skip: message has no signed/encoded content - if (!$this->engine) - return $p; - - // Decryption status - if (isset($this->engine->decryptions[$part_id])) { - - // get decryption status - $status = $this->engine->decryptions[$part_id]; - - // Load UI and add css script - $this->load_ui(); - $this->ui->add_css(); - - // display status info - $attrib['id'] = 'enigma-message'; - - if ($status instanceof enigma_error) { - $attrib['class'] = 'enigmaerror'; - $code = $status->getCode(); - if ($code == enigma_error::E_KEYNOTFOUND) - $msg = rcube::Q(str_replace('$keyid', enigma_key::format_id($status->getData('id')), - $this->gettext('decryptnokey'))); - else if ($code == enigma_error::E_BADPASS) - $msg = rcube::Q($this->gettext('decryptbadpass')); - else - $msg = rcube::Q($this->gettext('decrypterror')); - } - else { - $attrib['class'] = 'enigmanotice'; - $msg = rcube::Q($this->gettext('decryptok')); - } - - $p['prefix'] .= html::div($attrib, $msg); - } - - // Signature verification status - if (isset($this->engine->signed_parts[$part_id]) - && ($sig = $this->engine->signatures[$this->engine->signed_parts[$part_id]]) - ) { - // add css script - $this->load_ui(); - $this->ui->add_css(); - - // display status info - $attrib['id'] = 'enigma-message'; - - if ($sig instanceof enigma_signature) { - if ($sig->valid) { - $attrib['class'] = 'enigmanotice'; - $sender = ($sig->name ? $sig->name . ' ' : '') . '<' . $sig->email . '>'; - $msg = rcube::Q(str_replace('$sender', $sender, $this->gettext('sigvalid'))); - } - else { - $attrib['class'] = 'enigmawarning'; - $sender = ($sig->name ? $sig->name . ' ' : '') . '<' . $sig->email . '>'; - $msg = rcube::Q(str_replace('$sender', $sender, $this->gettext('siginvalid'))); - } - } - else if ($sig->getCode() == enigma_error::E_KEYNOTFOUND) { - $attrib['class'] = 'enigmawarning'; - $msg = rcube::Q(str_replace('$keyid', enigma_key::format_id($sig->getData('id')), - $this->gettext('signokey'))); - } - else { - $attrib['class'] = 'enigmaerror'; - $msg = rcube::Q($this->gettext('sigerror')); - } -/* - $msg .= ' ' . html::a(array('href' => "#sigdetails", - 'onclick' => rcmail_output::JS_OBJECT_NAME.".command('enigma-sig-details')"), - rcube::Q($this->gettext('showdetails'))); -*/ - // test -// $msg .= '
'.$sig->body.'
'; - - $p['prefix'] .= html::div($attrib, $msg); - - // Display each signature message only once - unset($this->engine->signatures[$this->engine->signed_parts[$part_id]]); - } - - return $p; - } - - /** - * Handler for plain/text message. - * - * @param array Reference to hook's parameters (see enigma::parse_structure()) - */ - private function parse_plain(&$p) - { - $this->load_engine(); - $this->engine->parse_plain($p); - } - - /** - * Handler for multipart/signed message. - * Verifies signature. - * - * @param array Reference to hook's parameters (see enigma::parse_structure()) - */ - private function parse_signed(&$p) - { - $this->load_engine(); - $this->engine->parse_signed($p); - } - - /** - * Handler for multipart/encrypted and application/pkcs7-mime message. - * - * @param array Reference to hook's parameters (see enigma::parse_structure()) - */ - private function parse_encrypted(&$p) - { - $this->load_engine(); - $this->engine->parse_encrypted($p); - } - - /** - * Handler for message_load hook. - * Check message bodies and attachments for keys/certs. - */ - function message_load($p) - { - $this->message = $p['object']; - - // handle attachments vcard attachments - foreach ((array)$this->message->attachments as $attachment) { - if ($this->is_keys_part($attachment)) { - $this->keys_parts[] = $attachment->mime_id; - } - } - // the same with message bodies - foreach ((array)$this->message->parts as $part) { - if ($this->is_keys_part($part)) { - $this->keys_parts[] = $part->mime_id; - $this->keys_bodies[] = $part->mime_id; - } - } - // @TODO: inline PGP keys - - if ($this->keys_parts) { - $this->add_texts('localization'); - } - } - - /** - * Handler for template_object_messagebody hook. - * This callback function adds a box below the message content - * if there is a key/cert attachment available - */ - function message_output($p) - { - $attach_script = false; - - foreach ($this->keys_parts as $part) { - - // remove part's body - if (in_array($part, $this->keys_bodies)) - $p['content'] = ''; - - $style = "margin:0 1em; padding:0.2em 0.5em; border:1px solid #999; width: auto" - ." border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px"; - - // add box below message body - $p['content'] .= html::p(array('style' => $style), - html::a(array( - 'href' => "#", - 'onclick' => "return ".rcmail_output::JS_OBJECT_NAME.".enigma_import_attachment('".rcube::JQ($part)."')", - 'title' => $this->gettext('keyattimport')), - html::img(array('src' => $this->url('skins/classic/key_add.png'), 'style' => "vertical-align:middle"))) - . ' ' . html::span(null, $this->gettext('keyattfound'))); - - $attach_script = true; - } - - if ($attach_script) { - $this->include_script('enigma.js'); - } - - return $p; - } - - /** - * Handler for attached keys/certs import - */ - function import_file() - { - $this->load_engine(); - $this->engine->import_file(); - } - - /** - * Checks if specified message part is a PGP-key or S/MIME cert data - * - * @param rcube_message_part Part object - * - * @return boolean True if part is a key/cert - */ - private function is_keys_part($part) - { - // @TODO: S/MIME - return ( - // Content-Type: application/pgp-keys - $part->mimetype == 'application/pgp-keys' - ); - } -} diff --git a/plugins/enigma/home/.htaccess b/plugins/enigma/home/.htaccess deleted file mode 100644 index 8e6a345dc..000000000 --- a/plugins/enigma/home/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -Order allow,deny -Deny from all \ No newline at end of file diff --git a/plugins/enigma/lib/enigma_driver.php b/plugins/enigma/lib/enigma_driver.php deleted file mode 100644 index a9a3e4715..000000000 --- a/plugins/enigma/lib/enigma_driver.php +++ /dev/null @@ -1,106 +0,0 @@ - | - +-------------------------------------------------------------------------+ -*/ - -abstract class enigma_driver -{ - /** - * Class constructor. - * - * @param string User name (email address) - */ - abstract function __construct($user); - - /** - * Driver initialization. - * - * @return mixed NULL on success, enigma_error on failure - */ - abstract function init(); - - /** - * Encryption. - */ - abstract function encrypt($text, $keys); - - /** - * Decryption.. - */ - abstract function decrypt($text, $key, $passwd); - - /** - * Signing. - */ - abstract function sign($text, $key, $passwd); - - /** - * Signature verification. - * - * @param string Message body - * @param string Signature, if message is of type PGP/MIME and body doesn't contain it - * - * @return mixed Signature information (enigma_signature) or enigma_error - */ - abstract function verify($text, $signature); - - /** - * Key/Cert file import. - * - * @param string File name or file content - * @param bollean True if first argument is a filename - * - * @return mixed Import status array or enigma_error - */ - abstract function import($content, $isfile=false); - - /** - * Keys listing. - * - * @param string Optional pattern for key ID, user ID or fingerprint - * - * @return mixed Array of enigma_key objects or enigma_error - */ - abstract function list_keys($pattern=''); - - /** - * Single key information. - * - * @param string Key ID, user ID or fingerprint - * - * @return mixed Key (enigma_key) object or enigma_error - */ - abstract function get_key($keyid); - - /** - * Key pair generation. - * - * @param array Key/User data - * - * @return mixed Key (enigma_key) object or enigma_error - */ - abstract function gen_key($data); - - /** - * Key deletion. - */ - abstract function del_key($keyid); -} diff --git a/plugins/enigma/lib/enigma_driver_gnupg.php b/plugins/enigma/lib/enigma_driver_gnupg.php deleted file mode 100644 index 5aa32217e..000000000 --- a/plugins/enigma/lib/enigma_driver_gnupg.php +++ /dev/null @@ -1,305 +0,0 @@ - | - +-------------------------------------------------------------------------+ -*/ - -require_once 'Crypt/GPG.php'; - -class enigma_driver_gnupg extends enigma_driver -{ - private $rc; - private $gpg; - private $homedir; - private $user; - - function __construct($user) - { - $rcmail = rcmail::get_instance(); - $this->rc = $rcmail; - $this->user = $user; - } - - /** - * Driver initialization and environment checking. - * Should only return critical errors. - * - * @return mixed NULL on success, enigma_error on failure - */ - function init() - { - $homedir = $this->rc->config->get('enigma_pgp_homedir', INSTALL_PATH . '/plugins/enigma/home'); - - if (!$homedir) - return new enigma_error(enigma_error::E_INTERNAL, - "Option 'enigma_pgp_homedir' not specified"); - - // check if homedir exists (create it if not) and is readable - if (!file_exists($homedir)) - return new enigma_error(enigma_error::E_INTERNAL, - "Keys directory doesn't exists: $homedir"); - if (!is_writable($homedir)) - return new enigma_error(enigma_error::E_INTERNAL, - "Keys directory isn't writeable: $homedir"); - - $homedir = $homedir . '/' . $this->user; - - // check if user's homedir exists (create it if not) and is readable - if (!file_exists($homedir)) - mkdir($homedir, 0700); - - if (!file_exists($homedir)) - return new enigma_error(enigma_error::E_INTERNAL, - "Unable to create keys directory: $homedir"); - if (!is_writable($homedir)) - return new enigma_error(enigma_error::E_INTERNAL, - "Unable to write to keys directory: $homedir"); - - $this->homedir = $homedir; - - // Create Crypt_GPG object - try { - $this->gpg = new Crypt_GPG(array( - 'homedir' => $this->homedir, -// 'debug' => true, - )); - } - catch (Exception $e) { - return $this->get_error_from_exception($e); - } - } - - function encrypt($text, $keys) - { -/* - foreach ($keys as $key) { - $this->gpg->addEncryptKey($key); - } - $enc = $this->gpg->encrypt($text); - return $enc; -*/ - } - - function decrypt($text, $key, $passwd) - { -// $this->gpg->addDecryptKey($key, $passwd); - try { - $dec = $this->gpg->decrypt($text); - return $dec; - } - catch (Exception $e) { - return $this->get_error_from_exception($e); - } - } - - function sign($text, $key, $passwd) - { -/* - $this->gpg->addSignKey($key, $passwd); - $signed = $this->gpg->sign($text, Crypt_GPG::SIGN_MODE_DETACHED); - return $signed; -*/ - } - - function verify($text, $signature) - { - try { - $verified = $this->gpg->verify($text, $signature); - return $this->parse_signature($verified[0]); - } - catch (Exception $e) { - return $this->get_error_from_exception($e); - } - } - - public function import($content, $isfile=false) - { - try { - if ($isfile) - return $this->gpg->importKeyFile($content); - else - return $this->gpg->importKey($content); - } - catch (Exception $e) { - return $this->get_error_from_exception($e); - } - } - - public function list_keys($pattern='') - { - try { - $keys = $this->gpg->getKeys($pattern); - $result = array(); -//print_r($keys); - foreach ($keys as $idx => $key) { - $result[] = $this->parse_key($key); - unset($keys[$idx]); - } -//print_r($result); - return $result; - } - catch (Exception $e) { - return $this->get_error_from_exception($e); - } - } - - public function get_key($keyid) - { - $list = $this->list_keys($keyid); - - if (is_array($list)) - return array_shift($list); - - // error - return $list; - } - - public function gen_key($data) - { - } - - public function del_key($keyid) - { -// $this->get_key($keyid); - - - } - - public function del_privkey($keyid) - { - try { - $this->gpg->deletePrivateKey($keyid); - return true; - } - catch (Exception $e) { - return $this->get_error_from_exception($e); - } - } - - public function del_pubkey($keyid) - { - try { - $this->gpg->deletePublicKey($keyid); - return true; - } - catch (Exception $e) { - return $this->get_error_from_exception($e); - } - } - - /** - * Converts Crypt_GPG exception into Enigma's error object - * - * @param mixed Exception object - * - * @return enigma_error Error object - */ - private function get_error_from_exception($e) - { - $data = array(); - - if ($e instanceof Crypt_GPG_KeyNotFoundException) { - $error = enigma_error::E_KEYNOTFOUND; - $data['id'] = $e->getKeyId(); - } - else if ($e instanceof Crypt_GPG_BadPassphraseException) { - $error = enigma_error::E_BADPASS; - $data['bad'] = $e->getBadPassphrases(); - $data['missing'] = $e->getMissingPassphrases(); - } - else if ($e instanceof Crypt_GPG_NoDataException) - $error = enigma_error::E_NODATA; - else if ($e instanceof Crypt_GPG_DeletePrivateKeyException) - $error = enigma_error::E_DELKEY; - else - $error = enigma_error::E_INTERNAL; - - $msg = $e->getMessage(); - - return new enigma_error($error, $msg, $data); - } - - /** - * Converts Crypt_GPG_Signature object into Enigma's signature object - * - * @param Crypt_GPG_Signature Signature object - * - * @return enigma_signature Signature object - */ - private function parse_signature($sig) - { - $user = $sig->getUserId(); - - $data = new enigma_signature(); - $data->id = $sig->getId(); - $data->valid = $sig->isValid(); - $data->fingerprint = $sig->getKeyFingerprint(); - $data->created = $sig->getCreationDate(); - $data->expires = $sig->getExpirationDate(); - $data->name = $user->getName(); - $data->comment = $user->getComment(); - $data->email = $user->getEmail(); - - return $data; - } - - /** - * Converts Crypt_GPG_Key object into Enigma's key object - * - * @param Crypt_GPG_Key Key object - * - * @return enigma_key Key object - */ - private function parse_key($key) - { - $ekey = new enigma_key(); - - foreach ($key->getUserIds() as $idx => $user) { - $id = new enigma_userid(); - $id->name = $user->getName(); - $id->comment = $user->getComment(); - $id->email = $user->getEmail(); - $id->valid = $user->isValid(); - $id->revoked = $user->isRevoked(); - - $ekey->users[$idx] = $id; - } - - $ekey->name = trim($ekey->users[0]->name . ' <' . $ekey->users[0]->email . '>'); - - foreach ($key->getSubKeys() as $idx => $subkey) { - $skey = new enigma_subkey(); - $skey->id = $subkey->getId(); - $skey->revoked = $subkey->isRevoked(); - $skey->created = $subkey->getCreationDate(); - $skey->expires = $subkey->getExpirationDate(); - $skey->fingerprint = $subkey->getFingerprint(); - $skey->has_private = $subkey->hasPrivate(); - $skey->can_sign = $subkey->canSign(); - $skey->can_encrypt = $subkey->canEncrypt(); - - $ekey->subkeys[$idx] = $skey; - }; - - $ekey->id = $ekey->subkeys[0]->id; - - return $ekey; - } -} diff --git a/plugins/enigma/lib/enigma_engine.php b/plugins/enigma/lib/enigma_engine.php deleted file mode 100644 index 8a64c07ff..000000000 --- a/plugins/enigma/lib/enigma_engine.php +++ /dev/null @@ -1,533 +0,0 @@ - | - +-------------------------------------------------------------------------+ - -*/ - -/* - RFC2440: OpenPGP Message Format - RFC3156: MIME Security with OpenPGP - RFC3851: S/MIME -*/ - -class enigma_engine -{ - private $rc; - private $enigma; - private $pgp_driver; - private $smime_driver; - - public $decryptions = array(); - public $signatures = array(); - public $signed_parts = array(); - - - /** - * Plugin initialization. - */ - function __construct($enigma) - { - $rcmail = rcmail::get_instance(); - $this->rc = $rcmail; - $this->enigma = $enigma; - } - - /** - * PGP driver initialization. - */ - function load_pgp_driver() - { - if ($this->pgp_driver) - return; - - $driver = 'enigma_driver_' . $this->rc->config->get('enigma_pgp_driver', 'gnupg'); - $username = $this->rc->user->get_username(); - - // Load driver - $this->pgp_driver = new $driver($username); - - if (!$this->pgp_driver) { - rcube::raise_error(array( - 'code' => 600, 'type' => 'php', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Enigma plugin: Unable to load PGP driver: $driver" - ), true, true); - } - - // Initialise driver - $result = $this->pgp_driver->init(); - - if ($result instanceof enigma_error) { - rcube::raise_error(array( - 'code' => 600, 'type' => 'php', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Enigma plugin: ".$result->getMessage() - ), true, true); - } - } - - /** - * S/MIME driver initialization. - */ - function load_smime_driver() - { - if ($this->smime_driver) - return; - - // NOT IMPLEMENTED! - return; - - $driver = 'enigma_driver_' . $this->rc->config->get('enigma_smime_driver', 'phpssl'); - $username = $this->rc->user->get_username(); - - // Load driver - $this->smime_driver = new $driver($username); - - if (!$this->smime_driver) { - rcube::raise_error(array( - 'code' => 600, 'type' => 'php', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Enigma plugin: Unable to load S/MIME driver: $driver" - ), true, true); - } - - // Initialise driver - $result = $this->smime_driver->init(); - - if ($result instanceof enigma_error) { - rcube::raise_error(array( - 'code' => 600, 'type' => 'php', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Enigma plugin: ".$result->getMessage() - ), true, true); - } - } - - /** - * Handler for plain/text message. - * - * @param array Reference to hook's parameters - */ - function parse_plain(&$p) - { - $part = $p['structure']; - - // Get message body from IMAP server - $this->set_part_body($part, $p['object']->uid); - - // @TODO: big message body can be a file resource - // PGP signed message - if (preg_match('/^-----BEGIN PGP SIGNED MESSAGE-----/', $part->body)) { - $this->parse_plain_signed($p); - } - // PGP encrypted message - else if (preg_match('/^-----BEGIN PGP MESSAGE-----/', $part->body)) { - $this->parse_plain_encrypted($p); - } - } - - /** - * Handler for multipart/signed message. - * - * @param array Reference to hook's parameters - */ - function parse_signed(&$p) - { - $struct = $p['structure']; - - // S/MIME - if ($struct->parts[1] && $struct->parts[1]->mimetype == 'application/pkcs7-signature') { - $this->parse_smime_signed($p); - } - // PGP/MIME: - // The multipart/signed body MUST consist of exactly two parts. - // The first part contains the signed data in MIME canonical format, - // including a set of appropriate content headers describing the data. - // The second body MUST contain the PGP digital signature. It MUST be - // labeled with a content type of "application/pgp-signature". - else if ($struct->parts[1] && $struct->parts[1]->mimetype == 'application/pgp-signature') { - $this->parse_pgp_signed($p); - } - } - - /** - * Handler for multipart/encrypted message. - * - * @param array Reference to hook's parameters - */ - function parse_encrypted(&$p) - { - $struct = $p['structure']; - - // S/MIME - if ($struct->mimetype == 'application/pkcs7-mime') { - $this->parse_smime_encrypted($p); - } - // PGP/MIME: - // The multipart/encrypted MUST consist of exactly two parts. The first - // MIME body part must have a content type of "application/pgp-encrypted". - // This body contains the control information. - // The second MIME body part MUST contain the actual encrypted data. It - // must be labeled with a content type of "application/octet-stream". - else if ($struct->parts[0] && $struct->parts[0]->mimetype == 'application/pgp-encrypted' && - $struct->parts[1] && $struct->parts[1]->mimetype == 'application/octet-stream' - ) { - $this->parse_pgp_encrypted($p); - } - } - - /** - * Handler for plain signed message. - * Excludes message and signature bodies and verifies signature. - * - * @param array Reference to hook's parameters - */ - private function parse_plain_signed(&$p) - { - $this->load_pgp_driver(); - $part = $p['structure']; - - // Verify signature - if ($this->rc->action == 'show' || $this->rc->action == 'preview') { - $sig = $this->pgp_verify($part->body); - } - - // @TODO: Handle big bodies using (temp) files - - // In this way we can use fgets on string as on file handle - $fh = fopen('php://memory', 'br+'); - // @TODO: fopen/fwrite errors handling - if ($fh) { - fwrite($fh, $part->body); - rewind($fh); - } - $part->body = null; - - // Extract body (and signature?) - while (!feof($fh)) { - $line = fgets($fh, 1024); - - if ($part->body === null) - $part->body = ''; - else if (preg_match('/^-----BEGIN PGP SIGNATURE-----/', $line)) - break; - else - $part->body .= $line; - } - - // Remove "Hash" Armor Headers - $part->body = preg_replace('/^.*\r*\n\r*\n/', '', $part->body); - // de-Dash-Escape (RFC2440) - $part->body = preg_replace('/(^|\n)- -/', '\\1-', $part->body); - - // Store signature data for display - if (!empty($sig)) { - $this->signed_parts[$part->mime_id] = $part->mime_id; - $this->signatures[$part->mime_id] = $sig; - } - - fclose($fh); - } - - /** - * Handler for PGP/MIME signed message. - * Verifies signature. - * - * @param array Reference to hook's parameters - */ - private function parse_pgp_signed(&$p) - { - $this->load_pgp_driver(); - $struct = $p['structure']; - - // Verify signature - if ($this->rc->action == 'show' || $this->rc->action == 'preview') { - $msg_part = $struct->parts[0]; - $sig_part = $struct->parts[1]; - - // Get bodies - $this->set_part_body($msg_part, $p['object']->uid); - $this->set_part_body($sig_part, $p['object']->uid); - - // Verify - $sig = $this->pgp_verify($msg_part->body, $sig_part->body); - - // Store signature data for display - $this->signatures[$struct->mime_id] = $sig; - - // Message can be multipart (assign signature to each subpart) - if (!empty($msg_part->parts)) { - foreach ($msg_part->parts as $part) - $this->signed_parts[$part->mime_id] = $struct->mime_id; - } - else - $this->signed_parts[$msg_part->mime_id] = $struct->mime_id; - - // Remove signature file from attachments list - unset($struct->parts[1]); - } - } - - /** - * Handler for S/MIME signed message. - * Verifies signature. - * - * @param array Reference to hook's parameters - */ - private function parse_smime_signed(&$p) - { - $this->load_smime_driver(); - } - - /** - * Handler for plain encrypted message. - * - * @param array Reference to hook's parameters - */ - private function parse_plain_encrypted(&$p) - { - $this->load_pgp_driver(); - $part = $p['structure']; - - // Get body - $this->set_part_body($part, $p['object']->uid); - - // Decrypt - $result = $this->pgp_decrypt($part->body); - - // Store decryption status - $this->decryptions[$part->mime_id] = $result; - - // Parse decrypted message - if ($result === true) { - // @TODO - } - } - - /** - * Handler for PGP/MIME encrypted message. - * - * @param array Reference to hook's parameters - */ - private function parse_pgp_encrypted(&$p) - { - $this->load_pgp_driver(); - $struct = $p['structure']; - $part = $struct->parts[1]; - - // Get body - $this->set_part_body($part, $p['object']->uid); - - // Decrypt - $result = $this->pgp_decrypt($part->body); - - $this->decryptions[$part->mime_id] = $result; -//print_r($part); - // Parse decrypted message - if ($result === true) { - // @TODO - } - else { - // Make sure decryption status message will be displayed - $part->type = 'content'; - $p['object']->parts[] = $part; - } - } - - /** - * Handler for S/MIME encrypted message. - * - * @param array Reference to hook's parameters - */ - private function parse_smime_encrypted(&$p) - { - $this->load_smime_driver(); - } - - /** - * PGP signature verification. - * - * @param mixed Message body - * @param mixed Signature body (for MIME messages) - * - * @return mixed enigma_signature or enigma_error - */ - private function pgp_verify(&$msg_body, $sig_body=null) - { - // @TODO: Handle big bodies using (temp) files - // @TODO: caching of verification result - $sig = $this->pgp_driver->verify($msg_body, $sig_body); - - if (($sig instanceof enigma_error) && $sig->getCode() != enigma_error::E_KEYNOTFOUND) - rcube::raise_error(array( - 'code' => 600, 'type' => 'php', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Enigma plugin: " . $sig->getMessage() - ), true, false); - - return $sig; - } - - /** - * PGP message decryption. - * - * @param mixed Message body - * - * @return mixed True or enigma_error - */ - private function pgp_decrypt(&$msg_body) - { - // @TODO: Handle big bodies using (temp) files - // @TODO: caching of verification result - $key = ''; $pass = ''; // @TODO - $result = $this->pgp_driver->decrypt($msg_body, $key, $pass); - - if ($result instanceof enigma_error) { - $err_code = $result->getCode(); - if (!in_array($err_code, array(enigma_error::E_KEYNOTFOUND, enigma_error::E_BADPASS))) - rcube::raise_error(array( - 'code' => 600, 'type' => 'php', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Enigma plugin: " . $result->getMessage() - ), true, false); - return $result; - } - -// $msg_body = $result; - return true; - } - - /** - * PGP keys listing. - * - * @param mixed Key ID/Name pattern - * - * @return mixed Array of keys or enigma_error - */ - function list_keys($pattern='') - { - $this->load_pgp_driver(); - $result = $this->pgp_driver->list_keys($pattern); - - if ($result instanceof enigma_error) { - rcube::raise_error(array( - 'code' => 600, 'type' => 'php', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Enigma plugin: " . $result->getMessage() - ), true, false); - } - - return $result; - } - - /** - * PGP key details. - * - * @param mixed Key ID - * - * @return mixed enigma_key or enigma_error - */ - function get_key($keyid) - { - $this->load_pgp_driver(); - $result = $this->pgp_driver->get_key($keyid); - - if ($result instanceof enigma_error) { - rcube::raise_error(array( - 'code' => 600, 'type' => 'php', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Enigma plugin: " . $result->getMessage() - ), true, false); - } - - return $result; - } - - /** - * PGP keys/certs importing. - * - * @param mixed Import file name or content - * @param boolean True if first argument is a filename - * - * @return mixed Import status data array or enigma_error - */ - function import_key($content, $isfile=false) - { - $this->load_pgp_driver(); - $result = $this->pgp_driver->import($content, $isfile); - - if ($result instanceof enigma_error) { - rcube::raise_error(array( - 'code' => 600, 'type' => 'php', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Enigma plugin: " . $result->getMessage() - ), true, false); - } - else { - $result['imported'] = $result['public_imported'] + $result['private_imported']; - $result['unchanged'] = $result['public_unchanged'] + $result['private_unchanged']; - } - - return $result; - } - - /** - * Handler for keys/certs import request action - */ - function import_file() - { - $uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST); - $mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST); - $mime_id = rcube_utils::get_input_value('_part', rcube_utils::INPUT_POST); - $storage = $this->rc->get_storage(); - - if ($uid && $mime_id) { - $storage->set_folder($mbox); - $part = $storage->get_message_part($uid, $mime_id); - } - - if ($part && is_array($result = $this->import_key($part))) { - $this->rc->output->show_message('enigma.keysimportsuccess', 'confirmation', - array('new' => $result['imported'], 'old' => $result['unchanged'])); - } - else - $this->rc->output->show_message('enigma.keysimportfailed', 'error'); - - $this->rc->output->send(); - } - - /** - * Checks if specified message part contains body data. - * If body is not set it will be fetched from IMAP server. - * - * @param rcube_message_part Message part object - * @param integer Message UID - */ - private function set_part_body($part, $uid) - { - // @TODO: Create such function in core - // @TODO: Handle big bodies using file handles - if (!isset($part->body)) { - $part->body = $this->rc->storage->get_message_part( - $uid, $part->mime_id, $part); - } - } -} diff --git a/plugins/enigma/lib/enigma_error.php b/plugins/enigma/lib/enigma_error.php deleted file mode 100644 index 9f424dc2b..000000000 --- a/plugins/enigma/lib/enigma_error.php +++ /dev/null @@ -1,62 +0,0 @@ - | - +-------------------------------------------------------------------------+ -*/ - -class enigma_error -{ - private $code; - private $message; - private $data = array(); - - // error codes - const E_OK = 0; - const E_INTERNAL = 1; - const E_NODATA = 2; - const E_KEYNOTFOUND = 3; - const E_DELKEY = 4; - const E_BADPASS = 5; - - function __construct($code = null, $message = '', $data = array()) - { - $this->code = $code; - $this->message = $message; - $this->data = $data; - } - - function getCode() - { - return $this->code; - } - - function getMessage() - { - return $this->message; - } - - function getData($name) - { - if ($name) - return $this->data[$name]; - else - return $this->data; - } -} diff --git a/plugins/enigma/lib/enigma_key.php b/plugins/enigma/lib/enigma_key.php deleted file mode 100644 index 520c36b0b..000000000 --- a/plugins/enigma/lib/enigma_key.php +++ /dev/null @@ -1,129 +0,0 @@ - | - +-------------------------------------------------------------------------+ -*/ - -class enigma_key -{ - public $id; - public $name; - public $users = array(); - public $subkeys = array(); - - const TYPE_UNKNOWN = 0; - const TYPE_KEYPAIR = 1; - const TYPE_PUBLIC = 2; - - /** - * Keys list sorting callback for usort() - */ - static function cmp($a, $b) - { - return strcmp($a->name, $b->name); - } - - /** - * Returns key type - */ - function get_type() - { - if ($this->subkeys[0]->has_private) - return enigma_key::TYPE_KEYPAIR; - else if (!empty($this->subkeys[0])) - return enigma_key::TYPE_PUBLIC; - - return enigma_key::TYPE_UNKNOWN; - } - - /** - * Returns true if all user IDs are revoked - */ - function is_revoked() - { - foreach ($this->subkeys as $subkey) - if (!$subkey->revoked) - return false; - - return true; - } - - /** - * Returns true if any user ID is valid - */ - function is_valid() - { - foreach ($this->users as $user) - if ($user->valid) - return true; - - return false; - } - - /** - * Returns true if any of subkeys is not expired - */ - function is_expired() - { - $now = time(); - - foreach ($this->subkeys as $subkey) - if (!$subkey->expires || $subkey->expires > $now) - return true; - - return false; - } - - /** - * Converts long ID or Fingerprint to short ID - * Crypt_GPG uses internal, but e.g. Thunderbird's Enigmail displays short ID - * - * @param string Key ID or fingerprint - * @return string Key short ID - */ - static function format_id($id) - { - // E.g. 04622F2089E037A5 => 89E037A5 - - return substr($id, -8); - } - - /** - * Formats fingerprint string - * - * @param string Key fingerprint - * - * @return string Formatted fingerprint (with spaces) - */ - static function format_fingerprint($fingerprint) - { - if (!$fingerprint) - return ''; - - $result = ''; - for ($i=0; $i<40; $i++) { - if ($i % 4 == 0) - $result .= ' '; - $result .= $fingerprint[$i]; - } - return $result; - } - -} diff --git a/plugins/enigma/lib/enigma_signature.php b/plugins/enigma/lib/enigma_signature.php deleted file mode 100644 index 65990903b..000000000 --- a/plugins/enigma/lib/enigma_signature.php +++ /dev/null @@ -1,34 +0,0 @@ - | - +-------------------------------------------------------------------------+ -*/ - -class enigma_signature -{ - public $id; - public $valid; - public $fingerprint; - public $created; - public $expires; - public $name; - public $comment; - public $email; -} diff --git a/plugins/enigma/lib/enigma_subkey.php b/plugins/enigma/lib/enigma_subkey.php deleted file mode 100644 index 1b9fb95ad..000000000 --- a/plugins/enigma/lib/enigma_subkey.php +++ /dev/null @@ -1,57 +0,0 @@ - | - +-------------------------------------------------------------------------+ -*/ - -class enigma_subkey -{ - public $id; - public $fingerprint; - public $expires; - public $created; - public $revoked; - public $has_private; - public $can_sign; - public $can_encrypt; - - /** - * Converts internal ID to short ID - * Crypt_GPG uses internal, but e.g. Thunderbird's Enigmail displays short ID - * - * @return string Key ID - */ - function get_short_id() - { - // E.g. 04622F2089E037A5 => 89E037A5 - return enigma_key::format_id($this->id); - } - - /** - * Getter for formatted fingerprint - * - * @return string Formatted fingerprint - */ - function get_fingerprint() - { - return enigma_key::format_fingerprint($this->fingerprint); - } - -} diff --git a/plugins/enigma/lib/enigma_ui.php b/plugins/enigma/lib/enigma_ui.php deleted file mode 100644 index adb619d0c..000000000 --- a/plugins/enigma/lib/enigma_ui.php +++ /dev/null @@ -1,455 +0,0 @@ - | - +-------------------------------------------------------------------------+ -*/ - -class enigma_ui -{ - private $rc; - private $enigma; - private $home; - private $css_added; - private $data; - - - function __construct($enigma_plugin, $home='') - { - $this->enigma = $enigma_plugin; - $this->rc = $enigma_plugin->rc; - // we cannot use $enigma_plugin->home here - $this->home = $home; - } - - /** - * UI initialization and requests handlers. - * - * @param string Preferences section - */ - function init($section='') - { - $this->enigma->include_script('enigma.js'); - - // Enigma actions - if ($this->rc->action == 'plugin.enigma') { - $action = rcube_utils::get_input_value('_a', rcube_utils::INPUT_GPC); - - switch ($action) { - case 'keyedit': - $this->key_edit(); - break; - case 'keyimport': - $this->key_import(); - break; - case 'keysearch': - case 'keylist': - $this->key_list(); - break; - case 'keyinfo': - default: - $this->key_info(); - } - } - // Message composing UI - else if ($this->rc->action == 'compose') { - $this->compose_ui(); - } - // Preferences UI - else { // if ($this->rc->action == 'edit-prefs') { - if ($section == 'enigmacerts') { - $this->rc->output->add_handlers(array( - 'keyslist' => array($this, 'tpl_certs_list'), - 'keyframe' => array($this, 'tpl_cert_frame'), - 'countdisplay' => array($this, 'tpl_certs_rowcount'), - 'searchform' => array($this->rc->output, 'search_form'), - )); - $this->rc->output->set_pagetitle($this->enigma->gettext('enigmacerts')); - $this->rc->output->send('enigma.certs'); - } - else { - $this->rc->output->add_handlers(array( - 'keyslist' => array($this, 'tpl_keys_list'), - 'keyframe' => array($this, 'tpl_key_frame'), - 'countdisplay' => array($this, 'tpl_keys_rowcount'), - 'searchform' => array($this->rc->output, 'search_form'), - )); - $this->rc->output->set_pagetitle($this->enigma->gettext('enigmakeys')); - $this->rc->output->send('enigma.keys'); - } - } - } - - /** - * Adds CSS style file to the page header. - */ - function add_css() - { - if ($this->css_loaded) - return; - - $skin = $this->rc->config->get('skin'); - if (!file_exists($this->home . "/skins/$skin/enigma.css")) - $skin = 'default'; - - $this->enigma->include_stylesheet("skins/$skin/enigma.css"); - $this->css_added = true; - } - - /** - * Template object for key info/edit frame. - * - * @param array Object attributes - * - * @return string HTML output - */ - function tpl_key_frame($attrib) - { - if (!$attrib['id']) { - $attrib['id'] = 'rcmkeysframe'; - } - - $attrib['name'] = $attrib['id']; - - $this->rc->output->set_env('contentframe', $attrib['name']); - $this->rc->output->set_env('blankpage', $attrib['src'] ? - $this->rc->output->abs_url($attrib['src']) : 'program/resources/blank.gif'); - - return $this->rc->output->frame($attrib); - } - - /** - * Template object for list of keys. - * - * @param array Object attributes - * - * @return string HTML content - */ - function tpl_keys_list($attrib) - { - // add id to message list table if not specified - if (!strlen($attrib['id'])) { - $attrib['id'] = 'rcmenigmakeyslist'; - } - - // define list of cols to be displayed - $a_show_cols = array('name'); - - // create XHTML table - $out = $this->rc->table_output($attrib, array(), $a_show_cols, 'id'); - - // set client env - $this->rc->output->add_gui_object('keyslist', $attrib['id']); - $this->rc->output->include_script('list.js'); - - // add some labels to client - $this->rc->output->add_label('enigma.keyconfirmdelete'); - - return $out; - } - - /** - * Key listing (and searching) request handler - */ - private function key_list() - { - $this->enigma->load_engine(); - - $pagesize = $this->rc->config->get('pagesize', 100); - $page = max(intval(rcube_utils::get_input_value('_p', rcube_utils::INPUT_GPC)), 1); - $search = rcube_utils::get_input_value('_q', rcube_utils::INPUT_GPC); - - // define list of cols to be displayed -// $a_show_cols = array('name'); - - // Get the list - $list = $this->enigma->engine->list_keys($search); - - if ($list && ($list instanceof enigma_error)) - $this->rc->output->show_message('enigma.keylisterror', 'error'); - else if (empty($list)) - $this->rc->output->show_message('enigma.nokeysfound', 'notice'); - else { - if (is_array($list)) { - // Save the size - $listsize = count($list); - - // Sort the list by key (user) name - usort($list, array('enigma_key', 'cmp')); - - // Slice current page - $list = array_slice($list, ($page - 1) * $pagesize, $pagesize); - - $size = count($list); - - // Add rows - foreach ($list as $key) { - $this->rc->output->command('enigma_add_list_row', - array('name' => rcube::Q($key->name), 'id' => $key->id)); - } - } - } - - $this->rc->output->set_env('search_request', $search); - $this->rc->output->set_env('pagecount', ceil($listsize/$pagesize)); - $this->rc->output->set_env('current_page', $page); - $this->rc->output->command('set_rowcount', - $this->get_rowcount_text($listsize, $size, $page)); - - $this->rc->output->send(); - } - - /** - * Template object for list records counter. - * - * @param array Object attributes - * - * @return string HTML output - */ - function tpl_keys_rowcount($attrib) - { - if (!$attrib['id']) - $attrib['id'] = 'rcmcountdisplay'; - - $this->rc->output->add_gui_object('countdisplay', $attrib['id']); - - return html::span($attrib, $this->get_rowcount_text()); - } - - /** - * Returns text representation of list records counter - */ - private function get_rowcount_text($all=0, $curr_count=0, $page=1) - { - if (!$curr_count) - $out = $this->enigma->gettext('nokeysfound'); - else { - $pagesize = $this->rc->config->get('pagesize', 100); - $first = ($page - 1) * $pagesize; - - $out = $this->enigma->gettext(array( - 'name' => 'keysfromto', - 'vars' => array( - 'from' => $first + 1, - 'to' => $first + $curr_count, - 'count' => $all) - )); - } - - return $out; - } - - /** - * Key information page handler - */ - private function key_info() - { - $id = rcube_utils::get_input_value('_id', rcube_utils::INPUT_GET); - - $this->enigma->load_engine(); - $res = $this->enigma->engine->get_key($id); - - if ($res instanceof enigma_key) - $this->data = $res; - else { // error - $this->rc->output->show_message('enigma.keyopenerror', 'error'); - $this->rc->output->command('parent.enigma_loadframe'); - $this->rc->output->send('iframe'); - } - - $this->rc->output->add_handlers(array( - 'keyname' => array($this, 'tpl_key_name'), - 'keydata' => array($this, 'tpl_key_data'), - )); - - $this->rc->output->set_pagetitle($this->enigma->gettext('keyinfo')); - $this->rc->output->send('enigma.keyinfo'); - } - - /** - * Template object for key name - */ - function tpl_key_name($attrib) - { - return rcube::Q($this->data->name); - } - - /** - * Template object for key information page content - */ - function tpl_key_data($attrib) - { - $out = ''; - $table = new html_table(array('cols' => 2)); - - // Key user ID - $table->add('title', $this->enigma->gettext('keyuserid')); - $table->add(null, rcube::Q($this->data->name)); - // Key ID - $table->add('title', $this->enigma->gettext('keyid')); - $table->add(null, $this->data->subkeys[0]->get_short_id()); - // Key type - $keytype = $this->data->get_type(); - if ($keytype == enigma_key::TYPE_KEYPAIR) - $type = $this->enigma->gettext('typekeypair'); - else if ($keytype == enigma_key::TYPE_PUBLIC) - $type = $this->enigma->gettext('typepublickey'); - $table->add('title', $this->enigma->gettext('keytype')); - $table->add(null, $type); - // Key fingerprint - $table->add('title', $this->enigma->gettext('fingerprint')); - $table->add(null, $this->data->subkeys[0]->get_fingerprint()); - - $out .= html::tag('fieldset', null, - html::tag('legend', null, - $this->enigma->gettext('basicinfo')) . $table->show($attrib)); - - // Subkeys - $table = new html_table(array('cols' => 6)); - // Columns: Type, ID, Algorithm, Size, Created, Expires - - $out .= html::tag('fieldset', null, - html::tag('legend', null, - $this->enigma->gettext('subkeys')) . $table->show($attrib)); - - // Additional user IDs - $table = new html_table(array('cols' => 2)); - // Columns: User ID, Validity - - $out .= html::tag('fieldset', null, - html::tag('legend', null, - $this->enigma->gettext('userids')) . $table->show($attrib)); - - return $out; - } - - /** - * Key import page handler - */ - private function key_import() - { - // Import process - if ($_FILES['_file']['tmp_name'] && is_uploaded_file($_FILES['_file']['tmp_name'])) { - $this->enigma->load_engine(); - $result = $this->enigma->engine->import_key($_FILES['_file']['tmp_name'], true); - - if (is_array($result)) { - // reload list if any keys has been added - if ($result['imported']) { - $this->rc->output->command('parent.enigma_list', 1); - } - else - $this->rc->output->command('parent.enigma_loadframe'); - - $this->rc->output->show_message('enigma.keysimportsuccess', 'confirmation', - array('new' => $result['imported'], 'old' => $result['unchanged'])); - - $this->rc->output->send('iframe'); - } - else - $this->rc->output->show_message('enigma.keysimportfailed', 'error'); - } - else if ($err = $_FILES['_file']['error']) { - if ($err == UPLOAD_ERR_INI_SIZE || $err == UPLOAD_ERR_FORM_SIZE) { - $this->rc->output->show_message('filesizeerror', 'error', - array('size' => $this->rc->show_bytes(parse_bytes(ini_get('upload_max_filesize'))))); - } else { - $this->rc->output->show_message('fileuploaderror', 'error'); - } - } - - $this->rc->output->add_handlers(array( - 'importform' => array($this, 'tpl_key_import_form'), - )); - - $this->rc->output->set_pagetitle($this->enigma->gettext('keyimport')); - $this->rc->output->send('enigma.keyimport'); - } - - /** - * Template object for key import (upload) form - */ - function tpl_key_import_form($attrib) - { - $attrib += array('id' => 'rcmKeyImportForm'); - - $upload = new html_inputfield(array('type' => 'file', 'name' => '_file', - 'id' => 'rcmimportfile', 'size' => 30)); - - $form = html::p(null, - rcube::Q($this->enigma->gettext('keyimporttext'), 'show') - . html::br() . html::br() . $upload->show() - ); - - $this->rc->output->add_label('selectimportfile', 'importwait'); - $this->rc->output->add_gui_object('importform', $attrib['id']); - - $out = $this->rc->output->form_tag(array( - 'action' => $this->rc->url(array('action' => 'plugin.enigma', 'a' => 'keyimport')), - 'method' => 'post', - 'enctype' => 'multipart/form-data') + $attrib, - $form); - - return $out; - } - - private function compose_ui() - { - // Options menu button - // @TODO: make this work with non-default skins - $this->enigma->add_button(array( - 'name' => 'enigmamenu', - 'imagepas' => 'skins/default/enigma.png', - 'imageact' => 'skins/default/enigma.png', - 'onclick' => "rcmail_ui.show_popup('enigmamenu', true); return false", - 'title' => 'securityoptions', - 'domain' => 'enigma', - ), 'toolbar'); - - // Options menu contents - $this->enigma->add_hook('render_page', array($this, 'compose_menu')); - } - - function compose_menu($p) - { - $menu = new html_table(array('cols' => 2)); - $chbox = new html_checkbox(array('value' => 1)); - - $menu->add(null, html::label(array('for' => 'enigmadefaultopt'), - rcube::Q($this->enigma->gettext('identdefault')))); - $menu->add(null, $chbox->show(1, array('name' => '_enigma_default', 'id' => 'enigmadefaultopt'))); - - $menu->add(null, html::label(array('for' => 'enigmasignopt'), - rcube::Q($this->enigma->gettext('signmsg')))); - $menu->add(null, $chbox->show(1, array('name' => '_enigma_sign', 'id' => 'enigmasignopt'))); - - $menu->add(null, html::label(array('for' => 'enigmacryptopt'), - rcube::Q($this->enigma->gettext('encryptmsg')))); - $menu->add(null, $chbox->show(1, array('name' => '_enigma_crypt', 'id' => 'enigmacryptopt'))); - - $menu = html::div(array('id' => 'enigmamenu', 'class' => 'popupmenu'), - $menu->show()); - - $p['content'] = preg_replace('/(
]+>)/i', '\\1'."\n$menu", $p['content']); - - return $p; - - } - -} diff --git a/plugins/enigma/lib/enigma_userid.php b/plugins/enigma/lib/enigma_userid.php deleted file mode 100644 index 36185e718..000000000 --- a/plugins/enigma/lib/enigma_userid.php +++ /dev/null @@ -1,31 +0,0 @@ - | - +-------------------------------------------------------------------------+ -*/ - -class enigma_userid -{ - public $revoked; - public $valid; - public $name; - public $comment; - public $email; -} diff --git a/plugins/enigma/localization/en_US.inc b/plugins/enigma/localization/en_US.inc deleted file mode 100644 index e0f03d9a0..000000000 --- a/plugins/enigma/localization/en_US.inc +++ /dev/null @@ -1,53 +0,0 @@ - diff --git a/plugins/enigma/localization/ja_JP.inc b/plugins/enigma/localization/ja_JP.inc deleted file mode 100644 index 60a920a5b..000000000 --- a/plugins/enigma/localization/ja_JP.inc +++ /dev/null @@ -1,49 +0,0 @@ - diff --git a/plugins/enigma/localization/ru_RU.inc b/plugins/enigma/localization/ru_RU.inc deleted file mode 100644 index 20db6b1cb..000000000 --- a/plugins/enigma/localization/ru_RU.inc +++ /dev/null @@ -1,59 +0,0 @@ - | -| Updates: | -+-----------------------------------------------------------------------+ - -@version 2010-12-23 - -*/ -$labels['enigmasettings'] = 'Enigma: Настройки'; -$labels['enigmacerts'] = 'Enigma: Сертификаты (S/MIME)'; -$labels['enigmakeys'] = 'Enigma: Ключи (PGP)'; -$labels['keysfromto'] = 'Ключи от $from к $to в количестве $count'; -$labels['keyname'] = 'Имя'; -$labels['keyid'] = 'Идентификатор ключа'; -$labels['keyuserid'] = 'Идентификатор пользователя'; -$labels['keytype'] = 'Тип ключа'; -$labels['fingerprint'] = 'Отпечаток (хэш) ключа'; -$labels['subkeys'] = 'Подразделы'; -$labels['basicinfo'] = 'Основные сведения'; -$labels['userids'] = 'Дополнительные идентификаторы пользователя'; -$labels['typepublickey'] = 'Открытый ключ'; -$labels['typekeypair'] = 'пара ключей'; -$labels['keyattfound'] = 'Это сообщение содержит один или несколько ключей PGP.'; -$labels['keyattimport'] = 'Импортировать ключи'; -$labels['createkeys'] = 'Создать новую пару ключей'; -$labels['importkeys'] = 'Импортировать ключ(и)'; -$labels['exportkeys'] = 'Экспортировать ключ(и)'; -$labels['deletekeys'] = 'Удалить ключ(и)'; -$labels['keyactions'] = 'Действия с ключами...'; -$labels['keydisable'] = 'Отключить ключ'; -$labels['keyrevoke'] = 'Отозвать ключ'; -$labels['keysend'] = 'Отправить публичный ключ в собщении'; -$labels['keychpass'] = 'Изменить пароль'; -$messages['sigvalid'] = 'Проверенная подпись у $sender.'; -$messages['siginvalid'] = 'Неверная подпись у $sender.'; -$messages['signokey'] = 'Непроверяемая подпись. Открытый ключ не найден. Идентификатор ключа: $keyid.'; -$messages['sigerror'] = 'Непроверяемая подпись. Внутренняя ошибка.'; -$messages['decryptok'] = 'Сообщение расшифровано.'; -$messages['decrypterror'] = 'Расшифровка не удалась.'; -$messages['decryptnokey'] = 'Расшифровка не удалась. Секретный ключ не найден. Идентификатор ключа: $keyid.'; -$messages['decryptbadpass'] = 'Расшифровка не удалась. Неправильный пароль.'; -$messages['nokeysfound'] = 'Ключи не найдены'; -$messages['keyopenerror'] = 'Невозможно получить информацию о ключе! Внутренняя ошибка.'; -$messages['keylisterror'] = 'Невозможно сделать список ключей! Внутренняя ошибка.'; -$messages['keysimportfailed'] = 'Невозможно импортировать ключ(и)! Внутренняя ошибка.'; -$messages['keysimportsuccess'] = 'Ключи успешно импортированы. Импортировано: $new, без изменений: $old.'; -$messages['keyconfirmdelete'] = 'Вы точно хотите удалить выбранные ключи?'; -$messages['keyimporttext'] = 'Вы можете импортировать открытые и секретные ключи или сообщения об отзыве ключей в формате ASCII-Armor.'; -?> diff --git a/plugins/enigma/skins/classic/enigma.css b/plugins/enigma/skins/classic/enigma.css deleted file mode 100644 index b1c656f82..000000000 --- a/plugins/enigma/skins/classic/enigma.css +++ /dev/null @@ -1,182 +0,0 @@ -/*** Style for Enigma plugin ***/ - -/***** Messages displaying *****/ - -#enigma-message, -/* fixes border-top */ -#messagebody div #enigma-message -{ - margin: 0; - margin-bottom: 5px; - min-height: 20px; - padding: 10px 10px 6px 46px; -} - -div.enigmaerror, -/* fixes border-top */ -#messagebody div.enigmaerror -{ - background: url(enigma_error.png) 6px 1px no-repeat; - background-color: #EF9398; - border: 1px solid #DC5757; -} - -div.enigmanotice, -/* fixes border-top */ -#messagebody div.enigmanotice -{ - background: url(enigma.png) 6px 1px no-repeat; - background-color: #A6EF7B; - border: 1px solid #76C83F; -} - -div.enigmawarning, -/* fixes border-top */ -#messagebody div.enigmawarning -{ - background: url(enigma.png) 6px 1px no-repeat; - background-color: #F7FDCB; - border: 1px solid #C2D071; -} - -#enigma-message a -{ - color: #666666; - padding-left: 10px; -} - -#enigma-message a:hover -{ - color: #333333; -} - -/***** Keys/Certs Management *****/ - -div.enigmascreen -{ - position: absolute; - top: 65px; - right: 10px; - bottom: 10px; - left: 10px; -} - -#enigmacontent-box -{ - position: absolute; - top: 0px; - left: 290px; - right: 0px; - bottom: 0px; - border: 1px solid #999999; - overflow: hidden; -} - -#enigmakeyslist -{ - position: absolute; - top: 0; - bottom: 0; - left: 0; - border: 1px solid #999999; - background-color: #F9F9F9; - overflow: hidden; -} - -#keylistcountbar -{ - margin-top: 4px; - margin-left: 4px; -} - -#keys-table -{ - width: 100%; - table-layout: fixed; -} - -#keys-table td -{ - cursor: default; - text-overflow: ellipsis; - -o-text-overflow: ellipsis; -} - -#key-details table td.title -{ - font-weight: bold; - text-align: right; -} - -#keystoolbar -{ - position: absolute; - top: 30px; - left: 10px; - height: 35px; -} - -#keystoolbar a -{ - padding-right: 10px; -} - -#keystoolbar a.button, -#keystoolbar a.buttonPas, -#keystoolbar span.separator { - display: block; - float: left; - width: 32px; - height: 32px; - padding: 0; - margin-right: 10px; - overflow: hidden; - background: url(keys_toolbar.png) 0 0 no-repeat transparent; - opacity: 0.99; /* this is needed to make buttons appear correctly in Chrome */ -} - -#keystoolbar a.buttonPas { - opacity: 0.35; -} - -#keystoolbar a.createSel { - background-position: 0 -32px; -} - -#keystoolbar a.create { - background-position: 0 0; -} - -#keystoolbar a.deleteSel { - background-position: -32px -32px; -} - -#keystoolbar a.delete { - background-position: -32px 0; -} - -#keystoolbar a.importSel { - background-position: -64px -32px; -} - -#keystoolbar a.import { - background-position: -64px 0; -} - -#keystoolbar a.exportSel { - background-position: -96px -32px; -} - -#keystoolbar a.export { - background-position: -96px 0; -} - -#keystoolbar a.keymenu { - background-position: -128px 0; - width: 36px; -} - -#keystoolbar span.separator { - width: 5px; - background-position: -166px 0; -} diff --git a/plugins/enigma/skins/classic/enigma.png b/plugins/enigma/skins/classic/enigma.png deleted file mode 100644 index 3ef106e2a..000000000 Binary files a/plugins/enigma/skins/classic/enigma.png and /dev/null differ diff --git a/plugins/enigma/skins/classic/enigma_error.png b/plugins/enigma/skins/classic/enigma_error.png deleted file mode 100644 index 9bf100efd..000000000 Binary files a/plugins/enigma/skins/classic/enigma_error.png and /dev/null differ diff --git a/plugins/enigma/skins/classic/key.png b/plugins/enigma/skins/classic/key.png deleted file mode 100644 index ea1cbd11c..000000000 Binary files a/plugins/enigma/skins/classic/key.png and /dev/null differ diff --git a/plugins/enigma/skins/classic/key_add.png b/plugins/enigma/skins/classic/key_add.png deleted file mode 100644 index f22cc870a..000000000 Binary files a/plugins/enigma/skins/classic/key_add.png and /dev/null differ diff --git a/plugins/enigma/skins/classic/keys_toolbar.png b/plugins/enigma/skins/classic/keys_toolbar.png deleted file mode 100644 index 7cc258cc8..000000000 Binary files a/plugins/enigma/skins/classic/keys_toolbar.png and /dev/null differ diff --git a/plugins/enigma/skins/classic/templates/keyimport.html b/plugins/enigma/skins/classic/templates/keyimport.html deleted file mode 100644 index 4e0b304a5..000000000 --- a/plugins/enigma/skins/classic/templates/keyimport.html +++ /dev/null @@ -1,20 +0,0 @@ - - - -<roundcube:object name="pagetitle" /> - - - - - -
- -
- -

-
-

-
- - - diff --git a/plugins/enigma/skins/classic/templates/keyinfo.html b/plugins/enigma/skins/classic/templates/keyinfo.html deleted file mode 100644 index 2e8ed61db..000000000 --- a/plugins/enigma/skins/classic/templates/keyinfo.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -<roundcube:object name="pagetitle" /> - - - - - -
- -
- -
- - - diff --git a/plugins/enigma/skins/classic/templates/keys.html b/plugins/enigma/skins/classic/templates/keys.html deleted file mode 100644 index f581c457b..000000000 --- a/plugins/enigma/skins/classic/templates/keys.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -<roundcube:object name="pagetitle" /> - - - - - - - - -
-
- -
- - -   - - - -
- -
- - - -
- -
- -
-
-
- -
-
- -
-
- - - -
- -
- -
-
- -
-
    -
  • -
  • -
  • -
  • -
-
- - - - - diff --git a/plugins/enigma/tests/Enigma.php b/plugins/enigma/tests/Enigma.php deleted file mode 100644 index 0d0d8f8ae..000000000 --- a/plugins/enigma/tests/Enigma.php +++ /dev/null @@ -1,23 +0,0 @@ -api); - - $this->assertInstanceOf('enigma', $plugin); - $this->assertInstanceOf('rcube_plugin', $plugin); - } -} - diff --git a/plugins/filesystem_attachments/filesystem_attachments.php b/plugins/filesystem_attachments/filesystem_attachments.php index 8d995ca0d..d952e5a75 100644 --- a/plugins/filesystem_attachments/filesystem_attachments.php +++ b/plugins/filesystem_attachments/filesystem_attachments.php @@ -13,7 +13,6 @@ * require_once('plugins/filesystem_attachments/filesystem_attachments.php'); * class myCustom_attachments extends filesystem_attachments * - * @license GNU GPLv3+ * @author Ziba Scott * @author Thomas Bruederli * diff --git a/plugins/filesystem_attachments/package.xml b/plugins/filesystem_attachments/package.xml index 49ec51934..031a74297 100644 --- a/plugins/filesystem_attachments/package.xml +++ b/plugins/filesystem_attachments/package.xml @@ -34,7 +34,7 @@ stable stable - GNU GPLv3+ + GNU GPLv2 - diff --git a/plugins/help/config.inc.php.dist b/plugins/help/config.inc.php.dist index 7cc8d5f00..d440dbbcc 100644 --- a/plugins/help/config.inc.php.dist +++ b/plugins/help/config.inc.php.dist @@ -1,35 +1,5 @@ /' or only '' strings as keys -// The values will be appended to the 'help_source' URL -$config['help_index_map'] = array( - 'login' => 'login.html', - 'mail' => 'mail/index.html', - 'mail/compose' => 'mail/compose.html', - 'addressbook' => 'addressbook/index.html', - 'settings' => 'settings/index.html', - 'settings/preferences' => 'settings/preferences.html', - 'settings/folders' => 'settings/folders.html', - 'settings/identities' => 'settings/identities.html', -); - -// Map to translate Roundcube language codes into help document languages -// The '*' entry will be used as default -$config['help_language_map'] = array('*' => 'en_US'); - -// Enter an absolute URL to a page displaying information about this webmail -// Alternatively, create a HTML file under /content/about.html -$config['help_about_url'] = null; - -// Enter an absolute URL to a page displaying information about this webmail -// Alternatively, put your license text to /content/license.html -$config['help_license_url'] = null; - -// Determine whether to open the help in a new window -$config['help_open_extwin'] = false; - +// $rcmail_config['help_source'] = 'http://trac.roundcube.net/wiki'; +$rcmail_config['help_source'] = ''; diff --git a/plugins/help/content/license.html b/plugins/help/content/license.html index 9034d46f8..371dbffe1 100644 --- a/plugins/help/content/license.html +++ b/plugins/help/content/license.html @@ -655,7 +655,7 @@ the “copyright” line and a pointer to where the full notice is found GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. + along with this program. If not, see <http://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

diff --git a/plugins/help/help.php b/plugins/help/help.php index df08caf71..4b11dceb3 100644 --- a/plugins/help/help.php +++ b/plugins/help/help.php @@ -1,10 +1,9 @@ * @license GNU GPLv3+ * * Configuration (see config.inc.php.dist) @@ -22,7 +21,8 @@ class help extends rcube_plugin function init() { - $this->load_config(); + $rcmail = rcmail::get_instance(); + $this->add_texts('localization/', false); // register task @@ -33,13 +33,6 @@ class help extends rcube_plugin $this->register_action('about', array($this, 'action')); $this->register_action('license', array($this, 'action')); - $this->add_hook('startup', array($this, 'startup')); - } - - function startup($args) - { - $rcmail = rcmail::get_instance(); - // add taskbar button $this->add_button(array( 'command' => 'help', @@ -49,9 +42,6 @@ class help extends rcube_plugin 'label' => 'help.help', ), 'taskbar'); - $this->include_script('help.js'); - $rcmail->output->set_env('help_open_extwin', $rcmail->config->get('help_open_extwin', false), true); - // add style for taskbar button (must be here) and Help UI $skin_path = $this->local_skin_path(); if (is_file($this->home . "/$skin_path/help.css")) { @@ -63,10 +53,11 @@ class help extends rcube_plugin { $rcmail = rcmail::get_instance(); + $this->load_config(); + // register UI objects $rcmail->output->add_handlers(array( 'helpcontent' => array($this, 'content'), - 'tablink' => array($this, 'tablink'), )); if ($rcmail->action == 'about') @@ -79,52 +70,20 @@ class help extends rcube_plugin $rcmail->output->send('help.help'); } - function tablink($attrib) - { - $rcmail = rcmail::get_instance(); - $attrib['name'] = 'helplink' . $attrib['action']; - $attrib['href'] = $rcmail->url(array('_action' => $attrib['action'], '_extwin' => !empty($_REQUEST['_extwin']) ? 1 : null)); - return $rcmail->output->button($attrib); - } - function content($attrib) { $rcmail = rcmail::get_instance(); - switch ($rcmail->action) { - case 'about': - if (is_readable($this->home . '/content/about.html')) { - return @file_get_contents($this->home . '/content/about.html'); - } - $default = $rcmail->url(array('_task' => 'settings', '_action' => 'about', '_framed' => 1)); - $src = $rcmail->config->get('help_about_url', $default); - break; - - case 'license': - if (is_readable($this->home . '/content/license.html')) { - return @file_get_contents($this->home . '/content/license.html'); - } - $src = $rcmail->config->get('help_license_url', 'http://www.gnu.org/licenses/gpl-3.0-standalone.html'); - break; - - default: - $src = $rcmail->config->get('help_source'); - - // resolve task/action for depp linking - $index_map = $rcmail->config->get('help_index_map', array()); - $rel = $_REQUEST['_rel']; - list($task,$action) = explode('/', $rel); - if ($add = $index_map[$rel]) - $src .= $add; - else if ($add = $index_map[$task]) - $src .= $add; - break; + if ($rcmail->action == 'about') { + return @file_get_contents($this->home.'/content/about.html'); + } + else if ($rcmail->action == 'license') { + return @file_get_contents($this->home.'/content/license.html'); } // default content: iframe - if (!empty($src)) { - $attrib['src'] = $this->resolve_language($src); - } + if ($src = $rcmail->config->get('help_source')) + $attrib['src'] = $src; if (empty($attrib['id'])) $attrib['id'] = 'rcmailhelpcontent'; @@ -134,13 +93,4 @@ class help extends rcube_plugin return $rcmail->output->frame($attrib); } - - private function resolve_language($path) - { - // resolve language placeholder - $rcmail = rcmail::get_instance(); - $langmap = $rcmail->config->get('help_language_map', array('*' => 'en_US')); - $lang = !empty($langmap[$_SESSION['language']]) ? $langmap[$_SESSION['language']] : $langmap['*']; - return str_replace('%l', $lang, $path); - } } diff --git a/plugins/help/localization/ar_SA.inc b/plugins/help/localization/ar_SA.inc index 9a9fe727b..c92f79fba 100644 --- a/plugins/help/localization/ar_SA.inc +++ b/plugins/help/localization/ar_SA.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'مساعدة'; $labels['about'] = 'حوْل'; $labels['license'] = 'الرخصة'; + ?> diff --git a/plugins/help/localization/az_AZ.inc b/plugins/help/localization/az_AZ.inc index 5d4bd653d..73fc3659e 100644 --- a/plugins/help/localization/az_AZ.inc +++ b/plugins/help/localization/az_AZ.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Kömək'; $labels['about'] = 'Haqqında'; $labels['license'] = 'Lisenziya'; + ?> diff --git a/plugins/help/localization/ber.inc b/plugins/help/localization/ber.inc index 046e45733..12fe4442e 100644 --- a/plugins/help/localization/ber.inc +++ b/plugins/help/localization/ber.inc @@ -13,4 +13,5 @@ +-----------------------------------------------------------------------+ */ +$labels = array(); diff --git a/plugins/help/localization/br.inc b/plugins/help/localization/br.inc index 5224034d4..3ea6c029c 100644 --- a/plugins/help/localization/br.inc +++ b/plugins/help/localization/br.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Skoazell'; $labels['about'] = 'Diwar-benn'; $labels['license'] = 'Lañvaz'; + ?> diff --git a/plugins/help/localization/bs_BA.inc b/plugins/help/localization/bs_BA.inc index 89a46e4ea..2b502d182 100644 --- a/plugins/help/localization/bs_BA.inc +++ b/plugins/help/localization/bs_BA.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Pomoć'; $labels['about'] = 'O programu'; $labels['license'] = 'Licenca'; + ?> diff --git a/plugins/help/localization/ca_ES.inc b/plugins/help/localization/ca_ES.inc index 4bca2f212..f2630d81f 100644 --- a/plugins/help/localization/ca_ES.inc +++ b/plugins/help/localization/ca_ES.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Ajuda'; $labels['about'] = 'Quant a'; $labels['license'] = 'Llicència'; + ?> diff --git a/plugins/help/localization/cs_CZ.inc b/plugins/help/localization/cs_CZ.inc index 427ef9835..6147c0a7a 100644 --- a/plugins/help/localization/cs_CZ.inc +++ b/plugins/help/localization/cs_CZ.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Nápověda'; $labels['about'] = 'O aplikaci'; $labels['license'] = 'Licence'; + ?> diff --git a/plugins/help/localization/cy_GB.inc b/plugins/help/localization/cy_GB.inc index c9e9fb4c1..a2decbbf9 100644 --- a/plugins/help/localization/cy_GB.inc +++ b/plugins/help/localization/cy_GB.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Cymorth'; $labels['about'] = 'Amdan'; $labels['license'] = 'Trwydded'; + ?> diff --git a/plugins/help/localization/da_DK.inc b/plugins/help/localization/da_DK.inc index af63e50b4..bbb3f61b3 100644 --- a/plugins/help/localization/da_DK.inc +++ b/plugins/help/localization/da_DK.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Hjælp'; $labels['about'] = 'Om'; $labels['license'] = 'Licens'; + ?> diff --git a/plugins/help/localization/de_CH.inc b/plugins/help/localization/de_CH.inc index 0d4267593..964723993 100644 --- a/plugins/help/localization/de_CH.inc +++ b/plugins/help/localization/de_CH.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Hilfe'; $labels['about'] = 'Information'; $labels['license'] = 'Lizenz'; + ?> diff --git a/plugins/help/localization/de_DE.inc b/plugins/help/localization/de_DE.inc index 677125751..250657da6 100644 --- a/plugins/help/localization/de_DE.inc +++ b/plugins/help/localization/de_DE.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Hilfe'; $labels['about'] = 'Über'; $labels['license'] = 'Lizenz'; + ?> diff --git a/plugins/help/localization/en_GB.inc b/plugins/help/localization/en_GB.inc index 1be660728..df8bff280 100644 --- a/plugins/help/localization/en_GB.inc +++ b/plugins/help/localization/en_GB.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Help'; $labels['about'] = 'About'; $labels['license'] = 'Licence'; + ?> diff --git a/plugins/help/localization/en_US.inc b/plugins/help/localization/en_US.inc index b81f02fb9..cf6c0aaaf 100644 --- a/plugins/help/localization/en_US.inc +++ b/plugins/help/localization/en_US.inc @@ -2,10 +2,10 @@ /* +-----------------------------------------------------------------------+ - | plugins/help/localization/.inc | + | plugins/help/localization/.inc | | | | Localization file of the Roundcube Webmail Help plugin | - | Copyright (C) 2012-2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | diff --git a/plugins/help/localization/eo.inc b/plugins/help/localization/eo.inc index 017e1592b..c496c96cb 100644 --- a/plugins/help/localization/eo.inc +++ b/plugins/help/localization/eo.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Helpo'; $labels['about'] = 'Pri'; $labels['license'] = 'Permesilo'; + ?> diff --git a/plugins/help/localization/es_ES.inc b/plugins/help/localization/es_ES.inc index 5425367f4..446172f47 100644 --- a/plugins/help/localization/es_ES.inc +++ b/plugins/help/localization/es_ES.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Ayuda'; $labels['about'] = 'Acerca de'; $labels['license'] = 'Licencia'; + ?> diff --git a/plugins/help/localization/et_EE.inc b/plugins/help/localization/et_EE.inc index fef6b777f..a55348ad9 100644 --- a/plugins/help/localization/et_EE.inc +++ b/plugins/help/localization/et_EE.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Abi'; $labels['about'] = 'Roundcube info'; $labels['license'] = 'Litsents'; + ?> diff --git a/plugins/help/localization/fa_IR.inc b/plugins/help/localization/fa_IR.inc index adb9c5719..016d548ab 100644 --- a/plugins/help/localization/fa_IR.inc +++ b/plugins/help/localization/fa_IR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'راهنما'; $labels['about'] = 'درباره'; $labels['license'] = 'گواهینامه'; + ?> diff --git a/plugins/help/localization/fi_FI.inc b/plugins/help/localization/fi_FI.inc index 9f11fcee1..1803a6c4d 100644 --- a/plugins/help/localization/fi_FI.inc +++ b/plugins/help/localization/fi_FI.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Ohje'; $labels['about'] = 'Tietoja'; $labels['license'] = 'Lisenssi'; + ?> diff --git a/plugins/help/localization/fr_FR.inc b/plugins/help/localization/fr_FR.inc index 97e00176d..16a33696b 100644 --- a/plugins/help/localization/fr_FR.inc +++ b/plugins/help/localization/fr_FR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Aide'; $labels['about'] = 'A propos'; $labels['license'] = 'Licence'; + ?> diff --git a/plugins/help/localization/gl_ES.inc b/plugins/help/localization/gl_ES.inc index 74a57427a..432623751 100644 --- a/plugins/help/localization/gl_ES.inc +++ b/plugins/help/localization/gl_ES.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Axuda'; $labels['about'] = 'Acerca de'; -$labels['license'] = 'Licenza'; +$labels['license'] = 'Licencia'; + ?> diff --git a/plugins/help/localization/he_IL.inc b/plugins/help/localization/he_IL.inc index bf75bfb4f..3c56ca1fa 100644 --- a/plugins/help/localization/he_IL.inc +++ b/plugins/help/localization/he_IL.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'עזרה'; $labels['about'] = 'אודות'; $labels['license'] = 'רשיון'; + ?> diff --git a/plugins/help/localization/hu_HU.inc b/plugins/help/localization/hu_HU.inc index d285e670b..8ea50b620 100644 --- a/plugins/help/localization/hu_HU.inc +++ b/plugins/help/localization/hu_HU.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Segítség'; $labels['about'] = 'Névjegy'; $labels['license'] = 'Licenc'; + ?> diff --git a/plugins/help/localization/hy_AM.inc b/plugins/help/localization/hy_AM.inc index 7b106cad4..daf891602 100644 --- a/plugins/help/localization/hy_AM.inc +++ b/plugins/help/localization/hy_AM.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Օգնություն'; $labels['about'] = 'Նկարագիր'; $labels['license'] = 'Արտոնագիր'; + ?> diff --git a/plugins/help/localization/id_ID.inc b/plugins/help/localization/id_ID.inc index 7bad95c65..d4bc3d9a0 100644 --- a/plugins/help/localization/id_ID.inc +++ b/plugins/help/localization/id_ID.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Bantuan'; $labels['about'] = 'Tentang'; $labels['license'] = 'Lisensi'; + ?> diff --git a/plugins/help/localization/it_IT.inc b/plugins/help/localization/it_IT.inc index f88471b4f..18e1cc9e1 100644 --- a/plugins/help/localization/it_IT.inc +++ b/plugins/help/localization/it_IT.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Aiuto'; $labels['about'] = 'Informazioni'; $labels['license'] = 'Licenza'; + ?> diff --git a/plugins/help/localization/ja_JP.inc b/plugins/help/localization/ja_JP.inc index db3d5e5cc..4b91c6d8d 100644 --- a/plugins/help/localization/ja_JP.inc +++ b/plugins/help/localization/ja_JP.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'ヘルプ'; $labels['about'] = 'このプログラムについて'; $labels['license'] = 'ライセンス'; + ?> diff --git a/plugins/help/localization/km_KH.inc b/plugins/help/localization/km_KH.inc index 1dae389bb..4cc29cab0 100644 --- a/plugins/help/localization/km_KH.inc +++ b/plugins/help/localization/km_KH.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'ជំនួយ'; $labels['about'] = 'អំពី'; $labels['license'] = 'អាជ្ញាប័ណ្ណ'; + ?> diff --git a/plugins/help/localization/ko_KR.inc b/plugins/help/localization/ko_KR.inc index 88390e3ff..836da6639 100644 --- a/plugins/help/localization/ko_KR.inc +++ b/plugins/help/localization/ko_KR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = '도움말'; $labels['about'] = '정보'; $labels['license'] = '라이선스'; + ?> diff --git a/plugins/help/localization/lt_LT.inc b/plugins/help/localization/lt_LT.inc index b10223d3c..6f615bd5a 100644 --- a/plugins/help/localization/lt_LT.inc +++ b/plugins/help/localization/lt_LT.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Žinynas'; $labels['about'] = 'Apie'; $labels['license'] = 'Licencija'; + ?> diff --git a/plugins/help/localization/nb_NO.inc b/plugins/help/localization/nb_NO.inc index 4a2f7986e..702489483 100644 --- a/plugins/help/localization/nb_NO.inc +++ b/plugins/help/localization/nb_NO.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Hjelp'; $labels['about'] = 'Om'; $labels['license'] = 'Lisensvilkår'; + ?> diff --git a/plugins/help/localization/nl_NL.inc b/plugins/help/localization/nl_NL.inc index a6c97e34a..e0e7bcc56 100644 --- a/plugins/help/localization/nl_NL.inc +++ b/plugins/help/localization/nl_NL.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Help'; $labels['about'] = 'Over'; $labels['license'] = 'Licentie'; + ?> diff --git a/plugins/help/localization/nn_NO.inc b/plugins/help/localization/nn_NO.inc index edb7cd619..17a694d80 100644 --- a/plugins/help/localization/nn_NO.inc +++ b/plugins/help/localization/nn_NO.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Hjelp'; $labels['about'] = 'Om'; $labels['license'] = 'Lisens'; + ?> diff --git a/plugins/help/localization/pl_PL.inc b/plugins/help/localization/pl_PL.inc index 817dc9d5a..4884ac602 100644 --- a/plugins/help/localization/pl_PL.inc +++ b/plugins/help/localization/pl_PL.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Pomoc'; $labels['about'] = 'O programie'; $labels['license'] = 'Licencja'; + ?> diff --git a/plugins/help/localization/pt_BR.inc b/plugins/help/localization/pt_BR.inc index 7aff20bf1..79746bdc2 100644 --- a/plugins/help/localization/pt_BR.inc +++ b/plugins/help/localization/pt_BR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Ajuda'; $labels['about'] = 'Sobre'; $labels['license'] = 'Licença'; + ?> diff --git a/plugins/help/localization/pt_PT.inc b/plugins/help/localization/pt_PT.inc index 4c141c596..657c33ac5 100644 --- a/plugins/help/localization/pt_PT.inc +++ b/plugins/help/localization/pt_PT.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Ajuda'; $labels['about'] = 'Sobre...'; $labels['license'] = 'Licença'; + ?> diff --git a/plugins/help/localization/ru_RU.inc b/plugins/help/localization/ru_RU.inc index b3b7c11de..c1d2e071b 100644 --- a/plugins/help/localization/ru_RU.inc +++ b/plugins/help/localization/ru_RU.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Помощь'; $labels['about'] = 'О программе'; $labels['license'] = 'Лицензия'; + ?> diff --git a/plugins/help/localization/sk_SK.inc b/plugins/help/localization/sk_SK.inc index ca88dbbe0..99d3082bd 100644 --- a/plugins/help/localization/sk_SK.inc +++ b/plugins/help/localization/sk_SK.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Nápoveda'; $labels['about'] = 'O aplikácii'; $labels['license'] = 'Licencia'; + ?> diff --git a/plugins/help/localization/sl_SI.inc b/plugins/help/localization/sl_SI.inc index 509e66749..9e84d4cda 100644 --- a/plugins/help/localization/sl_SI.inc +++ b/plugins/help/localization/sl_SI.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Pomoč'; $labels['about'] = 'Vizitka'; $labels['license'] = 'Licenca'; + ?> diff --git a/plugins/help/localization/sr_CS.inc b/plugins/help/localization/sr_CS.inc index e0cf7ccf1..a514c1cfe 100644 --- a/plugins/help/localization/sr_CS.inc +++ b/plugins/help/localization/sr_CS.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Помоћ'; $labels['about'] = 'Info'; $labels['license'] = 'Licenca'; + ?> diff --git a/plugins/help/localization/sv_SE.inc b/plugins/help/localization/sv_SE.inc index 184efca40..ab23f8c69 100644 --- a/plugins/help/localization/sv_SE.inc +++ b/plugins/help/localization/sv_SE.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Hjälp'; $labels['about'] = 'Om'; $labels['license'] = 'Licens'; + ?> diff --git a/plugins/help/localization/tr_TR.inc b/plugins/help/localization/tr_TR.inc index b11f033a3..cad257409 100644 --- a/plugins/help/localization/tr_TR.inc +++ b/plugins/help/localization/tr_TR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Yardım'; $labels['about'] = 'Hakkında'; $labels['license'] = 'Lisans'; + ?> diff --git a/plugins/help/localization/vi_VN.inc b/plugins/help/localization/vi_VN.inc index b3aff3c0f..bd5fa57b6 100644 --- a/plugins/help/localization/vi_VN.inc +++ b/plugins/help/localization/vi_VN.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = 'Trợ giúp'; $labels['about'] = 'Giới thiệu'; $labels['license'] = 'Bản quyền'; + ?> diff --git a/plugins/help/localization/zh_CN.inc b/plugins/help/localization/zh_CN.inc index c2bbd1705..59719477b 100644 --- a/plugins/help/localization/zh_CN.inc +++ b/plugins/help/localization/zh_CN.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = '帮助'; $labels['about'] = '关于'; -$labels['license'] = '许可协议'; +$labels['license'] = '授权信息'; + ?> diff --git a/plugins/help/localization/zh_TW.inc b/plugins/help/localization/zh_TW.inc index 59c7d8aae..9fc68e482 100644 --- a/plugins/help/localization/zh_TW.inc +++ b/plugins/help/localization/zh_TW.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-help/ */ + +$labels = array(); $labels['help'] = '說明'; $labels['about'] = '關於'; $labels['license'] = '許可證'; + ?> diff --git a/plugins/help/package.xml b/plugins/help/package.xml index d39143ba1..889efd17d 100644 --- a/plugins/help/package.xml +++ b/plugins/help/package.xml @@ -5,7 +5,7 @@ http://pear.php.net/dtd/package-2.0.xsd"> help pear.roundcube.net - Online Help for Roundcube + Help for Roundcube Plugin adds a new item (Help) in taskbar. Aleksander Machniak @@ -13,10 +13,10 @@ alec@alec.pl yes - 2013-07-03 + 2012-11-11 - 1.4 - 1.4 + 1.3 + 1.2 stable @@ -31,6 +31,7 @@ + diff --git a/plugins/help/skins/classic/help.css b/plugins/help/skins/classic/help.css index c45b8f0b0..8f67f111e 100644 --- a/plugins/help/skins/classic/help.css +++ b/plugins/help/skins/classic/help.css @@ -5,23 +5,9 @@ background-image: url('help.gif'); } -.extwin #tabsbar -{ - top: 21px; - left: 20px; - right: 100px; - border-bottom: 0; -} - -.closelink { - position: absolute; - top: 20px; - right: 20px; -} - .help-box { - overflow: auto; + overflow: auto; background-color: #F2F2F2; } diff --git a/plugins/help/skins/classic/templates/help.html b/plugins/help/skins/classic/templates/help.html index 3d5b22869..2e430ecf3 100644 --- a/plugins/help/skins/classic/templates/help.html +++ b/plugins/help/skins/classic/templates/help.html @@ -7,28 +7,23 @@ - - - - - + -
- - - + + +
diff --git a/plugins/help/skins/larry/help.css b/plugins/help/skins/larry/help.css index d9af6e15e..c2e369af6 100644 --- a/plugins/help/skins/larry/help.css +++ b/plugins/help/skins/larry/help.css @@ -39,6 +39,7 @@ background: url(help.png) center -130px no-repeat; } +.iframebox.help_about, .iframebox.help_license { overflow: auto; } diff --git a/plugins/help/skins/larry/templates/help.html b/plugins/help/skins/larry/templates/help.html index bfd3f1141..39caaa62f 100644 --- a/plugins/help/skins/larry/templates/help.html +++ b/plugins/help/skins/larry/templates/help.html @@ -4,16 +4,16 @@ <roundcube:object name="pagetitle" /> - +
- - - + + +
diff --git a/plugins/hide_blockquote/hide_blockquote.php b/plugins/hide_blockquote/hide_blockquote.php index 2ad5dd8ac..7af163dcd 100644 --- a/plugins/hide_blockquote/hide_blockquote.php +++ b/plugins/hide_blockquote/hide_blockquote.php @@ -8,7 +8,7 @@ * Configuration: * // Minimum number of citation lines. Longer citation blocks will be hidden. * // 0 - no limit (no hidding). - * $config['hide_blockquote_limit'] = 0; + * $rcmail_config['hide_blockquote_limit'] = 0; * * @version @package_version@ * @license GNU GPLv3+ @@ -69,7 +69,7 @@ class hide_blockquote extends rcube_plugin function save_prefs($args) { if ($args['section'] == 'mailview') { - $args['prefs']['hide_blockquote_limit'] = (int) rcube_utils::get_input_value('_hide_blockquote_limit', rcube_utils::INPUT_POST); + $args['prefs']['hide_blockquote_limit'] = (int) get_input_value('_hide_blockquote_limit', RCUBE_INPUT_POST); } return $args; diff --git a/plugins/hide_blockquote/localization/az_AZ.inc b/plugins/hide_blockquote/localization/az_AZ.inc index b4ae17129..e0c60077a 100644 --- a/plugins/hide_blockquote/localization/az_AZ.inc +++ b/plugins/hide_blockquote/localization/az_AZ.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Gizlət'; $labels['show'] = 'Göstər'; $labels['quotelimit'] = 'Sətr saytı göstəriləndən çoxdursa sitatı gizlə:'; + ?> diff --git a/plugins/hide_blockquote/localization/bs_BA.inc b/plugins/hide_blockquote/localization/bs_BA.inc index 9602440d9..0b8075b31 100644 --- a/plugins/hide_blockquote/localization/bs_BA.inc +++ b/plugins/hide_blockquote/localization/bs_BA.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Sakrij'; $labels['show'] = 'Prikaži'; $labels['quotelimit'] = 'Sakrij citate kada je broj linija veći od'; + ?> diff --git a/plugins/hide_blockquote/localization/ca_ES.inc b/plugins/hide_blockquote/localization/ca_ES.inc index d0698f2ce..9a0fc3cc4 100644 --- a/plugins/hide_blockquote/localization/ca_ES.inc +++ b/plugins/hide_blockquote/localization/ca_ES.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Amaga'; $labels['show'] = 'Mostra'; $labels['quotelimit'] = 'Amaga la cita quan el nombre de línies sigui més gran de'; + ?> diff --git a/plugins/hide_blockquote/localization/cs_CZ.inc b/plugins/hide_blockquote/localization/cs_CZ.inc index 766662e12..5e3cd657c 100644 --- a/plugins/hide_blockquote/localization/cs_CZ.inc +++ b/plugins/hide_blockquote/localization/cs_CZ.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Skrýt'; $labels['show'] = 'Zobrazit'; $labels['quotelimit'] = 'Skrýt citaci pokud je počet řádků větší než'; + ?> diff --git a/plugins/hide_blockquote/localization/cy_GB.inc b/plugins/hide_blockquote/localization/cy_GB.inc index d60890cd8..f55fab41a 100644 --- a/plugins/hide_blockquote/localization/cy_GB.inc +++ b/plugins/hide_blockquote/localization/cy_GB.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Cuddio'; $labels['show'] = 'Dangos'; $labels['quotelimit'] = 'Cuddio dyfynniad pan mae\'r nifer o linellau yn fwy na'; + ?> diff --git a/plugins/hide_blockquote/localization/da_DK.inc b/plugins/hide_blockquote/localization/da_DK.inc index 3691e5438..a807cc34f 100644 --- a/plugins/hide_blockquote/localization/da_DK.inc +++ b/plugins/hide_blockquote/localization/da_DK.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Skjul'; $labels['show'] = 'Vis'; $labels['quotelimit'] = 'Skjul citat antallet af linjer er højere end'; + ?> diff --git a/plugins/hide_blockquote/localization/de_CH.inc b/plugins/hide_blockquote/localization/de_CH.inc index 506412560..66c9e4823 100644 --- a/plugins/hide_blockquote/localization/de_CH.inc +++ b/plugins/hide_blockquote/localization/de_CH.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'ausblenden'; $labels['show'] = 'einblenden'; $labels['quotelimit'] = 'Zitate verbergen ab einer Zeilenlänge von'; + ?> diff --git a/plugins/hide_blockquote/localization/de_DE.inc b/plugins/hide_blockquote/localization/de_DE.inc index 506412560..66c9e4823 100644 --- a/plugins/hide_blockquote/localization/de_DE.inc +++ b/plugins/hide_blockquote/localization/de_DE.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'ausblenden'; $labels['show'] = 'einblenden'; $labels['quotelimit'] = 'Zitate verbergen ab einer Zeilenlänge von'; + ?> diff --git a/plugins/hide_blockquote/localization/en_GB.inc b/plugins/hide_blockquote/localization/en_GB.inc index 0256e712a..90dd28955 100644 --- a/plugins/hide_blockquote/localization/en_GB.inc +++ b/plugins/hide_blockquote/localization/en_GB.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Hide'; $labels['show'] = 'Show'; $labels['quotelimit'] = 'Hide citation when lines count is greater than'; + ?> diff --git a/plugins/hide_blockquote/localization/en_US.inc b/plugins/hide_blockquote/localization/en_US.inc index 90dd28955..c3a5ca019 100644 --- a/plugins/hide_blockquote/localization/en_US.inc +++ b/plugins/hide_blockquote/localization/en_US.inc @@ -2,10 +2,10 @@ /* +-----------------------------------------------------------------------+ - | plugins/hide_blockquote/localization/.inc | + | plugins/hide_blockquote/localization/.inc | | | | Localization file of the Roundcube Webmail Hide-Blockquote plugin | - | Copyright (C) 2012-2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | diff --git a/plugins/hide_blockquote/localization/eo.inc b/plugins/hide_blockquote/localization/eo.inc index 9c09c97fc..5ffaaad56 100644 --- a/plugins/hide_blockquote/localization/eo.inc +++ b/plugins/hide_blockquote/localization/eo.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Kaŝi'; $labels['show'] = 'Montri'; $labels['quotelimit'] = 'Kaŝi citaĵon kiam la nombro de linioj estas pligranda ol'; + ?> diff --git a/plugins/hide_blockquote/localization/es_ES.inc b/plugins/hide_blockquote/localization/es_ES.inc index c602650e6..b59629413 100644 --- a/plugins/hide_blockquote/localization/es_ES.inc +++ b/plugins/hide_blockquote/localization/es_ES.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Ocultar'; $labels['show'] = 'Mostrar'; $labels['quotelimit'] = 'Ocultar la cita cuando el número de lineas es mayor que'; + ?> diff --git a/plugins/hide_blockquote/localization/et_EE.inc b/plugins/hide_blockquote/localization/et_EE.inc index 8213946c3..e49dbfb22 100644 --- a/plugins/hide_blockquote/localization/et_EE.inc +++ b/plugins/hide_blockquote/localization/et_EE.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Peida'; $labels['show'] = 'Näita'; $labels['quotelimit'] = 'Peida tsitaat kui ridade arv on suurem kui'; + ?> diff --git a/plugins/hide_blockquote/localization/fa_IR.inc b/plugins/hide_blockquote/localization/fa_IR.inc index b4fcc1596..8edc7aed7 100644 --- a/plugins/hide_blockquote/localization/fa_IR.inc +++ b/plugins/hide_blockquote/localization/fa_IR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'مخفی کردن'; $labels['show'] = 'نشان دادن'; $labels['quotelimit'] = 'مخفی کردن نقل‌قول وقتی تعداد خطوط بیشتر است از'; + ?> diff --git a/plugins/hide_blockquote/localization/fi_FI.inc b/plugins/hide_blockquote/localization/fi_FI.inc index afec57462..952149858 100644 --- a/plugins/hide_blockquote/localization/fi_FI.inc +++ b/plugins/hide_blockquote/localization/fi_FI.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Piilota'; $labels['show'] = 'Näytä'; $labels['quotelimit'] = 'Piilota lainaus rivejä ollessa enemmän kuin'; + ?> diff --git a/plugins/hide_blockquote/localization/fr_FR.inc b/plugins/hide_blockquote/localization/fr_FR.inc index 00c1c918f..e789fb842 100644 --- a/plugins/hide_blockquote/localization/fr_FR.inc +++ b/plugins/hide_blockquote/localization/fr_FR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Cacher'; $labels['show'] = 'Afficher'; $labels['quotelimit'] = 'Cacher la citation quand le nombre de lignes est plus grand que'; + ?> diff --git a/plugins/hide_blockquote/localization/gl_ES.inc b/plugins/hide_blockquote/localization/gl_ES.inc index f945a50e3..37a81e418 100644 --- a/plugins/hide_blockquote/localization/gl_ES.inc +++ b/plugins/hide_blockquote/localization/gl_ES.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Agochar'; $labels['show'] = 'Amosar'; $labels['quotelimit'] = 'Agochar mencións cando haxa demasiadas liñas'; + ?> diff --git a/plugins/hide_blockquote/localization/he_IL.inc b/plugins/hide_blockquote/localization/he_IL.inc index 2e353909b..edcba5040 100644 --- a/plugins/hide_blockquote/localization/he_IL.inc +++ b/plugins/hide_blockquote/localization/he_IL.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'הסתר'; $labels['show'] = 'הצג'; $labels['quotelimit'] = 'הסתר ציטוט כאשר מספר השורות גדול מ-'; + ?> diff --git a/plugins/hide_blockquote/localization/hu_HU.inc b/plugins/hide_blockquote/localization/hu_HU.inc index 97abb9f35..964d1ae9d 100644 --- a/plugins/hide_blockquote/localization/hu_HU.inc +++ b/plugins/hide_blockquote/localization/hu_HU.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Elrejtés'; $labels['show'] = 'Megjelenítés'; $labels['quotelimit'] = 'Idézet elrejtése ha a sorok száma több mint'; + ?> diff --git a/plugins/hide_blockquote/localization/hy_AM.inc b/plugins/hide_blockquote/localization/hy_AM.inc index b1808e400..5ad32d861 100644 --- a/plugins/hide_blockquote/localization/hy_AM.inc +++ b/plugins/hide_blockquote/localization/hy_AM.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Թաքցնել'; $labels['show'] = 'Ցուցադրել'; $labels['quotelimit'] = 'Թաքցնել ցիտումը երբ տողերի քանակը գերազանցում է'; + ?> diff --git a/plugins/hide_blockquote/localization/id_ID.inc b/plugins/hide_blockquote/localization/id_ID.inc index da6534968..5b3785d6a 100644 --- a/plugins/hide_blockquote/localization/id_ID.inc +++ b/plugins/hide_blockquote/localization/id_ID.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Sembunyi'; $labels['show'] = 'Tampil'; $labels['quotelimit'] = 'Sembunyikan kutipan ketika jumlah baris lebih besar dari'; + ?> diff --git a/plugins/hide_blockquote/localization/it_IT.inc b/plugins/hide_blockquote/localization/it_IT.inc index a24353020..40a93a9b0 100644 --- a/plugins/hide_blockquote/localization/it_IT.inc +++ b/plugins/hide_blockquote/localization/it_IT.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Nascondi'; $labels['show'] = 'Mostra'; $labels['quotelimit'] = 'Nascondi la citazione quando il numero di righe è maggiore di'; + ?> diff --git a/plugins/hide_blockquote/localization/ja_JP.inc b/plugins/hide_blockquote/localization/ja_JP.inc index 4bf36ae13..b3006999d 100644 --- a/plugins/hide_blockquote/localization/ja_JP.inc +++ b/plugins/hide_blockquote/localization/ja_JP.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = '隠す'; $labels['show'] = '表示'; $labels['quotelimit'] = '次の行数より多い引用を非表示'; + ?> diff --git a/plugins/hide_blockquote/localization/ko_KR.inc b/plugins/hide_blockquote/localization/ko_KR.inc index e26d06f7f..73895d18d 100644 --- a/plugins/hide_blockquote/localization/ko_KR.inc +++ b/plugins/hide_blockquote/localization/ko_KR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = '숨기기'; $labels['show'] = '보이기'; $labels['quotelimit'] = '라인 개수가 정해진 개수보다 클 때 인용구 감추기'; + ?> diff --git a/plugins/hide_blockquote/localization/lt_LT.inc b/plugins/hide_blockquote/localization/lt_LT.inc index 9b560de14..931c2ee90 100644 --- a/plugins/hide_blockquote/localization/lt_LT.inc +++ b/plugins/hide_blockquote/localization/lt_LT.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Paslėpti'; $labels['show'] = 'Parodyti'; $labels['quotelimit'] = 'Paslėpti citatą, kai joje eilučių daugiau negu'; + ?> diff --git a/plugins/hide_blockquote/localization/nb_NO.inc b/plugins/hide_blockquote/localization/nb_NO.inc index fb2027620..5dafd7f1c 100644 --- a/plugins/hide_blockquote/localization/nb_NO.inc +++ b/plugins/hide_blockquote/localization/nb_NO.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Skjul'; $labels['show'] = 'Vis'; $labels['quotelimit'] = 'Skjul sitat når antall linjer er flere enn'; + ?> diff --git a/plugins/hide_blockquote/localization/nl_NL.inc b/plugins/hide_blockquote/localization/nl_NL.inc index 104f4782c..a684b631b 100644 --- a/plugins/hide_blockquote/localization/nl_NL.inc +++ b/plugins/hide_blockquote/localization/nl_NL.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Verbergen'; $labels['show'] = 'Tonen'; $labels['quotelimit'] = 'Verberg citaat wanneer aantal regels groter is dan'; + ?> diff --git a/plugins/hide_blockquote/localization/nn_NO.inc b/plugins/hide_blockquote/localization/nn_NO.inc index 4bc583a51..fd7b49d63 100644 --- a/plugins/hide_blockquote/localization/nn_NO.inc +++ b/plugins/hide_blockquote/localization/nn_NO.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Gøym'; $labels['show'] = 'Vis'; $labels['quotelimit'] = 'Gøym sitat når talet på linjer er større enn'; + ?> diff --git a/plugins/hide_blockquote/localization/pl_PL.inc b/plugins/hide_blockquote/localization/pl_PL.inc index cdd1f8f8a..dbca969e4 100644 --- a/plugins/hide_blockquote/localization/pl_PL.inc +++ b/plugins/hide_blockquote/localization/pl_PL.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Ukryj'; $labels['show'] = 'Pokaż'; $labels['quotelimit'] = 'Ukryj blok cytatu gdy liczba linii jest większa od'; + ?> diff --git a/plugins/hide_blockquote/localization/pt_BR.inc b/plugins/hide_blockquote/localization/pt_BR.inc index b303c06f3..76c856a53 100644 --- a/plugins/hide_blockquote/localization/pt_BR.inc +++ b/plugins/hide_blockquote/localization/pt_BR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Ocultar'; $labels['show'] = 'Exibir'; $labels['quotelimit'] = 'Ocultar a citação quando o número de linhas for maior do que'; + ?> diff --git a/plugins/hide_blockquote/localization/pt_PT.inc b/plugins/hide_blockquote/localization/pt_PT.inc index 34693784c..0ccfbe52d 100644 --- a/plugins/hide_blockquote/localization/pt_PT.inc +++ b/plugins/hide_blockquote/localization/pt_PT.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Ocultar'; $labels['show'] = 'Mostrar'; $labels['quotelimit'] = 'Ocultar citação quando o numero de linhas for maior que'; + ?> diff --git a/plugins/hide_blockquote/localization/ru_RU.inc b/plugins/hide_blockquote/localization/ru_RU.inc index 1e6b26c16..657548a5e 100644 --- a/plugins/hide_blockquote/localization/ru_RU.inc +++ b/plugins/hide_blockquote/localization/ru_RU.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Скрыть'; $labels['show'] = 'Показать'; $labels['quotelimit'] = 'Скрыть цитату, если число строк более чем'; + ?> diff --git a/plugins/hide_blockquote/localization/sk_SK.inc b/plugins/hide_blockquote/localization/sk_SK.inc index 2a41c1ec6..9a008369a 100644 --- a/plugins/hide_blockquote/localization/sk_SK.inc +++ b/plugins/hide_blockquote/localization/sk_SK.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Skryť'; $labels['show'] = 'Zobraziť'; $labels['quotelimit'] = 'Skryť citáciu pokiaľ je počet riadkov väčší než'; + ?> diff --git a/plugins/hide_blockquote/localization/sl_SI.inc b/plugins/hide_blockquote/localization/sl_SI.inc index 1728f40e7..66e4b4e9b 100644 --- a/plugins/hide_blockquote/localization/sl_SI.inc +++ b/plugins/hide_blockquote/localization/sl_SI.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Skrij'; $labels['show'] = 'Prikaži'; $labels['quotelimit'] = 'Skrij citiran tekst, ko je število vrstic večje od'; + ?> diff --git a/plugins/hide_blockquote/localization/sr_CS.inc b/plugins/hide_blockquote/localization/sr_CS.inc index c96c4322d..5df13d3b1 100644 --- a/plugins/hide_blockquote/localization/sr_CS.inc +++ b/plugins/hide_blockquote/localization/sr_CS.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Сакриј'; $labels['show'] = 'Прикажи'; $labels['quotelimit'] = 'Сакриј цитат када је број редова већи од'; + ?> diff --git a/plugins/hide_blockquote/localization/sv_SE.inc b/plugins/hide_blockquote/localization/sv_SE.inc index 9d021d923..a6e43f6ad 100644 --- a/plugins/hide_blockquote/localization/sv_SE.inc +++ b/plugins/hide_blockquote/localization/sv_SE.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Dölj'; $labels['show'] = 'Visa'; $labels['quotelimit'] = 'Dölj citat när antalet rader överstiger'; + ?> diff --git a/plugins/hide_blockquote/localization/tr_TR.inc b/plugins/hide_blockquote/localization/tr_TR.inc index db3d013e7..350ccb238 100644 --- a/plugins/hide_blockquote/localization/tr_TR.inc +++ b/plugins/hide_blockquote/localization/tr_TR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Gizle'; $labels['show'] = 'Göster'; $labels['quotelimit'] = 'Satır sayısı şu satır sayısındna fazla ile alıntıları gizle:'; + ?> diff --git a/plugins/hide_blockquote/localization/vi_VN.inc b/plugins/hide_blockquote/localization/vi_VN.inc index a0235117d..9d467374f 100644 --- a/plugins/hide_blockquote/localization/vi_VN.inc +++ b/plugins/hide_blockquote/localization/vi_VN.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = 'Ẩn'; $labels['show'] = 'Hiển thị'; $labels['quotelimit'] = 'Ẩn trích dẫn khi tổng số dòng lớn hơn'; + ?> diff --git a/plugins/hide_blockquote/localization/zh_CN.inc b/plugins/hide_blockquote/localization/zh_CN.inc index 6701f2d7c..1450dd6dc 100644 --- a/plugins/hide_blockquote/localization/zh_CN.inc +++ b/plugins/hide_blockquote/localization/zh_CN.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = '隐藏'; $labels['show'] = '显示'; $labels['quotelimit'] = '隐藏引用当行数大于'; + ?> diff --git a/plugins/hide_blockquote/localization/zh_TW.inc b/plugins/hide_blockquote/localization/zh_TW.inc index 0fcca729a..22ea645b4 100644 --- a/plugins/hide_blockquote/localization/zh_TW.inc +++ b/plugins/hide_blockquote/localization/zh_TW.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-hide_blockquote/ */ + +$labels = array(); $labels['hide'] = '隱藏'; $labels['show'] = '顯示'; $labels['quotelimit'] = '隱藏引文當行數大於'; + ?> diff --git a/plugins/http_authentication/config.inc.php.dist b/plugins/http_authentication/config.inc.php.dist index 0940dee1f..0d798a586 100644 --- a/plugins/http_authentication/config.inc.php.dist +++ b/plugins/http_authentication/config.inc.php.dist @@ -5,5 +5,5 @@ // Default mail host to log-in using user/password from HTTP Authentication. // This is useful if the users are free to choose arbitrary mail hosts (or // from a list), but have one host they usually want to log into. -// Unlike $config['default_host'] this must be a string! -$config['http_authentication_host'] = ''; +// Unlike $rcmail_config['default_host'] this must be a string! +$rcmail_config['http_authentication_host'] = ''; diff --git a/plugins/http_authentication/http_authentication.php b/plugins/http_authentication/http_authentication.php index 83f29c84f..a94b6121a 100644 --- a/plugins/http_authentication/http_authentication.php +++ b/plugins/http_authentication/http_authentication.php @@ -7,7 +7,7 @@ * * Configuration: * // redirect the client to this URL after logout. This page is then responsible to clear HTTP auth - * $config['logout_url'] = 'http://server.tld/logout.html'; + * $rcmail_config['logout_url'] = 'http://server.tld/logout.html'; * * See logout.html (in this directory) for an example how HTTP auth can be cleared. * @@ -29,7 +29,7 @@ class http_authentication extends rcube_plugin function startup($args) { - if (!empty($_SERVER['PHP_AUTH_USER'])) { + if (!empty($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_PW'])) { $rcmail = rcmail::get_instance(); $rcmail->add_shutdown_function(array('http_authentication', 'shutdown')); @@ -38,8 +38,7 @@ class http_authentication extends rcube_plugin $args['action'] = 'login'; } // Set user password in session (see shutdown() method for more info) - else if (!empty($_SESSION['user_id']) && empty($_SESSION['password']) - && !empty($_SERVER['PHP_AUTH_PW'])) { + else if (!empty($_SESSION['user_id']) && empty($_SESSION['password'])) { $_SESSION['password'] = $rcmail->encrypt($_SERVER['PHP_AUTH_PW']); } } @@ -53,8 +52,8 @@ class http_authentication extends rcube_plugin $this->load_config(); $host = rcmail::get_instance()->config->get('http_authentication_host'); - if (is_string($host) && trim($host) !== '' && empty($args['host'])) - $args['host'] = rcube_utils::idn_to_ascii(rcube_utils::parse_host($host)); + if (is_string($host) && trim($host) !== '') + $args['host'] = rcube_idn_to_ascii(rcube_parse_host($host)); // Allow entering other user data in login form, // e.g. after log out (#1487953) @@ -62,10 +61,9 @@ class http_authentication extends rcube_plugin return $args; } - if (!empty($_SERVER['PHP_AUTH_USER'])) { + if (!empty($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_PW'])) { $args['user'] = $_SERVER['PHP_AUTH_USER']; - if (!empty($_SERVER['PHP_AUTH_PW'])) - $args['pass'] = $_SERVER['PHP_AUTH_PW']; + $args['pass'] = $_SERVER['PHP_AUTH_PW']; } $args['cookiecheck'] = false; diff --git a/plugins/jqueryui/config.inc.php.dist b/plugins/jqueryui/config.inc.php.dist index 8e111e0e1..a3c3f75a0 100644 --- a/plugins/jqueryui/config.inc.php.dist +++ b/plugins/jqueryui/config.inc.php.dist @@ -1,10 +1,10 @@ 'larry', 'default' => 'larry', 'groupvice4' => 'redmond', diff --git a/plugins/jqueryui/css b/plugins/jqueryui/css deleted file mode 120000 index 1e77965e6..000000000 --- a/plugins/jqueryui/css +++ /dev/null @@ -1 +0,0 @@ -../../../javascript/jquery-ui/css \ No newline at end of file diff --git a/plugins/jqueryui/jqueryui.php b/plugins/jqueryui/jqueryui.php index e9b3c215e..db640d1aa 100644 --- a/plugins/jqueryui/jqueryui.php +++ b/plugins/jqueryui/jqueryui.php @@ -8,7 +8,6 @@ * @version 1.9.1 * @author Cor Bosman * @author Thomas Bruederli - * @license GNU GPLv3+ */ class jqueryui extends rcube_plugin { diff --git a/plugins/jqueryui/js/i18n/jquery-ui-i18n.js b/plugins/jqueryui/js/i18n/jquery-ui-i18n.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-af.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-af.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar-DZ.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar-DZ.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ar.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-az.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-az.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-bg.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-bg.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-bs.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-bs.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ca.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ca.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-cs.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-cs.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-cy-GB.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-cy-GB.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-da.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-da.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-de.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-de.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-el.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-el.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-AU.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-AU.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-GB.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-GB.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-NZ.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-en-NZ.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-eo.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-eo.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-es.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-es.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-et.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-et.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-eu.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-eu.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fa.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fa.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fi.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fi.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fo.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fo.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr-CH.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr-CH.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-fr.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-gl.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-gl.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-he.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-he.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hi.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hi.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hr.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hr.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hu.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hu.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hy.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-hy.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-id.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-id.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-is.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-is.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-it.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-it.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ja.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ja.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ka.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ka.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-kk.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-kk.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-km.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-km.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ko.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ko.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lb.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lb.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lt.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lt.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lv.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-lv.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-mk.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-mk.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ml.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ml.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ms.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ms.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl-BE.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl-BE.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-nl.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-no.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-no.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pl.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pl.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt-BR.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt-BR.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-pt.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-rm.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-rm.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ro.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ro.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ru.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ru.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sk.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sk.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sl.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sl.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sq.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sq.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr-SR.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr-SR.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sr.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sv.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-sv.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ta.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-ta.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-th.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-th.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-tj.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-tj.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-tr.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-tr.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-uk.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-uk.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-vi.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-vi.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-CN.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-CN.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-HK.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-HK.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-TW.js b/plugins/jqueryui/js/i18n/jquery.ui.datepicker-zh-TW.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/jquery-ui-1.9.1.custom.min.js b/plugins/jqueryui/js/jquery-ui-1.9.1.custom.min.js old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/js/jquery-ui.min.js b/plugins/jqueryui/js/jquery-ui.min.js deleted file mode 120000 index a9cebcd7a..000000000 --- a/plugins/jqueryui/js/jquery-ui.min.js +++ /dev/null @@ -1 +0,0 @@ -../../../../javascript/jquery-ui/jquery-ui.min.js \ No newline at end of file diff --git a/plugins/jqueryui/themes/classic/images/ui-bg_flat_0_aaaaaa_40x100.png b/plugins/jqueryui/themes/classic/images/ui-bg_flat_0_aaaaaa_40x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/classic/images/ui-bg_flat_75_ffffff_40x100.png b/plugins/jqueryui/themes/classic/images/ui-bg_flat_75_ffffff_40x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/classic/images/ui-bg_flat_90_cc3333_40x100.png b/plugins/jqueryui/themes/classic/images/ui-bg_flat_90_cc3333_40x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/classic/images/ui-bg_glass_95_fef1ec_1x400.png b/plugins/jqueryui/themes/classic/images/ui-bg_glass_95_fef1ec_1x400.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_a3a3a3_1x100.png b/plugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_a3a3a3_1x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_e6e6e7_1x100.png b/plugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_e6e6e7_1x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_f4f4f4_1x100.png b/plugins/jqueryui/themes/classic/images/ui-bg_highlight-hard_90_f4f4f4_1x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/classic/images/ui-icons_000000_256x240.png b/plugins/jqueryui/themes/classic/images/ui-icons_000000_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/classic/images/ui-icons_333333_256x240.png b/plugins/jqueryui/themes/classic/images/ui-icons_333333_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/classic/images/ui-icons_666666_256x240.png b/plugins/jqueryui/themes/classic/images/ui-icons_666666_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/classic/images/ui-icons_cc3333_256x240.png b/plugins/jqueryui/themes/classic/images/ui-icons_cc3333_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/classic/images/ui-icons_dddddd_256x240.png b/plugins/jqueryui/themes/classic/images/ui-icons_dddddd_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/classic/jquery-ui-1.9.1.custom.css b/plugins/jqueryui/themes/classic/jquery-ui-1.9.1.custom.css old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_55_b0ccd7_1x100.png b/plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_55_b0ccd7_1x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_65_ffffff_1x100.png b/plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_65_ffffff_1x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_75_eaeaea_1x100.png b/plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_75_eaeaea_1x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_75_f8f8f8_1x100.png b/plugins/jqueryui/themes/larry/images/ui-bg_highlight-hard_75_f8f8f8_1x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/larry/images/ui-bg_highlight-soft_75_fafafa_1x100.png b/plugins/jqueryui/themes/larry/images/ui-bg_highlight-soft_75_fafafa_1x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/larry/images/ui-bg_highlight-soft_90_e4e4e4_1x100.png b/plugins/jqueryui/themes/larry/images/ui-bg_highlight-soft_90_e4e4e4_1x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/larry/images/ui-icons-datepicker.png b/plugins/jqueryui/themes/larry/images/ui-icons-datepicker.png index 144ecfe77..1c036f3de 100644 Binary files a/plugins/jqueryui/themes/larry/images/ui-icons-datepicker.png and b/plugins/jqueryui/themes/larry/images/ui-icons-datepicker.png differ diff --git a/plugins/jqueryui/themes/larry/images/ui-icons_004458_256x240.png b/plugins/jqueryui/themes/larry/images/ui-icons_004458_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/larry/images/ui-icons_d7211e_256x240.png b/plugins/jqueryui/themes/larry/images/ui-icons_d7211e_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/larry/jquery-ui-1.9.1.custom.css b/plugins/jqueryui/themes/larry/jquery-ui-1.9.1.custom.css old mode 100755 new mode 100644 index 3062bbb62..01afcac0d --- a/plugins/jqueryui/themes/larry/jquery-ui-1.9.1.custom.css +++ b/plugins/jqueryui/themes/larry/jquery-ui-1.9.1.custom.css @@ -598,34 +598,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } .ui-datepicker select.ui-datepicker-month-year {width: 100%;} .ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { - border: 0; - background: #3a3a3a; - outline: none; - color: #fff; - font-weight: bold; - width: auto; - margin-right: 4px; - padding-right: 4px; -} -.ui-datepicker .ui-datepicker-title select::-ms-expand { display: none; } -.ie10 .ui-datepicker .ui-datepicker-title select, -.webkit .ui-datepicker .ui-datepicker-title select, -.mozilla .ui-datepicker .ui-datepicker-title select { - background-image: url(images/ui-icons-datepicker.png); - background-position: right -18px; - background-repeat: no-repeat; - padding-right: 14px; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} -.mozilla .ui-datepicker .ui-datepicker-title select { - background-position: right -17px; - text-indent: 0.01px; - text-overflow: ''; - padding-right: 0; -} +.ui-datepicker select.ui-datepicker-year { width: 49%;} .ui-datepicker table { width: 100%; border-collapse: collapse; margin:0; border-spacing: 0; } .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; color: #666; } .ui-datepicker td { border: 1px solid #bbb; padding: 0; } @@ -638,8 +611,6 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - - /* with multiple calendars */ .ui-datepicker.ui-datepicker-multi { width:auto; } .ui-datepicker-multi .ui-datepicker-group { float:left; } diff --git a/plugins/jqueryui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png b/plugins/jqueryui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.png b/plugins/jqueryui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png b/plugins/jqueryui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.png b/plugins/jqueryui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.png b/plugins/jqueryui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/plugins/jqueryui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/plugins/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/plugins/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.png b/plugins/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.png old mode 100755 new mode 100644 diff --git a/plugins/jqueryui/themes/redmond/jquery-ui-1.9.1.custom.css b/plugins/jqueryui/themes/redmond/jquery-ui-1.9.1.custom.css old mode 100755 new mode 100644 diff --git a/plugins/managesieve/Changelog b/plugins/managesieve/Changelog index 115aec14f..159cc3ef9 100644 --- a/plugins/managesieve/Changelog +++ b/plugins/managesieve/Changelog @@ -1,19 +1,4 @@ -- lib/Net Sieve.php moved to Roundcube /lib directory -- Added managesieve_domains option to limit redirect destinations -- Fix bug where at least one additional address of vacation message was required (#1489345) -- Fix so i;ascii-numeric comparator is not forced as default for :count and :value operators -- Fix date/currentdate related form issues and comparators handling (#1489346) - -* version 7.0 [2013-09-09] ------------------------------------------------------------ -- Add vacation-seconds extension support (RFC 6131) -- Several script parser code improvements -- Support string list arguments in filter form (#1489018) -- Support date, currendate and index tests - RFC5260 (#1488120) -- Split plugin file into two files - Fix handling of &, <, > characters in scripts/filter names (#1489208) -- Support 'keep' action (#1489226) -- Add common headers to header selector (#1489271) * version 6.2 [2013-02-17] ----------------------------------------------------------- @@ -220,18 +205,18 @@ - Added it_IT localization * version 1.1 [2009-05-27] ------------------------------------------------------------ +----------------------------------------------------------- - Added new icons - Added support for headers lists (coma-separated) in rules - Added de_CH localization * version 1.0 [2009-05-21] ------------------------------------------------------------ +----------------------------------------------------------- - Rewritten using plugin API - Added hu_HU localization (Tamas Tevesz) * version beta7 (svn-r2300) [2009-03-01] ------------------------------------------------------------ +----------------------------------------------------------- - Added SquirrelMail script auto-import (Jonathan Ernst) - Added 'vacation' support (Jonathan Ernst & alec) - Added 'stop' support (Jonathan Ernst) @@ -240,47 +225,47 @@ - Small style fixes * version 0.2-stable1 (svn-r2205) [2009-01-03] ------------------------------------------------------------ +----------------------------------------------------------- - Fix moving down filter row - Fixes for compressed js files in stable release package - Created patch for svn version r2205 * version 0.2-stable [2008-12-31] ------------------------------------------------------------ +----------------------------------------------------------- - Added ru_RU, fr_FR, zh_CN translation - Fixes for Roundcube 0.2-stable -* version 0.2-beta [2008-09-21] ------------------------------------------------------------ +* version rc0.2beta [2008-09-21] +----------------------------------------------------------- - Small css fixes for IE - Fixes for Roundcube 0.2-beta * version beta6 [2008-08-08] ------------------------------------------------------------ +----------------------------------------------------------- - Added de_DE translation - Fix for Roundcube r1634 * version beta5 [2008-06-10] ------------------------------------------------------------ +----------------------------------------------------------- - Fixed 'exists' operators - Fixed 'not*' operators for custom headers - Fixed filters deleting * version beta4 [2008-06-09] ------------------------------------------------------------ +----------------------------------------------------------- - Fix for Roundcube r1490 * version beta3 [2008-05-22] ------------------------------------------------------------ +----------------------------------------------------------- - Fixed textarea error class setting - Added pagetitle setting - Added option 'managesieve_replace_delimiter' - Fixed errors on IE (still need some css fixes) - + * version beta2 [2008-05-20] ------------------------------------------------------------ +----------------------------------------------------------- - Use 'if' only for first filter and 'elsif' for the rest * version beta1 [2008-05-15] ------------------------------------------------------------ +----------------------------------------------------------- - Initial version for Roundcube r1388. diff --git a/plugins/managesieve/config.inc.php.dist b/plugins/managesieve/config.inc.php.dist index 52d3a9b1e..65dbcfc4e 100644 --- a/plugins/managesieve/config.inc.php.dist +++ b/plugins/managesieve/config.inc.php.dist @@ -2,7 +2,7 @@ // managesieve server port. When empty the port will be determined automatically // using getservbyname() function, with 4190 as a fallback. -$config['managesieve_port'] = null; +$rcmail_config['managesieve_port'] = null; // managesieve server address, default is localhost. // Replacement variables supported in host name: @@ -10,62 +10,58 @@ $config['managesieve_port'] = null; // %n - http hostname ($_SERVER['SERVER_NAME']) // %d - domain (http hostname without the first part) // For example %n = mail.domain.tld, %d = domain.tld -$config['managesieve_host'] = 'localhost'; +$rcmail_config['managesieve_host'] = 'localhost'; // authentication method. Can be CRAM-MD5, DIGEST-MD5, PLAIN, LOGIN, EXTERNAL // or none. Optional, defaults to best method supported by server. -$config['managesieve_auth_type'] = null; +$rcmail_config['managesieve_auth_type'] = null; // Optional managesieve authentication identifier to be used as authorization proxy. // Authenticate as a different user but act on behalf of the logged in user. // Works with PLAIN and DIGEST-MD5 auth. -$config['managesieve_auth_cid'] = null; +$rcmail_config['managesieve_auth_cid'] = null; // Optional managesieve authentication password to be used for imap_auth_cid -$config['managesieve_auth_pw'] = null; +$rcmail_config['managesieve_auth_pw'] = null; // use or not TLS for managesieve server connection // Note: tls:// prefix in managesieve_host is also supported -$config['managesieve_usetls'] = false; +$rcmail_config['managesieve_usetls'] = false; // default contents of filters script (eg. default spam filter) -$config['managesieve_default'] = '/etc/dovecot/sieve/global'; +$rcmail_config['managesieve_default'] = '/etc/dovecot/sieve/global'; // The name of the script which will be used when there's no user script -$config['managesieve_script_name'] = 'managesieve'; +$rcmail_config['managesieve_script_name'] = 'managesieve'; // Sieve RFC says that we should use UTF-8 endcoding for mailbox names, // but some implementations does not covert UTF-8 to modified UTF-7. // Defaults to UTF7-IMAP -$config['managesieve_mbox_encoding'] = 'UTF-8'; +$rcmail_config['managesieve_mbox_encoding'] = 'UTF-8'; // I need this because my dovecot (with listescape plugin) uses // ':' delimiter, but creates folders with dot delimiter -$config['managesieve_replace_delimiter'] = ''; +$rcmail_config['managesieve_replace_delimiter'] = ''; // disabled sieve extensions (body, copy, date, editheader, encoded-character, // envelope, environment, ereject, fileinto, ihave, imap4flags, index, // mailbox, mboxmetadata, regex, reject, relational, servermetadata, // spamtest, spamtestplus, subaddress, vacation, variables, virustest, etc. // Note: not all extensions are implemented -$config['managesieve_disabled_extensions'] = array(); +$rcmail_config['managesieve_disabled_extensions'] = array(); // Enables debugging of conversation with sieve server. Logs it into /sieve -$config['managesieve_debug'] = false; +$rcmail_config['managesieve_debug'] = false; // Enables features described in http://wiki.kolab.org/KEP:14 -$config['managesieve_kolab_master'] = false; +$rcmail_config['managesieve_kolab_master'] = false; // Script name extension used for scripts including. Dovecot uses '.sieve', // Cyrus uses '.siv'. Doesn't matter if you have managesieve_kolab_master disabled. -$config['managesieve_filename_extension'] = '.sieve'; +$rcmail_config['managesieve_filename_extension'] = '.sieve'; // List of reserved script names (without extension). // Scripts listed here will be not presented to the user. -$config['managesieve_filename_exceptions'] = array(); - -// List of domains limiting destination emails in redirect action -// If not empty, user will need to select domain from a list -$config['managesieve_domains'] = array(); +$rcmail_config['managesieve_filename_exceptions'] = array(); ?> diff --git a/plugins/managesieve/lib/Roundcube/rcube_sieve.php b/plugins/managesieve/lib/Roundcube/rcube_sieve.php index 3bd2978da..4f66bf029 100644 --- a/plugins/managesieve/lib/Roundcube/rcube_sieve.php +++ b/plugins/managesieve/lib/Roundcube/rcube_sieve.php @@ -6,18 +6,18 @@ * Copyright (C) 2008-2011, The Roundcube Dev Team * Copyright (C) 2011, Kolab Systems AG * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later 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 + * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/. + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ // Managesieve Protocol: RFC5804 @@ -84,7 +84,7 @@ class rcube_sieve return $this->_set_error(SIEVE_ERROR_LOGIN); } - $this->exts = $this->get_extensions(); + $this->exts = $this->get_extensions(); // disable features by config if (!empty($disabled)) { @@ -379,6 +379,6 @@ class rcube_sieve */ public function debug_handler(&$sieve, $message) { - rcube::write_log('sieve', preg_replace('/\r\n$/', '', $message)); + write_log('sieve', preg_replace('/\r\n$/', '', $message)); } } diff --git a/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php b/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php index 6fbc3f89d..36eb1bcf8 100644 --- a/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php +++ b/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php @@ -6,18 +6,18 @@ * Copyright (C) 2008-2011, The Roundcube Dev Team * Copyright (C) 2011, Kolab Systems AG * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later 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 + * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/. + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ class rcube_sieve_script @@ -27,26 +27,23 @@ class rcube_sieve_script private $vars = array(); // "global" variables private $prefix = ''; // script header (comments) private $supported = array( // Sieve extensions supported by class - 'body', // RFC5173 - 'copy', // RFC3894 - 'date', // RFC5260 - 'enotify', // RFC5435 + 'fileinto', // RFC5228 'envelope', // RFC5228 + 'reject', // RFC5429 'ereject', // RFC5429 - 'fileinto', // RFC5228 + 'copy', // RFC3894 + 'vacation', // RFC5230 + 'relational', // RFC3431 + 'regex', // draft-ietf-sieve-regex-01 'imapflags', // draft-melnikov-sieve-imapflags-06 'imap4flags', // RFC5232 'include', // draft-ietf-sieve-include-12 - 'index', // RFC5260 - 'notify', // draft-ietf-sieve-notify-00 - 'regex', // draft-ietf-sieve-regex-01 - 'reject', // RFC5429 - 'relational', // RFC3431 - 'subaddress', // RFC5233 - 'vacation', // RFC5230 - 'vacation-seconds', // RFC6131 'variables', // RFC5229 - // @TODO: spamtest+virustest, mailbox + 'body', // RFC5173 + 'subaddress', // RFC5233 + 'enotify', // RFC5435 + 'notify', // draft-ietf-sieve-notify-00 + // @TODO: spamtest+virustest, mailbox, date ); /** @@ -208,6 +205,7 @@ class rcube_sieve_script // rules foreach ($this->content as $rule) { + $extension = ''; $script = ''; $tests = array(); $i = 0; @@ -240,8 +238,24 @@ class rcube_sieve_script $tests[$i] .= ($test['not'] ? 'not ' : ''); $tests[$i] .= 'header'; - $this->add_index($test, $tests[$i], $exts); - $this->add_operator($test, $tests[$i], $exts); + if (!empty($test['type'])) { + // relational operator + comparator + if (preg_match('/^(value|count)-([gteqnl]{2})/', $test['type'], $m)) { + array_push($exts, 'relational'); + array_push($exts, 'comparator-i;ascii-numeric'); + + $tests[$i] .= ' :' . $m[1] . ' "' . $m[2] . '" :comparator "i;ascii-numeric"'; + } + else { + $this->add_comparator($test, $tests[$i], $exts); + + if ($test['type'] == 'regex') { + array_push($exts, 'regex'); + } + + $tests[$i] .= ' :' . $test['type']; + } + } $tests[$i] .= ' ' . self::escape_string($test['arg1']); $tests[$i] .= ' ' . self::escape_string($test['arg2']); @@ -256,19 +270,21 @@ class rcube_sieve_script $tests[$i] .= ($test['not'] ? 'not ' : ''); $tests[$i] .= $test['test']; - if ($test['test'] != 'envelope') { - $this->add_index($test, $tests[$i], $exts); - } - - // :all address-part is optional, skip it - if (!empty($test['part']) && $test['part'] != 'all') { + if (!empty($test['part'])) { $tests[$i] .= ' :' . $test['part']; if ($test['part'] == 'user' || $test['part'] == 'detail') { array_push($exts, 'subaddress'); } } - $this->add_operator($test, $tests[$i], $exts); + $this->add_comparator($test, $tests[$i], $exts); + + if (!empty($test['type'])) { + if ($test['type'] == 'regex') { + array_push($exts, 'regex'); + } + $tests[$i] .= ' :' . $test['type']; + } $tests[$i] .= ' ' . self::escape_string($test['arg1']); $tests[$i] .= ' ' . self::escape_string($test['arg2']); @@ -279,6 +295,8 @@ class rcube_sieve_script $tests[$i] .= ($test['not'] ? 'not ' : '') . 'body'; + $this->add_comparator($test, $tests[$i], $exts); + if (!empty($test['part'])) { $tests[$i] .= ' :' . $test['part']; @@ -287,35 +305,14 @@ class rcube_sieve_script } } - $this->add_operator($test, $tests[$i], $exts); - - $tests[$i] .= ' ' . self::escape_string($test['arg']); - break; - - case 'date': - case 'currentdate': - array_push($exts, 'date'); - - $tests[$i] .= ($test['not'] ? 'not ' : '') . $test['test']; - - $this->add_index($test, $tests[$i], $exts); - - if (!empty($test['originalzone']) && $test['test'] == 'date') { - $tests[$i] .= ' :originalzone'; - } - else if (!empty($test['zone'])) { - $tests[$i] .= ' :zone ' . self::escape_string($test['zone']); - } - - $this->add_operator($test, $tests[$i], $exts); - - if ($test['test'] == 'date') { - $tests[$i] .= ' ' . self::escape_string($test['header']); + if (!empty($test['type'])) { + if ($test['type'] == 'regex') { + array_push($exts, 'regex'); + } + $tests[$i] .= ' :' . $test['type']; } - $tests[$i] .= ' ' . self::escape_string($test['part']); $tests[$i] .= ' ' . self::escape_string($test['arg']); - break; } $i++; @@ -450,13 +447,8 @@ class rcube_sieve_script case 'vacation': array_push($exts, 'vacation'); $action_script .= 'vacation'; - if (isset($action['seconds'])) { - array_push($exts, 'vacation-seconds'); - $action_script .= " :seconds " . intval($action['seconds']); - } - else if (!empty($action['days'])) { - $action_script .= " :days " . intval($action['days']); - } + if (!empty($action['days'])) + $action_script .= " :days " . $action['days']; if (!empty($action['addresses'])) $action_script .= " :addresses " . self::escape_string($action['addresses']); if (!empty($action['subject'])) @@ -485,17 +477,8 @@ class rcube_sieve_script } // requires - if (!empty($exts)) { - $exts = array_unique($exts); - - if (in_array('vacation-seconds', $exts) && ($key = array_search('vacation', $exts)) !== false) { - unset($exts[$key]); - } - - sort($exts); // for convenience use always the same order - - $output = 'require ["' . implode('","', $exts) . "\"];\n" . $output; - } + if (!empty($exts)) + $output = 'require ["' . implode('","', array_unique($exts)) . "\"];\n" . $output; if (!empty($this->prefix)) { $output = $this->prefix . "\n\n" . $output; @@ -657,85 +640,86 @@ class rcube_sieve_script break; case 'size': - $test = array('test' => 'size', 'not' => $not); - - $test['arg'] = array_pop($tokens); - + $size = array('test' => 'size', 'not' => $not); for ($i=0, $len=count($tokens); $i<$len; $i++) { if (!is_array($tokens[$i]) && preg_match('/^:(under|over)$/i', $tokens[$i]) ) { - $test['type'] = strtolower(substr($tokens[$i], 1)); + $size['type'] = strtolower(substr($tokens[$i], 1)); + } + else { + $size['arg'] = $tokens[$i]; } } - $tests[] = $test; + $tests[] = $size; break; case 'header': - case 'address': - case 'envelope': - $test = array('test' => $token, 'not' => $not); - - $test['arg2'] = array_pop($tokens); - $test['arg1'] = array_pop($tokens); - - $test += $this->test_tokens($tokens); - - if ($token != 'header' && !empty($tokens)) { - for ($i=0, $len=count($tokens); $i<$len; $i++) { - if (!is_array($tokens[$i]) && preg_match('/^:(localpart|domain|all|user|detail)$/i', $tokens[$i])) { - $test['part'] = strtolower(substr($tokens[$i], 1)); - } + $header = array('test' => 'header', 'not' => $not, 'arg1' => '', 'arg2' => ''); + for ($i=0, $len=count($tokens); $i<$len; $i++) { + if (!is_array($tokens[$i]) && preg_match('/^:comparator$/i', $tokens[$i])) { + $header['comparator'] = $tokens[++$i]; + } + else if (!is_array($tokens[$i]) && preg_match('/^:(count|value)$/i', $tokens[$i])) { + $header['type'] = strtolower(substr($tokens[$i], 1)) . '-' . $tokens[++$i]; + } + else if (!is_array($tokens[$i]) && preg_match('/^:(is|contains|matches|regex)$/i', $tokens[$i])) { + $header['type'] = strtolower(substr($tokens[$i], 1)); + } + else { + $header['arg1'] = $header['arg2']; + $header['arg2'] = $tokens[$i]; } } - $tests[] = $test; + $tests[] = $header; break; - case 'body': - $test = array('test' => 'body', 'not' => $not); - - $test['arg'] = array_pop($tokens); - - $test += $this->test_tokens($tokens); - + case 'address': + case 'envelope': + $header = array('test' => $token, 'not' => $not, 'arg1' => '', 'arg2' => ''); for ($i=0, $len=count($tokens); $i<$len; $i++) { - if (!is_array($tokens[$i]) && preg_match('/^:(raw|content|text)$/i', $tokens[$i])) { - $test['part'] = strtolower(substr($tokens[$i], 1)); - - if ($test['part'] == 'content') { - $test['content'] = $tokens[++$i]; - } + if (!is_array($tokens[$i]) && preg_match('/^:comparator$/i', $tokens[$i])) { + $header['comparator'] = $tokens[++$i]; + } + else if (!is_array($tokens[$i]) && preg_match('/^:(is|contains|matches|regex)$/i', $tokens[$i])) { + $header['type'] = strtolower(substr($tokens[$i], 1)); + } + else if (!is_array($tokens[$i]) && preg_match('/^:(localpart|domain|all|user|detail)$/i', $tokens[$i])) { + $header['part'] = strtolower(substr($tokens[$i], 1)); + } + else { + $header['arg1'] = $header['arg2']; + $header['arg2'] = $tokens[$i]; } } - $tests[] = $test; + $tests[] = $header; break; - case 'date': - case 'currentdate': - $test = array('test' => $token, 'not' => $not); - - $test['arg'] = array_pop($tokens); - $test['part'] = array_pop($tokens); - - if ($token == 'date') { - $test['header'] = array_pop($tokens); - } - - $test += $this->test_tokens($tokens); - + case 'body': + $header = array('test' => 'body', 'not' => $not, 'arg' => ''); for ($i=0, $len=count($tokens); $i<$len; $i++) { - if (!is_array($tokens[$i]) && preg_match('/^:zone$/i', $tokens[$i])) { - $test['zone'] = $tokens[++$i]; + if (!is_array($tokens[$i]) && preg_match('/^:comparator$/i', $tokens[$i])) { + $header['comparator'] = $tokens[++$i]; } - else if (!is_array($tokens[$i]) && preg_match('/^:originalzone$/i', $tokens[$i])) { - $test['originalzone'] = true; + else if (!is_array($tokens[$i]) && preg_match('/^:(is|contains|matches|regex)$/i', $tokens[$i])) { + $header['type'] = strtolower(substr($tokens[$i], 1)); + } + else if (!is_array($tokens[$i]) && preg_match('/^:(raw|content|text)$/i', $tokens[$i])) { + $header['part'] = strtolower(substr($tokens[$i], 1)); + + if ($header['part'] == 'content') { + $header['content'] = $tokens[++$i]; + } + } + else { + $header['arg'] = $tokens[$i]; } } - $tests[] = $test; + $tests[] = $header; break; case 'exists': @@ -787,9 +771,15 @@ class rcube_sieve_script $result = null; while (strlen($content)) { - $tokens = self::tokenize($content, true); + $tokens = self::tokenize($content, true); $separator = array_pop($tokens); - $token = !empty($tokens) ? array_shift($tokens) : $separator; + + if (!empty($tokens)) { + $token = array_shift($tokens); + } + else { + $token = $separator; + } switch ($token) { case 'discard': @@ -800,78 +790,125 @@ class rcube_sieve_script case 'fileinto': case 'redirect': - $action = array('type' => $token, 'target' => array_pop($tokens)); - $args = array('copy'); - $action += $this->action_arguments($tokens, $args); + $copy = false; + $target = ''; + + for ($i=0, $len=count($tokens); $i<$len; $i++) { + if (strtolower($tokens[$i]) == ':copy') { + $copy = true; + } + else { + $target = $tokens[$i]; + } + } - $result[] = $action; + $result[] = array('type' => $token, 'copy' => $copy, + 'target' => $target); + break; + + case 'reject': + case 'ereject': + $result[] = array('type' => $token, 'target' => array_pop($tokens)); break; case 'vacation': - $action = array('type' => 'vacation', 'reason' => array_pop($tokens)); - $args = array('mime'); - $vargs = array('seconds', 'days', 'addresses', 'subject', 'handle', 'from'); - $action += $this->action_arguments($tokens, $args, $vargs); + $vacation = array('type' => 'vacation', 'reason' => array_pop($tokens)); - $result[] = $action; + for ($i=0, $len=count($tokens); $i<$len; $i++) { + $tok = strtolower($tokens[$i]); + if ($tok == ':days') { + $vacation['days'] = $tokens[++$i]; + } + else if ($tok == ':subject') { + $vacation['subject'] = $tokens[++$i]; + } + else if ($tok == ':addresses') { + $vacation['addresses'] = $tokens[++$i]; + } + else if ($tok == ':handle') { + $vacation['handle'] = $tokens[++$i]; + } + else if ($tok == ':from') { + $vacation['from'] = $tokens[++$i]; + } + else if ($tok == ':mime') { + $vacation['mime'] = true; + } + } + + $result[] = $vacation; break; - case 'reject': - case 'ereject': case 'setflag': case 'addflag': case 'removeflag': - $result[] = array('type' => $token, 'target' => array_pop($tokens)); + $result[] = array('type' => $token, + // Flags list: last token (skip optional variable) + 'target' => $tokens[count($tokens)-1] + ); break; case 'include': - $action = array('type' => 'include', 'target' => array_pop($tokens)); - $args = array('once', 'optional', 'global', 'personal'); - $action += $this->action_arguments($tokens, $args); + $include = array('type' => 'include', 'target' => array_pop($tokens)); - $result[] = $action; + // Parameters: :once, :optional, :global, :personal + for ($i=0, $len=count($tokens); $i<$len; $i++) { + $tok = strtolower($tokens[$i]); + if ($tok[0] == ':') { + $include[substr($tok, 1)] = true; + } + } + + $result[] = $include; break; case 'set': - $action = array('type' => 'set', 'value' => array_pop($tokens), 'name' => array_pop($tokens)); - $args = array('lower', 'upper', 'lowerfirst', 'upperfirst', 'quotewildcard', 'length'); - $action += $this->action_arguments($tokens, $args); + $set = array('type' => 'set', 'value' => array_pop($tokens), 'name' => array_pop($tokens)); + + // Parameters: :lower :upper :lowerfirst :upperfirst :quotewildcard :length + for ($i=0, $len=count($tokens); $i<$len; $i++) { + $tok = strtolower($tokens[$i]); + if ($tok[0] == ':') { + $set[substr($tok, 1)] = true; + } + } - $result[] = $action; + $result[] = $set; break; case 'require': // skip, will be build according to used commands - // $result[] = array('type' => 'require', 'target' => array_pop($tokens)); + // $result[] = array('type' => 'require', 'target' => $tokens); break; case 'notify': - $action = array('type' => 'notify'); - $priorities = array('high' => 1, 'normal' => 2, 'low' => 3); - $vargs = array('from', 'importance', 'options', 'message', 'method'); - $args = array_keys($priorities); - $action += $this->action_arguments($tokens, $args, $vargs); - - // Here we support only 00 version of notify draft, there - // were a couple regressions in 00 to 04 changelog, we use - // the version used by Cyrus - if (!isset($action['importance'])) { - foreach ($priorities as $key => $val) { - if (isset($action[$key])) { - $action['importance'] = $val; - unset($action[$key]); + $notify = array('type' => 'notify'); + $priorities = array(':high' => 1, ':normal' => 2, ':low' => 3); + + // Parameters: :from, :importance, :options, :message + // additional (optional) :method parameter for notify extension + for ($i=0, $len=count($tokens); $i<$len; $i++) { + $tok = strtolower($tokens[$i]); + if ($tok[0] == ':') { + // Here we support only 00 version of notify draft, there + // were a couple regressions in 00 to 04 changelog, we use + // the version used by Cyrus + if (isset($priorities[$tok])) { + $notify['importance'] = $priorities[$tok]; + } + else { + $notify[substr($tok, 1)] = $tokens[++$i]; } } + else { + // unnamed parameter is a :method in enotify extension + $notify['method'] = $tokens[$i]; + } } - // unnamed parameter is a :method in enotify extension - if (!isset($action['method'])) { - $action['method'] = array_pop($tokens); - } - - $method_components = parse_url($action['method']); + $method_components = parse_url($notify['method']); if ($method_components['scheme'] == 'mailto') { - $action['address'] = $method_components['path']; + $notify['address'] = $method_components['path']; $method_params = array(); if (array_key_exists('query', $method_components)) { parse_str($method_components['query'], $method_params); @@ -881,10 +918,10 @@ class rcube_sieve_script if (ini_get('magic_quotes_gpc') || ini_get('magic_quotes_sybase')) { array_map('stripslashes', $method_params); } - $action['body'] = (array_key_exists('body', $method_params)) ? $method_params['body'] : ''; + $notify['body'] = (array_key_exists('body', $method_params)) ? $method_params['body'] : ''; } - $result[] = $action; + $result[] = $notify; break; } @@ -897,7 +934,7 @@ class rcube_sieve_script } /** - * Add comparator to the test + * */ private function add_comparator($test, &$out, &$exts) { @@ -919,110 +956,6 @@ class rcube_sieve_script } } - /** - * Add index argument to the test - */ - private function add_index($test, &$out, &$exts) - { - if (!empty($test['index'])) { - array_push($exts, 'index'); - $out .= ' :index ' . intval($test['index']) . ($test['last'] ? ' :last' : ''); - } - } - - /** - * Add operators to the test - */ - private function add_operator($test, &$out, &$exts) - { - if (empty($test['type'])) { - return; - } - - // relational operator - if (preg_match('/^(value|count)-([gteqnl]{2})/', $test['type'], $m)) { - array_push($exts, 'relational'); - - $out .= ' :' . $m[1] . ' "' . $m[2] . '"'; - } - else { - if ($test['type'] == 'regex') { - array_push($exts, 'regex'); - } - - $out .= ' :' . $test['type']; - } - - $this->add_comparator($test, $out, $exts); - } - - /** - * Extract test tokens - */ - private function test_tokens(&$tokens) - { - $test = array(); - $result = array(); - - for ($i=0, $len=count($tokens); $i<$len; $i++) { - if (!is_array($tokens[$i]) && preg_match('/^:comparator$/i', $tokens[$i])) { - $test['comparator'] = $tokens[++$i]; - } - else if (!is_array($tokens[$i]) && preg_match('/^:(count|value)$/i', $tokens[$i])) { - $test['type'] = strtolower(substr($tokens[$i], 1)) . '-' . $tokens[++$i]; - } - else if (!is_array($tokens[$i]) && preg_match('/^:(is|contains|matches|regex)$/i', $tokens[$i])) { - $test['type'] = strtolower(substr($tokens[$i], 1)); - } - else if (!is_array($tokens[$i]) && preg_match('/^:index$/i', $tokens[$i])) { - $test['index'] = intval($tokens[++$i]); - if ($tokens[$i+1] && preg_match('/^:last$/i', $tokens[$i+1])) { - $test['last'] = true; - $i++; - } - } - else { - $result[] = $tokens[$i]; - } - } - - $tokens = $result; - - return $test; - } - - /** - * Extract action arguments - */ - private function action_arguments(&$tokens, $bool_args, $val_args = array()) - { - $action = array(); - $result = array(); - - for ($i=0, $len=count($tokens); $i<$len; $i++) { - $tok = $tokens[$i]; - if (!is_array($tok) && $tok[0] == ':') { - $tok = strtolower(substr($tok, 1)); - if (in_array($tok, $bool_args)) { - $action[$tok] = true; - } - else if (in_array($tok, $val_args)) { - $action[$tok] = $tokens[++$i]; - } - else { - $result[] = $tok; - } - } - else { - $result[] = $tok; - } - } - - $tokens = $result; - - return $action; - } - /** * Escape special chars into quoted string value or multi-line string * or list of strings @@ -1081,10 +1014,11 @@ class rcube_sieve_script * @param mixed $num Number of tokens to return, 0 for all * or True for all tokens until separator is found. * Separator will be returned as last token. + * @param int $in_list Enable to call recursively inside a list * * @return mixed Tokens array or string if $num=1 */ - static function tokenize(&$str, $num=0) + static function tokenize(&$str, $num=0, $in_list=false) { $result = array(); @@ -1119,7 +1053,7 @@ class rcube_sieve_script // Parenthesized list case '[': $str = substr($str, 1); - $result[] = self::tokenize($str, 0); + $result[] = self::tokenize($str, 0, true); break; case ']': $str = substr($str, 1); diff --git a/plugins/managesieve/localization/az_AZ.inc b/plugins/managesieve/localization/az_AZ.inc index e9c60e493..f272df7b0 100644 --- a/plugins/managesieve/localization/az_AZ.inc +++ b/plugins/managesieve/localization/az_AZ.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Süzgəclər'; $labels['managefilters'] = 'Gələn məktub üçün süzgəclərin idarəsi'; $labels['filtername'] = 'Süzgəcin adı'; @@ -53,6 +55,7 @@ $labels['add'] = 'Əlavə et'; $labels['del'] = 'Sil'; $labels['sender'] = 'Göndərən'; $labels['recipient'] = 'Qəbul edən'; +$labels['vacationaddresses'] = 'Əlavə ünvanlarım üçün siyahı (vergüllər ilə ayrılmış):'; $labels['vacationdays'] = 'Məktub neçə müddətdən bir göndərilsin (gündə):'; $labels['vacationinterval'] = 'Məktublar nə qədər sıx göndərilsin:'; $labels['days'] = 'günlər'; @@ -80,11 +83,13 @@ $labels['countisgreaterthanequal'] = 'say çox və ya bərabərdir'; $labels['countislessthan'] = 'say buradan azdır'; $labels['countislessthanequal'] = 'say azdır və ya bərabərdir'; $labels['countequals'] = 'say bərabərdir'; +$labels['countnotequals'] = 'say bərabər deyil'; $labels['valueisgreaterthan'] = 'dəyər buradan daha böyükdür'; $labels['valueisgreaterthanequal'] = 'dəyər çoxdur və ya bərabərdir'; $labels['valueislessthan'] = 'dəyər buradan azdır'; $labels['valueislessthanequal'] = 'dəyər azdır və ya bərabərdir'; $labels['valueequals'] = 'dəyər bərabərdir'; +$labels['valuenotequals'] = 'dəyər bərabər deyil'; $labels['setflags'] = 'Məktublara flaq quraşdır'; $labels['addflags'] = 'Məktuba flaq əlavə et'; $labels['removeflags'] = 'Məktubdan flaqları sil'; @@ -135,26 +140,38 @@ $labels['default'] = 'ön qurğulu'; $labels['octet'] = 'ciddi (oktet)'; $labels['asciicasemap'] = 'qeydiyyat üzrə müstəqil (ascii-casemap)'; $labels['asciinumeric'] = 'ədədi (ascii-numeric)'; + +$messages = array(); $messages['filterunknownerror'] = 'Serverin naməlum xətası.'; $messages['filterconnerror'] = 'Serverə qoşulmaq alınmır'; +$messages['filterdeleteerror'] = 'Süzgəci silmək mümkün deyil. Server xətası.'; $messages['filterdeleted'] = 'Süzgəc uğurla silindi.'; $messages['filtersaved'] = 'Süzgəc uğurla saxlanıldı.'; +$messages['filtersaveerror'] = 'Süzgəci saxlamaq mümkün deyil. Server xətası.'; $messages['filterdeleteconfirm'] = 'Siz həqiqətən süzgəci silmək istəyirsiniz?'; $messages['ruledeleteconfirm'] = 'Bu qaydanı silməkdə əminsiniz?'; $messages['actiondeleteconfirm'] = 'Bu hərəkəti silməkdə əminsiniz?'; $messages['forbiddenchars'] = 'Sahədə qadağan edilən işarələr.'; $messages['cannotbeempty'] = 'Sahə boş ola bilməz.'; $messages['ruleexist'] = 'Bu adla süzgəc artıq mövcuddur.'; +$messages['setactivateerror'] = 'Seçilmiş süzgəc dəstini yandırmaq mümkün deyil. Server xətası.'; +$messages['setdeactivateerror'] = 'Seçilmiş süzgəc dəstini söndürmək mümkün deyil. Server xətası.'; +$messages['setdeleteerror'] = 'Seçilmiş süzgəc dəstini silmək mümkün deyil. Server xətası.'; $messages['setactivated'] = 'Süzgəc dəsti yandırıldı.'; $messages['setdeactivated'] = 'Süzgəc dəsti söndürüldü.'; $messages['setdeleted'] = 'Süzgəc dəsti silindi.'; $messages['setdeleteconfirm'] = 'Bu süzgəc dəstini silməkdə əminsiniz?'; +$messages['setcreateerror'] = 'Süzgəc dəstini yaratmaq mümkün deyil. Server xərası.'; $messages['setcreated'] = 'Süzgəc dəsti uğurla yaradıldı.'; +$messages['activateerror'] = 'Seçilmiş süzgəc(lər)i yandırmaq mümkün deyil. Server xətası.'; +$messages['deactivateerror'] = 'Seçilmiş süzgəc(lər)i söndürmək mümkün deyil. Server xətası.'; $messages['deactivated'] = 'Süzgəc(lər) uğurla yandırıldı.'; $messages['activated'] = 'Süzgəc(lər) uğurla söndürüldü.'; $messages['moved'] = 'Süzgəc uğurla köçürüldü.'; +$messages['moveerror'] = 'Süzgəci köçürmək mümkün deyil. Server xətası.'; $messages['nametoolong'] = 'Süzgəc dəstini yaratmaq mümkün deyil. Ad çox uzundur.'; $messages['namereserved'] = 'Rezerv edilmiş ad.'; $messages['setexist'] = 'Dəst artıq mövcuddur.'; $messages['nodata'] = 'Heç olmasa bir mövqe tutmaq lazımdır!'; + ?> diff --git a/plugins/managesieve/localization/be_BE.inc b/plugins/managesieve/localization/be_BE.inc index 29c97ad94..64f81599e 100644 --- a/plugins/managesieve/localization/be_BE.inc +++ b/plugins/managesieve/localization/be_BE.inc @@ -15,16 +15,18 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Фільтры'; -$labels['managefilters'] = 'Парадкаваць фільтры атрыманай пошты'; +$labels['managefilters'] = 'Кіраваць фільтрамі ўваходнае пошты'; $labels['filtername'] = 'Назва фільтра'; -$labels['newfilter'] = 'Новы фільтр'; -$labels['filteradd'] = 'Дадаць фільтр'; -$labels['filterdel'] = 'Выдаліць фільтр'; +$labels['newfilter'] = 'Новы фільтар'; +$labels['filteradd'] = 'Дадаць фільтар'; +$labels['filterdel'] = 'Выдаліць фільтар'; $labels['moveup'] = 'Пасунуць уверх'; $labels['movedown'] = 'Пасунуць уніз'; -$labels['filterallof'] = 'выконваюцца ўсе наступныя правілы'; -$labels['filteranyof'] = 'выконваецца любое з наступных правіл'; +$labels['filterallof'] = 'супадаюць усе наступныя правілы'; +$labels['filteranyof'] = 'супадае любое наступнае правіла'; $labels['filterany'] = 'усе паведамленні'; $labels['filtercontains'] = 'змяшчае'; $labels['filternotcontains'] = 'не змяшчае'; @@ -32,161 +34,144 @@ $labels['filteris'] = 'роўна'; $labels['filterisnot'] = 'не роўна'; $labels['filterexists'] = 'існуе'; $labels['filternotexists'] = 'не існуе'; -$labels['filtermatches'] = 'задавальняе выразу'; -$labels['filternotmatches'] = 'не задавальняе выразу'; -$labels['filterregex'] = 'задавальняе рэгулярнаму выразу'; -$labels['filternotregex'] = 'не задавальняе рэгулярнаму выразу'; -$labels['filterunder'] = 'менш'; -$labels['filterover'] = 'больш'; +$labels['filtermatches'] = 'супадае з выразам'; +$labels['filternotmatches'] = 'не супадае з выразам'; +$labels['filterregex'] = 'супадае са сталым выразам'; +$labels['filternotregex'] = 'не супадае са сталым выразам'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; $labels['addrule'] = 'Дадаць правіла'; $labels['delrule'] = 'Выдаліць правіла'; $labels['messagemoveto'] = 'Перамясціць паведамленне ў'; -$labels['messageredirect'] = 'Перанакіраваць паведамленне на'; +$labels['messageredirect'] = 'Перанакіраваць павдамленне на'; $labels['messagecopyto'] = 'Скапіяваць паведамленне ў'; $labels['messagesendcopy'] = 'Даслаць копію на'; $labels['messagereply'] = 'Адказаць наступнае'; $labels['messagedelete'] = 'Выдаліць паведамленне'; -$labels['messagediscard'] = 'Скасаваць з паведамленнем'; -$labels['messagekeep'] = 'Пакінуць паведамленне ў Атрыманых'; -$labels['messagesrules'] = 'Для атрыманай пошты:'; -$labels['messagesactions'] = '...выконваць наступныя дзеянні:'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = '...execute the following actions:'; $labels['add'] = 'Дадаць'; $labels['del'] = 'Выдаліць'; $labels['sender'] = 'Ад каго'; $labels['recipient'] = 'Каму'; -$labels['vacationaddr'] = 'Дадатковы(я) адрасы эл. пошты:'; -$labels['vacationdays'] = 'Як часта дасылаць паведамленні (у днях):'; -$labels['vacationinterval'] = 'Як часта дасылаць паведамленні:'; -$labels['days'] = 'дзён'; -$labels['seconds'] = 'секунд'; -$labels['vacationreason'] = 'Цела паведамлення (прычына вакацый):'; -$labels['vacationsubject'] = 'Тэма паведамлення:'; -$labels['rulestop'] = 'Перастаць выконваць праверку правілаў'; -$labels['enable'] = 'Уключыць/Выключыць'; -$labels['filterset'] = 'Набор фільтраў'; -$labels['filtersets'] = 'Наборы фільтраў'; -$labels['filtersetadd'] = 'Дадаць набор фільтраў'; -$labels['filtersetdel'] = 'Выдаліць бягучы набор фільтраў'; -$labels['filtersetact'] = 'Актываваць бягучы набор фільтраў'; -$labels['filtersetdeact'] = 'Дэактываваць бягучы набор фільтраў'; -$labels['filterdef'] = 'Вызначэнне фільтра'; -$labels['filtersetname'] = 'Назва набору фільтраў'; -$labels['newfilterset'] = 'Новы набор фільтраў'; -$labels['active'] = 'актыўны'; -$labels['none'] = 'няма'; -$labels['fromset'] = 'з набору'; -$labels['fromfile'] = 'з файла'; -$labels['filterdisabled'] = 'Фільтр адключаны'; -$labels['countisgreaterthan'] = 'лік большы за'; -$labels['countisgreaterthanequal'] = 'лік большы за альбо роўны'; -$labels['countislessthan'] = 'лік меншы за'; -$labels['countislessthanequal'] = 'лік меншы за альбо роўны'; -$labels['countequals'] = 'лік роўны'; -$labels['countnotequals'] = 'лік не роўны'; -$labels['valueisgreaterthan'] = 'значэнне большае за'; -$labels['valueisgreaterthanequal'] = 'значэнне большае за альбо роўнае'; -$labels['valueislessthan'] = 'значэнне меншае за'; -$labels['valueislessthanequal'] = 'значэнне меншае за альбо роўнае'; -$labels['valueequals'] = 'значэнне роўнае'; -$labels['valuenotequals'] = 'значэнне не роўнае'; -$labels['setflags'] = 'Устанавіць флагі на паведамленне'; -$labels['addflags'] = 'Дадаць флагі да паведамлення'; -$labels['removeflags'] = 'Выдаліць флагі з паведамлення'; -$labels['flagread'] = 'Прачытана'; -$labels['flagdeleted'] = 'Выдалена'; -$labels['flaganswered'] = 'З адказам'; -$labels['flagflagged'] = 'Пазначана'; -$labels['flagdraft'] = 'Чарнавік'; -$labels['setvariable'] = 'Устанавіць зменную'; -$labels['setvarname'] = 'Імя зменнай:'; -$labels['setvarvalue'] = 'Значэнне зменнай:'; -$labels['setvarmodifiers'] = 'Мадыфікатары:'; -$labels['varlower'] = 'ніжні рэгістр'; -$labels['varupper'] = 'верхні рэгістр'; -$labels['varlowerfirst'] = 'першы знак у ніжнім рэгістры'; -$labels['varupperfirst'] = 'першы знак у верхнім рэгістры'; -$labels['varquotewildcard'] = 'службовыя знакі забіраць у апострафы'; -$labels['varlength'] = 'даўжыня'; -$labels['notify'] = 'Паслаць апавяшчэнне'; -$labels['notifyaddress'] = 'На эл. адрас:'; -$labels['notifybody'] = 'Цела апавяшчэння:'; -$labels['notifysubject'] = 'Тэма апавяшчэння:'; -$labels['notifyfrom'] = 'Адпраўнік апавяшчэння:'; -$labels['notifyimportance'] = 'Важнасць:'; -$labels['notifyimportancelow'] = 'нізкая'; -$labels['notifyimportancenormal'] = 'звычайная'; -$labels['notifyimportancehigh'] = 'высокая'; -$labels['filtercreate'] = 'Стварыць фільтр'; -$labels['usedata'] = 'Ужываць наступныя дадзеныя ў фільтры:'; -$labels['nextstep'] = 'Наступны крок'; +$labels['vacationaddresses'] = 'Дадатковы спіс атрымальнікаў (праз коску):'; +$labels['vacationdays'] = 'Як часта дасылаць паведамленні (ў днях):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; +$labels['vacationsubject'] = 'Message subject:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'active'; +$labels['none'] = 'none'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; $labels['...'] = '...'; -$labels['currdate'] = 'Бягучая дата'; -$labels['datetest'] = 'Дата'; -$labels['dateheader'] = 'загаловак:'; -$labels['year'] = 'год'; -$labels['month'] = 'месяц'; -$labels['day'] = 'дзень'; -$labels['date'] = 'дата (гггг-мм-дд)'; -$labels['julian'] = 'дата (юліянская)'; -$labels['hour'] = 'гадзіна'; -$labels['minute'] = 'мінута'; -$labels['second'] = 'секунда'; -$labels['time'] = 'час (гг:мм:сс)'; -$labels['iso8601'] = 'дата (ISO8601)'; -$labels['std11'] = 'дата (RFC2822)'; -$labels['zone'] = 'часавая зона'; -$labels['weekday'] = 'дзень тыдня (0-6)'; -$labels['advancedopts'] = 'Дадатковыя параметры'; -$labels['body'] = 'Цела'; -$labels['address'] = 'адрас'; -$labels['envelope'] = 'канверт'; -$labels['modifier'] = 'мадыфікатар:'; -$labels['text'] = 'тэкст'; -$labels['undecoded'] = 'неапрацаваны (сыры)'; -$labels['contenttype'] = 'тып змесціва'; -$labels['modtype'] = 'пошук у адрасах:'; -$labels['allparts'] = 'усюль'; -$labels['domain'] = 'у імені дамена'; -$labels['localpart'] = 'толькі ў імені карыстальніка, без дамена'; -$labels['user'] = 'у поўным імені карыстальніка'; -$labels['detail'] = 'у дадатковых звестках'; -$labels['comparator'] = 'спосаб параўнання:'; -$labels['default'] = 'стандартны'; -$labels['octet'] = 'строгі (octet)'; -$labels['asciicasemap'] = 'без уліку рэгістру (ascii-casemap)'; -$labels['asciinumeric'] = 'лікавы (ascii-numeric)'; -$labels['index'] = 'індэкс:'; -$labels['indexlast'] = 'назад'; -$messages['filterunknownerror'] = 'Невядомая памылка сервера.'; -$messages['filterconnerror'] = 'Не ўдалося злучыцца з серверам.'; -$messages['filterdeleteerror'] = 'Не ўдалося выдаліць фільтр. Памылка на серверы.'; -$messages['filterdeleted'] = 'Фільтр выдалены.'; -$messages['filtersaved'] = 'Фільтр захаваны.'; -$messages['filtersaveerror'] = 'Не ўдалося захаваць фільтр. Памылка на серверы.'; -$messages['filterdeleteconfirm'] = 'Напраўду выдаліць абраны фільтр?'; -$messages['ruledeleteconfirm'] = 'Напраўду выдаліць абранае правіла?'; -$messages['actiondeleteconfirm'] = 'Напраўду выдаліць абранае дзеянне?'; -$messages['forbiddenchars'] = 'Забароненыя знакі ў полі.'; -$messages['cannotbeempty'] = 'Поле не можа быць пустым.'; -$messages['ruleexist'] = 'Фільтр з гэтай назвай ужо існуе.'; -$messages['setactivateerror'] = 'Не ўдалося ўключыць абраны набор фільтраў. Памылка на серверы.'; -$messages['setdeactivateerror'] = 'Не ўдалося адключыць абраны набор фільтраў. Памылка на серверы.'; -$messages['setdeleteerror'] = 'Не ўдалося выдаліць абраны набор фільтраў. Памылка на серверы.'; -$messages['setactivated'] = 'Набор фільтраў актываваны.'; -$messages['setdeactivated'] = 'Набор фільтраў дэактываваны.'; -$messages['setdeleted'] = 'Набор фільтраў выдалены.'; -$messages['setdeleteconfirm'] = 'Напраўду выдаліць абраны набор фільтраў?'; -$messages['setcreateerror'] = 'Не ўдалося стварыць набор фільтраў. Памылка на серверы.'; -$messages['setcreated'] = 'Набор фільтраў створаны.'; -$messages['activateerror'] = 'Не ўдалося ўключыць абраны(я) фільтры. Памылка на серверы.'; -$messages['deactivateerror'] = 'Не ўдалося адключыць абраны(я) фільтры. Памылка на серверы.'; -$messages['deactivated'] = 'Фільтр(ы) адключаны.'; -$messages['activated'] = 'Фільтр(ы) уключаны.'; -$messages['moved'] = 'Фільтр перамешчаны.'; -$messages['moveerror'] = 'Не ўдалося перамясціць абраны фільтр. Памылка на серверы.'; -$messages['nametoolong'] = 'Задаўгая назва.'; -$messages['namereserved'] = 'Зарэзерваваная назва.'; -$messages['setexist'] = 'Набор ужо існуе.'; -$messages['nodata'] = 'Мінімум адна пазіцыя павінна быць вылучана!'; -$messages['invaliddateformat'] = 'Няслушная дата альбо фармат даты'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unknown server error.'; +$messages['filterconnerror'] = 'Unable to connect to server.'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occured.'; +$messages['filterdeleted'] = 'Filter deleted successfully.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; +$messages['cannotbeempty'] = 'Field cannot be empty.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Name too long.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + ?> diff --git a/plugins/managesieve/localization/bg_BG.inc b/plugins/managesieve/localization/bg_BG.inc index c9d06d2fd..28f2ddb99 100644 --- a/plugins/managesieve/localization/bg_BG.inc +++ b/plugins/managesieve/localization/bg_BG.inc @@ -15,178 +15,163 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Филтри'; $labels['managefilters'] = 'Управление на филтри за входяща поща'; $labels['filtername'] = 'Име на филтър'; $labels['newfilter'] = 'Нов филтър'; -$labels['filteradd'] = 'Нов филтър'; +$labels['filteradd'] = 'Добавяне на филтър'; $labels['filterdel'] = 'Изтриване на филтър'; $labels['moveup'] = 'Преместване нагоре'; $labels['movedown'] = 'Преместване надолу'; -$labels['filterallof'] = 'която изпълнява всички условия'; -$labels['filteranyof'] = 'която изпълнява някое от условията'; -$labels['filterany'] = 'за всички писма'; +$labels['filterallof'] = 'съвпадение на всички следващи правила'; +$labels['filteranyof'] = 'съвпадение на някое от следните правила'; +$labels['filterany'] = 'всички съобщения'; $labels['filtercontains'] = 'съдържа'; $labels['filternotcontains'] = 'не съдържа'; $labels['filteris'] = 'е равно на'; $labels['filterisnot'] = 'не е равно на'; $labels['filterexists'] = 'съществува'; $labels['filternotexists'] = 'не съществува'; -$labels['filtermatches'] = 'съвпада с израз'; -$labels['filternotmatches'] = 'не съвпада с израз'; -$labels['filterregex'] = 'отговаря на регулярен израз'; -$labels['filternotregex'] = 'не отговаря на регулярен израз'; +$labels['filtermatches'] = 'съответствия при израз'; +$labels['filternotmatches'] = 'няма съвпадения при израз'; +$labels['filterregex'] = 'съвпадения при обикновен израз'; +$labels['filternotregex'] = 'няма съвпадения при обикновен израз'; $labels['filterunder'] = 'под'; $labels['filterover'] = 'над'; -$labels['addrule'] = 'Ново условие'; -$labels['delrule'] = 'Изтриване на условие'; -$labels['messagemoveto'] = 'Премести писмото във'; -$labels['messageredirect'] = 'Пренасочи писмото до'; -$labels['messagecopyto'] = 'Копирай писмото във'; -$labels['messagesendcopy'] = 'Изпрати копие на писмото до'; -$labels['messagereply'] = 'Отговори с писмо'; -$labels['messagedelete'] = 'Изтрий писмото'; -$labels['messagediscard'] = 'Отхвърли със съобщение'; -$labels['messagekeep'] = 'Остави писмото във Вх. поща'; -$labels['messagesrules'] = 'При получаване на поща...'; -$labels['messagesactions'] = '...изпълни следните действия:'; -$labels['add'] = 'Добави'; -$labels['del'] = 'Изтрий'; +$labels['addrule'] = 'Добавяне на правило'; +$labels['delrule'] = 'Изтриване на правило'; +$labels['messagemoveto'] = 'Преместване на съобщението в'; +$labels['messageredirect'] = 'Пренасочване на съобщението до'; +$labels['messagecopyto'] = 'Копиране на съобщенията в'; +$labels['messagesendcopy'] = 'Изпращане на копие до'; +$labels['messagereply'] = 'Отговор със съобщение'; +$labels['messagedelete'] = 'Изтриване на съобщение'; +$labels['messagediscard'] = 'Отхвърляне със съобщение'; +$labels['messagesrules'] = 'За входящата поща:'; +$labels['messagesactions'] = '... изпълнение на следните действия:'; +$labels['add'] = 'Добавяне'; +$labels['del'] = 'Изтриване'; $labels['sender'] = 'Подател'; $labels['recipient'] = 'Получател'; -$labels['vacationaddr'] = 'Мои допълнителни e-mail адреси:'; -$labels['vacationdays'] = 'Колко често да праща писма (в дни):'; -$labels['vacationinterval'] = 'Колко често да праща писма:'; +$labels['vacationaddresses'] = 'Допълнителни e-mail адреси (разделени със запетая):'; +$labels['vacationdays'] = 'Колко често пращате съобщения (в дни):'; +$labels['vacationinterval'] = 'Колко често да праща съобщения:'; $labels['days'] = 'дни'; $labels['seconds'] = 'секунди'; -$labels['vacationreason'] = 'Текст на писмото (причина за ваканцията)'; -$labels['vacationsubject'] = 'Заглавие на писмото'; -$labels['rulestop'] = 'Спри проверка на други условия'; -$labels['enable'] = 'Включи/Изключи'; -$labels['filterset'] = 'Набор филтри'; -$labels['filtersets'] = 'Набори филтри'; -$labels['filtersetadd'] = 'Нов набор филтри'; -$labels['filtersetdel'] = 'Изтриване на текущ набор филтри'; -$labels['filtersetact'] = 'Активиране на текущ набор филтри'; -$labels['filtersetdeact'] = 'Деактивиране на текущ набор филтри'; +$labels['vacationreason'] = 'Текст на съобщението (причина за ваканцията)'; +$labels['vacationsubject'] = 'Тема на съобщението'; +$labels['rulestop'] = 'Правила за спиране'; +$labels['enable'] = 'Включено/Изключено'; +$labels['filterset'] = 'Избрани филтри'; +$labels['filtersets'] = 'Избрани филтри'; +$labels['filtersetadd'] = 'Добавяне на избран филтър'; +$labels['filtersetdel'] = 'Изтриване на текущ филтър'; +$labels['filtersetact'] = 'Активиране на текущи филтри'; +$labels['filtersetdeact'] = 'Деактивиране на текущи филтри'; $labels['filterdef'] = 'Дефиниране на филтър'; -$labels['filtersetname'] = 'Име на набор филтри'; -$labels['newfilterset'] = 'Нов набор филтри'; +$labels['filtersetname'] = 'Име на филтър'; +$labels['newfilterset'] = 'Нов филтър'; $labels['active'] = 'активен'; $labels['none'] = 'няма'; $labels['fromset'] = 'от набор'; $labels['fromfile'] = 'от файл'; $labels['filterdisabled'] = 'Изключен филтър'; -$labels['countisgreaterthan'] = 'брой е по-голям от'; -$labels['countisgreaterthanequal'] = 'брой е по-голям или равен на'; -$labels['countislessthan'] = 'брой е по-малък от'; -$labels['countislessthanequal'] = 'брой е по-малък или равен на'; -$labels['countequals'] = 'брой е равен на'; -$labels['countnotequals'] = 'брой не е равен на'; -$labels['valueisgreaterthan'] = 'стойност е по-голяма от'; -$labels['valueisgreaterthanequal'] = 'стойност е по-голяма или равна на'; -$labels['valueislessthan'] = 'стойност е по-малка от'; -$labels['valueislessthanequal'] = 'стойност е по-малка или равна на'; -$labels['valueequals'] = 'стойност е равна на'; -$labels['valuenotequals'] = 'стойност не е равна на'; -$labels['setflags'] = 'Установи флагове на писмо'; -$labels['addflags'] = 'Добави флагове към писмо'; -$labels['removeflags'] = 'Премахни флагове от писмо'; -$labels['flagread'] = 'Прочетено'; +$labels['countisgreaterthan'] = 'отброявай като по-висок от'; +$labels['countisgreaterthanequal'] = 'отброявай като по-висок или равен на'; +$labels['countislessthan'] = 'отброявай като по-малък'; +$labels['countislessthanequal'] = 'отброявай като по-малък или равен на'; +$labels['countequals'] = 'отброявай като равен на'; +$labels['countnotequals'] = 'отброявай неравните'; +$labels['valueisgreaterthan'] = 'стойността е по-висока от'; +$labels['valueisgreaterthanequal'] = 'стойността е по-висока от или равна на'; +$labels['valueislessthan'] = 'стойността е по-ниска от'; +$labels['valueislessthanequal'] = 'стойността е по-ниска или равна на'; +$labels['valueequals'] = 'стойността е равна на'; +$labels['valuenotequals'] = 'стойността не е равна'; +$labels['setflags'] = 'Избор на флагове за съобщенията'; +$labels['addflags'] = 'Добавяне на флагове за съобщенията'; +$labels['removeflags'] = 'Премахване на флагове от съобщенията'; +$labels['flagread'] = 'Четене'; $labels['flagdeleted'] = 'Изтрито'; $labels['flaganswered'] = 'Отговорено'; $labels['flagflagged'] = 'Отбелязано'; $labels['flagdraft'] = 'Чернова'; -$labels['setvariable'] = 'Установи променлива'; +$labels['setvariable'] = 'Въвеждане на променлива'; $labels['setvarname'] = 'Име на променлива:'; $labels['setvarvalue'] = 'Стойност на променлива:'; -$labels['setvarmodifiers'] = 'Модификатори:'; +$labels['setvarmodifiers'] = 'Промени:'; $labels['varlower'] = 'малки букви'; $labels['varupper'] = 'главни букви'; $labels['varlowerfirst'] = 'първи знак с малка буква'; $labels['varupperfirst'] = 'първи знак с главна буква'; $labels['varquotewildcard'] = 'цитиране на специални знаци'; $labels['varlength'] = 'дължина'; -$labels['notify'] = 'Изпрати известие'; -$labels['notifyaddress'] = 'До e-mail адрес:'; -$labels['notifybody'] = 'Основен текст на известието:'; -$labels['notifysubject'] = 'Заглавие на известието:'; -$labels['notifyfrom'] = 'Подател на известието:'; -$labels['notifyimportance'] = 'Приоритет:'; -$labels['notifyimportancelow'] = 'нисък'; -$labels['notifyimportancenormal'] = 'нормален'; -$labels['notifyimportancehigh'] = 'висок'; -$labels['filtercreate'] = 'Използвай за нов филтър'; -$labels['usedata'] = 'Използвай следните данни във филтъра:'; +$labels['notify'] = 'Известие за изпращане'; +$labels['notifyaddress'] = 'До e-mail адреси:'; +$labels['notifybody'] = 'Известие:'; +$labels['notifysubject'] = 'Тема на известието'; +$labels['notifyfrom'] = 'Подател на известието'; +$labels['notifyimportance'] = 'Важност:'; +$labels['notifyimportancelow'] = 'ниска'; +$labels['notifyimportancenormal'] = 'нормална'; +$labels['notifyimportancehigh'] = 'висока'; +$labels['filtercreate'] = 'Нов филтър'; +$labels['usedata'] = 'Ползват се следните данни във филтъра:'; $labels['nextstep'] = 'Следваща стъпка'; $labels['...'] = '...'; -$labels['currdate'] = 'Текуща дата'; -$labels['datetest'] = 'Дата'; -$labels['dateheader'] = 'заглавен блок:'; -$labels['year'] = 'година'; -$labels['month'] = 'месец'; -$labels['day'] = 'ден'; -$labels['date'] = 'дата (гггг-мм-дд)'; -$labels['julian'] = 'дата (юлианска)'; -$labels['hour'] = 'час'; -$labels['minute'] = 'минута'; -$labels['second'] = 'секунда'; -$labels['time'] = 'време (чч:мм:сс)'; -$labels['iso8601'] = 'дата (ISO8601)'; -$labels['std11'] = 'дата (RFC2822)'; -$labels['zone'] = 'часова зона'; -$labels['weekday'] = 'ден от седмицата (0-6)'; $labels['advancedopts'] = 'Разширени настройки'; -$labels['body'] = 'Основен текст'; +$labels['body'] = 'Основа'; $labels['address'] = 'адрес'; $labels['envelope'] = 'плик'; -$labels['modifier'] = 'модификатор:'; +$labels['modifier'] = 'промени:'; $labels['text'] = 'текст'; -$labels['undecoded'] = 'недекодиран (суров)'; +$labels['undecoded'] = 'без кодиране'; $labels['contenttype'] = 'тип на съдържанието'; $labels['modtype'] = 'тип:'; $labels['allparts'] = 'всичко'; $labels['domain'] = 'домейн'; $labels['localpart'] = 'локална част'; $labels['user'] = 'потребител'; -$labels['detail'] = 'датайли'; -$labels['comparator'] = 'сравнител:'; +$labels['detail'] = 'данни'; +$labels['comparator'] = 'за сравнение:'; $labels['default'] = 'по подразбиране'; -$labels['octet'] = 'стриктно (октет)'; -$labels['asciicasemap'] = 'без значение малки/големи букви'; +$labels['octet'] = 'стриктно'; +$labels['asciicasemap'] = 'без значение от малки/големи букви'; $labels['asciinumeric'] = 'цифрово'; -$labels['index'] = 'индекс:'; -$labels['indexlast'] = 'наобратно'; -$messages['filterunknownerror'] = 'Неизвестна сървърна грешка.'; -$messages['filterconnerror'] = 'Неуспешно свързване с managesieve сървъра.'; -$messages['filterdeleteerror'] = 'Невъзможно изтриване на филтъра. Възникна сървърна грешка.'; -$messages['filterdeleted'] = 'Филтърът е изтрит успешно.'; -$messages['filtersaved'] = 'Филтърът е записан успешно.'; -$messages['filtersaveerror'] = 'Невъзможно записване на филтъра. Възникна сървърна грешка.'; -$messages['filterdeleteconfirm'] = 'Наистина ли желаете да изтриете избрания филтър?'; -$messages['ruledeleteconfirm'] = 'Сигурни ли сте, че желаете да изтриете избраното условие?'; -$messages['actiondeleteconfirm'] = 'Сигурни ли сте, че желаете да изтриете избраното действие?'; -$messages['forbiddenchars'] = 'Забранени символи в полето.'; -$messages['cannotbeempty'] = 'Полето не може да бъде празно.'; + +$messages = array(); +$messages['filterunknownerror'] = 'Неизвестна грешка на сървъра'; +$messages['filterconnerror'] = 'Невъзможност за свързване с managesieve сървъра'; +$messages['filterdeleteerror'] = 'Невъзможност за изтриване на филтър. Сървър грешка'; +$messages['filterdeleted'] = 'Филтърът е изтрит успешно'; +$messages['filtersaved'] = 'Филтърът е записан успешно'; +$messages['filtersaveerror'] = 'Филтърът не може да бъде записан. Сървър грешка.'; +$messages['filterdeleteconfirm'] = 'Наистина ли искате да изтриете избрания филтър?'; +$messages['ruledeleteconfirm'] = 'Сигурни ли сте, че искате да изтриете избраното правило?'; +$messages['actiondeleteconfirm'] = 'Сигурни ли сте, че искате да изтриете избраното действие?'; +$messages['forbiddenchars'] = 'Забранени символи в полето'; +$messages['cannotbeempty'] = 'Полето не може да бъде празно'; $messages['ruleexist'] = 'Вече има филтър с указаното име.'; -$messages['setactivateerror'] = 'Невъзможно активиране на избрания набор от филтри. Възникна сървърна грешка.'; -$messages['setdeactivateerror'] = 'Невъзможно деактивиране на избрания набор от филтри. Възникна сървърна грешка.'; -$messages['setdeleteerror'] = 'Невъзможно изтриване на избрания набор от филтри. Възникна сървърна грешка.'; -$messages['setactivated'] = 'Наборът от филтри е активиран успешно.'; -$messages['setdeactivated'] = 'Наборът от филтри е деактивиран успешно.'; -$messages['setdeleted'] = 'Наборът от филтри е изтрит успешно.'; -$messages['setdeleteconfirm'] = 'Сигурни ли сте, че желаете да изтриете избрания набор от филтри?'; -$messages['setcreateerror'] = 'Невъзможно създаване на набор от филтри. Възникна сървърна грешка.'; -$messages['setcreated'] = 'Наборът от филтри е създаден успешно.'; -$messages['activateerror'] = 'Невъзможно включване на филтъра. Възникна сървърна грешка.'; -$messages['deactivateerror'] = 'Невъзможно изключване на филтъра. Възникна сървърна грешка.'; -$messages['deactivated'] = 'Филтърът е изключен успешно.'; -$messages['activated'] = 'Филтърът е включен успешно.'; -$messages['moved'] = 'Филтърът е преместен успешно.'; -$messages['moveerror'] = 'Невъзможно преместване на филтъра. Възникна сървърна грешка.'; +$messages['setactivateerror'] = 'Невъзможно активиране на избраните филтри, възникна сървърна грешка.'; +$messages['setdeactivateerror'] = 'Невъзможно деактивиране на избраните филтри, възникна сървърна грешка.'; +$messages['setdeleteerror'] = 'Невъзможно изтриване на избраните филтри, възникна сървърна грешка.'; +$messages['setactivated'] = 'Филтрите са активиране.'; +$messages['setdeactivated'] = 'Филтрите са деактивирани.'; +$messages['setdeleted'] = 'Филтрите са изтрити.'; +$messages['setdeleteconfirm'] = 'Сигурни ли сте, че желаете да изтриете избраните филтири?'; +$messages['setcreateerror'] = 'Невъзможно създаване на филтри, възникна сървърна грешка.'; +$messages['setcreated'] = 'Филтрите са създадени.'; +$messages['activateerror'] = 'Невъзможно включване на филтрите, възникна сървърна грешка.'; +$messages['deactivateerror'] = 'Невъзможно изключване на филтрите, възникна сървърна грешка.'; +$messages['deactivated'] = 'Филтрите са изключени.'; +$messages['activated'] = 'Филтрите са включени.'; +$messages['moved'] = 'Филтрите са преместени.'; +$messages['moveerror'] = 'Невъзможно преместване на филтрите, възникна сървърна грешка.'; $messages['nametoolong'] = 'Името е прекалено дълго.'; $messages['namereserved'] = 'Резервирано име.'; $messages['setexist'] = 'Вече има такъв набор филтри.'; $messages['nodata'] = 'Поне една позиция трябва да е избрана!'; -$messages['invaliddateformat'] = 'невалидна дата или формат на част от дата'; + ?> diff --git a/plugins/managesieve/localization/bs_BA.inc b/plugins/managesieve/localization/bs_BA.inc index 0667db33c..7d21dbd9f 100644 --- a/plugins/managesieve/localization/bs_BA.inc +++ b/plugins/managesieve/localization/bs_BA.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filteri'; $labels['managefilters'] = 'Upravljanje dolaznim email filterima'; $labels['filtername'] = 'Naziv filtera'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Pošalji kopiju poruke'; $labels['messagereply'] = 'Odgovori'; $labels['messagedelete'] = 'Obriši poruku'; $labels['messagediscard'] = 'Odbaci sa porukom'; -$labels['messagekeep'] = 'Zadrži poruku u sandučetu'; $labels['messagesrules'] = 'Za dolazne emailove:'; $labels['messagesactions'] = '...izvrši sljedeće akcije:'; $labels['add'] = 'Dodaj'; $labels['del'] = 'Obriši'; $labels['sender'] = 'Pošiljaoc'; $labels['recipient'] = 'Primaoc'; -$labels['vacationaddr'] = 'Moje dodatne email adrese:'; +$labels['vacationaddresses'] = 'Moje dodatne email adrese (odvojite zarezima):'; $labels['vacationdays'] = 'Frekvencija slanja poruka (u danima):'; $labels['vacationinterval'] = 'Frekvencija slanja poruka:'; $labels['days'] = 'dana'; @@ -82,7 +83,7 @@ $labels['countisgreaterthanequal'] = 'brojač je veći ili jednak'; $labels['countislessthan'] = 'brojač je manji od'; $labels['countislessthanequal'] = 'brojač je manji ili jednak'; $labels['countequals'] = 'brojač je jednak'; -$labels['countnotequals'] = 'zbir nije jednak'; +$labels['countnotequals'] = 'brojač nije jednak'; $labels['valueisgreaterthan'] = 'vrijednost je veća od'; $labels['valueisgreaterthanequal'] = 'vrijednost je veća ili jednaka'; $labels['valueislessthan'] = 'vrijednost je manja od'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Kreiraj filter'; $labels['usedata'] = 'Koristite sljedeće podatke u filteru:'; $labels['nextstep'] = 'Sljedeći korak'; $labels['...'] = '...'; -$labels['currdate'] = 'Trenutni datum'; -$labels['datetest'] = 'Datum'; -$labels['dateheader'] = 'zaglavlje:'; -$labels['year'] = 'godina'; -$labels['month'] = 'mjesec'; -$labels['day'] = 'dan'; -$labels['date'] = 'datum (gggg-mm-dd)'; -$labels['julian'] = 'datum (julijanski)'; -$labels['hour'] = 'sat'; -$labels['minute'] = 'minuta'; -$labels['second'] = 'sekunda'; -$labels['time'] = 'vrijeme (hh:mm:ss)'; -$labels['iso8601'] = 'datum (ISO8601)'; -$labels['std11'] = 'datum (RFC2822)'; -$labels['zone'] = 'vremenska zona'; -$labels['weekday'] = 'sedmica (0-6)'; $labels['advancedopts'] = 'Napredne opcije'; $labels['body'] = 'Tijelo'; $labels['address'] = 'adresa'; @@ -155,8 +140,8 @@ $labels['default'] = 'početno'; $labels['octet'] = 'striktno (oktet)'; $labels['asciicasemap'] = 'osjetljivo na velika/mala slova (ascii-casemap)'; $labels['asciinumeric'] = 'numerički (ascii-numeric)'; -$labels['index'] = 'indeks:'; -$labels['indexlast'] = 'unazad'; + +$messages = array(); $messages['filterunknownerror'] = 'Nepoznata serverska greška.'; $messages['filterconnerror'] = 'Nije se moguće povezati na server.'; $messages['filterdeleteerror'] = 'Nije moguće obrisati filter. Desila se serverska greška.'; @@ -176,7 +161,7 @@ $messages['setactivated'] = 'Set filtera je uspješno aktiviran.'; $messages['setdeactivated'] = 'Set filtera je uspješno deaktiviran.'; $messages['setdeleted'] = 'Set filtera je uspješno obrisan.'; $messages['setdeleteconfirm'] = 'Jeste li sigurni da želite obrisati označeni set filtera?'; -$messages['setcreateerror'] = 'Nije moguće kreirati set filtera. Desila se serverska greška.'; +$messages['setcreateerror'] = 'Nije moguće kreirati se filtera. Desila se serverska greška.'; $messages['setcreated'] = 'Set filtera je uspješno kreiran.'; $messages['activateerror'] = 'Nije moguće omogućiti označene filtere. Desila se serverska greška.'; $messages['deactivateerror'] = 'Nije moguće onemogućiti označene filtere. Desila se serverska greška.'; @@ -188,5 +173,5 @@ $messages['nametoolong'] = 'Ime je predugo.'; $messages['namereserved'] = 'Ime je rezervisano.'; $messages['setexist'] = 'Set već postoji.'; $messages['nodata'] = 'Morate označiti barem jednu poziciju!'; -$messages['invaliddateformat'] = 'Netačan datum ili dio formata datuma'; + ?> diff --git a/plugins/managesieve/localization/ca_ES.inc b/plugins/managesieve/localization/ca_ES.inc index dae49397a..e721fcce3 100644 --- a/plugins/managesieve/localization/ca_ES.inc +++ b/plugins/managesieve/localization/ca_ES.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtres'; $labels['managefilters'] = 'Gestiona els filtres dels missatges d\'entrada'; $labels['filtername'] = 'Nom del filtre'; @@ -39,7 +41,7 @@ $labels['filternotregex'] = 'no coincideix amb l\'expressió regular'; $labels['filterunder'] = 'sota'; $labels['filterover'] = 'sobre'; $labels['addrule'] = 'Afegeix una regla'; -$labels['delrule'] = 'Suprimeix una regla'; +$labels['delrule'] = 'Suprimeix regla'; $labels['messagemoveto'] = 'Mou el missatge a'; $labels['messageredirect'] = 'Redirigeix el missatge cap a'; $labels['messagecopyto'] = 'Copia el missatge a'; @@ -47,16 +49,15 @@ $labels['messagesendcopy'] = 'Envia una còpia del missatge a'; $labels['messagereply'] = 'Respon amb un missatge'; $labels['messagedelete'] = 'Suprimeix missatge'; $labels['messagediscard'] = 'Descarta amb un missatge'; -$labels['messagekeep'] = 'Deixa el missatge a la bústia'; $labels['messagesrules'] = 'Pels missatges entrants:'; $labels['messagesactions'] = '..executa les següents accions:'; $labels['add'] = 'Afegeix'; $labels['del'] = 'Suprimeix'; $labels['sender'] = 'Remitent'; $labels['recipient'] = 'Destinatari/a'; -$labels['vacationaddr'] = 'Les meves adreces de correu addicionals:'; +$labels['vacationaddresses'] = 'Altres adreces electròniques meves (separades per coma)'; $labels['vacationdays'] = 'Cada quan enviar un missatge (en dies):'; -$labels['vacationinterval'] = 'Amb quina freqüència s\'han d\'enviar els missatges:'; +$labels['vacationinterval'] = 'Amb quina freqüència enviar missatges:'; $labels['days'] = 'dies'; $labels['seconds'] = 'segons'; $labels['vacationreason'] = 'Cos del missatge (raó de les vacances):'; @@ -78,9 +79,9 @@ $labels['fromset'] = 'des del conjunt'; $labels['fromfile'] = 'des del fitxer'; $labels['filterdisabled'] = 'Filtre deshabilitat'; $labels['countisgreaterthan'] = 'el recompte és major que'; -$labels['countisgreaterthanequal'] = 'el recompte és major o igual a'; +$labels['countisgreaterthanequal'] = 'el recompte és major o igual que'; $labels['countislessthan'] = 'el recompte és menor que'; -$labels['countislessthanequal'] = 'el recompte és menor o igual a'; +$labels['countislessthanequal'] = 'el recompte és menor o igual que'; $labels['countequals'] = 'el recompte és igual que'; $labels['countnotequals'] = 'el recompte és diferent de'; $labels['valueisgreaterthan'] = 'el valor és major que'; @@ -103,16 +104,16 @@ $labels['setvarvalue'] = 'Valor de la variable:'; $labels['setvarmodifiers'] = 'Modificadors:'; $labels['varlower'] = 'minúscules'; $labels['varupper'] = 'majúscules'; -$labels['varlowerfirst'] = 'el primer caràcter en minúscula'; -$labels['varupperfirst'] = 'el primer caràcter en majúscula'; +$labels['varlowerfirst'] = 'el primer caràcter és minúscul'; +$labels['varupperfirst'] = 'el primer caràcter és majúscul'; $labels['varquotewildcard'] = 'engloba els caràcters especials amb cometes'; $labels['varlength'] = 'llargada'; $labels['notify'] = 'Envia notificació'; $labels['notifyaddress'] = 'Per a adreça de correu electrònic:'; $labels['notifybody'] = 'Cos de la notificació'; -$labels['notifysubject'] = 'Assumpte de la notificació:'; +$labels['notifysubject'] = 'Tema de la notificació:'; $labels['notifyfrom'] = 'Remitent de la notificació:'; -$labels['notifyimportance'] = 'Importància:'; +$labels['notifyimportance'] = 'Importànica:'; $labels['notifyimportancelow'] = 'baixa'; $labels['notifyimportancenormal'] = 'normal'; $labels['notifyimportancehigh'] = 'alta'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Crea filtre'; $labels['usedata'] = 'Fes servir les següents dades al filtre:'; $labels['nextstep'] = 'Següent pas'; $labels['...'] = '...'; -$labels['currdate'] = 'Data actual'; -$labels['datetest'] = 'Data'; -$labels['dateheader'] = 'capçalera:'; -$labels['year'] = 'any'; -$labels['month'] = 'mes'; -$labels['day'] = 'dia'; -$labels['date'] = 'data (aaaa-mm-dd)'; -$labels['julian'] = 'data (calendari julià)'; -$labels['hour'] = 'hora'; -$labels['minute'] = 'minut'; -$labels['second'] = 'segon'; -$labels['time'] = 'hora (hh:mm:ss)'; -$labels['iso8601'] = 'data (ISO8601)'; -$labels['std11'] = 'data (RFC2822)'; -$labels['zone'] = 'fus horari'; -$labels['weekday'] = 'dia de la setmana (0-6)'; $labels['advancedopts'] = 'Opcions avançades'; $labels['body'] = 'Cos'; $labels['address'] = 'adreça'; @@ -143,7 +128,7 @@ $labels['envelope'] = 'sobre'; $labels['modifier'] = 'modificador:'; $labels['text'] = 'text'; $labels['undecoded'] = 'descodificat (en brut)'; -$labels['contenttype'] = 'tipus de contingut'; +$labels['contenttype'] = 'tipus de contigut'; $labels['modtype'] = 'tipus:'; $labels['allparts'] = 'tots'; $labels['domain'] = 'domini'; @@ -151,12 +136,12 @@ $labels['localpart'] = 'part local'; $labels['user'] = 'usuari/a'; $labels['detail'] = 'detall'; $labels['comparator'] = 'comparador:'; -$labels['default'] = 'per defecte'; +$labels['default'] = 'per omissió'; $labels['octet'] = 'estricte (octet)'; $labels['asciicasemap'] = 'No distingeix entre majúscules i minúscules (ascii-casemap)'; $labels['asciinumeric'] = 'numèric (ascii-numeric)'; -$labels['index'] = 'índex:'; -$labels['indexlast'] = 'cap enrere'; + +$messages = array(); $messages['filterunknownerror'] = 'Error desconegut al servidor.'; $messages['filterconnerror'] = 'No s\'ha pogut connectar al servidor.'; $messages['filterdeleteerror'] = 'No s\'ha pogut suprimir el filtre. Hi ha hagut un error al servidor.'; @@ -168,10 +153,10 @@ $messages['ruledeleteconfirm'] = 'Esteu segur que voleu suprimir la norma selecc $messages['actiondeleteconfirm'] = 'Esteu segur que voleu suprimir l\'acció seleccionada?'; $messages['forbiddenchars'] = 'El camp conté caràcters prohibits.'; $messages['cannotbeempty'] = 'El camp no pot estar buit.'; -$messages['ruleexist'] = 'Ja existeix un filtre amb aquest nom.'; -$messages['setactivateerror'] = 'No s\'ha pogut activar el conjunt de filtres seleccionat. Hi ha hagut un error al servidor.'; -$messages['setdeactivateerror'] = 'No s\'ha pogut desactivar el conjunt de filtres seleccionat. Hi ha hagut un error al servidor.'; -$messages['setdeleteerror'] = 'No s\'ha pogut suprimir el conjunt de filtres seleccionat. Hi ha hagut un error al servidor.'; +$messages['ruleexist'] = 'Ja existeix un filtre amb aquest nom'; +$messages['setactivateerror'] = 'No s\'ha pogut activar el fitlre seleccionat. Hi ha hagut un error al servidor.'; +$messages['setdeactivateerror'] = 'No s\'ha pogut desactivar el fitlre seleccionat. Hi ha hagut un error al servidor.'; +$messages['setdeleteerror'] = 'No s\'ha pogut suprimir el conjunt de filtres seleccionats. Hi ha hagut un error al servidor.'; $messages['setactivated'] = 'El conjunt de filtres s\'ha activat correctament.'; $messages['setdeactivated'] = 'El conjunt de filtres s\'ha desactivat correctament.'; $messages['setdeleted'] = 'El conjunt de filtres s\'ha suprimit correctament.'; @@ -180,13 +165,13 @@ $messages['setcreateerror'] = 'No s\'ha pogut crear el conjunt de filtres. Hi ha $messages['setcreated'] = 'S\'ha creat correctament el conjunt de filtres.'; $messages['activateerror'] = 'No s\'ha pogut habilitar el(s) filtre(s) seleccionat(s). Hi ha hagut un error al servidor.'; $messages['deactivateerror'] = 'No s\'ha pogut deshabilitar el(s) filtre(s) seleccionat(s). Hi ha hagut un error al servidor.'; -$messages['deactivated'] = 'Filtre(s) deshabilitat(s) correctament.'; -$messages['activated'] = 'Filtre(s) habilitat(s) correctament.'; +$messages['deactivated'] = 'Filtre(s) habilitat(s) correctament.'; +$messages['activated'] = 'Filtre(s) deshabilitat(s) correctament.'; $messages['moved'] = 'S\'ha mogut correctament el filtre.'; $messages['moveerror'] = 'No s\'ha pogut moure el filtre seleccionat. Hi ha hagut un error al servidor.'; $messages['nametoolong'] = 'El nom és massa llarg.'; $messages['namereserved'] = 'Nom reservat.'; $messages['setexist'] = 'El conjunt ja existeix.'; $messages['nodata'] = 'S\'ha de seleccionar com a mínim una posició!'; -$messages['invaliddateformat'] = 'data no vàlida o format no vàlid'; + ?> diff --git a/plugins/managesieve/localization/cs_CZ.inc b/plugins/managesieve/localization/cs_CZ.inc index f14b13287..26baeff2b 100644 --- a/plugins/managesieve/localization/cs_CZ.inc +++ b/plugins/managesieve/localization/cs_CZ.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtry'; $labels['managefilters'] = 'Nastavení filtrů'; $labels['filtername'] = 'Název filtru'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Odeslat kopii zprávy na'; $labels['messagereply'] = 'Odpovědět se zprávou'; $labels['messagedelete'] = 'Smazat zprávu'; $labels['messagediscard'] = 'Smazat se zprávou'; -$labels['messagekeep'] = 'Ponechat zprávu v doručené poště'; $labels['messagesrules'] = 'Pravidla pro příchozí zprávu:'; $labels['messagesactions'] = '...vykonej následující akce:'; $labels['add'] = 'Přidej'; $labels['del'] = 'Smaž'; $labels['sender'] = 'Odesílatel'; $labels['recipient'] = 'Příjemce'; -$labels['vacationaddr'] = 'Moje další e-mailová adresa(y):'; +$labels['vacationaddresses'] = 'Moje další e-mailové adresy (aliasy) spojené s tímto účtem (oddělené čárkou):'; $labels['vacationdays'] = 'Počet dnů mezi automatickými odpověďmi:'; $labels['vacationinterval'] = 'Prodleva mezi automatickými odpověďmi:'; $labels['days'] = 'dnů'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Vytvořit filtr'; $labels['usedata'] = 'Použít následující údaje ve filtru:'; $labels['nextstep'] = 'Další krok'; $labels['...'] = '...'; -$labels['currdate'] = 'Aktuální datum'; -$labels['datetest'] = 'Datum'; -$labels['dateheader'] = 'hlavička:'; -$labels['year'] = 'rok'; -$labels['month'] = 'měsíc'; -$labels['day'] = 'den'; -$labels['date'] = 'datum (rrrr-mm-dd)'; -$labels['julian'] = 'datum (juliánské)'; -$labels['hour'] = 'hodina'; -$labels['minute'] = 'minuta'; -$labels['second'] = 'sekunda'; -$labels['time'] = 'čas (hh:mm:ss)'; -$labels['iso8601'] = 'datum (ISO8601)'; -$labels['std11'] = 'datum (RFC2822)'; -$labels['zone'] = 'časová zóna'; -$labels['weekday'] = 'všední den (0-6)'; $labels['advancedopts'] = 'Pokročilá nastavení'; $labels['body'] = 'Tělo'; $labels['address'] = 'adresa'; @@ -155,14 +140,14 @@ $labels['default'] = 'výchozí'; $labels['octet'] = 'striktní (oktet)'; $labels['asciicasemap'] = 'necitlivé na velikost písmen (ascii-casemap)'; $labels['asciinumeric'] = 'číslené (ascii-numeric)'; -$labels['index'] = 'index:'; -$labels['indexlast'] = 'pozpátku'; + +$messages = array(); $messages['filterunknownerror'] = 'Neznámá chyba serveru'; $messages['filterconnerror'] = 'Nebylo možné se připojit k sieve serveru'; -$messages['filterdeleteerror'] = 'Nebylo možné smazat filtr. Došlo k chybě serveru.'; +$messages['filterdeleteerror'] = 'Nebylo možné smazat filtr. Server nahlásil chybu'; $messages['filterdeleted'] = 'Filtr byl smazán'; $messages['filtersaved'] = 'Filtr byl uložen'; -$messages['filtersaveerror'] = 'Nebylo možné uložit filtr. Došlo k chybě serveru.'; +$messages['filtersaveerror'] = 'Nebylo možné uložit filtr. Server nahlásil chybu.'; $messages['filterdeleteconfirm'] = 'Opravdu chcete smazat vybraný filtr?'; $messages['ruledeleteconfirm'] = 'Jste si jisti, že chcete smazat vybrané pravidlo?'; $messages['actiondeleteconfirm'] = 'Jste si jisti, že chcete smazat vybranou akci?'; @@ -183,10 +168,10 @@ $messages['deactivateerror'] = 'Nelze vypnout vybrané filtr/y. Došlo k chybě $messages['deactivated'] = 'Filtr/y úspěšně zapnuty.'; $messages['activated'] = 'Filtr/y úspěšne vypnuty.'; $messages['moved'] = 'Filtr byl úspěšně přesunut.'; -$messages['moveerror'] = 'Nelze přesunout vybraný filtr. Došlo k chybě serveru.'; +$messages['moveerror'] = 'Nelze přesunout vybraný filtr. Došlo k chybě na serveru.'; $messages['nametoolong'] = 'Příliš dlouhý název.'; $messages['namereserved'] = 'Vyhrazený název.'; $messages['setexist'] = 'Sada již existuje.'; $messages['nodata'] = 'Musí být vybrána minimálně jedna pozice!'; -$messages['invaliddateformat'] = 'Neplatné datum nebo část data'; + ?> diff --git a/plugins/managesieve/localization/cy_GB.inc b/plugins/managesieve/localization/cy_GB.inc index a10205d09..52fafe770 100644 --- a/plugins/managesieve/localization/cy_GB.inc +++ b/plugins/managesieve/localization/cy_GB.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Hidlyddion'; $labels['managefilters'] = 'Rheoli hidlyddion ebost i fewn'; $labels['filtername'] = 'Enw hidlydd'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Danfon copi o\'r neges i'; $labels['messagereply'] = 'Ymateb gyda\'r neges'; $labels['messagedelete'] = 'Dileu neges'; $labels['messagediscard'] = 'Gwaredu gyda neges'; -$labels['messagekeep'] = 'Cadw\'r neges yn y Mewnflwch'; $labels['messagesrules'] = 'Ar gyfer ebost i fewn:'; $labels['messagesactions'] = '...rhedeg y gweithredoedd canlynol:'; $labels['add'] = 'Ychwanegu'; $labels['del'] = 'Dileu'; $labels['sender'] = 'Anfonwr'; $labels['recipient'] = 'Derbynnwr'; -$labels['vacationaddr'] = 'Fy nghyfeiriad(au) ebost ychwanegol:'; +$labels['vacationaddresses'] = 'Fy chyfeiriadau ebost ychwanegol (gwahanir gyda coma):'; $labels['vacationdays'] = 'Pa mor aml i ddanfon negeseuon (mewn dyddiau):'; $labels['vacationinterval'] = 'Pa mor aml i ddanfon negeseuon:'; $labels['days'] = 'dyddiau'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Creu hidlydd'; $labels['usedata'] = 'Defnyddio\'r wybodaeth ganlynol yn yr hidlydd:'; $labels['nextstep'] = 'Cam nesaf'; $labels['...'] = '...'; -$labels['currdate'] = 'Dyddiad cyfredol'; -$labels['datetest'] = 'Dyddiad'; -$labels['dateheader'] = 'pennawd:'; -$labels['year'] = 'blwyddyn'; -$labels['month'] = 'mis'; -$labels['day'] = 'dydd'; -$labels['date'] = 'dyddiad (bbbb-mm-dd)'; -$labels['julian'] = 'dyddiad (julian)'; -$labels['hour'] = 'awr'; -$labels['minute'] = 'munud'; -$labels['second'] = 'eiliad'; -$labels['time'] = 'amser (aa:mm:ee)'; -$labels['iso8601'] = 'dyddiad (ISO8601)'; -$labels['std11'] = 'dyddiad (RFC2822)'; -$labels['zone'] = 'parth-amser'; -$labels['weekday'] = 'dydd yr wythnos (0-6)'; $labels['advancedopts'] = 'Dewisiadau uwch'; $labels['body'] = 'Corff'; $labels['address'] = 'cyfeiriad'; @@ -155,8 +140,8 @@ $labels['default'] = 'rhagosodiad'; $labels['octet'] = 'llym (octet)'; $labels['asciicasemap'] = 'maint llythrennau (ascii-casemap)'; $labels['asciinumeric'] = 'rhifau (ascii-numeric)'; -$labels['index'] = 'mynegai:'; -$labels['indexlast'] = 'o chwith'; + +$messages = array(); $messages['filterunknownerror'] = 'Gwall gweinydd anhysbys.'; $messages['filterconnerror'] = 'Methwyd cysylltu a\'r gweinydd.'; $messages['filterdeleteerror'] = 'Methwyd dileu hidlydd. Cafwydd gwall gweinydd.'; @@ -169,9 +154,9 @@ $messages['actiondeleteconfirm'] = 'Ydych chi\'n siwr eich bod am ddileu\'r weit $messages['forbiddenchars'] = 'Llythrennau gwaharddedig yn y maes.'; $messages['cannotbeempty'] = 'Ni all y maes fod yn wag.'; $messages['ruleexist'] = 'Mae hidlydd gyda\'r enw yma yn bodoli\'n barod.'; -$messages['setactivateerror'] = 'Methwyd galluogi y hidlyddion dewiswyd. Cafwyd gwall gweinydd.'; -$messages['setdeactivateerror'] = 'Methwyd analluogi y hidlyddion dewiswyd. Cafwyd gwall gweinydd.'; -$messages['setdeleteerror'] = 'Methwyd dileu y set hidlyddion ddewiswyd. Cafwyd gwall gweinydd.'; +$messages['setactivateerror'] = 'Methwyd bywiogi y set hidlydd dewiswyd. Cafwyd gwall gweinydd.'; +$messages['setdeactivateerror'] = 'Methwyd dadfywiogi y set hidlydd dewiswyd. Cafwyd gwall gweinydd.'; +$messages['setdeleteerror'] = 'Methwyd dileu y set hidlydd dewiswyd. Cafwyd gwall gweinydd.'; $messages['setactivated'] = 'Bywiogwyd y set hidlydd yn llwyddiannus.'; $messages['setdeactivated'] = 'Dadfywiogwyd y set hidlydd yn llwyddiannus.'; $messages['setdeleted'] = 'Dilëuwyd y set hidlydd yn llwyddiannus.'; @@ -188,5 +173,5 @@ $messages['nametoolong'] = 'Enw yn rhy hir.'; $messages['namereserved'] = 'Enw neilltuedig.'; $messages['setexist'] = 'Mae\'r set yn bodoli\'n barod.'; $messages['nodata'] = 'Rhaid dewis o leia un safle!'; -$messages['invaliddateformat'] = 'Dyddiad neu fformat dyddiad annilys'; + ?> diff --git a/plugins/managesieve/localization/da_DK.inc b/plugins/managesieve/localization/da_DK.inc index f12b20f3a..cd3deaf40 100644 --- a/plugins/managesieve/localization/da_DK.inc +++ b/plugins/managesieve/localization/da_DK.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtre'; $labels['managefilters'] = 'Ændre indgående mail filtreing'; $labels['filtername'] = 'Filter navn'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Send kopi af besked til'; $labels['messagereply'] = 'Svar med besked'; $labels['messagedelete'] = 'Slet besked'; $labels['messagediscard'] = 'Slet med besked'; -$labels['messagekeep'] = 'Behold besked i Inbox'; $labels['messagesrules'] = 'For indkomne besked:'; $labels['messagesactions'] = '...udfør følgende aktioner:'; $labels['add'] = 'Tilføje'; $labels['del'] = 'Fjern'; $labels['sender'] = 'Afsender'; $labels['recipient'] = 'Modtager'; -$labels['vacationaddr'] = 'Min(e) yderligere email-adresse(r):'; +$labels['vacationaddresses'] = 'Mine alternative e-mailadresser (kommasepareret):'; $labels['vacationdays'] = 'Hvor tit skal besked sendes (i dage):'; $labels['vacationinterval'] = 'Hvor tit skal besked sendes:'; $labels['days'] = 'dage'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Opret filter'; $labels['usedata'] = 'Brug følgende data i filteret:'; $labels['nextstep'] = 'Næste trin'; $labels['...'] = '...'; -$labels['currdate'] = 'Aktuel dato'; -$labels['datetest'] = 'Dato'; -$labels['dateheader'] = 'header:'; -$labels['year'] = 'år'; -$labels['month'] = 'måned'; -$labels['day'] = 'dag'; -$labels['date'] = 'dato (åååå-mm-dd)'; -$labels['julian'] = 'dato (juliansk)'; -$labels['hour'] = 'time'; -$labels['minute'] = 'minut'; -$labels['second'] = 'sekund'; -$labels['time'] = 'tid (tt:mm:ss)'; -$labels['iso8601'] = 'dato (ISO8601)'; -$labels['std11'] = 'dato (RFC2822)'; -$labels['zone'] = 'tidszone'; -$labels['weekday'] = 'ugedag (0-6)'; $labels['advancedopts'] = 'Advancerede muligheder'; $labels['body'] = 'Brødtekst'; $labels['address'] = 'adresse'; @@ -155,30 +140,38 @@ $labels['default'] = 'standard'; $labels['octet'] = 'præcis (oktet)'; $labels['asciicasemap'] = 'store og små bogstaver (ascii-bogstaver)'; $labels['asciinumeric'] = 'numerisk (ascii-numerisk)'; -$labels['index'] = 'indeks:'; -$labels['indexlast'] = 'baglends'; + +$messages = array(); $messages['filterunknownerror'] = 'Ukendt server fejl.'; $messages['filterconnerror'] = 'Kan ikke forbinde til server.'; -$messages['filterdeleteerror'] = 'Kunne ikke slette filter. Serverfejl opstod.'; +$messages['filterdeleteerror'] = 'Kan ikke slette filter. Server fejl.'; $messages['filterdeleted'] = 'Filter slettet.'; $messages['filtersaved'] = 'Filter gemt.'; +$messages['filtersaveerror'] = 'Kan ikke gemme filter. Server fejl.'; $messages['filterdeleteconfirm'] = 'Vil du slette det valgte filter?'; $messages['ruledeleteconfirm'] = 'Er du sikker på at du vil slette den valgte regel?'; $messages['actiondeleteconfirm'] = 'Er du sikker på du vil slette den valgte handling?'; $messages['forbiddenchars'] = 'Ulovlige tegn i feltet'; $messages['cannotbeempty'] = 'Feltet kan ikke være tomt.'; $messages['ruleexist'] = 'Filter med dette navn eksisterer allerede.'; +$messages['setactivateerror'] = 'Kan ikke aktiverer valgt filter sæt. Server fejl.'; +$messages['setdeactivateerror'] = 'Kan ikke deaktivere valgt filter sæt. Server fejl.'; +$messages['setdeleteerror'] = 'Kan ikke slette valgt filter sæt. Server fejl.'; $messages['setactivated'] = 'Filter sæt aktiveret.'; $messages['setdeactivated'] = 'Filter sæt deaktiveret.'; $messages['setdeleted'] = 'Filter sæt slettet.'; $messages['setdeleteconfirm'] = 'Er du sikker på du vil slette valgt filter sæt?'; +$messages['setcreateerror'] = 'Kan ikke oprette filter sæt. Server fejl.'; $messages['setcreated'] = 'Filter sæt oprettet.'; +$messages['activateerror'] = 'Kan ikek aktivere valgt filter sæt. Server fejl.'; +$messages['deactivateerror'] = 'Kan ikke deaktivere valgt filter sæt. Server fejl.'; $messages['deactivated'] = 'Filter(filtre) aktiveret.'; $messages['activated'] = 'Filter(filtre) deaktiveret.'; $messages['moved'] = 'Filter flyttet.'; +$messages['moveerror'] = 'Kan ikke flytte valgt filter. Server fejl.'; $messages['nametoolong'] = 'Navn er for langt.'; $messages['namereserved'] = 'Reserveret navn.'; $messages['setexist'] = 'Filterv sæt eksisterer allerede'; $messages['nodata'] = 'Mindst en position skal vælges!'; -$messages['invaliddateformat'] = 'Ugyldigt dato- eller tidsformat'; + ?> diff --git a/plugins/managesieve/localization/de_CH.inc b/plugins/managesieve/localization/de_CH.inc index 234f31315..b30625fe9 100644 --- a/plugins/managesieve/localization/de_CH.inc +++ b/plugins/managesieve/localization/de_CH.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filter'; $labels['managefilters'] = 'Verwalte eingehende Nachrichtenfilter'; $labels['filtername'] = 'Filtername'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Sende Kopie an'; $labels['messagereply'] = 'Antworte mit Nachricht'; $labels['messagedelete'] = 'Nachricht löschen'; $labels['messagediscard'] = 'Discard with message'; -$labels['messagekeep'] = 'Im Posteingang behalten'; $labels['messagesrules'] = 'Für eingehende Nachrichten:'; $labels['messagesactions'] = 'Führe folgende Aktionen aus:'; $labels['add'] = 'Hinzufügen'; $labels['del'] = 'Löschen'; $labels['sender'] = 'Absender'; $labels['recipient'] = 'Empfänger'; -$labels['vacationaddr'] = 'Meine weiteren E-Mail-Adressen:'; +$labels['vacationaddresses'] = 'Zusätzliche Liste von Empfängern (Komma getrennt):'; $labels['vacationdays'] = 'Antwort wird erneut gesendet nach (in Tagen):'; $labels['vacationinterval'] = 'Wie oft senden:'; $labels['days'] = 'Tage'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Filter erstellen'; $labels['usedata'] = 'Die folgenden Daten im Filter benutzen:'; $labels['nextstep'] = 'Nächster Schritt'; $labels['...'] = '...'; -$labels['currdate'] = 'Aktuelles Datum'; -$labels['datetest'] = 'Datum'; -$labels['dateheader'] = 'Kopfzeile:'; -$labels['year'] = 'Jahr'; -$labels['month'] = 'Monat'; -$labels['day'] = 'Tag'; -$labels['date'] = 'Datum (JJJJ-MM-TT)'; -$labels['julian'] = 'Datum (julianisch)'; -$labels['hour'] = 'Stunde'; -$labels['minute'] = 'Minute'; -$labels['second'] = 'Sekunde'; -$labels['time'] = 'Zeit (hh:mm:ss)'; -$labels['iso8601'] = 'Datum (ISO-8601)'; -$labels['std11'] = 'Datum (RFC 2822)'; -$labels['zone'] = 'Zeitzone'; -$labels['weekday'] = 'Wochentag (0-6)'; $labels['advancedopts'] = 'Erweiterte Optionen'; $labels['body'] = 'Inhalt'; $labels['address'] = 'Adresse'; @@ -155,38 +140,38 @@ $labels['default'] = 'Vorgabewert'; $labels['octet'] = 'strikt (Oktet)'; $labels['asciicasemap'] = 'Gross-/Kleinschreibung ignorieren'; $labels['asciinumeric'] = 'numerisch (ascii-numeric)'; -$labels['index'] = 'Index:'; -$labels['indexlast'] = 'rückwärts'; + +$messages = array(); $messages['filterunknownerror'] = 'Unbekannter Serverfehler'; $messages['filterconnerror'] = 'Kann nicht zum Sieve-Server verbinden'; -$messages['filterdeleteerror'] = 'Serverfehler beim Löschen des Filters.'; +$messages['filterdeleteerror'] = 'Fehler beim des löschen Filters. Serverfehler'; $messages['filterdeleted'] = 'Filter erfolgreich gelöscht'; $messages['filtersaved'] = 'Filter gespeichert'; -$messages['filtersaveerror'] = 'Serverfehler beim Speichern des Filters.'; +$messages['filtersaveerror'] = 'Serverfehler, konnte den Filter nicht speichern.'; $messages['filterdeleteconfirm'] = 'Möchten Sie den Filter löschen ?'; $messages['ruledeleteconfirm'] = 'Sicher, dass Sie die Regel löschen wollen?'; $messages['actiondeleteconfirm'] = 'Sicher, dass Sie die ausgewaehlte Aktion löschen wollen?'; $messages['forbiddenchars'] = 'Unerlaubte Zeichen im Feld'; $messages['cannotbeempty'] = 'Feld darf nicht leer sein'; $messages['ruleexist'] = 'Ein Filter mit dem angegebenen Namen existiert bereits.'; -$messages['setactivateerror'] = 'Serverfehler beim Aktivieren des gewählten Filtersatzes.'; -$messages['setdeactivateerror'] = 'Serverfehler beim Deaktivieren des gewählten Filtersatzes.'; -$messages['setdeleteerror'] = 'Serverfehler beim Löschen des gewählten Filtersatzes.'; +$messages['setactivateerror'] = 'Filtersatz kann nicht aktiviert werden. Serverfehler.'; +$messages['setdeactivateerror'] = 'Filtersatz kann nicht deaktiviert werden. Serverfehler.'; +$messages['setdeleteerror'] = 'Filtersatz kann nicht gelöscht werden. Serverfehler.'; $messages['setactivated'] = 'Filtersatz erfolgreich aktiviert.'; $messages['setdeactivated'] = 'Filtersatz erfolgreich deaktiviert.'; $messages['setdeleted'] = 'Filtersatz erfolgreich gelöscht.'; $messages['setdeleteconfirm'] = 'Sind Sie sicher, dass Sie den ausgewählten Filtersatz löschen möchten?'; -$messages['setcreateerror'] = 'Serverfehler beim Erstellen des Filtersatzes.'; +$messages['setcreateerror'] = 'Filtersatz kann nicht erstellt werden. Serverfehler.'; $messages['setcreated'] = 'Filter erfolgreich erstellt.'; -$messages['activateerror'] = 'Serverfehler beim Aktivieren des/der gewählten Filter(s).'; -$messages['deactivateerror'] = 'Serverfehler beim Deaktivieren des/der gewählten Filter(s).'; +$messages['activateerror'] = 'Filter kann nicht aktiviert werden. Serverfehler.'; +$messages['deactivateerror'] = 'Filter kann nicht deaktiviert werden. Serverfehler.'; $messages['deactivated'] = 'Filter erfolgreich aktiviert.'; $messages['activated'] = 'Filter erfolgreich deaktiviert.'; $messages['moved'] = 'Filter erfolgreich verschoben.'; -$messages['moveerror'] = 'Serverfehler beim Verschieben des gewählten Filters.'; +$messages['moveerror'] = 'Filter kann nicht verschoben werden. Serverfehler.'; $messages['nametoolong'] = 'Filtersatz kann nicht erstellt werden. Name zu lang.'; $messages['namereserved'] = 'Reservierter Name.'; $messages['setexist'] = 'Filtersatz existiert bereits.'; $messages['nodata'] = 'Mindestens eine Position muss ausgewählt werden!'; -$messages['invaliddateformat'] = 'Ungültiges Datumsformat'; + ?> diff --git a/plugins/managesieve/localization/de_DE.inc b/plugins/managesieve/localization/de_DE.inc index ac81ccd75..d0cba28db 100644 --- a/plugins/managesieve/localization/de_DE.inc +++ b/plugins/managesieve/localization/de_DE.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filter'; $labels['managefilters'] = 'Filter für eingehende Nachrichten verwalten'; $labels['filtername'] = 'Filtername'; @@ -47,13 +49,13 @@ $labels['messagesendcopy'] = 'Kopie senden an'; $labels['messagereply'] = 'Mit Nachricht antworten'; $labels['messagedelete'] = 'Nachricht löschen'; $labels['messagediscard'] = 'Abweisen mit Nachricht'; -$labels['messagekeep'] = 'Behalte Nachricht im Posteingang'; $labels['messagesrules'] = 'Für eingehende Nachrichten:'; $labels['messagesactions'] = '...führe folgende Aktionen aus:'; $labels['add'] = 'Hinzufügen'; $labels['del'] = 'Löschen'; $labels['sender'] = 'Absender'; $labels['recipient'] = 'Empfänger'; +$labels['vacationaddresses'] = 'Zusätzliche Liste von E-Mail Empfängern (Komma getrennt):'; $labels['vacationdays'] = 'Wie oft sollen Nachrichten gesendet werden (in Tagen):'; $labels['vacationinterval'] = 'Wie oft sollen Nachrichten gesendet werden:'; $labels['days'] = 'Tage'; @@ -81,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'Anzahl ist gleich oder größer als'; $labels['countislessthan'] = 'Anzahl ist kleiner als'; $labels['countislessthanequal'] = 'Anzahl ist gleich oder kleiner als'; $labels['countequals'] = 'Anzahl ist gleich'; -$labels['countnotequals'] = 'Anzahl ist nicht gleich'; +$labels['countnotequals'] = 'Anzahl ist ungleich'; $labels['valueisgreaterthan'] = 'Wert ist größer als'; $labels['valueisgreaterthanequal'] = 'Wert ist gleich oder größer als'; $labels['valueislessthan'] = 'Wert ist kleiner'; $labels['valueislessthanequal'] = 'Wert ist gleich oder kleiner als'; $labels['valueequals'] = 'Wert ist gleich'; -$labels['valuenotequals'] = 'Wert ist nicht gleich'; +$labels['valuenotequals'] = 'Wert ist ungleich'; $labels['setflags'] = 'Markierung an der Nachricht setzen'; $labels['addflags'] = 'Markierung zur Nachricht hinzufügen'; $labels['removeflags'] = 'Markierungen von der Nachricht entfernen'; @@ -119,22 +121,6 @@ $labels['filtercreate'] = 'Filter erstellen'; $labels['usedata'] = 'Die folgenden Daten im Filter benutzen:'; $labels['nextstep'] = 'Nächster Schritt'; $labels['...'] = '...'; -$labels['currdate'] = 'Aktuelles Datum'; -$labels['datetest'] = 'Datum'; -$labels['dateheader'] = 'Kopfzeile:'; -$labels['year'] = 'jahr'; -$labels['month'] = 'monat'; -$labels['day'] = 'tag'; -$labels['date'] = 'datum (yyyy-mm-dd)'; -$labels['julian'] = 'datum (julian)'; -$labels['hour'] = 'stunde'; -$labels['minute'] = 'minute'; -$labels['second'] = 'sekunde'; -$labels['time'] = 'zeit (hh:mm:ss)'; -$labels['iso8601'] = 'datum (ISO8601)'; -$labels['std11'] = 'datum (RFC2822)'; -$labels['zone'] = 'Zeitzone'; -$labels['weekday'] = 'wochentag (0-6)'; $labels['advancedopts'] = 'Erweiterte Optionen'; $labels['body'] = 'Textkörper'; $labels['address'] = 'Adresse'; @@ -154,29 +140,38 @@ $labels['default'] = 'Vorgabewert'; $labels['octet'] = 'strikt (Oktett)'; $labels['asciicasemap'] = 'Groß-/Kleinschreibung ignorieren'; $labels['asciinumeric'] = 'numerisch (ascii-numeric)'; -$labels['index'] = 'index:'; -$labels['indexlast'] = 'rückwärts'; + +$messages = array(); $messages['filterunknownerror'] = 'Unbekannter Serverfehler'; $messages['filterconnerror'] = 'Kann keine Verbindung mit Managesieve-Server herstellen'; +$messages['filterdeleteerror'] = 'Fehler beim Löschen des Filters. Serverfehler'; $messages['filterdeleted'] = 'Filter erfolgreich gelöscht'; $messages['filtersaved'] = 'Filter erfolgreich gespeichert'; +$messages['filtersaveerror'] = 'Fehler beim Speichern des Filters. Serverfehler'; $messages['filterdeleteconfirm'] = 'Möchten Sie den ausgewählten Filter wirklich löschen?'; $messages['ruledeleteconfirm'] = 'Sind Sie sicher, dass Sie die ausgewählte Regel löschen möchten?'; $messages['actiondeleteconfirm'] = 'Sind Sie sicher, dass Sie die ausgewählte Aktion löschen möchten?'; $messages['forbiddenchars'] = 'Unzulässige Zeichen im Eingabefeld'; $messages['cannotbeempty'] = 'Eingabefeld darf nicht leer sein'; $messages['ruleexist'] = 'Ein Filter mit dem angegebenen Namen existiert bereits.'; +$messages['setactivateerror'] = 'Kann ausgewählten Filtersatz nicht aktivieren. Serverfehler'; +$messages['setdeactivateerror'] = 'Kann ausgewählten Filtersatz nicht deaktivieren. Serverfehler'; +$messages['setdeleteerror'] = 'Kann ausgewählten Filtersatz nicht löschen. Serverfehler'; $messages['setactivated'] = 'Filtersatz wurde erfolgreich aktiviert'; $messages['setdeactivated'] = 'Filtersatz wurde erfolgreich deaktiviert'; $messages['setdeleted'] = 'Filtersatz wurde erfolgreich gelöscht'; $messages['setdeleteconfirm'] = 'Sind Sie sicher, dass Sie den ausgewählten Filtersatz löschen möchten?'; +$messages['setcreateerror'] = 'Erstellen von Filter Sätzen nicht möglich. Es ist ein Server Fehler aufgetreten.'; $messages['setcreated'] = 'Filtersatz wurde erfolgreich erstellt'; +$messages['activateerror'] = 'Filter kann nicht aktiviert werden. Serverfehler.'; +$messages['deactivateerror'] = 'Filter kann nicht deaktiviert werden. Serverfehler.'; $messages['deactivated'] = 'Filter erfolgreich deaktiviert.'; $messages['activated'] = 'Filter erfolgreich aktiviert.'; $messages['moved'] = 'Filter erfolgreich verschoben.'; +$messages['moveerror'] = 'Filter kann nicht verschoben werden. Serverfehler.'; $messages['nametoolong'] = 'Kann Filtersatz nicht erstellen. Name zu lang'; $messages['namereserved'] = 'Reservierter Name.'; $messages['setexist'] = 'Filtersatz existiert bereits.'; $messages['nodata'] = 'Mindestens eine Position muss ausgewählt werden!'; -$messages['invaliddateformat'] = 'Ungültiges Datum oder Teil-Format'; + ?> diff --git a/plugins/managesieve/localization/el_GR.inc b/plugins/managesieve/localization/el_GR.inc index 73ec78632..5ef9916ad 100644 --- a/plugins/managesieve/localization/el_GR.inc +++ b/plugins/managesieve/localization/el_GR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Φίλτρα'; $labels['managefilters'] = 'Διαχείριση φίλτρων εισερχόμενων'; $labels['filtername'] = 'Ονομασία φίλτρου'; @@ -53,6 +55,7 @@ $labels['add'] = 'Προσθήκη'; $labels['del'] = 'Διαγραφή'; $labels['sender'] = 'Αποστολέας'; $labels['recipient'] = 'Παραλήπτης'; +$labels['vacationaddresses'] = 'Πρόσθετη λίστα email παραληπτών (διαχωρισμένη με κόμματα):'; $labels['vacationdays'] = 'Συχνότητα αποστολής μηνυμάτων (σε ημέρες):'; $labels['vacationinterval'] = 'Συχνότητα αποστολής μηνυμάτων:'; $labels['days'] = 'ημερες'; @@ -118,22 +121,6 @@ $labels['filtercreate'] = 'Δημιουργία φίλτρου'; $labels['usedata'] = 'Χρησιμοποιηση ακολουθων δεδομενων στο φιλτρο:'; $labels['nextstep'] = 'Επομενο βημα'; $labels['...'] = '...'; -$labels['currdate'] = 'Τρέχουσα ημερομηνία'; -$labels['datetest'] = 'Ημερομηνία'; -$labels['dateheader'] = 'επικεφαλίδα:'; -$labels['year'] = 'χρονος'; -$labels['month'] = 'μηνας'; -$labels['day'] = 'ημερα'; -$labels['date'] = 'ημερομηνια (yyyy-mm-dd)'; -$labels['julian'] = 'ημερομηνια (julian)'; -$labels['hour'] = 'ωρα'; -$labels['minute'] = 'λεπτο'; -$labels['second'] = 'δευτερόλεπτο'; -$labels['time'] = 'ωρα (hh:mm:ss)'; -$labels['iso8601'] = 'ημερομηνια (ISO8601)'; -$labels['std11'] = 'ημερομηνια (RFC2822)'; -$labels['zone'] = 'Ζώνη Ώρας'; -$labels['weekday'] = 'ημέρα της εβδομάδας (0-6)'; $labels['advancedopts'] = 'Προχωρημένες ρυθμίσεις'; $labels['body'] = 'Σώμα'; $labels['address'] = 'Διεύθυνση'; @@ -153,29 +140,38 @@ $labels['default'] = 'προεπιλογή'; $labels['octet'] = 'αυστηρή (οκτάδα) '; $labels['asciicasemap'] = 'πεζά ή κεφαλαία (ascii-casemap)'; $labels['asciinumeric'] = 'αριθμητικό (ascii-αριθμητικο)'; -$labels['index'] = 'ευρετήριο:'; -$labels['indexlast'] = 'προς τα πίσω'; + +$messages = array(); $messages['filterunknownerror'] = 'Άγνωστο σφάλμα διακομιστή'; $messages['filterconnerror'] = 'Αδυναμία σύνδεσης στον διακομιστή managesieve'; +$messages['filterdeleteerror'] = 'Αδυναμία διαγραφής φίλτρου. Προέκυψε σφάλμα στον διακομιστή'; $messages['filterdeleted'] = 'Το φίλτρο διαγράφηκε επιτυχώς'; $messages['filtersaved'] = 'Το φίλτρο αποθηκεύτηκε επιτυχώς'; +$messages['filtersaveerror'] = 'Αδυναμία αποθήκευσης φίλτρου. Προέκυψε σφάλμα στον διακομιστή'; $messages['filterdeleteconfirm'] = 'Είστε σίγουροι ότι θέλετε να διαγράψετε το επιλεγμένο φίλτρο? '; $messages['ruledeleteconfirm'] = 'Θέλετε όντως να διαγράψετε τον επιλεγμένο κανόνα;'; $messages['actiondeleteconfirm'] = 'Θέλετε όντως να διαγράψετε την επιλεγμένη ενέργεια;'; $messages['forbiddenchars'] = 'Μη επιτρεπτοί χαρακτήρες στο πεδίο'; $messages['cannotbeempty'] = 'Το πεδίο δεν μπορεί να είναι κενό'; $messages['ruleexist'] = 'Φιλτρο με αυτο το όνομα υπάρχει ήδη. '; +$messages['setactivateerror'] = 'Αδυναμία ενεργοποιησης επιλεγμενων φιλτρων. Προέκυψε σφάλμα στον διακομιστή.'; +$messages['setdeactivateerror'] = 'Αδυναμία απενεργοποιησης επιλεγμενων φιλτρων. Προέκυψε σφάλμα στον διακομιστή.'; +$messages['setdeleteerror'] = 'Αδυναμία διαγραφής φίλτρων. Προέκυψε σφάλμα στον διακομιστή'; $messages['setactivated'] = 'Φίλτρα ενεργοποιήθηκαν με επιτυχία.'; $messages['setdeactivated'] = 'Φίλτρα απενεργοποιήθηκαν με επιτυχία.'; $messages['setdeleted'] = 'Τα φίλτρα διαγράφηκαν επιτυχώς.'; $messages['setdeleteconfirm'] = 'Θέλετε όντως να διαγράψετε τα επιλεγμένα φιλτρα?'; +$messages['setcreateerror'] = 'Αδυναμία δημιουργιας φιλτρων. Προέκυψε σφάλμα στον διακομιστή.'; $messages['setcreated'] = 'Τα φιλτρα δημιουργηθηκαν επιτυχως.'; +$messages['activateerror'] = 'Αδυναμία ενεργοποιησης επιλεγμενου φίλτρου(ων). Προέκυψε σφάλμα στον διακομιστή.'; +$messages['deactivateerror'] = 'Αδυναμία απενεργοποιησης επιλεγμενου φίλτρου(ων). Προέκυψε σφάλμα στον διακομιστή.'; $messages['deactivated'] = 'Το φιλτρο(α) απενεργοποιηθηκαν επιτυχως.'; $messages['activated'] = 'Το φίλτρο(α) ενεργοποιηθηκαν επιτυχώς.'; $messages['moved'] = 'Το φίλτρο μετακινηθηκε επιτυχώς.'; +$messages['moveerror'] = 'Αδυναμία μετακινησης επιλεγμενου φίλτρου. Προέκυψε σφάλμα στον διακομιστή.'; $messages['nametoolong'] = 'Το όνομα είναι πολύ μεγάλο.'; $messages['namereserved'] = 'Δεσμευμένο όνομα. '; $messages['setexist'] = 'Set υπάρχει ήδη. '; $messages['nodata'] = 'Τουλάχιστον μία θέση πρέπει να επιλεγεί!'; -$messages['invaliddateformat'] = 'Μη έγκυρη ημερομηνία ή η ημερομηνία μορφής τμήμα'; + ?> diff --git a/plugins/managesieve/localization/en_GB.inc b/plugins/managesieve/localization/en_GB.inc index 63006144a..4dd4f7d8b 100644 --- a/plugins/managesieve/localization/en_GB.inc +++ b/plugins/managesieve/localization/en_GB.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filters'; $labels['managefilters'] = 'Manage incoming mail filters'; $labels['filtername'] = 'Filter name'; @@ -53,7 +55,11 @@ $labels['add'] = 'Add'; $labels['del'] = 'Delete'; $labels['sender'] = 'Sender'; $labels['recipient'] = 'Recipient'; +$labels['vacationaddresses'] = 'Additional list of recipient e-mails (comma separated):'; $labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'Message body (vacation reason):'; $labels['vacationsubject'] = 'Message subject:'; $labels['rulestop'] = 'Stop evaluating rules'; @@ -77,11 +83,13 @@ $labels['countisgreaterthanequal'] = 'count is greater than or equal to'; $labels['countislessthan'] = 'count is less than'; $labels['countislessthanequal'] = 'count is less than or equal to'; $labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; $labels['valueisgreaterthan'] = 'value is greater than'; $labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; $labels['valueislessthan'] = 'value is less than'; $labels['valueislessthanequal'] = 'value is less than or equal to'; $labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; $labels['setflags'] = 'Set flags to the message'; $labels['addflags'] = 'Add flags to the message'; $labels['removeflags'] = 'Remove flags from the message'; @@ -90,6 +98,25 @@ $labels['flagdeleted'] = 'Deleted'; $labels['flaganswered'] = 'Answered'; $labels['flagflagged'] = 'Flagged'; $labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; $labels['filtercreate'] = 'Create filter'; $labels['usedata'] = 'Use following data in the filter:'; $labels['nextstep'] = 'Next Step'; @@ -113,26 +140,38 @@ $labels['default'] = 'default'; $labels['octet'] = 'strict (octet)'; $labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; $labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); $messages['filterunknownerror'] = 'Unknown server error'; $messages['filterconnerror'] = 'Unable to connect to managesieve server'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occured'; $messages['filterdeleted'] = 'Filter deleted successfully'; $messages['filtersaved'] = 'Filter saved successfully'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; $messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; $messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; $messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; $messages['forbiddenchars'] = 'Forbidden characters in field'; $messages['cannotbeempty'] = 'Field cannot be empty'; $messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; $messages['setactivated'] = 'Filters set activated successfully.'; $messages['setdeactivated'] = 'Filters set deactivated successfully.'; $messages['setdeleted'] = 'Filters set deleted successfully.'; $messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; $messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; $messages['deactivated'] = 'Filter(s) disabled successfully.'; $messages['activated'] = 'Filter(s) enabled successfully.'; $messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; $messages['nametoolong'] = 'Name too long.'; $messages['namereserved'] = 'Reserved name.'; $messages['setexist'] = 'Set already exists.'; $messages['nodata'] = 'At least one position must be selected!'; + ?> diff --git a/plugins/managesieve/localization/en_US.inc b/plugins/managesieve/localization/en_US.inc index cbe69dc9f..eea764c48 100644 --- a/plugins/managesieve/localization/en_US.inc +++ b/plugins/managesieve/localization/en_US.inc @@ -2,10 +2,10 @@ /* +-----------------------------------------------------------------------+ - | plugins/managesieve/localization/.inc | + | plugins/managesieve/localization/.inc | | | | Localization file of the Roundcube Webmail Managesieve plugin | - | Copyright (C) 2012-2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | @@ -49,18 +49,14 @@ $labels['messagesendcopy'] = 'Send message copy to'; $labels['messagereply'] = 'Reply with message'; $labels['messagedelete'] = 'Delete message'; $labels['messagediscard'] = 'Discard with message'; -$labels['messagekeep'] = 'Keep message in Inbox'; $labels['messagesrules'] = 'For incoming mail:'; $labels['messagesactions'] = '...execute the following actions:'; $labels['add'] = 'Add'; $labels['del'] = 'Delete'; $labels['sender'] = 'Sender'; $labels['recipient'] = 'Recipient'; -$labels['vacationaddr'] = 'My additional e-mail address(es):'; +$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; $labels['vacationdays'] = 'How often send messages (in days):'; -$labels['vacationinterval'] = 'How often send messages:'; -$labels['days'] = 'days'; -$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'Message body (vacation reason):'; $labels['vacationsubject'] = 'Message subject:'; $labels['rulestop'] = 'Stop evaluating rules'; @@ -84,13 +80,13 @@ $labels['countisgreaterthanequal'] = 'count is greater than or equal to'; $labels['countislessthan'] = 'count is less than'; $labels['countislessthanequal'] = 'count is less than or equal to'; $labels['countequals'] = 'count is equal to'; -$labels['countnotequals'] = 'count is not equal to'; +$labels['countnotequals'] = 'count does not equal'; $labels['valueisgreaterthan'] = 'value is greater than'; $labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; $labels['valueislessthan'] = 'value is less than'; $labels['valueislessthanequal'] = 'value is less than or equal to'; $labels['valueequals'] = 'value is equal to'; -$labels['valuenotequals'] = 'value is not equal to'; +$labels['valuenotequals'] = 'value does not equal'; $labels['setflags'] = 'Set flags to the message'; $labels['addflags'] = 'Add flags to the message'; $labels['removeflags'] = 'Remove flags from the message'; @@ -122,22 +118,6 @@ $labels['filtercreate'] = 'Create filter'; $labels['usedata'] = 'Use following data in the filter:'; $labels['nextstep'] = 'Next Step'; $labels['...'] = '...'; -$labels['currdate'] = 'Current date'; -$labels['datetest'] = 'Date'; -$labels['dateheader'] = 'header:'; -$labels['year'] = 'year'; -$labels['month'] = 'month'; -$labels['day'] = 'day'; -$labels['date'] = 'date (yyyy-mm-dd)'; -$labels['julian'] = 'date (julian)'; -$labels['hour'] = 'hour'; -$labels['minute'] = 'minute'; -$labels['second'] = 'second'; -$labels['time'] = 'time (hh:mm:ss)'; -$labels['iso8601'] = 'date (ISO8601)'; -$labels['std11'] = 'date (RFC2822)'; -$labels['zone'] = 'time-zone'; -$labels['weekday'] = 'weekday (0-6)'; $labels['advancedopts'] = 'Advanced options'; $labels['body'] = 'Body'; $labels['address'] = 'address'; @@ -157,8 +137,6 @@ $labels['default'] = 'default'; $labels['octet'] = 'strict (octet)'; $labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; $labels['asciinumeric'] = 'numeric (ascii-numeric)'; -$labels['index'] = 'index:'; -$labels['indexlast'] = 'backwards'; $messages = array(); $messages['filterunknownerror'] = 'Unknown server error.'; @@ -192,6 +170,5 @@ $messages['nametoolong'] = 'Name too long.'; $messages['namereserved'] = 'Reserved name.'; $messages['setexist'] = 'Set already exists.'; $messages['nodata'] = 'At least one position must be selected!'; -$messages['invaliddateformat'] = 'Invalid date or date part format'; ?> diff --git a/plugins/managesieve/localization/eo.inc b/plugins/managesieve/localization/eo.inc index f613d92ba..3ce49ddb2 100644 --- a/plugins/managesieve/localization/eo.inc +++ b/plugins/managesieve/localization/eo.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtriloj'; $labels['managefilters'] = 'Mastrumi filtrilojn pri enirantaj mesaĝoj'; $labels['filtername'] = 'Nomo de filtrilo'; @@ -23,6 +25,8 @@ $labels['filteradd'] = 'Aldoni filtrilon'; $labels['filterdel'] = 'Forigi filtrilon'; $labels['moveup'] = 'Movi supren'; $labels['movedown'] = 'Movi malsupren'; +$labels['filterallof'] = 'matching all of the following rules'; +$labels['filteranyof'] = 'matching any of the following rules'; $labels['filterany'] = 'ĉiuj mesaĝoj'; $labels['filtercontains'] = 'enhavas'; $labels['filternotcontains'] = 'ne enhavas'; @@ -44,8 +48,130 @@ $labels['messagecopyto'] = 'Kopii mesaĝo en'; $labels['messagesendcopy'] = 'Sendi kopion de mesaĝo al'; $labels['messagereply'] = 'Respondi per mesaĝo'; $labels['messagedelete'] = 'Forigi mesaĝon'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = '...execute the following actions:'; $labels['add'] = 'Aldoni'; $labels['del'] = 'Forigi'; $labels['sender'] = 'Sendanto'; $labels['recipient'] = 'Ricevanto'; +$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; +$labels['vacationsubject'] = 'Message subject:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'active'; +$labels['none'] = 'none'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unknown server error.'; +$messages['filterconnerror'] = 'Unable to connect to server.'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occured.'; +$messages['filterdeleted'] = 'Filter deleted successfully.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; +$messages['cannotbeempty'] = 'Field cannot be empty.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Name too long.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + ?> diff --git a/plugins/managesieve/localization/es_AR.inc b/plugins/managesieve/localization/es_AR.inc index 7707a2b57..c9c6e70f8 100644 --- a/plugins/managesieve/localization/es_AR.inc +++ b/plugins/managesieve/localization/es_AR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtros'; $labels['managefilters'] = 'Administrar filtros de correo entrante'; $labels['filtername'] = 'Nombre del filtro'; @@ -32,6 +34,10 @@ $labels['filteris'] = 'es igual a'; $labels['filterisnot'] = 'no es igual a'; $labels['filterexists'] = 'existe'; $labels['filternotexists'] = 'no existe'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; $labels['filterunder'] = 'bajo'; $labels['filterover'] = 'sobre'; $labels['addrule'] = 'Agregar regla'; @@ -49,10 +55,17 @@ $labels['add'] = 'Agregar'; $labels['del'] = 'Eliminar'; $labels['sender'] = 'Remitente'; $labels['recipient'] = 'Destinatario'; +$labels['vacationaddresses'] = 'Lista de direcciones de correo de destinatarios adicionales (separados por comas):'; $labels['vacationdays'] = 'Cada cuanto enviar mensajes (en días):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'Cuerpo del mensaje (razón de vacaciones):'; +$labels['vacationsubject'] = 'Message subject:'; $labels['rulestop'] = 'Parar de evaluar reglas'; +$labels['enable'] = 'Enable/Disable'; $labels['filterset'] = 'Conjunto de filtros'; +$labels['filtersets'] = 'Filter sets'; $labels['filtersetadd'] = 'Agregar conjunto de filtros'; $labels['filtersetdel'] = 'Eliminar conjunto de filtros'; $labels['filtersetact'] = 'Activar conjunto de filtros'; @@ -65,19 +78,100 @@ $labels['none'] = 'none'; $labels['fromset'] = 'desde conjunto'; $labels['fromfile'] = 'desde archivo'; $labels['filterdisabled'] = 'Filtro deshabilitado'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); $messages['filterunknownerror'] = 'Error desconocido de servidor'; $messages['filterconnerror'] = 'Imposible conectar con el servidor managesieve'; +$messages['filterdeleteerror'] = 'Imposible borrar filtro. Ha ocurrido un error en el servidor'; $messages['filterdeleted'] = 'Filtro borrado satisfactoriamente'; $messages['filtersaved'] = 'Filtro guardado satisfactoriamente'; +$messages['filtersaveerror'] = 'Imposible guardar ell filtro. Ha ocurrido un error en el servidor'; $messages['filterdeleteconfirm'] = '¿Realmente desea borrar el filtro seleccionado?'; $messages['ruledeleteconfirm'] = '¿Está seguro de que desea borrar la regla seleccionada?'; $messages['actiondeleteconfirm'] = '¿Está seguro de que desea borrar la acción seleccionada?'; $messages['forbiddenchars'] = 'Caracteres prohibidos en el campo'; $messages['cannotbeempty'] = 'El campo no puede estar vacío'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Imposible activar el conjunto de filtros. Error en el servidor.'; +$messages['setdeactivateerror'] = 'Imposible desactivar el conjunto de filtros. Error en el servidor.'; +$messages['setdeleteerror'] = 'Imposible eliminar el conjunto de filtros. Error en el servidor.'; $messages['setactivated'] = 'Conjunto de filtros activados correctamente'; $messages['setdeactivated'] = 'Conjunto de filtros desactivados correctamente'; $messages['setdeleted'] = 'Conjunto de filtros eliminados correctamente'; $messages['setdeleteconfirm'] = '¿Esta seguro, que quiere eliminar el conjunto de filtros seleccionado?'; +$messages['setcreateerror'] = 'Imposible crear el conjunto de filtros. Error en el servidor.'; $messages['setcreated'] = 'Conjunto de filtros creados correctamente'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; $messages['nametoolong'] = 'Imposible crear el conjunto de filtros. Nombre del conjunto de filtros muy largo'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + ?> diff --git a/plugins/managesieve/localization/es_ES.inc b/plugins/managesieve/localization/es_ES.inc index 91602ee7b..69ad9ce8a 100644 --- a/plugins/managesieve/localization/es_ES.inc +++ b/plugins/managesieve/localization/es_ES.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtros'; $labels['managefilters'] = 'Administrar filtros de correo entrante'; $labels['filtername'] = 'Nombre del filtro'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Enviar copia del mensaje a'; $labels['messagereply'] = 'Responder con un mensaje'; $labels['messagedelete'] = 'Eliminar mensaje'; $labels['messagediscard'] = 'Descartar con un mensaje'; -$labels['messagekeep'] = 'Mantener el mensaje en la bandeja de entrada'; $labels['messagesrules'] = 'Para el correo entrante:'; $labels['messagesactions'] = '... ejecutar las siguientes acciones:'; $labels['add'] = 'Agregar'; $labels['del'] = 'Eliminar'; $labels['sender'] = 'Remitente'; $labels['recipient'] = 'Destinatario'; -$labels['vacationaddr'] = 'Mis direcciones adicionales de correo electrónico:'; +$labels['vacationaddresses'] = 'Lista de direcciones de correo de destinatarios adicionales (separados por comas):'; $labels['vacationdays'] = 'Cada cuánto enviar mensajes (en días):'; $labels['vacationinterval'] = 'Cada cuánto enviar mensajes:'; $labels['days'] = 'días'; @@ -82,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'contiene más o igual que'; $labels['countislessthan'] = 'contiene menos que'; $labels['countislessthanequal'] = 'contiene menos o igual que'; $labels['countequals'] = 'contiene igual que'; -$labels['countnotequals'] = 'la cuenta no es igual a'; +$labels['countnotequals'] = 'contiene distinto que'; $labels['valueisgreaterthan'] = 'el valor es mayor que'; $labels['valueisgreaterthanequal'] = 'el valor es mayor o igual que'; $labels['valueislessthan'] = 'el valor es menor que'; $labels['valueislessthanequal'] = 'el valor es menor o igual que'; $labels['valueequals'] = 'el valor es igual que'; -$labels['valuenotequals'] = 'el valor no es igual a'; +$labels['valuenotequals'] = 'el valor es distinto que'; $labels['setflags'] = 'Etiquetar el mensaje'; $labels['addflags'] = 'Agregar etiquetas al mensaje'; $labels['removeflags'] = 'Eliminar etiquetas al mensaje'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Crear Filtro'; $labels['usedata'] = 'Usar los siguientes datos en el filtro:'; $labels['nextstep'] = 'Siguiente paso'; $labels['...'] = '...'; -$labels['currdate'] = 'Fecha actual'; -$labels['datetest'] = 'Fecha'; -$labels['dateheader'] = 'cabecera:'; -$labels['year'] = 'año'; -$labels['month'] = 'mes'; -$labels['day'] = 'día'; -$labels['date'] = 'fecha (aaaa-mm-dd)'; -$labels['julian'] = 'fecha (juliano)'; -$labels['hour'] = 'hora'; -$labels['minute'] = 'minuto'; -$labels['second'] = 'segundo'; -$labels['time'] = 'hora (hh:mm:ss)'; -$labels['iso8601'] = 'fecha (ISO8601)'; -$labels['std11'] = 'fecha (RFC2822)'; -$labels['zone'] = 'zona horaria'; -$labels['weekday'] = 'día de la semana (0-6)'; $labels['advancedopts'] = 'Opciones avanzadas'; $labels['body'] = 'Cuerpo del mensaje'; $labels['address'] = 'dirección'; @@ -155,38 +140,38 @@ $labels['default'] = 'predeterminado'; $labels['octet'] = 'estricto (octeto)'; $labels['asciicasemap'] = 'no sensible a mayúsculas (ascii-casemap)'; $labels['asciinumeric'] = 'numerico (ascii-numeric)'; -$labels['index'] = 'índice:'; -$labels['indexlast'] = 'hacia atrás'; -$messages['filterunknownerror'] = 'Error desconocido en el servidor.'; -$messages['filterconnerror'] = 'No se ha podido conectar con el servidor managesieve.'; -$messages['filterdeleteerror'] = 'No se ha podido borrar el filtro. Ha ocurrido un error en el servidor.'; + +$messages = array(); +$messages['filterunknownerror'] = 'Error desconocido de servidor.'; +$messages['filterconnerror'] = 'Imposible conectar con el servidor managesieve.'; +$messages['filterdeleteerror'] = 'Imposible borrar filtro. Ha ocurrido un error en el servidor.'; $messages['filterdeleted'] = 'Filtro borrado satisfactoriamente.'; $messages['filtersaved'] = 'Filtro guardado satisfactoriamente.'; -$messages['filtersaveerror'] = 'No se ha podido guardar el filtro. Ha ocurrido un error en el servidor.'; +$messages['filtersaveerror'] = 'Imposible guardar el filtro. Ha ocurrido un error en el servidor.'; $messages['filterdeleteconfirm'] = '¿Realmente desea borrar el filtro seleccionado?'; $messages['ruledeleteconfirm'] = '¿Está seguro de que desea borrar la regla seleccionada?'; $messages['actiondeleteconfirm'] = '¿Está seguro de que desea borrar la acción seleccionada?'; $messages['forbiddenchars'] = 'Caracteres prohibidos en el campo.'; $messages['cannotbeempty'] = 'El campo no puede estar vacío.'; $messages['ruleexist'] = 'Ya existe un filtro con el nombre especificado.'; -$messages['setactivateerror'] = 'No se ha podido activar el conjunto de filtros seleccionado. Ha ocurrido un error en el servidor.'; -$messages['setdeactivateerror'] = 'No se ha podido desactivar el conjunto de filtros seleccionado. Ha ocurrido un error en el servidor.'; -$messages['setdeleteerror'] = 'No se ha podido borrar el conjunto de filtros seleccionado. Ha ocurrido un error en el servidor.'; +$messages['setactivateerror'] = 'Imposible activar el conjunto de filtros seleccionado. Ha ocurrido un error en el servidor.'; +$messages['setdeactivateerror'] = 'Imposible desactivar el conjunto de filtros seleccionado. Ha ocurrido un error en el servidor.'; +$messages['setdeleteerror'] = 'Imposible borrar el conjunto de filtros seleccionado. Ha ocurrido un error en el servidor.'; $messages['setactivated'] = 'Conjunto de filtros activado satisfactoriamente.'; $messages['setdeactivated'] = 'Conjunto de filtros desactivado satisfactoriamente.'; $messages['setdeleted'] = 'Conjunto de filtros borrado satisfactoriamente.'; $messages['setdeleteconfirm'] = '¿Está seguro de que desea borrar el conjunto de filtros seleccionado?'; -$messages['setcreateerror'] = 'No se ha podido crear el conjunto de filtros. Ha ocurrido un error en el servidor.'; +$messages['setcreateerror'] = 'Imposible crear el conjunto de filtros. Ha ocurrido un error en el servidor.'; $messages['setcreated'] = 'Conjunto de filtros creado satisfactoriamente.'; -$messages['activateerror'] = 'No se han podido habilitar los filtros seleccionados. Ha ocurrido un error en el servidor.'; -$messages['deactivateerror'] = 'No se han podido deshabilitar los filtros seleccionados. Ha ocurrido un error en el servidor.'; +$messages['activateerror'] = 'No se ha podido habilitar el filtro(s) seleccionado. Se ha producido un error de servidor.'; +$messages['deactivateerror'] = 'No se ha podido deshabilitar el filtro(s) seleccionado. Se ha producido un error de servidor.'; $messages['deactivated'] = 'Filtro(s) deshabilitado(s) correctamente.'; $messages['activated'] = 'Filtro(s) habilitado(s) correctamente.'; $messages['moved'] = 'Filtro movido correctamente.'; -$messages['moveerror'] = 'No se ha podido mover el filtro seleccionado. Ha ocurrido un error en el servidor.'; -$messages['nametoolong'] = 'Nombre demasiado largo.'; +$messages['moveerror'] = 'No se ha podido mover el filtro seleccionado. Ha ocurrido un error de servidor.'; +$messages['nametoolong'] = 'Imposible crear el conjunto de filtros. Nombre demasiado largo'; $messages['namereserved'] = 'Nombre reservado.'; $messages['setexist'] = 'El conjunto ya existe.'; $messages['nodata'] = '¡Al menos una posición debe ser seleccionada!'; -$messages['invaliddateformat'] = 'Fecha o formato de parte de la fecha no válido'; + ?> diff --git a/plugins/managesieve/localization/et_EE.inc b/plugins/managesieve/localization/et_EE.inc index e8a3bd3c1..5688e08e1 100644 --- a/plugins/managesieve/localization/et_EE.inc +++ b/plugins/managesieve/localization/et_EE.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtrid'; $labels['managefilters'] = 'Halda sisenevate kirjade filtreid'; $labels['filtername'] = 'Filtri nimi'; @@ -53,10 +55,11 @@ $labels['add'] = 'Lisa'; $labels['del'] = 'Kustuta'; $labels['sender'] = 'Saatja'; $labels['recipient'] = 'Saaja'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; $labels['vacationdays'] = 'Kui tihti kirju saata (päevades):'; -$labels['vacationinterval'] = 'Kui tihti kirju saata:'; -$labels['days'] = 'päeva'; -$labels['seconds'] = 'sekundit'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'Kirja sisu (puhkuse põhjus):'; $labels['vacationsubject'] = 'Kirja teema:'; $labels['rulestop'] = 'Peata reeglite otsimine'; @@ -80,7 +83,7 @@ $labels['countisgreaterthanequal'] = 'koguarv on suurem kui või võrdne'; $labels['countislessthan'] = 'koguarv on väiksem'; $labels['countislessthanequal'] = 'koguarv on väiksem kui või võrdne'; $labels['countequals'] = 'koguarv on võrdne'; -$labels['countnotequals'] = 'summa ei ole võrdne'; +$labels['countnotequals'] = 'koguarv ei ole võrdne'; $labels['valueisgreaterthan'] = 'väärtus on suurem kui'; $labels['valueisgreaterthanequal'] = 'väärtus on suurem kui või võrdne'; $labels['valueislessthan'] = 'väärtus on väiksem kui'; @@ -118,22 +121,6 @@ $labels['filtercreate'] = 'Loo filter'; $labels['usedata'] = 'Kasuta filtris järgmisi andmeid:'; $labels['nextstep'] = 'Järgmine samm'; $labels['...'] = '…'; -$labels['currdate'] = 'Praegune kuupäev'; -$labels['datetest'] = 'Kuupäev'; -$labels['dateheader'] = 'päis:'; -$labels['year'] = 'aasta'; -$labels['month'] = 'kuu'; -$labels['day'] = 'päev'; -$labels['date'] = 'kuupäev (aaaa-kk-pp)'; -$labels['julian'] = 'kuupäev (Juliuse)'; -$labels['hour'] = 'tund'; -$labels['minute'] = 'minut'; -$labels['second'] = 'sekund'; -$labels['time'] = 'aeg (tt:mm:ss)'; -$labels['iso8601'] = 'kuupäev (ISO8601)'; -$labels['std11'] = 'kuupäev (RCF2822)'; -$labels['zone'] = 'ajatsoon'; -$labels['weekday'] = 'nädalapäev (0-6)'; $labels['advancedopts'] = 'Lisaseadistused'; $labels['body'] = 'Põhitekst'; $labels['address'] = 'aadress'; @@ -153,29 +140,38 @@ $labels['default'] = 'vaikimisi'; $labels['octet'] = 'range (octet)'; $labels['asciicasemap'] = 'tõstutundetu (ascii-casemap)'; $labels['asciinumeric'] = 'numbriline (ascii-numeric)'; -$labels['index'] = 'indeks:'; -$labels['indexlast'] = 'tagasisuunas'; + +$messages = array(); $messages['filterunknownerror'] = 'Tundmatu serveri tõrge'; $messages['filterconnerror'] = 'Managesieve serveriga ühendumine nurjus'; +$messages['filterdeleteerror'] = 'Filtri kustutamine nurjus. Ilmnes serveri tõrge.'; $messages['filterdeleted'] = 'Filter edukalt kustutatud'; $messages['filtersaved'] = 'Filter edukalt salvestatud'; +$messages['filtersaveerror'] = 'Filtri salvestamine nurjus. Ilmnes serveri tõrge.'; $messages['filterdeleteconfirm'] = 'Soovid valitud filtri kustutada?'; $messages['ruledeleteconfirm'] = 'Soovid valitud reegli kustutada?'; $messages['actiondeleteconfirm'] = 'Soovid valitud tegevuse kustutada?'; $messages['forbiddenchars'] = 'Väljal on lubamatu märk'; $messages['cannotbeempty'] = 'Väli ei või tühi olla'; $messages['ruleexist'] = 'Määratud nimega filter on juba olemas'; +$messages['setactivateerror'] = 'Valitud filtrite kogumi aktiveerimine nurjus. Ilmnes serveri tõrge.'; +$messages['setdeactivateerror'] = 'Valitud filtrite kogumi deaktiveerimine nurjus. Ilmnes serveri tõrge.'; +$messages['setdeleteerror'] = 'Valitud filtrite kogumi kustutamine nurjus. Ilmnes serveri tõrge.'; $messages['setactivated'] = 'Filtrite kogumi aktiveerimine õnnestus.'; $messages['setdeactivated'] = 'Filtrite kogumi deaktiveerimine õnnestus.'; $messages['setdeleted'] = 'Filtrite kogumi kustutamine õnnestus.'; $messages['setdeleteconfirm'] = 'Oled kindel, et soovid valitud filtrite kogumi kustutada?'; +$messages['setcreateerror'] = 'Filtrite kogumi loomine nurjus. Ilmnes serveri tõrge.'; $messages['setcreated'] = 'Filtrite kogumi loomine õnnestus.'; +$messages['activateerror'] = 'Valitud filtrite lubamine nurjus. Ilmnes serveri tõrge.'; +$messages['deactivateerror'] = 'Valitud filtrite keelamine nurjus. Ilmnes serveri tõrge.'; $messages['deactivated'] = 'Filter edukalt lubatud.'; $messages['activated'] = 'Filter edukalt keelatud.'; $messages['moved'] = 'Filter edukalt liigutatud.'; +$messages['moveerror'] = 'Valitud filtri liigutamine nurjus. Ilmnes serveri tõrge.'; $messages['nametoolong'] = 'Nimi on liiga pikk.'; $messages['namereserved'] = 'Nimi on reserveeritud.'; $messages['setexist'] = 'Kogum on juba olemas.'; $messages['nodata'] = 'Valitud peab olema vähemalt üks asukoht!'; -$messages['invaliddateformat'] = 'Vigane kuupäev või kuupäeva formaat'; + ?> diff --git a/plugins/managesieve/localization/fa_IR.inc b/plugins/managesieve/localization/fa_IR.inc index 8aeb51711..ebdc4531d 100644 --- a/plugins/managesieve/localization/fa_IR.inc +++ b/plugins/managesieve/localization/fa_IR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'صافی‌ها'; $labels['managefilters'] = 'مدیریت صافی‌های نامه ورودی'; $labels['filtername'] = 'نام صافی'; @@ -47,13 +49,13 @@ $labels['messagesendcopy'] = 'ارسال رونوشت پیغام به'; $labels['messagereply'] = 'پاسخ همراه پیغام'; $labels['messagedelete'] = 'حذف پیغام'; $labels['messagediscard'] = 'دور ریختن با پیغام'; -$labels['messagekeep'] = 'پیغام را در صندوق ورودی نگه دار'; $labels['messagesrules'] = 'برای صندوق ورودی:'; $labels['messagesactions'] = '...انجام اعمال ذیل:'; $labels['add'] = 'افزودن'; $labels['del'] = 'حذف'; $labels['sender'] = 'فرستنده'; $labels['recipient'] = 'گیرنده'; +$labels['vacationaddresses'] = 'آدرس‌های ایمیل دیگر من (جدا شده با ویرگول):'; $labels['vacationdays'] = 'پیغام ها در چه مواقعی فرستاده شدند (در روزهای):'; $labels['vacationinterval'] = 'مواقعی که پیغام‌ها ارسال می‌شوند:'; $labels['days'] = 'روزها'; @@ -81,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'تعداد بیشتر یا مساوی اس $labels['countislessthan'] = 'تعداد کمتر است از'; $labels['countislessthanequal'] = 'تعداد کمتر یا مساوی است با'; $labels['countequals'] = 'تعداد مساوی است با'; -$labels['countnotequals'] = 'تعداد برابر نیست با'; +$labels['countnotequals'] = 'تعداد مساوی نیست با'; $labels['valueisgreaterthan'] = 'مقدار بیشتر است از'; $labels['valueisgreaterthanequal'] = 'مقدار بیشتر یا مساوی است با'; $labels['valueislessthan'] = 'مقدار کمتر است از'; $labels['valueislessthanequal'] = 'مقدار کمتر یا مساوی است با'; $labels['valueequals'] = 'مقدار مساوی است با'; -$labels['valuenotequals'] = 'مقدار برابر نیست با'; +$labels['valuenotequals'] = 'مقدار مساوی نیست با'; $labels['setflags'] = 'انتخاب پرچم‌ها برای پیغام'; $labels['addflags'] = 'افزودن پرچم‌ها برای پیغام'; $labels['removeflags'] = 'حذف پرچم‌ها از پیغام'; @@ -119,22 +121,6 @@ $labels['filtercreate'] = 'ایجاد صافی'; $labels['usedata'] = 'استفاده از داده ذیل در صافی:'; $labels['nextstep'] = 'مرحله بعدی'; $labels['...'] = '...'; -$labels['currdate'] = 'تاریخ جاری'; -$labels['datetest'] = 'تاریخ'; -$labels['dateheader'] = 'سربرگ:'; -$labels['year'] = 'سال'; -$labels['month'] = 'ماه'; -$labels['day'] = 'روز'; -$labels['date'] = 'تاریخ (yyyy-mm-dd)'; -$labels['julian'] = 'تاریخ (میلادی)'; -$labels['hour'] = 'ساعت'; -$labels['minute'] = 'دقیقه'; -$labels['second'] = 'ثانیه'; -$labels['time'] = 'ساعت (hh:mm:ss)'; -$labels['iso8601'] = 'تاریخ (ISO8601)'; -$labels['std11'] = 'تاریخ (RFC2822)'; -$labels['zone'] = 'منطقه زمانی'; -$labels['weekday'] = 'روز هفته (0-6)'; $labels['advancedopts'] = 'گزینه‌های پیشرفته'; $labels['body'] = 'بدنه'; $labels['address'] = 'نشانی'; @@ -154,29 +140,38 @@ $labels['default'] = 'پیش‌فرض'; $labels['octet'] = 'سخت (octet)'; $labels['asciicasemap'] = 'حساس به حروه کوچک و بزرگ (ascii-casemap)'; $labels['asciinumeric'] = 'عددی (ascii-numeric)'; -$labels['index'] = 'فهرست:'; -$labels['indexlast'] = 'به عقب'; + +$messages = array(); $messages['filterunknownerror'] = 'خطای سرور نامعلوم.'; $messages['filterconnerror'] = 'ناتوانی در اتصال به سرور.'; +$messages['filterdeleteerror'] = 'ناتوانی در حذف صافی. خطای سرور رخ داد.'; $messages['filterdeleted'] = 'صافی با موفقیت حذف شد.'; $messages['filtersaved'] = 'صافی با موفقیت ذخیره شد.'; +$messages['filtersaveerror'] = 'ناتوانی در ذخیره فیلتر. خطای سرور رخ داد.'; $messages['filterdeleteconfirm'] = 'آیا مطمئن به حذف صافی انتخاب شده هستید؟'; $messages['ruledeleteconfirm'] = 'آیا مطمئن هستید که می خواهید قانون انتخاب شده را حذف کنید؟'; $messages['actiondeleteconfirm'] = 'آیا مطمئن هستید که می خواهید عمل انتخاب شده را حذف کنید.'; $messages['forbiddenchars'] = 'حروف ممنوعه در فیلد.'; $messages['cannotbeempty'] = 'فیلد نمی تواند خالی باشد.'; $messages['ruleexist'] = 'صافی با این نام مشخص وجود دارد.'; +$messages['setactivateerror'] = 'ناتوان در فعال کردن مجموعه صافی‌ها انتخاب شده. خطای سرور رخ داد.'; +$messages['setdeactivateerror'] = 'ناتوان در غیرفعال کردن مجموعه صافی‌ها انتخاب شده. خطای سرور رخ داد.'; +$messages['setdeleteerror'] = 'ناتوان در حذف مجموعه صافی‌ها انتخاب شده. خطای سرور رخ داد.'; $messages['setactivated'] = 'مجموعه صافی‌ها با موفقیت فعال شد.'; $messages['setdeactivated'] = 'مجموعه صافی‌ها با موفقیت غیرفعال شد.'; $messages['setdeleted'] = 'مجموعه صافی‌ها با موفقیت حذف شد.'; $messages['setdeleteconfirm'] = 'آیا مطمئن هستید که می‌خواهید مجموعه صافی‌ها انتخاب شده را حذف کنید؟'; +$messages['setcreateerror'] = 'ناتوانی در ایجاد مجموعه صافی‌ها. خطای سرور رخ داد.'; $messages['setcreated'] = 'مجموعه صافی‌ها با موفقیت ایجاد شد.'; +$messages['activateerror'] = 'ناتوانی در فعال کردن صافی(های) انتخاب شده. خطای سرور رخ داد.'; +$messages['deactivateerror'] = 'ناتوانی در غیرفعال کردن صافی(های) انتخاب شده. خطای سرور رخ داد.'; $messages['deactivated'] = 'صافی(ها) با موفقیت فعال شدند.'; $messages['activated'] = 'صافی(ها) با موفقیت غیرفعال شدند.'; $messages['moved'] = 'صافی با موفقیت منتقل شد.'; +$messages['moveerror'] = 'ناتوانی در انتقال صافی انتخاب شده. خطای سرور رخ داد.'; $messages['nametoolong'] = 'نام خیلی بلند.'; $messages['namereserved'] = 'نام رزرو شده.'; $messages['setexist'] = 'مجموعه در حال حاضر موجود است.'; $messages['nodata'] = 'حداقل باید یک موقعیت باید انتخاب شود.'; -$messages['invaliddateformat'] = 'قالب تاریخ اشتباه'; + ?> diff --git a/plugins/managesieve/localization/fi_FI.inc b/plugins/managesieve/localization/fi_FI.inc index afdca3d3e..f006f6d23 100644 --- a/plugins/managesieve/localization/fi_FI.inc +++ b/plugins/managesieve/localization/fi_FI.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Suodattimet'; $labels['managefilters'] = 'Hallitse saapuvan sähköpostin suodattimia'; $labels['filtername'] = 'Suodattimen nimi'; @@ -32,16 +34,66 @@ $labels['filteris'] = 'on samanlainen kuin'; $labels['filterisnot'] = 'ei ole samanlainen kuin'; $labels['filterexists'] = 'on olemassa'; $labels['filternotexists'] = 'ei ole olemassa'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; $labels['addrule'] = 'Lisää sääntö'; $labels['delrule'] = 'Poista sääntö'; +$labels['messagemoveto'] = 'Move message to'; +$labels['messageredirect'] = 'Redirect message to'; +$labels['messagecopyto'] = 'Copy message to'; +$labels['messagesendcopy'] = 'Send message copy to'; +$labels['messagereply'] = 'Reply with message'; +$labels['messagedelete'] = 'Delete message'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = '...execute the following actions:'; $labels['add'] = 'Lisää'; $labels['del'] = 'Poista'; $labels['sender'] = 'Lähettäjä'; $labels['recipient'] = 'Vastaanottaja'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; +$labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; $labels['vacationsubject'] = 'Viestin aihe:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'active'; +$labels['none'] = 'none'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; $labels['setflags'] = 'Aseta liput viestiin'; $labels['addflags'] = 'Lisää liput viestiin'; $labels['removeflags'] = 'Poista liput viestistä'; +$labels['flagread'] = 'Read'; $labels['flagdeleted'] = 'Poistettu'; $labels['flaganswered'] = 'Vastattu'; $labels['flagflagged'] = 'Liputettu'; @@ -49,15 +101,77 @@ $labels['flagdraft'] = 'Luonnos'; $labels['setvariable'] = 'Aseta muuttuja'; $labels['setvarname'] = 'Muuttujan nimi:'; $labels['setvarvalue'] = 'Muuttujan arvo:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; $labels['notifyimportance'] = 'Tärkeysaste:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; $labels['filtercreate'] = 'Luo suodatin'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; $labels['...'] = '...'; $labels['advancedopts'] = 'Lisävalinnat'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; $labels['default'] = 'oletus'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); $messages['filterunknownerror'] = 'Tuntematon palvelinvirhe.'; $messages['filterconnerror'] = 'Yhteys palvelimeen epäonnistui.'; +$messages['filterdeleteerror'] = 'Suodattimen poisto epäonnistui palvelinvirheen vuoksi.'; $messages['filterdeleted'] = 'Suodatin poistettu onnistuneesti.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; $messages['cannotbeempty'] = 'Kenttä ei voi olla tyhjä.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; $messages['moved'] = 'Suodatin siirretty onnistuneesti.'; +$messages['moveerror'] = 'Suodattimen siirtäminen epäonnistui palvelinvirheen vuoksi.'; $messages['nametoolong'] = 'Nimi on liian pitkä.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + ?> diff --git a/plugins/managesieve/localization/fr_FR.inc b/plugins/managesieve/localization/fr_FR.inc index 0e9549b58..b3f9ec9df 100644 --- a/plugins/managesieve/localization/fr_FR.inc +++ b/plugins/managesieve/localization/fr_FR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtres'; $labels['managefilters'] = 'Gérer les filtres sur les courriels entrants'; $labels['filtername'] = 'Nom du filtre'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Envoyer une copie du message à'; $labels['messagereply'] = 'Répondre avec le message'; $labels['messagedelete'] = 'Supprimer le message'; $labels['messagediscard'] = 'Rejeter avec le message'; -$labels['messagekeep'] = 'Conserver le message dans la boîte de réception'; $labels['messagesrules'] = 'Pour les courriels entrants :'; $labels['messagesactions'] = '...exécuter les actions suivantes:'; $labels['add'] = 'Ajouter'; $labels['del'] = 'Supprimer'; $labels['sender'] = 'Expéditeur'; $labels['recipient'] = 'Destinataire'; -$labels['vacationaddr'] = 'Adresse(s) e-mail additionnelle(s):'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; $labels['vacationdays'] = 'Ne pas renvoyer un message avant (jours) :'; $labels['vacationinterval'] = 'Comment envoyer les messages :'; $labels['days'] = 'jours'; @@ -82,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'total supérieur ou égal à'; $labels['countislessthan'] = 'total inférieur à'; $labels['countislessthanequal'] = 'total inférieur à'; $labels['countequals'] = 'total égal à'; -$labels['countnotequals'] = 'le comptage n\'est pas égal à'; +$labels['countnotequals'] = 'total différent de'; $labels['valueisgreaterthan'] = 'valeur supérieure à'; $labels['valueisgreaterthanequal'] = 'valeur supérieure ou égale à'; $labels['valueislessthan'] = 'valeur inférieure à'; $labels['valueislessthanequal'] = 'valeur inférieure ou égale à'; $labels['valueequals'] = 'valeur égale à'; -$labels['valuenotequals'] = 'la valeur n\'est pas égale à'; +$labels['valuenotequals'] = 'valeur différente de'; $labels['setflags'] = 'Mettre les marqueurs au message'; $labels['addflags'] = 'Ajouter les marqueurs au message'; $labels['removeflags'] = 'Supprimer les marqueurs du message'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Créer un filtre'; $labels['usedata'] = 'Utiliser les informations suivantes dans le filtre'; $labels['nextstep'] = 'Étape suivante'; $labels['...'] = '...'; -$labels['currdate'] = 'Date actuelle'; -$labels['datetest'] = 'Date'; -$labels['dateheader'] = 'header:'; -$labels['year'] = 'année'; -$labels['month'] = 'mois'; -$labels['day'] = 'jour'; -$labels['date'] = 'date (yyyy-mm-dd)'; -$labels['julian'] = 'date (julien)'; -$labels['hour'] = 'heure'; -$labels['minute'] = 'minute'; -$labels['second'] = 'seconde'; -$labels['time'] = 'heure (hh:mm:ss)'; -$labels['iso8601'] = 'date (ISO8601)'; -$labels['std11'] = 'date (RFC2822)'; -$labels['zone'] = 'fuseau horaire'; -$labels['weekday'] = 'jour de la semaine (0-6)'; $labels['advancedopts'] = 'Options avancées'; $labels['body'] = 'Corps du message'; $labels['address'] = 'adresse'; @@ -155,29 +140,38 @@ $labels['default'] = 'par défaut'; $labels['octet'] = 'strict (octet)'; $labels['asciicasemap'] = 'insensible à la casse (ascii-casemap)'; $labels['asciinumeric'] = 'numérique (ascii-numeric)'; -$labels['index'] = 'index:'; -$labels['indexlast'] = 'retour arrière'; + +$messages = array(); $messages['filterunknownerror'] = 'Erreur du serveur inconnue'; $messages['filterconnerror'] = 'Connexion au serveur Managesieve impossible'; +$messages['filterdeleteerror'] = 'Suppression du filtre impossible. Le serveur à produit une erreur'; $messages['filterdeleted'] = 'Le filtre a bien été supprimé'; $messages['filtersaved'] = 'Le filtre a bien été enregistré'; +$messages['filtersaveerror'] = 'Enregistrement du filtre impossibe. Le serveur à produit une erreur'; $messages['filterdeleteconfirm'] = 'Voulez-vous vraiment supprimer le filtre sélectionné?'; $messages['ruledeleteconfirm'] = 'Voulez-vous vraiment supprimer la règle sélectionnée?'; $messages['actiondeleteconfirm'] = 'Voulez-vous vraiment supprimer l\'action sélectionnée?'; $messages['forbiddenchars'] = 'Caractères interdits dans le champ'; $messages['cannotbeempty'] = 'Le champ ne peut pas être vide'; $messages['ruleexist'] = 'Un filtre existe déjà avec ce nom.'; +$messages['setactivateerror'] = 'Impossible d\'aactiver le groupe de filtres sélectionné. Le serveur a rencontré une erreur.'; +$messages['setdeactivateerror'] = 'Impossible de désactiver le groupe de filtres sélectionné. Le serveur a rencontré une erreur.'; +$messages['setdeleteerror'] = 'Impossible de supprimer le groupe de filtres sélectionné. Le serveur a rencontré une erreur.'; $messages['setactivated'] = 'Le groupe de filtres a bien été activé.'; $messages['setdeactivated'] = 'Le groupe de filtres a bien été désactivé.'; $messages['setdeleted'] = 'Le groupe de filtres a bien été supprimé.'; $messages['setdeleteconfirm'] = 'Voulez vous vraiment supprimer le groupe de filtres sélectionné ?'; +$messages['setcreateerror'] = 'Impossible de créer le groupe de filtres. Le serveur a rencontré une erreur.'; $messages['setcreated'] = 'Le groupe de filtres a bien été créé.'; +$messages['activateerror'] = 'Impossible d\'activer le(s) filtre(s) sélectionné(s). Une erreur serveur s\'est produite.'; +$messages['deactivateerror'] = 'Impossible de désactiver le(s) filtre(s) sélectionné(s). Une erreur serveur s\'est produite.'; $messages['deactivated'] = 'Filtre(s) désactivé(s) avec succès.'; $messages['activated'] = 'Filtre(s) activé(s) avec succès.'; $messages['moved'] = 'Filtre déplacé avec succès.'; +$messages['moveerror'] = 'Déplacement du filtre sélectionné impossible. Le serveur a renvoyé une erreur.'; $messages['nametoolong'] = 'Nom trop long.'; $messages['namereserved'] = 'Nom réservé.'; $messages['setexist'] = 'Ce groupe existe déjà.'; $messages['nodata'] = 'Au moins un élément doit être selectionné !'; -$messages['invaliddateformat'] = 'Date non valide ou format d\'une partie de la date'; + ?> diff --git a/plugins/managesieve/localization/gl_ES.inc b/plugins/managesieve/localization/gl_ES.inc index e588ef571..fef5ed718 100644 --- a/plugins/managesieve/localization/gl_ES.inc +++ b/plugins/managesieve/localization/gl_ES.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtros'; $labels['managefilters'] = 'Xestionar os filtros de correo entrante'; $labels['filtername'] = 'Nome do filtro'; @@ -53,6 +55,7 @@ $labels['add'] = 'Engadir'; $labels['del'] = 'Eliminar'; $labels['sender'] = 'Remitente'; $labels['recipient'] = 'Destinatario'; +$labels['vacationaddresses'] = 'Lista de enderezos de correo de destinatarios adicionais (separados por comas):'; $labels['vacationdays'] = 'Cada canto enviar mensaxes (en días):'; $labels['vacationinterval'] = 'Con qué frecuencia vanse enviar mensaxes:'; $labels['days'] = 'días'; @@ -87,9 +90,9 @@ $labels['valueislessthan'] = 'o valor é menor que'; $labels['valueislessthanequal'] = 'o valor é menor ou igual a'; $labels['valueequals'] = 'o valor é igual a'; $labels['valuenotequals'] = 'o valor non é igual a'; -$labels['setflags'] = 'Marcar a mensaxe'; -$labels['addflags'] = 'Engadir marcas á mensaxe'; -$labels['removeflags'] = 'Desmarcar as mensaxes'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; $labels['flagread'] = 'Lidas'; $labels['flagdeleted'] = 'Eliminadas'; $labels['flaganswered'] = 'Respostadas'; @@ -103,7 +106,7 @@ $labels['varlower'] = 'minúscula'; $labels['varupper'] = 'maiúscula'; $labels['varlowerfirst'] = 'primeira letra minúscula'; $labels['varupperfirst'] = 'primeira letra maiúscula'; -$labels['varquotewildcard'] = 'poñer entre aspas caracteres especiais'; +$labels['varquotewildcard'] = 'quote special characters'; $labels['varlength'] = 'lonxitude'; $labels['notify'] = 'Enviar notificación'; $labels['notifyaddress'] = 'Destinatario:'; @@ -118,26 +121,10 @@ $labels['filtercreate'] = 'Crear filtro'; $labels['usedata'] = 'Usar os seguintes datos no filtro:'; $labels['nextstep'] = 'Seguinte paso'; $labels['...'] = '...'; -$labels['currdate'] = 'Data actual'; -$labels['datetest'] = 'Data'; -$labels['dateheader'] = 'cabeceira:'; -$labels['year'] = 'ano'; -$labels['month'] = 'mes'; -$labels['day'] = 'día'; -$labels['date'] = 'data (aaaa-mm-dd)'; -$labels['julian'] = 'data (xuliano)'; -$labels['hour'] = 'hora'; -$labels['minute'] = 'minuto'; -$labels['second'] = 'segundo'; -$labels['time'] = 'tempo (hh:mm:ss)'; -$labels['iso8601'] = 'data (ISO8601)'; -$labels['std11'] = 'data (RFC2822)'; -$labels['zone'] = 'fuso-horario'; -$labels['weekday'] = 'día da semana (0-6)'; $labels['advancedopts'] = 'Opcións avanzadas'; $labels['body'] = 'Corpo'; $labels['address'] = 'enderezo'; -$labels['envelope'] = 'sobre'; +$labels['envelope'] = 'envelope'; $labels['modifier'] = 'modificador:'; $labels['text'] = 'texto'; $labels['undecoded'] = 'sen codificar (en bruto)'; @@ -153,29 +140,38 @@ $labels['default'] = 'defecto'; $labels['octet'] = 'estricto (octeto)'; $labels['asciicasemap'] = 'non sensible a maiúsculas/minúsculas (ascii-casemap)'; $labels['asciinumeric'] = 'numérico (ascii-numerico)'; -$labels['index'] = 'índice:'; -$labels['indexlast'] = 'cara atrás'; + +$messages = array(); $messages['filterunknownerror'] = 'Erro descoñecido servidor'; $messages['filterconnerror'] = 'Imposible conectar co servidor managesieve'; +$messages['filterdeleteerror'] = 'Imposible eliminar filtro. Ocurriu un erro no servidor'; $messages['filterdeleted'] = 'Filtro borrado con éxito'; $messages['filtersaved'] = 'Filtro gardado con éxito'; +$messages['filtersaveerror'] = 'Imposible gardar o filtro. Ocurriu un erro no servidor'; $messages['filterdeleteconfirm'] = 'Realmente desexa eliminar o filtro seleccionado?'; $messages['ruledeleteconfirm'] = 'Está seguro de que desexa eliminar a regra seleccionada?'; $messages['actiondeleteconfirm'] = 'Está seguro de que desexa eliminar a acción seleccionada?'; $messages['forbiddenchars'] = 'Caracteres non permitidos no campo'; $messages['cannotbeempty'] = 'O campo non pode estar baleiro'; $messages['ruleexist'] = 'Xa existe un filtro con nome especificado.'; +$messages['setactivateerror'] = 'Imposible activar o conxunto de filtros seleccionado. Ocurriu un erro no servidor'; +$messages['setdeactivateerror'] = 'Imposible desactivar o conxunto de filtros seleccionado. Ocurriu un error no servidor'; +$messages['setdeleteerror'] = 'Imposible eliminar o conxunto de filtros seleccionado. Ocurriu un error no servidor'; $messages['setactivated'] = 'O conxunto de filtros activouse con éxito'; $messages['setdeactivated'] = 'O conxunto de filtros desactivouse con éxito'; $messages['setdeleted'] = 'O Conxunto de filtros borrouse con éxito'; $messages['setdeleteconfirm'] = 'Está seguro de que desexa eliminar o conxunto de filtros seleccionado?'; +$messages['setcreateerror'] = 'Imposible crear o conxunto de filtros. Ocurriu un error no servidor'; $messages['setcreated'] = 'Conxunto de filtros creado con éxito'; +$messages['activateerror'] = 'Non foi posible activar o(s) filtro(s) seleccionado(s). Ocurriu un erro no servidor.'; +$messages['deactivateerror'] = 'Non foi posible desactivar o(s) filtro(s) seleccionado(s). Ocurriu un erro no servidor.'; $messages['deactivated'] = 'Desactiváronse os filtros correctamente.'; $messages['activated'] = 'Activáronse os filtros correctamente'; $messages['moved'] = 'Moveuse correctamente o filtro.'; +$messages['moveerror'] = 'Non foi posible mover o(s) filtro(s) seleccionado(s). Ocurriu un erro no servidor.'; $messages['nametoolong'] = 'Imposible crear o conxunto de filtros. O nome é longo de máis'; $messages['namereserved'] = 'Nome reservado'; -$messages['setexist'] = 'Xa existe o conxunto'; +$messages['setexist'] = 'Set already exists.'; $messages['nodata'] = 'É preciso seleccionar polo menos unha posición!'; -$messages['invaliddateformat'] = 'Formato de data ou parte dos datos inválidos'; + ?> diff --git a/plugins/managesieve/localization/he_IL.inc b/plugins/managesieve/localization/he_IL.inc index 7c2ff29ce..aa736ac87 100644 --- a/plugins/managesieve/localization/he_IL.inc +++ b/plugins/managesieve/localization/he_IL.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'מסננים'; $labels['managefilters'] = 'ניהול מסננים לדואר נכנס'; $labels['filtername'] = 'שם המסנן'; @@ -47,13 +49,13 @@ $labels['messagesendcopy'] = 'משלוח העתק מההודעה אל'; $labels['messagereply'] = 'מענה עם הודעה'; $labels['messagedelete'] = 'מחיקת הודעה'; $labels['messagediscard'] = 'ביטול ההודעה'; -$labels['messagekeep'] = 'שמירת הודעה בדואר נכנס'; $labels['messagesrules'] = 'עבור דואר נכנס:'; $labels['messagesactions'] = '...מבצע הפעולות הבאות:'; $labels['add'] = 'הוספה'; $labels['del'] = 'מחיקה'; $labels['sender'] = 'השולח'; $labels['recipient'] = 'הנמען'; +$labels['vacationaddresses'] = 'כתובות דוא"ל נוספות שלי (מופרדות ע"י פסיקים)'; $labels['vacationdays'] = 'באיזו תדירות ( בימים ) לשלוח הודעות:'; $labels['vacationinterval'] = 'באיזו תדירות לשלוח ההודעה'; $labels['days'] = 'ימים'; @@ -81,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'המספר גדול או שווה ל-'; $labels['countislessthan'] = 'המספר קטן מ-'; $labels['countislessthanequal'] = 'המספר קטן או שווה ל-'; $labels['countequals'] = 'המספר שווה ל-'; -$labels['countnotequals'] = 'המספר אינו שווה ל '; +$labels['countnotequals'] = 'המספר שונה מ-'; $labels['valueisgreaterthan'] = 'הערך גדול מ-'; $labels['valueisgreaterthanequal'] = 'הערך גדול או שווה ל-'; $labels['valueislessthan'] = 'הערך קטן מ-'; $labels['valueislessthanequal'] = 'הערך קטן או שווה ל-'; $labels['valueequals'] = 'הערך שווה ל-'; -$labels['valuenotequals'] = 'הערך אינו שוה ל '; +$labels['valuenotequals'] = 'הערך שונה מ-'; $labels['setflags'] = 'סימון דגלים להודעה'; $labels['addflags'] = 'הוספת דגלים להודעה'; $labels['removeflags'] = 'הסרת דגלים מההודעה'; @@ -119,22 +121,6 @@ $labels['filtercreate'] = 'יצירת מסנן'; $labels['usedata'] = 'שימוש במידע שלהלן ליצירת המסנן:'; $labels['nextstep'] = 'הצעד הבא'; $labels['...'] = '...'; -$labels['currdate'] = 'תאריך נוכחי'; -$labels['datetest'] = 'תאריך'; -$labels['dateheader'] = 'כותרת:'; -$labels['year'] = 'שנה'; -$labels['month'] = 'חודש'; -$labels['day'] = 'יום'; -$labels['date'] = 'תאריך (שנה-חודש-יום)'; -$labels['julian'] = 'תאריך (יוליאני)'; -$labels['hour'] = 'שעה'; -$labels['minute'] = 'דקה'; -$labels['second'] = 'שניה'; -$labels['time'] = 'זמן (שעה:דקה:שניה)'; -$labels['iso8601'] = 'תאריך (ISO8601)'; -$labels['std11'] = 'תאריך (RFC2822)'; -$labels['zone'] = 'איזור זמן'; -$labels['weekday'] = 'יום בשבוע (0-6)'; $labels['advancedopts'] = 'אפשרויות מתקדמות'; $labels['body'] = 'גוף ההודעה'; $labels['address'] = 'כתובת'; @@ -154,29 +140,38 @@ $labels['default'] = 'ברירת מחדל'; $labels['octet'] = 'strict (octet)'; $labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; $labels['asciinumeric'] = 'numeric (ascii-numeric)'; -$labels['index'] = 'אינדקס:'; -$labels['indexlast'] = 'בחזרה'; + +$messages = array(); $messages['filterunknownerror'] = 'שגיאת שרת בלתי מוכרת.'; $messages['filterconnerror'] = 'לא ניתן להתחבר לשרת.'; +$messages['filterdeleteerror'] = 'לא ניתן למחוק את המסנן. אירעה שגיאה בצד השרת.'; $messages['filterdeleted'] = 'המסנן נמחק בהצלחה.'; $messages['filtersaved'] = 'המסנן נשמר בהצלחה.'; +$messages['filtersaveerror'] = 'לא ניתן לשמור את המסנן. אירעה שגיאה בצד השרת.'; $messages['filterdeleteconfirm'] = 'האם אכן ברצונך למחוק את המסנן הנבחר?'; $messages['ruledeleteconfirm'] = 'האם אכן ברצונך למחוק את הכלל הנבחר?'; $messages['actiondeleteconfirm'] = 'האם אכן ברצונך למחוק את הפעולה הנבחרת?'; $messages['forbiddenchars'] = 'תווים אסורים בשדה.'; $messages['cannotbeempty'] = 'השדה לא יכול להישאר ריק.'; $messages['ruleexist'] = 'כבר קיים מסנן בשם כזה.'; +$messages['setactivateerror'] = 'לא ניתן להפעיל את ערכת המסננים הנבחרת. אירעה שגיאה בצד השרת.'; +$messages['setdeactivateerror'] = 'לא ניתן לנטרל את ערכת המסננים הנבחרת. אירעה שגיאה בצד השרת.'; +$messages['setdeleteerror'] = 'לא ניתן למחוק את ערכת המסננים הנבחרת. אירעה שגיאה בצד השרת.'; $messages['setactivated'] = 'ערכת המסננים הופעלה בהצלחה.'; $messages['setdeactivated'] = 'ערכת המסננים נוטרלה בהצלחה.'; $messages['setdeleted'] = 'ערכת המסננים נמחקה בהצלחה.'; $messages['setdeleteconfirm'] = 'האם אכן ברצונך למחוק את ערכת המסננים הנבחרת?'; +$messages['setcreateerror'] = 'לא ניתן ליצור ערכת מסננים. אירעה שגיאה בצד השרת.'; $messages['setcreated'] = 'ערכת המסננים נוצרה בהצלחה.'; +$messages['activateerror'] = 'לא ניתן להפעיל את המסננים הנבחרים. אירעה שגיאה בצד השרת.'; +$messages['deactivateerror'] = 'לא ניתן לנטרל את המסננים הנבחרים. אירעה שגיאה בצד השרת.'; $messages['deactivated'] = 'המסננים הופעלו בהצלחה.'; $messages['activated'] = 'המסננים נוטרלו בהצלחה.'; $messages['moved'] = 'המסנן הועבר בהצלחה.'; +$messages['moveerror'] = 'לא ניתן להעביר את המסנן הנבחר. אירעה שגיאה בצד השרת.'; $messages['nametoolong'] = 'השם ארוך מדי.'; $messages['namereserved'] = 'השם הזה שמור.'; $messages['setexist'] = 'הערכה כבר קיימת.'; $messages['nodata'] = 'חובה לבחור במיקום אחד לפחות!'; -$messages['invaliddateformat'] = 'תאריך לא חוקי אן פורמט לא תקין'; + ?> diff --git a/plugins/managesieve/localization/hr_HR.inc b/plugins/managesieve/localization/hr_HR.inc index eadbfcc0f..64b9bef62 100644 --- a/plugins/managesieve/localization/hr_HR.inc +++ b/plugins/managesieve/localization/hr_HR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filteri'; $labels['managefilters'] = 'Uredi filtere za pristiglu poštu'; $labels['filtername'] = 'Naziv filtera'; @@ -53,7 +55,11 @@ $labels['add'] = 'Dodaj'; $labels['del'] = 'Obriši'; $labels['sender'] = 'Pošiljatelj'; $labels['recipient'] = 'Primatelj'; +$labels['vacationaddresses'] = 'Dodatna lista primatelja (odvojenih zarezom):'; $labels['vacationdays'] = 'Koliko često slati poruku (u danima):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'Tijelo poruke (razlog odmora):'; $labels['vacationsubject'] = 'Naslov poruke:'; $labels['rulestop'] = 'Prekini izvođenje filtera'; @@ -77,11 +83,13 @@ $labels['countisgreaterthanequal'] = 'brojač je veći ili jednak od'; $labels['countislessthan'] = 'brojač je manji od'; $labels['countislessthanequal'] = 'brojač je manji ili jednak od'; $labels['countequals'] = 'brojač je jednak'; +$labels['countnotequals'] = 'brojač nije jednak'; $labels['valueisgreaterthan'] = 'vrijednost je veća od'; $labels['valueisgreaterthanequal'] = 'vrijednost je veća ili jednaka od'; $labels['valueislessthan'] = 'vrijednost je manja od'; $labels['valueislessthanequal'] = 'vrijednost je manja ili jednaka od'; $labels['valueequals'] = 'vrijednost je jednaka'; +$labels['valuenotequals'] = 'vrijednost nije jednaka'; $labels['setflags'] = 'Postavi oznake na poruku'; $labels['addflags'] = 'Dodaj oznake na poruku'; $labels['removeflags'] = 'Ukloni oznake sa poruke'; @@ -90,6 +98,25 @@ $labels['flagdeleted'] = 'Obrisana'; $labels['flaganswered'] = 'Odgovorena'; $labels['flagflagged'] = 'Označena'; $labels['flagdraft'] = 'Predložak'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; $labels['filtercreate'] = 'Stvori filter'; $labels['usedata'] = 'Koristi podatke za filter:'; $labels['nextstep'] = 'Idući korak'; @@ -113,26 +140,38 @@ $labels['default'] = 'preddefinirano'; $labels['octet'] = 'strogo (oktet)'; $labels['asciicasemap'] = 'neosjetljivo na veličinu slova (ascii-casemap)'; $labels['asciinumeric'] = 'numerički (ascii-numeric)'; + +$messages = array(); $messages['filterunknownerror'] = 'Nepoznata greška na poslužitelju'; $messages['filterconnerror'] = 'Nemoguće spajanje na poslužitelj (managesieve)'; +$messages['filterdeleteerror'] = 'Nemoguće brisanje filtera. Greška na poslužitelju'; $messages['filterdeleted'] = 'Filter je uspješno obrisan'; $messages['filtersaved'] = 'Filter je uspješno spremljen'; +$messages['filtersaveerror'] = 'Nemoguće spremiti filter. Greška na poslužitelju'; $messages['filterdeleteconfirm'] = 'Sigurno želite obrisati odabrani filter?'; $messages['ruledeleteconfirm'] = 'Jeste li sigurni da želite obrisati odabrana pravila?'; $messages['actiondeleteconfirm'] = 'Jeste li sigurni da želite obrisati odabrane akcije?'; $messages['forbiddenchars'] = 'Nedozvoljeni znakovi u polju'; $messages['cannotbeempty'] = 'Polje nesmije biti prazno'; $messages['ruleexist'] = 'Filter sa zadanim imenom već postoji.'; +$messages['setactivateerror'] = 'Nemoguće aktivirati odabranu grupu filtera. Greška na poslužitelju'; +$messages['setdeactivateerror'] = 'Nemoguće deaktivirati odabranu grupu filtera. Greška na poslužitelju'; +$messages['setdeleteerror'] = 'Nemoguće obrisati odabranu grupu filtera. Greška na poslužitelju'; $messages['setactivated'] = 'Grupa filtera je uspješno aktivirana'; $messages['setdeactivated'] = 'Grupa filtera je uspješno deaktivirana'; $messages['setdeleted'] = 'Grupa filtera je uspješno obrisana'; $messages['setdeleteconfirm'] = 'Jeste li sigurni da želite obrisati odabranu grupu filtera?'; +$messages['setcreateerror'] = 'Nemoguće stvoriti grupu filtera. Greška na poslužitelju'; $messages['setcreated'] = 'Grupa filtera je uspješno stvorena'; +$messages['activateerror'] = 'Nije moguće omogućiti odabrani filter(e). Greška poslužitelja.'; +$messages['deactivateerror'] = 'Nije moguće onemogučiti odabrane filter(e). Greška poslužitelja.'; $messages['deactivated'] = 'Filter(i) omogućen(i) uspješno.'; $messages['activated'] = 'Filter(i) onemogućen(i) uspješno.'; $messages['moved'] = 'Filter uspješno premješten.'; +$messages['moveerror'] = 'Nije moguće premjestiti odabrani filter. Greška poslužitelja.'; $messages['nametoolong'] = 'Nemoguće napraviti grupu filtera. Naziv je predugačak'; $messages['namereserved'] = 'Rezervirano ime.'; $messages['setexist'] = 'Skup već postoji.'; $messages['nodata'] = 'Barem jedan pozicija mora biti odabrana!'; + ?> diff --git a/plugins/managesieve/localization/hu_HU.inc b/plugins/managesieve/localization/hu_HU.inc index afab3f3a6..9d39ffac3 100644 --- a/plugins/managesieve/localization/hu_HU.inc +++ b/plugins/managesieve/localization/hu_HU.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Üzenetszűrők'; $labels['managefilters'] = 'Bejövő üzenetek szűrői'; $labels['filtername'] = 'Szűrő neve'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Másolat kűldése az üzenetből'; $labels['messagereply'] = 'Válaszüzenet küldése (autoreply)'; $labels['messagedelete'] = 'Üzenet törlése'; $labels['messagediscard'] = 'Válaszüzenet küldése, a levél törlése'; -$labels['messagekeep'] = 'Tartsa az üzenetet a beérkező leveleknél'; $labels['messagesrules'] = 'Az adott tulajdonságú beérkezett üzenetekre:'; $labels['messagesactions'] = '... a következő műveletek végrehajtása:'; $labels['add'] = 'Hozzáadás'; $labels['del'] = 'Törlés'; $labels['sender'] = 'Feladó'; $labels['recipient'] = 'Címzett'; -$labels['vacationaddr'] = 'További e-mail címeim:'; +$labels['vacationaddresses'] = 'További címzettek (vesszővel elválasztva):'; $labels['vacationdays'] = 'Válaszüzenet küldése ennyi naponként:'; $labels['vacationinterval'] = 'Milyen gyakran küld üzeneteket:'; $labels['days'] = 'napok'; @@ -82,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'a számláló nagyobb vagy egyenlő'; $labels['countislessthan'] = 'a számláló kissebb mint'; $labels['countislessthanequal'] = 'a számláló kissebb vagy egyenlő'; $labels['countequals'] = 'a számláló egyenlő'; -$labels['countnotequals'] = 'össze számolva nem egyenlő'; +$labels['countnotequals'] = 'a számláló nem egyenlő'; $labels['valueisgreaterthan'] = 'az érték nagyobb mint'; $labels['valueisgreaterthanequal'] = 'az érték nagyobb vagy egyenlő'; $labels['valueislessthan'] = 'az érték kisebb mint'; $labels['valueislessthanequal'] = 'az érték kisebb vagy egyenlő'; $labels['valueequals'] = 'az érték megegyzik'; -$labels['valuenotequals'] = 'az értéke nem azonos'; +$labels['valuenotequals'] = 'az érték nem egyzik meg'; $labels['setflags'] = 'Jelzők beállítása az üzeneten'; $labels['addflags'] = 'Jelző hozzáadása az üzenethez'; $labels['removeflags'] = 'Jelzők eltávolítása az üzenetből'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Szűrő létrehozása'; $labels['usedata'] = 'A következő adatok használata a szűrőben'; $labels['nextstep'] = 'Következő lépés'; $labels['...'] = '…'; -$labels['currdate'] = 'Mai dátum'; -$labels['datetest'] = 'Dátum'; -$labels['dateheader'] = 'fejléc:'; -$labels['year'] = 'év'; -$labels['month'] = 'hónap'; -$labels['day'] = 'nap'; -$labels['date'] = 'dátum (éééé-hh-nn)'; -$labels['julian'] = 'dátum ( julián)'; -$labels['hour'] = 'óra'; -$labels['minute'] = 'perc'; -$labels['second'] = 'másodperc'; -$labels['time'] = 'idő (óó:pp:ms)'; -$labels['iso8601'] = 'dátum (ISO8601)'; -$labels['std11'] = 'dátum (RFC2822)'; -$labels['zone'] = 'idő-zóna'; -$labels['weekday'] = 'hét napjai (0-6)'; $labels['advancedopts'] = 'Haladó beállítások'; $labels['body'] = 'Levéltörzs'; $labels['address'] = 'cím'; @@ -155,14 +140,14 @@ $labels['default'] = 'alapértelmezett'; $labels['octet'] = 'strict (octet)'; $labels['asciicasemap'] = 'kis-nagybetüre nem érzékeny (ascii-casemap)'; $labels['asciinumeric'] = 'számszerü (ascii-numeric)'; -$labels['index'] = 'index:'; -$labels['indexlast'] = 'visszafelé'; + +$messages = array(); $messages['filterunknownerror'] = 'Ismeretlen szerverhiba'; $messages['filterconnerror'] = 'Nem tudok a szűrőszerverhez kapcsolódni'; -$messages['filterdeleteerror'] = 'A szűrőt nem lehet törölni. Szerverhiba történt'; +$messages['filterdeleteerror'] = 'A szűrőt nem lehet törölni, szerverhiba történt'; $messages['filterdeleted'] = 'A szűrő törlése sikeres'; $messages['filtersaved'] = 'A szűrő mentése sikeres'; -$messages['filtersaveerror'] = 'A szűrő mentése sikertelen. Szerverhiba történt'; +$messages['filtersaveerror'] = 'A szűrő mentése sikertelen, szerverhiba történt'; $messages['filterdeleteconfirm'] = 'Biztosan törli ezt a szűrőt?'; $messages['ruledeleteconfirm'] = 'Biztosan törli ezt a szabályt?'; $messages['actiondeleteconfirm'] = 'Biztosan törli ezt a műveletet?'; @@ -188,5 +173,5 @@ $messages['nametoolong'] = 'Túll hosszu név'; $messages['namereserved'] = 'Nem használható (foglalt) név-'; $messages['setexist'] = 'A készlet már létezik.'; $messages['nodata'] = 'Legalább egyet ki kell választani.'; -$messages['invaliddateformat'] = 'hibás dátum formátum'; + ?> diff --git a/plugins/managesieve/localization/hy_AM.inc b/plugins/managesieve/localization/hy_AM.inc index 5a520f46c..908175f1d 100644 --- a/plugins/managesieve/localization/hy_AM.inc +++ b/plugins/managesieve/localization/hy_AM.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Զտիչներ'; $labels['managefilters'] = 'Կառավարել ստացվող նամակների զտիչները'; $labels['filtername'] = 'Զտիչի անուն'; @@ -53,7 +55,11 @@ $labels['add'] = 'Ավելացնել'; $labels['del'] = 'Ջնջել'; $labels['sender'] = 'Ուղարկող'; $labels['recipient'] = 'Ստացող'; +$labels['vacationaddresses'] = 'Իմ հավելյալ էլփոստի հասցեներ (բաժանված ստորակետներով).'; $labels['vacationdays'] = 'Ինչ հաճախությամբ ուղարկել հաղորդագրությունները (օրեր)`'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'Հաղորդագրության բովանդակություն (արձակուրդի պատճառ)`'; $labels['vacationsubject'] = 'Հաղորդագրության վերնագիր`'; $labels['rulestop'] = 'Դադարել պայմանների ստուգումը'; @@ -77,11 +83,13 @@ $labels['countisgreaterthanequal'] = 'քանակը գերազանցում է կ $labels['countislessthan'] = 'քանակը պակաս է'; $labels['countislessthanequal'] = 'քանակը պակաս է կամ հավասար է'; $labels['countequals'] = 'քանակը հավասար է'; +$labels['countnotequals'] = 'քանակը հավասար չէ'; $labels['valueisgreaterthan'] = 'արժեքը գերազանցում է'; $labels['valueisgreaterthanequal'] = 'արժեքը գերազանցում է կամ հավասար է'; $labels['valueislessthan'] = 'արժեքը պակաս է'; $labels['valueislessthanequal'] = 'արժեքը պակաս է կամ հավասար է'; $labels['valueequals'] = 'արժեքը հավասար է'; +$labels['valuenotequals'] = 'արժեքը հավասար չէ'; $labels['setflags'] = 'Հաղորդագրությունը նշել որպես'; $labels['addflags'] = 'Ավելացնել նշաններ հաղորդագրությանը'; $labels['removeflags'] = 'Հեռացնել նշաններ հաղորդագրությունից'; @@ -90,6 +98,25 @@ $labels['flagdeleted'] = 'Ջնջված'; $labels['flaganswered'] = 'Պատասխանված'; $labels['flagflagged'] = 'Նշված'; $labels['flagdraft'] = 'Սևագիր'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; $labels['filtercreate'] = 'Ստեղծել զտիչ'; $labels['usedata'] = 'Զտիչում օգտագործել հետևյալ տեղեկությունը.'; $labels['nextstep'] = 'Հաջորդ քայլ'; @@ -113,26 +140,38 @@ $labels['default'] = 'լռակյաց'; $labels['octet'] = 'անփոփոխ (օկտետ)'; $labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; $labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); $messages['filterunknownerror'] = 'Սերվերի անհայտ սխալ'; $messages['filterconnerror'] = 'Սերվերի հետ կապի խնդիր։'; +$messages['filterdeleteerror'] = 'Սերվերի սխալ, զտիչի ջնջումն ձախողվեց։'; $messages['filterdeleted'] = 'Զտիչը ջնջվեց։'; $messages['filtersaved'] = 'Զտիչը պահպանվեց։'; +$messages['filtersaveerror'] = 'Սերվերի սխալ, զտիչի պահպանման սխալ։'; $messages['filterdeleteconfirm'] = 'Դուք իսկապե՞ս ցանկանում եք ջնջել նշված զտիչը։'; $messages['ruledeleteconfirm'] = 'Դուք իսկապե՞ս ցանկանում եք ջնջել նշված պայմանը։'; $messages['actiondeleteconfirm'] = 'Դուք իսկապե՞ս ցանկանում եք ջնջել նշված գործողությունը։'; $messages['forbiddenchars'] = 'Դաշտում առկա են արգելված նիշեր։'; $messages['cannotbeempty'] = 'Դաշտը դատարկ չի կարող լինել։'; $messages['ruleexist'] = 'Տրված անունով զտիչ արդեն գոյություն ունի։'; +$messages['setactivateerror'] = 'Սերվերի սխալ։ Նշված զտիչների համալիրի միացման ձախողում։'; +$messages['setdeactivateerror'] = 'Սերվերի սխալ։ Նշված զտիչների համալիրի անջատման ձախողում։'; +$messages['setdeleteerror'] = 'Սերվերի սխալ։ Նշված զտիչների համալիրի ջնջման ձախողում։'; $messages['setactivated'] = 'Զտիչների համալիրը միացված է։'; $messages['setdeactivated'] = 'Զտիչների համալիրը անջատված է։'; $messages['setdeleted'] = 'Զտիչների համալիրը ջնջված է։'; $messages['setdeleteconfirm'] = 'Դուք իսկապե՞ս ցանկանում եք ջնջել նշված զտիչների համալիրը։'; +$messages['setcreateerror'] = 'Սերվերի սխալ։ Զտիչների համալիրի ստեղծումը ձախողվեց։'; $messages['setcreated'] = 'Զտիչների համալիրը ստեղծված է։'; +$messages['activateerror'] = 'Սերվերի սխալ։ Նշված զտիչի միացման ձախողում։'; +$messages['deactivateerror'] = 'Սերվերի սխալ։ Նշված զտիչի անջատման ձախողում։'; $messages['deactivated'] = 'Զտիչի միացված է։'; $messages['activated'] = 'Զտիչի անջատված է։'; $messages['moved'] = 'Զտիչի տեղափոխված է։'; +$messages['moveerror'] = 'Սերվերի սխալ։ Նշված զտիչի տեղափոխման ձախողում։'; $messages['nametoolong'] = 'Անունը չափազանց երկար է։'; $messages['namereserved'] = 'Անթույլատրելի անուն։'; $messages['setexist'] = 'Համալիրը արդեն գոյություն ունի։'; $messages['nodata'] = 'Պահանջվում է նշել գոնե մեկ դիրք։'; + ?> diff --git a/plugins/managesieve/localization/ia.inc b/plugins/managesieve/localization/ia.inc index c0177d055..45f6e5263 100644 --- a/plugins/managesieve/localization/ia.inc +++ b/plugins/managesieve/localization/ia.inc @@ -15,7 +15,163 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtros'; +$labels['managefilters'] = 'Manage incoming mail filters'; +$labels['filtername'] = 'Filter name'; +$labels['newfilter'] = 'New filter'; $labels['filteradd'] = 'Adder filtro'; $labels['filterdel'] = 'Deler filtro'; +$labels['moveup'] = 'Move up'; +$labels['movedown'] = 'Move down'; +$labels['filterallof'] = 'matching all of the following rules'; +$labels['filteranyof'] = 'matching any of the following rules'; +$labels['filterany'] = 'all messages'; +$labels['filtercontains'] = 'contains'; +$labels['filternotcontains'] = 'not contains'; +$labels['filteris'] = 'is equal to'; +$labels['filterisnot'] = 'is not equal to'; +$labels['filterexists'] = 'exists'; +$labels['filternotexists'] = 'not exists'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; +$labels['addrule'] = 'Add rule'; +$labels['delrule'] = 'Delete rule'; +$labels['messagemoveto'] = 'Move message to'; +$labels['messageredirect'] = 'Redirect message to'; +$labels['messagecopyto'] = 'Copy message to'; +$labels['messagesendcopy'] = 'Send message copy to'; +$labels['messagereply'] = 'Reply with message'; +$labels['messagedelete'] = 'Delete message'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = '...execute the following actions:'; +$labels['add'] = 'Add'; +$labels['del'] = 'Delete'; +$labels['sender'] = 'Sender'; +$labels['recipient'] = 'Recipient'; +$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; +$labels['vacationsubject'] = 'Message subject:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'active'; +$labels['none'] = 'none'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unknown server error.'; +$messages['filterconnerror'] = 'Unable to connect to server.'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occured.'; +$messages['filterdeleted'] = 'Filter deleted successfully.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; +$messages['cannotbeempty'] = 'Field cannot be empty.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Name too long.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + ?> diff --git a/plugins/managesieve/localization/id_ID.inc b/plugins/managesieve/localization/id_ID.inc index d4024491f..a30c2a0b0 100644 --- a/plugins/managesieve/localization/id_ID.inc +++ b/plugins/managesieve/localization/id_ID.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filter'; $labels['managefilters'] = 'Atur filter email masuk'; $labels['filtername'] = 'Nama filter'; @@ -53,7 +55,11 @@ $labels['add'] = 'Tambah'; $labels['del'] = 'Hapus'; $labels['sender'] = 'Pengirim'; $labels['recipient'] = 'Penerima'; +$labels['vacationaddresses'] = 'Alamat email tambahan saya (dipisahkan koma):'; $labels['vacationdays'] = 'Seberapa sering mengirim pesan (dalam hari):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'Isi pesan (alasan liburan):'; $labels['vacationsubject'] = 'Judul pesan:'; $labels['rulestop'] = 'Berhenti mengevaluasi aturan'; @@ -77,11 +83,13 @@ $labels['countisgreaterthanequal'] = 'penghitungan lebih besa dari atau sama den $labels['countislessthan'] = 'penghitungan lebih kecil dari'; $labels['countislessthanequal'] = 'penghitungan lebih kecil dari atau sama dengan'; $labels['countequals'] = 'penghitungan sama dengan'; +$labels['countnotequals'] = 'penghitungan tidak sama'; $labels['valueisgreaterthan'] = 'nilai lebih besar dari'; $labels['valueisgreaterthanequal'] = 'nilai lebih besar dari atau sama dengan'; $labels['valueislessthan'] = 'nilai lebih kecil dari'; $labels['valueislessthanequal'] = 'nilai lebih kecil dari atau sama dengan'; $labels['valueequals'] = 'nilai sama dengan'; +$labels['valuenotequals'] = 'nilai tidak sama dengan'; $labels['setflags'] = 'Atur tanda pada pesan'; $labels['addflags'] = 'Berikan tanda pada pesan'; $labels['removeflags'] = 'Cabut tanda dari pesan'; @@ -132,26 +140,38 @@ $labels['default'] = 'standar'; $labels['octet'] = 'ketat (oktet)'; $labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; $labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); $messages['filterunknownerror'] = 'Error pada server tak dikenali.'; $messages['filterconnerror'] = 'Tidak dapat menyambung ke server.'; +$messages['filterdeleteerror'] = 'Tidak bisa menghapus penyaringan. Terjadi error pada server.'; $messages['filterdeleted'] = 'Penyaringan berhasil dihapus.'; $messages['filtersaved'] = 'Penyaringan berhasil disimpan.'; +$messages['filtersaveerror'] = 'Tidak bisa menyimpan penyaringan. Terjadi error pada server.'; $messages['filterdeleteconfirm'] = 'Yakin untuk menghapus penyaringan terpilih?'; $messages['ruledeleteconfirm'] = 'Yakin untuk menghapus aturan terpilih?'; $messages['actiondeleteconfirm'] = 'Yakin untuk menghapus tindakan terpilih?'; $messages['forbiddenchars'] = 'Karakter terlarang pada isian.'; $messages['cannotbeempty'] = 'Isian tidak bisa kosong.'; $messages['ruleexist'] = 'Penyaringan dengan nama tersebut sudah ada.'; +$messages['setactivateerror'] = 'Tidak bisa menghidupkan kumpulan penyaringan terpilih. Terjadi error pada server.'; +$messages['setdeactivateerror'] = 'Tidak bisa mematikan kumpulan penyaringan terpilih. Terjadi error pada server.'; +$messages['setdeleteerror'] = 'Tidak bisa menghapus kumpulan penyaringan terpilih. Terjadi error pada server.'; $messages['setactivated'] = 'Kumpulan penyaringan berhasil dihidupkan.'; $messages['setdeactivated'] = 'Kumpulan penyaringan berhasil dimatikan.'; $messages['setdeleted'] = 'Kumpulan penyaringan berhasil dihapus.'; $messages['setdeleteconfirm'] = 'Yakin ingin menghapus kumpulan penyaringan terpilih?'; +$messages['setcreateerror'] = 'Tidak bisa membuat kumpulan penyaringan. Terjadi galat pada server.'; $messages['setcreated'] = 'Kumpulan penyaringan berhasul dibuat.'; +$messages['activateerror'] = 'Tidak bisa menghidupkan penyaringan terpilih. terjadi galat pada server.'; +$messages['deactivateerror'] = 'Tidak bisa mematikan penyaringan terpilih. Terjadi galat pada server.'; $messages['deactivated'] = 'Berhasil menghidupkan penyaringan.'; $messages['activated'] = 'Berhasil mematikan penyaringan.'; $messages['moved'] = 'Berhasil memindahkan penyaringan.'; +$messages['moveerror'] = 'Tidak bisa memindahkan penyaringan terpilih. Terjadi error pada server.'; $messages['nametoolong'] = 'Nama terlalu panjang.'; $messages['namereserved'] = 'Nama sudah terpesan.'; $messages['setexist'] = 'Kumpulan sudah ada.'; $messages['nodata'] = 'Setidaknya satu posisi harus dipilih!'; + ?> diff --git a/plugins/managesieve/localization/it_IT.inc b/plugins/managesieve/localization/it_IT.inc index b7fc970e5..0ac4f293a 100644 --- a/plugins/managesieve/localization/it_IT.inc +++ b/plugins/managesieve/localization/it_IT.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtri'; $labels['managefilters'] = 'Gestione dei filtri per la posta in arrivo'; $labels['filtername'] = 'Nome del filtro'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Invia copia a'; $labels['messagereply'] = 'Rispondi con il messaggio'; $labels['messagedelete'] = 'Elimina il messaggio'; $labels['messagediscard'] = 'Rifiuta con messaggio'; -$labels['messagekeep'] = 'Mantieni il messaggio in Posta ricevuta'; $labels['messagesrules'] = 'Per la posta in arrivo'; $labels['messagesactions'] = '...esegui le seguenti azioni:'; $labels['add'] = 'Aggiungi'; $labels['del'] = 'Elimina'; $labels['sender'] = 'Mittente'; $labels['recipient'] = 'Destinatario'; -$labels['vacationaddr'] = 'Account email aggiuntivo(i):'; +$labels['vacationaddresses'] = 'Lista di indirizzi e-mail di destinatari addizionali (separati da virgola):'; $labels['vacationdays'] = 'Ogni quanti giorni ribadire il messaggio allo stesso mittente'; $labels['vacationinterval'] = 'Ogni quanto tempo inviare i messaggi:'; $labels['days'] = 'giorni'; @@ -82,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'somma maggiore uguale a'; $labels['countislessthan'] = 'somma minore di'; $labels['countislessthanequal'] = 'somma minore o uguale a'; $labels['countequals'] = 'somma uguale a'; -$labels['countnotequals'] = 'il conteggio non è uguale a'; +$labels['countnotequals'] = 'somma diversa da'; $labels['valueisgreaterthan'] = 'valore maggiore di'; $labels['valueisgreaterthanequal'] = 'valore maggiore uguale a'; $labels['valueislessthan'] = 'valore minore di'; $labels['valueislessthanequal'] = 'valore minore uguale di'; $labels['valueequals'] = 'valore uguale a'; -$labels['valuenotequals'] = 'il valore non è uguale a'; +$labels['valuenotequals'] = 'valore diverso da'; $labels['setflags'] = 'Contrassegna il messaggio'; $labels['addflags'] = 'aggiungi flag al messaggio'; $labels['removeflags'] = 'togli flag dal messaggio'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Crea filtro'; $labels['usedata'] = 'utilizza i seguenti dati nel filtro'; $labels['nextstep'] = 'passo successivo'; $labels['...'] = '...'; -$labels['currdate'] = 'Data attuale'; -$labels['datetest'] = 'Data'; -$labels['dateheader'] = 'intestazione:'; -$labels['year'] = 'anno'; -$labels['month'] = 'mese'; -$labels['day'] = 'giorno'; -$labels['date'] = 'data (aaaa-mm-gg)'; -$labels['julian'] = 'data (Giuliana)'; -$labels['hour'] = 'ora'; -$labels['minute'] = 'minuto'; -$labels['second'] = 'secondo'; -$labels['time'] = 'tempo (hh:mm:ss)'; -$labels['iso8601'] = 'data (ISO8601)'; -$labels['std11'] = 'data (RFC2822)'; -$labels['zone'] = 'fuso orario'; -$labels['weekday'] = 'giorno della settimana (0-6)'; $labels['advancedopts'] = 'Opzioni avanzate'; $labels['body'] = 'Corpo'; $labels['address'] = 'indirizzo'; @@ -155,38 +140,38 @@ $labels['default'] = 'predefinito'; $labels['octet'] = 'strict (octet)'; $labels['asciicasemap'] = 'non differenziare maiuscole/minuscole (ascii-casemap)'; $labels['asciinumeric'] = 'numerico'; -$labels['index'] = 'indice:'; -$labels['indexlast'] = 'indietro'; + +$messages = array(); $messages['filterunknownerror'] = 'Errore sconosciuto del server'; $messages['filterconnerror'] = 'Collegamento al server managesieve fallito'; -$messages['filterdeleteerror'] = 'Eliminazione del filtro fallita. Si è verificato un errore nel server.'; +$messages['filterdeleteerror'] = 'Eliminazione del filtro fallita. Si è verificato un errore nel server'; $messages['filterdeleted'] = 'Filtro eliminato con successo'; $messages['filtersaved'] = 'Filtro salvato con successo'; -$messages['filtersaveerror'] = 'Salvataggio del filtro fallito. Si è verificato un errore nel server.'; +$messages['filtersaveerror'] = 'Salvataggio del filtro fallito. Si è verificato un errore nel server'; $messages['filterdeleteconfirm'] = 'Vuoi veramente eliminare il filtro selezionato?'; $messages['ruledeleteconfirm'] = 'Sei sicuro di voler eliminare la regola selezionata?'; $messages['actiondeleteconfirm'] = 'Sei sicuro di voler eliminare l\'azione selezionata?'; $messages['forbiddenchars'] = 'Caratteri non consentiti nel campo'; $messages['cannotbeempty'] = 'Il campo non può essere vuoto'; $messages['ruleexist'] = 'Esiste già un filtro con questo nome'; -$messages['setactivateerror'] = 'Impossibile attivare il filtro. Errore del server.'; -$messages['setdeactivateerror'] = 'Impossibile disattivare i filtri selezionati. Errore del server.'; -$messages['setdeleteerror'] = 'Impossibile cancellare i filtri selezionati. Errore del server.'; +$messages['setactivateerror'] = 'Impossibile attivare il filtro. Errore del server'; +$messages['setdeactivateerror'] = 'Impossibile disattivare il filtro. Errore del server'; +$messages['setdeleteerror'] = 'Impossibile cancellare il filtro. Errore del server'; $messages['setactivated'] = 'Filtro attivato'; $messages['setdeactivated'] = 'Filtro disattivato'; $messages['setdeleted'] = 'Filtro cancellato'; $messages['setdeleteconfirm'] = 'Sei sicuro di voler cancellare il gruppo di filtri'; -$messages['setcreateerror'] = 'Impossibile creare il gruppo di filtri. Errore del server.'; +$messages['setcreateerror'] = 'Impossibile creare il gruppo. Errore del server'; $messages['setcreated'] = 'Gruppo di filtri creato'; -$messages['activateerror'] = 'Impossibile abilitare i filtri selzionati. Errore del server.'; -$messages['deactivateerror'] = 'impossibile disabilitare i filtri selezionati. Errore del server.'; +$messages['activateerror'] = 'impossibile selezionare il filtro (server error)'; +$messages['deactivateerror'] = 'impossibile disabilitare il filtro (server error)'; $messages['deactivated'] = 'filtro abilitato'; $messages['activated'] = 'filtro disabilitato'; $messages['moved'] = 'filtro spostato'; -$messages['moveerror'] = 'impossibile spostare il filtro selezionato. Errore del server.'; +$messages['moveerror'] = 'impossibile spostare il filtro (server error)'; $messages['nametoolong'] = 'Impossibile creare il gruppo: Nome troppo lungo'; $messages['namereserved'] = 'nome riservato'; $messages['setexist'] = 'Il gruppo esiste già'; $messages['nodata'] = 'selezionare almeno una posizione'; -$messages['invaliddateformat'] = 'Formato della data non valido'; + ?> diff --git a/plugins/managesieve/localization/ja_JP.inc b/plugins/managesieve/localization/ja_JP.inc index 1fff7e333..0cd4f44b9 100644 --- a/plugins/managesieve/localization/ja_JP.inc +++ b/plugins/managesieve/localization/ja_JP.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'フィルター'; $labels['managefilters'] = '受信メールのフィルターを管理'; $labels['filtername'] = 'フィルター名'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = '次にメッセージのコピーを送信'; $labels['messagereply'] = 'メッセージを返信'; $labels['messagedelete'] = 'メッセージを削除'; $labels['messagediscard'] = 'メッセージを破棄'; -$labels['messagekeep'] = 'Keep message in Inbox'; $labels['messagesrules'] = '受信したメールの処理:'; $labels['messagesactions'] = '以下の操作を実行:'; $labels['add'] = '追加'; $labels['del'] = '削除'; $labels['sender'] = '送信者'; $labels['recipient'] = '宛先'; -$labels['vacationaddr'] = 'My additional e-mail address(es):'; +$labels['vacationaddresses'] = '電子メールの宛先の(コンマ区切った)追加のリスト:'; $labels['vacationdays'] = 'メッセージを(1日に)送信する頻度:'; $labels['vacationinterval'] = 'メッセージを送信する頻度:'; $labels['days'] = '日'; @@ -82,13 +83,13 @@ $labels['countisgreaterthanequal'] = '以上の回数'; $labels['countislessthan'] = '未満の回数'; $labels['countislessthanequal'] = '以下の回数'; $labels['countequals'] = '次と等しい回数'; -$labels['countnotequals'] = 'count is not equal to'; +$labels['countnotequals'] = '次と等しくない回数'; $labels['valueisgreaterthan'] = 'より大きい値'; $labels['valueisgreaterthanequal'] = '以上の値'; $labels['valueislessthan'] = '未満の値'; $labels['valueislessthanequal'] = '以下の値'; $labels['valueequals'] = '次と等しい値'; -$labels['valuenotequals'] = 'value is not equal to'; +$labels['valuenotequals'] = '次と等しくない値'; $labels['setflags'] = 'メッセージにフラグを設定'; $labels['addflags'] = 'メッセージにフラグを追加'; $labels['removeflags'] = 'メッセージからフラグを削除'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'フィルターを作成'; $labels['usedata'] = 'フィルターで次のデータを使用'; $labels['nextstep'] = '次のステップ'; $labels['...'] = '...'; -$labels['currdate'] = 'Current date'; -$labels['datetest'] = 'Date'; -$labels['dateheader'] = 'header:'; -$labels['year'] = 'year'; -$labels['month'] = 'month'; -$labels['day'] = 'day'; -$labels['date'] = 'date (yyyy-mm-dd)'; -$labels['julian'] = 'date (julian)'; -$labels['hour'] = 'hour'; -$labels['minute'] = 'minute'; -$labels['second'] = 'second'; -$labels['time'] = 'time (hh:mm:ss)'; -$labels['iso8601'] = 'date (ISO8601)'; -$labels['std11'] = 'date (RFC2822)'; -$labels['zone'] = 'time-zone'; -$labels['weekday'] = 'weekday (0-6)'; $labels['advancedopts'] = '高度なオプション'; $labels['body'] = '本文'; $labels['address'] = 'メールアドレス'; @@ -155,38 +140,38 @@ $labels['default'] = '初期値'; $labels['octet'] = '厳密(オクテット)'; $labels['asciicasemap'] = '大文字小文字を区別しない(ascii-casemap)'; $labels['asciinumeric'] = '数値(ascii-numeric)'; -$labels['index'] = 'index:'; -$labels['indexlast'] = 'backwards'; + +$messages = array(); $messages['filterunknownerror'] = '不明なサーバーのエラーです。'; $messages['filterconnerror'] = 'サーバに接続できません。'; -$messages['filterdeleteerror'] = 'フィルターを削除できません。サーバーでエラーが発生しました。'; +$messages['filterdeleteerror'] = 'フィルターを削除できませんでした。サーバーでエラーが発生しました。'; $messages['filterdeleted'] = 'フィルターを削除しました。'; $messages['filtersaved'] = 'フィルターを保存しました。'; -$messages['filtersaveerror'] = 'フィルターの保存できません。サーバーでエラーが発生しました。'; +$messages['filtersaveerror'] = 'フィルターの保存できませんでした。サーバーでエラーが発生しました。'; $messages['filterdeleteconfirm'] = '本当に選択したフィルターを削除しますか?'; $messages['ruledeleteconfirm'] = '本当に選択したルールを削除しますか?'; $messages['actiondeleteconfirm'] = '本当に選択した操作を削除しますか?'; $messages['forbiddenchars'] = '項目に禁止している文字が含まれています。'; $messages['cannotbeempty'] = '項目は空欄にできません。'; $messages['ruleexist'] = '指定した名前のフィルターが既に存在します。'; -$messages['setactivateerror'] = '選択したフィルターセットを有効にできません。サーバーでエラーが発生しました。'; -$messages['setdeactivateerror'] = '選択したフィルターセットを無効にできません。サーバーでエラーが発生しました。'; -$messages['setdeleteerror'] = '選択したフィルターセットを削除できません。サーバーでエラーが発生しました。'; +$messages['setactivateerror'] = '選択したフィルターセットを有効にできませんでした。サーバーでエラーが発生しました。'; +$messages['setdeactivateerror'] = '選択したフィルターセットを無効にできませんでした。サーバーでエラーが発生しました。'; +$messages['setdeleteerror'] = '選択したフィルターセットを削除できませんでした。サーバーでエラーが発生しました。'; $messages['setactivated'] = 'フィルターセットを有効にしました。'; $messages['setdeactivated'] = 'フィルターセットを無効にしました。'; $messages['setdeleted'] = 'フィルターセットを削除しました。'; $messages['setdeleteconfirm'] = '本当に選択したフィルターセットを削除しますか?'; -$messages['setcreateerror'] = 'フィルターセットを作成できません。サーバーでエラーが発生しました。'; +$messages['setcreateerror'] = 'フィルターセットを作成できませんでした。サーバーでエラーが発生しました。'; $messages['setcreated'] = 'フィルターセットを作成しました。'; -$messages['activateerror'] = '選択したフィルターを有効にできません。サーバーでエラーが発生しました。'; -$messages['deactivateerror'] = '選択したフィルターを無効にできません。サーバーでエラーが発生しました。'; +$messages['activateerror'] = '選択したフィルターを有効にできませんでした。サーバーでエラーが発生しました。'; +$messages['deactivateerror'] = '選択したフィルターを無効にできませんでした。サーバーでエラーが発生しました。'; $messages['deactivated'] = 'フィルターを有効にしました。'; $messages['activated'] = 'フィルターを無効にしました。'; $messages['moved'] = 'フィルターを移動しました。'; -$messages['moveerror'] = 'Unable to move selected filter. Server error occurred.'; +$messages['moveerror'] = '選択したフィルターを移動できませんでした。サーバーでエラーが発生しました。'; $messages['nametoolong'] = '名前が長すぎます。'; $messages['namereserved'] = '予約されている名前です。'; $messages['setexist'] = 'フィルターセットが既に存在します。'; $messages['nodata'] = '少なくとも1つの場所を選択しなければなりません!'; -$messages['invaliddateformat'] = '無効な日付または日付部分の書式'; + ?> diff --git a/plugins/managesieve/localization/ko_KR.inc b/plugins/managesieve/localization/ko_KR.inc index b552fa9ac..5ab4fc220 100644 --- a/plugins/managesieve/localization/ko_KR.inc +++ b/plugins/managesieve/localization/ko_KR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = '필터'; $labels['managefilters'] = '수신 메일 필터 관리'; $labels['filtername'] = '필터명'; @@ -47,17 +49,17 @@ $labels['messagesendcopy'] = '메시지의 사본을 다음 위치로 보냄'; $labels['messagereply'] = '다음 메시지로 회신'; $labels['messagedelete'] = '메시지를 삭제'; $labels['messagediscard'] = '다음 메시지와 함께 폐기'; -$labels['messagekeep'] = '메시지를 받은 편지함에 보관'; $labels['messagesrules'] = '해당 받은 메일:'; $labels['messagesactions'] = '...다음 동작을 실행:'; $labels['add'] = '추가'; $labels['del'] = '삭제'; $labels['sender'] = '발신인'; $labels['recipient'] = '수신인'; +$labels['vacationaddresses'] = '나의 추가 이메일 주소 (쉼표로 구분됨):'; $labels['vacationdays'] = '메시지 발신 주기 (일):'; -$labels['vacationinterval'] = '메시지 발신 주기:'; -$labels['days'] = '일'; -$labels['seconds'] = '초'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = '메시지 본문 (휴가 사유):'; $labels['vacationsubject'] = '메시지 제목:'; $labels['rulestop'] = '규칙 평가를 중단'; @@ -81,7 +83,7 @@ $labels['countisgreaterthanequal'] = '개수가 다음보다 크거나 같음'; $labels['countislessthan'] = '개수가 다음보다 작음'; $labels['countislessthanequal'] = '개수가 작거나 같음'; $labels['countequals'] = '개수가 다음과 같음'; -$labels['countnotequals'] = '갯수가 다음과 같지 않음'; +$labels['countnotequals'] = '개수가 다음과 같지 않음'; $labels['valueisgreaterthan'] = '값이 다음보다 큼'; $labels['valueisgreaterthanequal'] = '값이 다음보다 크거나 같음'; $labels['valueislessthan'] = '값이 다음보다 작음'; @@ -119,22 +121,6 @@ $labels['filtercreate'] = '필터 생성'; $labels['usedata'] = '필터에서 다음 데이터를 사용:'; $labels['nextstep'] = '다음 단계'; $labels['...'] = '...'; -$labels['currdate'] = '오늘 날짜'; -$labels['datetest'] = '날짜'; -$labels['dateheader'] = '머리글:'; -$labels['year'] = '년'; -$labels['month'] = '월'; -$labels['day'] = '일'; -$labels['date'] = '날짜 (yyyy-mm-dd)'; -$labels['julian'] = '날짜 (율리우스력)'; -$labels['hour'] = '시'; -$labels['minute'] = '분'; -$labels['second'] = '초'; -$labels['time'] = '시간 (hh:mm:ss)'; -$labels['iso8601'] = '날짜 (ISO8601)'; -$labels['std11'] = '날짜 (RFC2822)'; -$labels['zone'] = '시간대'; -$labels['weekday'] = '주중 (0-6)'; $labels['advancedopts'] = '고급 설정'; $labels['body'] = '본문'; $labels['address'] = '주소'; @@ -154,29 +140,38 @@ $labels['default'] = '기본'; $labels['octet'] = '엄격 (8진수)'; $labels['asciicasemap'] = '대/소문자 구분 (ascii-casemap)'; $labels['asciinumeric'] = '숫자 (ascii-numeric)'; -$labels['index'] = '색인:'; -$labels['indexlast'] = '역방향'; + +$messages = array(); $messages['filterunknownerror'] = '알수 없는 서버 오류.'; $messages['filterconnerror'] = '서버에 연결할 수 없음.'; +$messages['filterdeleteerror'] = '필터를 삭제할 수 없음. 서버 오류가 발생함.'; $messages['filterdeleted'] = '필터가 성공적으로 삭제됨.'; $messages['filtersaved'] = '필터가 성공적으로 저장됨.'; +$messages['filtersaveerror'] = '필터를 저장할 수 없음. 서버 오류가 발생함.'; $messages['filterdeleteconfirm'] = '정말로 선택한 필터를 삭제하시겠습니까?'; $messages['ruledeleteconfirm'] = '정말로 선택한 규칙을 삭제하시겠습니까?'; $messages['actiondeleteconfirm'] = '정말로 선택한 동작을 삭제하시겠습니까?'; $messages['forbiddenchars'] = '필드에 금지된 문자가 존재함.'; $messages['cannotbeempty'] = '필드는 비워둘 수 없음.'; $messages['ruleexist'] = '지정한 이름의 필터가 이미 존재함.'; +$messages['setactivateerror'] = '선택한 필터 세트를 활성화 할 수 없음. 서버 오류가 발생함.'; +$messages['setdeactivateerror'] = '선택한 필터 세트를 비활성화 할 수 없음. 서버 오류가 발생함.'; +$messages['setdeleteerror'] = '선택한 필터 세트를 삭제할 수 없음. 서버 오류가 발생함.'; $messages['setactivated'] = '필터 세트가 성공적으로 활성화됨.'; $messages['setdeactivated'] = '필터 세트가 성공적으로 비활성화됨.'; $messages['setdeleted'] = '필터 세트가 성공적으로 삭제됨.'; $messages['setdeleteconfirm'] = '정말로 선택한 필터 세트를 삭제하시겠습니까?'; +$messages['setcreateerror'] = '필터 세트를 생성할 수 없음. 서버 오류가 발생함.'; $messages['setcreated'] = '필터 세트가 성공적으로 생성됨.'; +$messages['activateerror'] = '선택한 필터를 활성화할 수 없음. 서버 오류가 발생함.'; +$messages['deactivateerror'] = '선택한 필터를 비활성화할 수 없음. 서버 오류가 발생함.'; $messages['deactivated'] = '필터가 성공적으로 비활성화됨.'; $messages['activated'] = '필터가 성공적으로 활성화됨.'; $messages['moved'] = '필터가 성공적으로 이동함.'; +$messages['moveerror'] = '선택한 필터를 이동할 수 없음. 서버 오류가 발생함.'; $messages['nametoolong'] = '이름이 너무 김.'; $messages['namereserved'] = '예약된 이름.'; $messages['setexist'] = '세트가 이미 존재함.'; $messages['nodata'] = '최소 하나의 위치가 선택되어야 합니다!'; -$messages['invaliddateformat'] = '유효하지 않은 날짜 또는 날짜 일부 형식'; + ?> diff --git a/plugins/managesieve/localization/lt_LT.inc b/plugins/managesieve/localization/lt_LT.inc index 5dc81afc6..8fafb6d8d 100644 --- a/plugins/managesieve/localization/lt_LT.inc +++ b/plugins/managesieve/localization/lt_LT.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtrai'; $labels['managefilters'] = 'Tvarkyti gaunamų laiškų filtrus'; $labels['filtername'] = 'Filtro pavadinimas'; @@ -46,13 +48,14 @@ $labels['messagecopyto'] = 'Kopijuoti laišką į'; $labels['messagesendcopy'] = 'Nusiųsti laiško kopiją'; $labels['messagereply'] = 'Atsakyti laišku'; $labels['messagedelete'] = 'Pašalinti laišką'; +$labels['messagediscard'] = 'Discard with message'; $labels['messagesrules'] = 'Gaunamiems laiškams:'; $labels['messagesactions'] = '…vykdyti šiuos veiksmus:'; $labels['add'] = 'Pridėti'; $labels['del'] = 'Pašalinti'; $labels['sender'] = 'Siuntėjas'; $labels['recipient'] = 'Gavėjas'; -$labels['vacationaddr'] = 'Papildomas gavėjų adresų sąrašas:'; +$labels['vacationaddresses'] = 'Papildomas gavėjų adresų sąrašas (skirti kableliais):'; $labels['vacationdays'] = 'Kaip dažnai išsiųsti laiškus (dienomis):'; $labels['vacationinterval'] = 'Kaip dažnai siųsti laiškus:'; $labels['days'] = 'd.'; @@ -80,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'kiekis didesnis arba lygus'; $labels['countislessthan'] = 'kiekis mažesnis nei'; $labels['countislessthanequal'] = 'kiekis mažesnis arba lygus'; $labels['countequals'] = 'kiekis lygus'; -$labels['countnotequals'] = 'kiekis nėra lygus'; +$labels['countnotequals'] = 'kiekis nelygus'; $labels['valueisgreaterthan'] = 'reikšmė didesnė nei'; $labels['valueisgreaterthanequal'] = 'reikšmė didesnė arba lygi'; $labels['valueislessthan'] = 'reikšmė mažesnė nei'; $labels['valueislessthanequal'] = 'reikšmė mažesnė arba lygi'; $labels['valueequals'] = 'reikšmė lygi'; -$labels['valuenotequals'] = 'reikšmė nėra lygi'; +$labels['valuenotequals'] = 'reikšmė nelygi'; $labels['setflags'] = 'Nustatyti laiško požymius'; $labels['addflags'] = 'Pridėti laiško požymius'; $labels['removeflags'] = 'Pašalinti laiško požymius'; @@ -118,22 +121,6 @@ $labels['filtercreate'] = 'Kurti filtrą'; $labels['usedata'] = 'Filtrui naudoti šiuos duomenis:'; $labels['nextstep'] = 'Kitas žingsnis'; $labels['...'] = '…'; -$labels['currdate'] = 'Šiandienos data'; -$labels['datetest'] = 'Data'; -$labels['dateheader'] = 'antraštė:'; -$labels['year'] = 'metai'; -$labels['month'] = 'mėnuo'; -$labels['day'] = 'diena'; -$labels['date'] = 'data (yyyy-mm-dd)'; -$labels['julian'] = 'data (Julijaus)'; -$labels['hour'] = 'valanda'; -$labels['minute'] = 'minutė'; -$labels['second'] = 'sekundė'; -$labels['time'] = 'laikas (hh:mm:ss)'; -$labels['iso8601'] = 'data (ISO8601)'; -$labels['std11'] = 'data (RFC2822)'; -$labels['zone'] = 'laiko-zona'; -$labels['weekday'] = 'savaitės diena (0-6)'; $labels['advancedopts'] = 'Papildomi nustatymai'; $labels['body'] = 'Laiško tekstas'; $labels['address'] = 'adresas'; @@ -153,29 +140,38 @@ $labels['default'] = 'numatytasis'; $labels['octet'] = 'griežtas („octet“)'; $labels['asciicasemap'] = 'nepaisantis raidžių registro („ascii-casemap“)'; $labels['asciinumeric'] = 'skaitinis („ascii-numeric“)'; -$labels['index'] = 'turinys:'; -$labels['indexlast'] = 'atbulai'; + +$messages = array(); $messages['filterunknownerror'] = 'Nežinoma serverio klaida.'; $messages['filterconnerror'] = 'Neįmanoma užmegzti ryšio su serveriu.'; +$messages['filterdeleteerror'] = 'Filtro panaikinti neįmanoma. Įvyko serverio klaida.'; $messages['filterdeleted'] = 'Filtras panaikintas sėkmingai.'; $messages['filtersaved'] = 'Filtras sėkmingai išsaugotas'; +$messages['filtersaveerror'] = 'Filtro išsaugoti neįmanoma. Įvyko serverio klaida.'; $messages['filterdeleteconfirm'] = 'Ar jūs esate įsitikinęs, jog norite panaikinti pasirinktus filtrus(-ą)?'; $messages['ruledeleteconfirm'] = 'Ar jūs įsitikinęs, jog norite panaikinti pasirinktą taisyklę?'; $messages['actiondeleteconfirm'] = 'Ar jūs įsitikinęs, jog norite panaikinti pasirinktą veiksmą?'; $messages['forbiddenchars'] = 'Laukelyje yra draudžiamų simbolių.'; $messages['cannotbeempty'] = 'Laukelis negali būti tuščias'; $messages['ruleexist'] = 'Filtras tokiu vardu jau yra.'; +$messages['setactivateerror'] = 'Neįmanoma aktyvuoti pasirinkto filtrų rinkinio. Įvyko serverio klaida.'; +$messages['setdeactivateerror'] = 'Neįmanoma deaktyvuoti pasirinkto filtrų rinkinio. Įvyko serverio klaida.'; +$messages['setdeleteerror'] = 'Neįmanoma panaikinti pasirinkto filtrų rinkinio. Įvyko serverio klaida.'; $messages['setactivated'] = 'Filtrų rinkinys sėkmingai aktyvuotas.'; $messages['setdeactivated'] = 'Filtrų rinkinys sėkmingai deaktyvuotas.'; $messages['setdeleted'] = 'Filtrų rinkinys sėkmingai panaikintas.'; $messages['setdeleteconfirm'] = 'Ar jūs esate tikri, jog norite panaikinti pasirinktą filtrų rinkinį?'; +$messages['setcreateerror'] = 'Neįmanoma sukurti filtrų rinkinio. Įvyko serverio klaida.'; $messages['setcreated'] = 'Filtrų rinkinys sėkmingai sukurtas.'; +$messages['activateerror'] = 'Neįmanoma įjungti pasirinktų filtrų(-o). Įvyko serverio klaida.'; +$messages['deactivateerror'] = 'Neįmanoma išjungti pasirinktų filtrų(-o). Įvyko serverio klaida.'; $messages['deactivated'] = 'Filtras(-as) sėkmingai išjungti.'; $messages['activated'] = 'Filtras(-as) sėkmingai įjungti.'; $messages['moved'] = 'Filtrai perkelti sėkmingai.'; +$messages['moveerror'] = 'Pasirinkto filtro perkelti neįmanoma. Įvyko serverio klaida.'; $messages['nametoolong'] = 'Vardas per ilgas.'; $messages['namereserved'] = 'Rezervuotas vardas.'; $messages['setexist'] = 'Rinkinys jau yra sukurtas.'; $messages['nodata'] = 'Būtina pasirinkti bent vieną poziciją!'; -$messages['invaliddateformat'] = 'Neteisingas datos ar jos dalies formatas'; + ?> diff --git a/plugins/managesieve/localization/lv_LV.inc b/plugins/managesieve/localization/lv_LV.inc index 111f3b4f6..f1f85c2e0 100644 --- a/plugins/managesieve/localization/lv_LV.inc +++ b/plugins/managesieve/localization/lv_LV.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Vēstuļu filtri'; $labels['managefilters'] = 'Pārvaldīt ienākošo vēstuļu filtrus'; $labels['filtername'] = 'Filtra nosaukums'; @@ -28,7 +30,7 @@ $labels['filteranyof'] = 'jāatbilst jebkuram no sekojošajiem nosacījumiem'; $labels['filterany'] = 'visām vēstulēm'; $labels['filtercontains'] = 'satur'; $labels['filternotcontains'] = 'nesatur'; -$labels['filteris'] = 'ir vienāds ar'; +$labels['filteris'] = 'vienāds ar'; $labels['filterisnot'] = 'nav vienāds ar'; $labels['filterexists'] = 'eksistē'; $labels['filternotexists'] = 'neeksistē'; @@ -44,21 +46,20 @@ $labels['messagemoveto'] = 'Pārvietot vēstuli uz'; $labels['messageredirect'] = 'Pāradresēt vēstuli uz'; $labels['messagecopyto'] = 'Kopēt vēstuli uz'; $labels['messagesendcopy'] = 'Pārsūtīt vēstules kopiju uz'; -$labels['messagereply'] = 'Atbildēt ar vēstuli'; +$labels['messagereply'] = 'Atbildēt ar'; $labels['messagedelete'] = 'Dzēst vēstuli'; $labels['messagediscard'] = 'Dzēst vēstuli un atbildēt'; -$labels['messagekeep'] = 'Paturēt ziņu Iesūtnē'; $labels['messagesrules'] = 'Ienākošajām vēstulēm:'; -$labels['messagesactions'] = '...izpildīt sekojošās darbības:'; +$labels['messagesactions'] = 'Izpildīt sekojošās darbības:'; $labels['add'] = 'Pievienot'; $labels['del'] = 'Dzēst'; $labels['sender'] = 'Sūtītājs'; $labels['recipient'] = 'Saņēmējs'; -$labels['vacationaddr'] = 'Mana(s) papildus e-pasta adrese(s):'; -$labels['vacationdays'] = 'Cik bieži sūtī ziņojumus (dienās):'; -$labels['vacationinterval'] = 'Cik bieži sūtīt vēstules:'; -$labels['days'] = 'dienas'; -$labels['seconds'] = 'sekundes'; +$labels['vacationaddresses'] = 'Ievadiet vienu vai vairākus e-pastu(s), atdalot tos komatu:'; +$labels['vacationdays'] = 'Cik dienu laikā vienam un tam pašam sūtītājam neatbildēt atkārtoti (piem., 7):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'Atvaļinājuma paziņojuma teksts:'; $labels['vacationsubject'] = 'Vēstules tēma:'; $labels['rulestop'] = 'Apturēt nosacījumu pārbaudi'; @@ -77,16 +78,16 @@ $labels['none'] = 'nav'; $labels['fromset'] = 'no kopas'; $labels['fromfile'] = 'no faila'; $labels['filterdisabled'] = 'Filtrs atslēgts'; -$labels['countisgreaterthan'] = 'skaits ir lielāks kā'; -$labels['countisgreaterthanequal'] = 'skaits ir vienāds vai lielāks kā'; -$labels['countislessthan'] = 'skaits ir mazāks kā'; -$labels['countislessthanequal'] = 'skaits ir vienāds vai mazāks kā'; +$labels['countisgreaterthan'] = 'skaits ir lielāks nekā'; +$labels['countisgreaterthanequal'] = 'skaits ir vienāds vai lielāks nekā'; +$labels['countislessthan'] = 'skaits ir mazāks nekā'; +$labels['countislessthanequal'] = 'skaits ir vienāds vai mazāks nekā'; $labels['countequals'] = 'skaits ir vienāds ar'; $labels['countnotequals'] = 'skaits nav vienāds ar'; -$labels['valueisgreaterthan'] = 'vērtība ir lielāka kā'; -$labels['valueisgreaterthanequal'] = 'vērtība ir vienāda vai lielāka kā'; -$labels['valueislessthan'] = 'vērtība ir mazāka kā'; -$labels['valueislessthanequal'] = 'vērtība ir vienāda vai mazāka kā'; +$labels['valueisgreaterthan'] = 'vērtība ir lielāka nekā'; +$labels['valueisgreaterthanequal'] = 'vērtība ir vienāda vai lielāka nekā'; +$labels['valueislessthan'] = 'vērtība ir mazāka nekā'; +$labels['valueislessthanequal'] = 'vērtība ir vienāda vai mazāka nekā'; $labels['valueequals'] = 'vērtība ir vienāda ar'; $labels['valuenotequals'] = 'vērtība nav vienāda ar'; $labels['setflags'] = 'Marķēt vēstuli'; @@ -95,98 +96,82 @@ $labels['removeflags'] = 'Noņemt vēstulei marķierus'; $labels['flagread'] = 'Lasītas'; $labels['flagdeleted'] = 'Dzēstas'; $labels['flaganswered'] = 'Atbildētas'; -$labels['flagflagged'] = 'Marķētas'; +$labels['flagflagged'] = 'Iezīmētās'; $labels['flagdraft'] = 'Melnraksts'; -$labels['setvariable'] = 'Iestatīt mainīgo'; -$labels['setvarname'] = 'Mainīgā nosaukums:'; -$labels['setvarvalue'] = 'Mainīgā vērtība:'; -$labels['setvarmodifiers'] = 'Modifikatori:'; -$labels['varlower'] = 'mazie burti'; -$labels['varupper'] = 'lielie burti'; -$labels['varlowerfirst'] = 'pirmais burts kā mazais burts'; -$labels['varupperfirst'] = 'pirmais burts kā lielais burts'; -$labels['varquotewildcard'] = '"citēt" speciālās rakstzīmes'; -$labels['varlength'] = 'garums'; -$labels['notify'] = 'Sūtīt paziņojumus'; -$labels['notifyaddress'] = 'Uz e-pasta adresi:'; -$labels['notifybody'] = 'Paziņojuma teksts:'; -$labels['notifysubject'] = 'Paziņojuma tēma:'; -$labels['notifyfrom'] = 'Paziņojuma sūtītājs:'; -$labels['notifyimportance'] = 'Svarīgums:'; -$labels['notifyimportancelow'] = 'zems'; -$labels['notifyimportancenormal'] = 'parasts'; -$labels['notifyimportancehigh'] = 'augsts'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; $labels['filtercreate'] = 'Izveidot filtru'; $labels['usedata'] = 'Filtrā izmantot sekojošus datus'; $labels['nextstep'] = 'Nākamais solis'; $labels['...'] = '...'; -$labels['currdate'] = 'Pašreizējais datums'; -$labels['datetest'] = 'Datums'; -$labels['dateheader'] = 'galvene:'; -$labels['year'] = 'gads'; -$labels['month'] = 'mēnesis'; -$labels['day'] = 'diena'; -$labels['date'] = 'datums (gggg-mm-dd)'; -$labels['julian'] = 'datums (Jūlija kalendārs)'; -$labels['hour'] = 'stunda'; -$labels['minute'] = 'minūte'; -$labels['second'] = 'sekunde'; -$labels['time'] = 'laiks (hh:mm:ss)'; -$labels['iso8601'] = 'datums (ISO8601)'; -$labels['std11'] = 'datums (RFC2822)'; -$labels['zone'] = 'laikajosla'; -$labels['weekday'] = 'nedēļas diena (0-6)'; -$labels['advancedopts'] = 'Paplašinātie iestatījumi'; +$labels['advancedopts'] = 'Paplašināti iestatījumi'; $labels['body'] = 'Pamatteksts'; $labels['address'] = 'adresāts'; $labels['envelope'] = 'aploksne'; $labels['modifier'] = 'modifikators:'; $labels['text'] = 'teksts'; -$labels['undecoded'] = 'neatkodēts (neapstrādāti dati)'; +$labels['undecoded'] = 'neatkodēts (jēldati)'; $labels['contenttype'] = 'satura tips'; $labels['modtype'] = 'tips:'; $labels['allparts'] = 'viss'; $labels['domain'] = 'domēns'; -$labels['localpart'] = 'lokālā daļa'; +$labels['localpart'] = 'vietējā daļa'; $labels['user'] = 'lietotājs'; $labels['detail'] = 'detaļas'; -$labels['comparator'] = 'salīdzinātājs'; -$labels['default'] = 'noklusētā vērtība'; -$labels['octet'] = 'precīzs (oktets)'; +$labels['comparator'] = 'komparators'; +$labels['default'] = 'noklusējums'; +$labels['octet'] = 'strikti (oktets)'; $labels['asciicasemap'] = 'reģistrnejutīgs (ascii tabula)'; $labels['asciinumeric'] = 'skaitļu (ascii skaitļu)'; -$labels['index'] = 'indekss:'; -$labels['indexlast'] = 'atpakaļ'; -$messages['filterunknownerror'] = 'Nezināma servera kļūda.'; -$messages['filterconnerror'] = 'Neizdevās pieslēgties ManageSieve serverim.'; -$messages['filterdeleteerror'] = 'Neizdevās izdzēst filtru - atgadījās servera iekšējā kļūda.'; -$messages['filterdeleted'] = 'Filtrs veiksmīgi izdzēsts.'; -$messages['filtersaved'] = 'Filtrs veiksmīgi saglabāts.'; -$messages['filtersaveerror'] = 'Neizdevās saglabāt filtru - atgadījās servera iekšējā kļūda.'; -$messages['filterdeleteconfirm'] = 'Vai Jūs tiešām vēlaties dzēst atzīmēto filtru?'; -$messages['ruledeleteconfirm'] = 'Vai Jūs tiešām vēlaties dzēst atzīmēto nosacījumu?'; -$messages['actiondeleteconfirm'] = 'Vai Jūs tiešām vēlaties dzēst atzīmēto darbību?'; -$messages['forbiddenchars'] = 'Lauks satur aizliegtus simbolus.'; -$messages['cannotbeempty'] = 'Lauks nedrīkst būt tukšs.'; -$messages['ruleexist'] = 'Filtrs ar tādu nosaukumu jau pastāv.'; -$messages['setactivateerror'] = 'Neizdevās aktivizēt atzīmēto filtru kopu - atgadījās servera iekšējā kļūda.'; -$messages['setdeactivateerror'] = 'Neizdevās deaktivizēt atzīmēto filtru kopu - atgadījās servera iekšējā kļūda.'; -$messages['setdeleteerror'] = 'Neizdevās izdzēst atzīmēto filtru kopu - atgadījās servera ieksējā kļūda.'; -$messages['setactivated'] = 'Filtru kopa veiksmīgi aktivizēta.'; -$messages['setdeactivated'] = 'Filtru kopa veiksmīgi deaktivizēta.'; -$messages['setdeleted'] = 'Filtru kopa veiksmīgi izdzēsta.'; -$messages['setdeleteconfirm'] = 'Vai tiešām Jūs vēlaties dzēst atzīmēto filtru kopu?'; -$messages['setcreateerror'] = 'Neizdevās izveidot filtru kopu - atgadījās servera iekšējā kļūda.'; -$messages['setcreated'] = 'Filtru kopa veiksmīgi izveidota.'; -$messages['activateerror'] = 'Nav iespējams ieslēgt izvēlēto(s) filtru(s) - atgadījās servera iekšējā kļūda.'; -$messages['deactivateerror'] = 'Nav iespējams atslēgt izvēlēto(s) filtru(s) - atgadījās servera iekšējā kļūda.'; -$messages['deactivated'] = 'Filtrs(i) veiksmīgi atslēgts(i).'; -$messages['activated'] = 'Filtrs(i) veiksmīgi ieslēgts(i).'; -$messages['moved'] = 'Filtrs veiksmīgi pārvietots.'; -$messages['moveerror'] = 'Nav iespējams pārvietot izvēlēto filtru - atgadījās servera iekšējā kļūda.'; -$messages['nametoolong'] = 'Neizdevās izveidot filtru kopu. Pārāk garš kopas nosaukums.'; -$messages['namereserved'] = 'Rezervētais nosaukums.'; -$messages['setexist'] = 'Kopa jau eksistē.'; -$messages['nodata'] = 'Ir jābūt atzīmētai vismaz vienai pozīcijai!'; -$messages['invaliddateformat'] = 'Nederīgs datums vai datuma formāts'; + +$messages = array(); +$messages['filterunknownerror'] = 'Nezināma servera kļūda'; +$messages['filterconnerror'] = 'Neizdevās pieslēgties ManageSieve serverim'; +$messages['filterdeleteerror'] = 'Neizdevās dzēst filtru. Servera iekšējā kļūda'; +$messages['filterdeleted'] = 'Filtrs veiksmīgi izdzēsts'; +$messages['filtersaved'] = 'Filtrs veiksmīgi saglabāts'; +$messages['filtersaveerror'] = 'Neizdevās saglabāt filtru. Servera iekšējā kļūda'; +$messages['filterdeleteconfirm'] = 'Vai tiešām vēlaties dzēst atzīmēto filtru?'; +$messages['ruledeleteconfirm'] = 'Vai tiešām vēlaties dzēst atzīmēto nosacījumu?'; +$messages['actiondeleteconfirm'] = 'Vai tiešām vēlaties dzēst atzīmēto darbību?'; +$messages['forbiddenchars'] = 'Lauks satur aizliegtus simbolus'; +$messages['cannotbeempty'] = 'Lauks nedrīkst būt tukšs'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Neizdevās aktivizēt atzīmēto filtru kopu. Servera iekšējā kļūda'; +$messages['setdeactivateerror'] = 'Neizdevās deaktivizēt atzīmēto filtru kopu. Servera iekšējā kļūda'; +$messages['setdeleteerror'] = 'Neizdevās izdzēst atzīmēto filtru kopu. Servera iekšējā kļūda'; +$messages['setactivated'] = 'Filtru kopa veiksmīgi aktivizēta'; +$messages['setdeactivated'] = 'Filtru kopa veiksmīgi deaktivizēta'; +$messages['setdeleted'] = 'Filtru kopa veiksmīgi izdzēsta'; +$messages['setdeleteconfirm'] = 'Vai tiešām vēlaties dzēst atzīmēto filtru kopu?'; +$messages['setcreateerror'] = 'Neizdevās izveidot filtru kopu. Servera iekšējā kļūda'; +$messages['setcreated'] = 'Filtru kopa veiksmīgi izveidota'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Neizdevās izveidot filtru kopu. Pārāk garš kopas nosaukums'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + ?> diff --git a/plugins/managesieve/localization/ml_IN.inc b/plugins/managesieve/localization/ml_IN.inc index 4dac39417..67cd6829f 100644 --- a/plugins/managesieve/localization/ml_IN.inc +++ b/plugins/managesieve/localization/ml_IN.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'അരിപ്പകള്‍'; $labels['managefilters'] = 'അകത്തോട്ടുള്ള ഇമെയില്‍ അരിപ്പകള്‍ ക്രമീകരിക്കുക'; $labels['filtername'] = 'അരിപ്പയുടെ പേര്'; @@ -53,7 +55,11 @@ $labels['add'] = 'ചേര്‍ക്കു'; $labels['del'] = 'നീക്കം ചെയ്യുക'; $labels['sender'] = 'അയചയാള്‍'; $labels['recipient'] = 'സ്വീകര്‍ത്താവ്'; +$labels['vacationaddresses'] = 'സ്വീകര്‍ത്താവിന്റെ ഇമെയില്‍ വിലാസങ്ങളുടെ അധികമുള്ള പട്ടിക (കോമയിട്ട് തിരിച്ച)'; $labels['vacationdays'] = 'എത്ര ഭിവസം കൂടുമ്പോള്‍ സന്ദേശം അയക്കണം:'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'സന്ദേശത്തിന്റെ ഉള്ളടക്കം (അവധിയുടെ കാരണം):'; $labels['vacationsubject'] = 'സന്ദേശത്തിന്റെ വിഷയം:'; $labels['rulestop'] = 'നിയമങ്ങള്‍ വിലയിരുത്തുന്നത് നിര്‍ത്തുക'; @@ -77,11 +83,13 @@ $labels['countisgreaterthanequal'] = 'എണ്ണം ഇതിനെക്ക $labels['countislessthan'] = 'എണ്ണം ഇതിനെക്കാള്‍ കുറവ്'; $labels['countislessthanequal'] = 'എണ്ണം ഇതിനെക്കാള്‍ കൂറവ് ഇല്ലെങ്കില്‍ സമം'; $labels['countequals'] = 'എണ്ണം ഇതിനോട് സമം'; +$labels['countnotequals'] = 'എണ്ണം ഇതിനോട് സമമല്ല'; $labels['valueisgreaterthan'] = 'മൂല്യം ഇതിനെക്കാള്‍ കുടുതല്‍'; $labels['valueisgreaterthanequal'] = 'മുല്യം ഇതിനെക്കാള്‍ കൂടുതല്‍ ഇല്ലെങ്കില്‍ സമം'; $labels['valueislessthan'] = 'മൂല്യം ഇതിനെക്കാള്‍ കുറവ്'; $labels['valueislessthanequal'] = 'മൂല്യം ഇതിനെക്കാള്‍ കൂറവ് ഇല്ലെങ്കില്‍ തുല്യം'; $labels['valueequals'] = 'മൂല്യം ഇതിനോട് സമം'; +$labels['valuenotequals'] = 'മൂല്യം ഇതിനോട് സമമല്ല'; $labels['setflags'] = 'സന്ദേശത്തില്‍ അടയാളമിടുക'; $labels['addflags'] = 'സന്ദേശത്തില്‍ അടയാളം ചേര്‍ക്കുക'; $labels['removeflags'] = 'സന്ദേശത്തില്‍ നിന്നും അടയാളം മാറ്റുക'; @@ -90,6 +98,25 @@ $labels['flagdeleted'] = 'നീക്കം ചെയ്തവ'; $labels['flaganswered'] = 'മറുപടി നല്‍കിയവ'; $labels['flagflagged'] = 'അടയാളപ്പെടുത്തിയവ'; $labels['flagdraft'] = 'കരട്'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; $labels['filtercreate'] = 'അരിപ്പ ഉണ്ടാക്കുക'; $labels['usedata'] = 'ഈ വിവരങ്ങള്‍ അരിപ്പയില്‍ ഉപയോഗിക്കുക:'; $labels['nextstep'] = 'അടുത്ത പടി'; @@ -113,26 +140,38 @@ $labels['default'] = 'സഹജമായ'; $labels['octet'] = 'കര്‍ശനം (octet)'; $labels['asciicasemap'] = 'വലിയ-ചെറിയക്ഷരങ്ങള്‍ തമ്മില്‍ വ്യത്യാസമില്ലാത്ത (ascii-casemap)'; $labels['asciinumeric'] = 'സംഖ്യകള്‍ (ascii-numeric)'; + +$messages = array(); $messages['filterunknownerror'] = 'അജ്ഞാതമായ സെര്‍വ്വര്‍ പിശക്.'; $messages['filterconnerror'] = 'സെര്‍വ്വറുമായി ബന്ധപ്പെടാന്‍ സാധിക്കുന്നില്ല.'; +$messages['filterdeleteerror'] = 'അരിപ്പ മായ്ക്കാന്‍ സാധിച്ചില്ല. സേവകനില്‍ കുഴപ്പം.'; $messages['filterdeleted'] = 'അരിപ്പ വിജകരമായി മായ്ച്ചു.'; $messages['filtersaved'] = 'അരിപ്പ വിജകരമായി സൂക്ഷിച്ചു.'; +$messages['filtersaveerror'] = 'അരിപ്പ സൂക്ഷിക്കാന്‍ സാധിച്ചില്ല. സേവകനില്‍ കുഴപ്പം.'; $messages['filterdeleteconfirm'] = 'തെരഞ്ഞെടുത്ത അരിപ്പ നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?'; $messages['ruledeleteconfirm'] = 'തെരഞ്ഞെടുത്ത നിയമം നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?'; $messages['actiondeleteconfirm'] = 'തെരഞ്ഞെടുത്ത പ്രവര്‍ത്തി നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?'; $messages['forbiddenchars'] = 'ഫില്‍ഡില്‍ സാധുവല്ലാത്ത അക്ഷരങ്ങള്‍.'; $messages['cannotbeempty'] = 'ഫീല്‍ഡ് ശൂന്യമാകാന്‍ പാടില്ല.'; $messages['ruleexist'] = 'ഈ പേരിലുള്ള അരിപ്പ ഇപ്പോള്‍ തന്നെ ഉണ്ട്.'; +$messages['setactivateerror'] = 'അരിപ്പയുടെ കൂട്ടത്തെ പ്രവര്‍ത്തനസജ്ജമാക്കാന്‍ സാധിച്ചില്ല. സേവകനില്‍ കുഴപ്പം.'; +$messages['setdeactivateerror'] = 'അരിപ്പയുടെ കൂട്ടത്തെ പ്രവര്‍ത്തനരഹിതമാക്കാന്‍ സാധിച്ചില്ല. സേവകനില്‍ കുഴപ്പം.'; +$messages['setdeleteerror'] = 'തെരഞ്ഞെടുത്ത അരിപ്പയുടെ കൂട്ടത്തെ മായ്ക്കാന്‍ സാധിച്ചില്ല. സേവകനില്‍ കുഴപ്പം.'; $messages['setactivated'] = 'അരിപ്പകളുടെ കൂട്ടത്തെ വിജയകരമായി പ്രവര്‍ത്തനസജ്ജമാക്കി.'; $messages['setdeactivated'] = 'അരിപ്പകളുടെ കൂട്ടത്തെ വിജയകരമായി പ്രവര്‍ത്തനരഹിതമാക്കി.'; $messages['setdeleted'] = 'അരിപ്പകളുടെ കൂട്ടത്തെ വിജയകരമായി മായ്ച്ചു.'; $messages['setdeleteconfirm'] = 'തെരഞ്ഞെടുത്ത അരിപ്പകളുടെ കൂട്ടത്തെ നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?'; +$messages['setcreateerror'] = 'അരിപ്പയുടെ കൂട്ടത്തെ നിര്‍മ്മിക്കാന്‍ സാധിച്ചില്ല. സേവകനില്‍ കുഴപ്പം.'; $messages['setcreated'] = 'അരിപ്പകളുടെ കൂട്ടത്തെ വിജയകരമായി നിര്‍മ്മിച്ചു.'; +$messages['activateerror'] = 'അരിപ്പ (കള്‍) പ്രവര്‍ത്തനസജ്ജം ആക്കാന്‍ സാധിച്ചില്ല. സേവകനില്‍ കുഴപ്പം!'; +$messages['deactivateerror'] = 'അരിപ്പ (കള്‍) നിര്‍വീര്യം ആക്കാന്‍ സാധിച്ചില്ല. സേവകനില്‍ കുഴപ്പം!'; $messages['deactivated'] = 'അരിപ്പ വിജകരമായി പ്രവര്‍ത്തനസജ്ജമാക്കി.'; $messages['activated'] = 'അരിപ്പകള്‍ നിര്‍വീര്യം ആക്കപ്പെട്ടിരിക്കുന്നു'; $messages['moved'] = 'അരിപ്പ വിജകരമായി മാറ്റി.'; +$messages['moveerror'] = 'തെരഞ്ഞെടുത്ത അരിപ്പ മാറ്റാന്‍ സാധിച്ചില്ല. സേവകനില്‍ കുഴപ്പം.'; $messages['nametoolong'] = 'പേരിന് നീളം കൂടുതല്‍.'; $messages['namereserved'] = 'നീക്കിവെച്ച വാക്ക്.'; $messages['setexist'] = 'കൂട്ടം നേരത്തെ തന്നെ ഉണ്ട്.'; $messages['nodata'] = 'ഒരു സ്ഥാനമെങ്കിലും തെരഞ്ഞെടുക്കണം!'; + ?> diff --git a/plugins/managesieve/localization/mr_IN.inc b/plugins/managesieve/localization/mr_IN.inc index 88edb92e4..3339737e0 100644 --- a/plugins/managesieve/localization/mr_IN.inc +++ b/plugins/managesieve/localization/mr_IN.inc @@ -15,20 +15,163 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'चाळण्या'; +$labels['managefilters'] = 'Manage incoming mail filters'; +$labels['filtername'] = 'Filter name'; +$labels['newfilter'] = 'New filter'; +$labels['filteradd'] = 'Add filter'; +$labels['filterdel'] = 'Delete filter'; $labels['moveup'] = 'वर हलवा'; $labels['movedown'] = 'खाली हलवा'; $labels['filterallof'] = 'खालील सर्व नियम जुळत आहेत'; +$labels['filteranyof'] = 'matching any of the following rules'; $labels['filterany'] = 'सर्व संदेश'; +$labels['filtercontains'] = 'contains'; +$labels['filternotcontains'] = 'not contains'; $labels['filteris'] = 'च्या बरोबर आहे'; $labels['filterisnot'] = 'च्या बरोबर नाही'; $labels['filterexists'] = 'अस्तित्वात आहे'; $labels['filternotexists'] = 'अस्तित्वात नाही'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; $labels['filterunder'] = 'खाली'; $labels['filterover'] = 'वरती'; +$labels['addrule'] = 'Add rule'; +$labels['delrule'] = 'Delete rule'; +$labels['messagemoveto'] = 'Move message to'; +$labels['messageredirect'] = 'Redirect message to'; +$labels['messagecopyto'] = 'Copy message to'; +$labels['messagesendcopy'] = 'Send message copy to'; +$labels['messagereply'] = 'Reply with message'; $labels['messagedelete'] = 'संदेश काढून टाका'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; $labels['messagesactions'] = 'खालील कृती आमलात आणा :'; $labels['add'] = 'समावेश करा'; $labels['del'] = 'नष्ट करा'; $labels['sender'] = 'प्रेषक'; +$labels['recipient'] = 'Recipient'; +$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; +$labels['vacationsubject'] = 'Message subject:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'active'; +$labels['none'] = 'none'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unknown server error.'; +$messages['filterconnerror'] = 'Unable to connect to server.'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occured.'; +$messages['filterdeleted'] = 'Filter deleted successfully.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; +$messages['cannotbeempty'] = 'Field cannot be empty.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Name too long.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + ?> diff --git a/plugins/managesieve/localization/nb_NO.inc b/plugins/managesieve/localization/nb_NO.inc index e0a34483f..c2c17b23c 100644 --- a/plugins/managesieve/localization/nb_NO.inc +++ b/plugins/managesieve/localization/nb_NO.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtre'; $labels['managefilters'] = 'Rediger filter for innkommende e-post'; $labels['filtername'] = 'Filternavn'; @@ -53,6 +55,7 @@ $labels['add'] = 'Legg til'; $labels['del'] = 'Slett'; $labels['sender'] = 'Avsender'; $labels['recipient'] = 'Mottaker'; +$labels['vacationaddresses'] = 'Liste med mottakeradresser (adskilt med komma):'; $labels['vacationdays'] = 'Periode mellom meldinger (i dager):'; $labels['vacationinterval'] = 'Periode mellom meldinger:'; $labels['days'] = 'dager'; @@ -80,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'antall er flere enn eller lik'; $labels['countislessthan'] = 'antall er færre enn'; $labels['countislessthanequal'] = 'antall er færre enn eller lik'; $labels['countequals'] = 'antall er lik'; -$labels['countnotequals'] = 'tallet er ikke det samme som'; +$labels['countnotequals'] = 'antall er ulik'; $labels['valueisgreaterthan'] = 'verdien er høyrere enn'; $labels['valueisgreaterthanequal'] = 'verdien er høyere eller lik'; $labels['valueislessthan'] = 'verdien er lavere enn'; $labels['valueislessthanequal'] = 'verdien er lavere eller lik'; $labels['valueequals'] = 'verdien er lik'; -$labels['valuenotequals'] = 'verdien er ikke den samme som'; +$labels['valuenotequals'] = 'verdien er ulik'; $labels['setflags'] = 'Sett meldingsflagg'; $labels['addflags'] = 'Legg til flagg på meldingen'; $labels['removeflags'] = 'Fjern flagg fra meldingen'; @@ -118,22 +121,6 @@ $labels['filtercreate'] = 'Opprett filter'; $labels['usedata'] = 'Bruk følgende data i filteret:'; $labels['nextstep'] = 'Neste steg'; $labels['...'] = '…'; -$labels['currdate'] = 'Nåværende dato'; -$labels['datetest'] = 'Dato'; -$labels['dateheader'] = 'header:'; -$labels['year'] = 'år'; -$labels['month'] = 'måned'; -$labels['day'] = 'dag'; -$labels['date'] = 'dato (yyyy-mm-dd)'; -$labels['julian'] = 'dato (juliansk)'; -$labels['hour'] = 'time'; -$labels['minute'] = 'minutt'; -$labels['second'] = 'sekund'; -$labels['time'] = 'tid (hh:mm:ss)'; -$labels['iso8601'] = 'dato (ISO8601)'; -$labels['std11'] = 'dato (RFC2822)'; -$labels['zone'] = 'tidssone'; -$labels['weekday'] = 'ukedag (0-6)'; $labels['advancedopts'] = 'Avanserte alternativer'; $labels['body'] = 'Meldingstekst'; $labels['address'] = 'adresse'; @@ -153,29 +140,38 @@ $labels['default'] = 'standard'; $labels['octet'] = 'streng (oktett)'; $labels['asciicasemap'] = 'ikke skill store og små bokstaver (ascii-casemap)'; $labels['asciinumeric'] = 'numerisk (ascii-numeric)'; -$labels['index'] = 'index:'; -$labels['indexlast'] = 'baklengs'; + +$messages = array(); $messages['filterunknownerror'] = 'Ukjent problem med tjener.'; $messages['filterconnerror'] = 'Kunne ikke koble til tjeneren.'; +$messages['filterdeleteerror'] = 'Kunne ikke slette filter. Det dukket opp en feil på tjeneren.'; $messages['filterdeleted'] = 'Filteret er blitt slettet.'; $messages['filtersaved'] = 'Filteret er blitt lagret.'; +$messages['filtersaveerror'] = 'Kunne ikke lagre filteret. Det dukket opp en feil på tjeneren.'; $messages['filterdeleteconfirm'] = 'Vil du virkelig slette det valgte filteret?'; $messages['ruledeleteconfirm'] = 'Er du sikker på at du vil slette valgte regel?'; $messages['actiondeleteconfirm'] = 'Er du sikker på at du vil slette valgte hendelse?'; $messages['forbiddenchars'] = 'Ugyldige tegn i felt.'; $messages['cannotbeempty'] = 'Feltet kan ikke stå tomt.'; $messages['ruleexist'] = 'Det finnes allerede et filter med dette navnet.'; +$messages['setactivateerror'] = 'Kunne ikke aktivere det valgte filtersettet. Det oppsto en tjenerfeil.'; +$messages['setdeactivateerror'] = 'Kunne ikke deaktivere det valgte filtersettet. Det oppsto en tjenerfeil.'; +$messages['setdeleteerror'] = 'Kunne ikke slette det valgte filtersettet. Det oppsto en tjenerfeil.'; $messages['setactivated'] = 'Filtersett aktivert.'; $messages['setdeactivated'] = 'Filtersett deaktivert.'; $messages['setdeleted'] = 'Filtersett slettet.'; $messages['setdeleteconfirm'] = 'Er du sikker på at du vil slette det valgte filtersettet?'; +$messages['setcreateerror'] = 'Kunne ikke opprette filtersettet. Det oppsto en tjenerfeil.'; $messages['setcreated'] = 'Filtersett opprettet.'; +$messages['activateerror'] = 'Kunne ikke skru på valgte filter. Det oppsto en tjenerfeil.'; +$messages['deactivateerror'] = 'Kunne ikke skru av valgte filter. Det oppsto en tjenerfeil.'; $messages['deactivated'] = 'Filter skrudd på.'; $messages['activated'] = 'Filter skrudd av.'; $messages['moved'] = 'Filter ble flyttet.'; +$messages['moveerror'] = 'Kunne ikke flytte valgte filter. Det oppsto en tjenerfeil.'; $messages['nametoolong'] = 'Navnet er for langt.'; $messages['namereserved'] = 'Navnet er reservert.'; $messages['setexist'] = 'Settet eksisterer allerede.'; $messages['nodata'] = 'Du må velge minst én posisjon!'; -$messages['invaliddateformat'] = 'Ugyldig dato eller datoformat'; + ?> diff --git a/plugins/managesieve/localization/nl_NL.inc b/plugins/managesieve/localization/nl_NL.inc index 97a4e1685..1fd6eee4e 100644 --- a/plugins/managesieve/localization/nl_NL.inc +++ b/plugins/managesieve/localization/nl_NL.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filters'; $labels['managefilters'] = 'Beheer filters voor inkomende e-mail'; $labels['filtername'] = 'Filternaam'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Verstuur een kopie naar'; $labels['messagereply'] = 'Beantwoord met bericht'; $labels['messagedelete'] = 'Verwijder bericht'; $labels['messagediscard'] = 'Met bericht negeren'; -$labels['messagekeep'] = 'Bewaar bericht in Postvak IN'; $labels['messagesrules'] = 'Voor binnenkomende e-mail:'; $labels['messagesactions'] = '...voer de volgende acties uit'; $labels['add'] = 'Toevoegen'; $labels['del'] = 'Verwijderen'; $labels['sender'] = 'Afzender'; $labels['recipient'] = 'Ontvanger'; -$labels['vacationaddr'] = 'Mijn extra e-mailadres(sen):'; +$labels['vacationaddresses'] = 'Aanvullende lijst van geadresseerden (gescheiden met komma\'s):'; $labels['vacationdays'] = 'Hoe vaak moet een bericht verstuurd worden (in dagen):'; $labels['vacationinterval'] = 'Hoe vaak moet een bericht verstuurd worden:'; $labels['days'] = 'dagen'; @@ -63,18 +64,18 @@ $labels['vacationreason'] = 'Bericht (vakantiereden):'; $labels['vacationsubject'] = 'Onderwerp:'; $labels['rulestop'] = 'Stop met regels uitvoeren'; $labels['enable'] = 'In-/uitschakelen'; -$labels['filterset'] = 'Filterset'; -$labels['filtersets'] = 'Filtersets'; -$labels['filtersetadd'] = 'Nieuwe filterset'; -$labels['filtersetdel'] = 'Verwijder huidige filterset'; -$labels['filtersetact'] = 'Huidige filterset activeren'; -$labels['filtersetdeact'] = 'Huidige filterset uitschakelen'; +$labels['filterset'] = 'Filterverzameling'; +$labels['filtersets'] = 'Filterverzamelingen'; +$labels['filtersetadd'] = 'Nieuwe filterverzameling'; +$labels['filtersetdel'] = 'Verwijder filterverzameling'; +$labels['filtersetact'] = 'Huidige filterverzameling activeren'; +$labels['filtersetdeact'] = 'Huidige filterverzameling uitschakelen'; $labels['filterdef'] = 'Filterdefinitie'; -$labels['filtersetname'] = 'Filtersetnaam'; -$labels['newfilterset'] = 'Nieuwe filterset'; +$labels['filtersetname'] = 'Filterverzamelingnaam'; +$labels['newfilterset'] = 'Nieuwe filterverzameling'; $labels['active'] = 'actief'; $labels['none'] = 'geen'; -$labels['fromset'] = 'van set'; +$labels['fromset'] = 'van verzameling'; $labels['fromfile'] = 'van bestand'; $labels['filterdisabled'] = 'Filter uitgeschakeld'; $labels['countisgreaterthan'] = 'aantal is groter dan'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Filter aanmaken'; $labels['usedata'] = 'Gebruik de volgende gegevens in het filter:'; $labels['nextstep'] = 'Volgende stap'; $labels['...'] = '...'; -$labels['currdate'] = 'Huidige datum'; -$labels['datetest'] = 'Datum'; -$labels['dateheader'] = 'header:'; -$labels['year'] = 'jaar'; -$labels['month'] = 'maand'; -$labels['day'] = 'dag'; -$labels['date'] = 'datum (jjjj-mm-dd)'; -$labels['julian'] = 'datum (juliaanse kalender)'; -$labels['hour'] = 'uur'; -$labels['minute'] = 'minuut'; -$labels['second'] = 'seconde'; -$labels['time'] = 'tijd (uu:mm:ss)'; -$labels['iso8601'] = 'datum (ISO-8601)'; -$labels['std11'] = 'datum (RFC 2822)'; -$labels['zone'] = 'tijdzone'; -$labels['weekday'] = 'weekdag (0-6)'; $labels['advancedopts'] = 'Geavanceerde opties'; $labels['body'] = 'Inhoud'; $labels['address'] = 'adres'; @@ -155,38 +140,38 @@ $labels['default'] = 'standaard'; $labels['octet'] = 'strikt (octet)'; $labels['asciicasemap'] = 'hoofdletterongevoelig (ascii-casemap)'; $labels['asciinumeric'] = 'numeriek (ascii-numeriek)'; -$labels['index'] = 'index:'; -$labels['indexlast'] = 'terugwaarts'; + +$messages = array(); $messages['filterunknownerror'] = 'Onbekende fout'; $messages['filterconnerror'] = 'Kan geen verbinding maken met de managesieve server'; -$messages['filterdeleteerror'] = 'Kan filter niet verwijderen. Er trad een serverfout op.'; +$messages['filterdeleteerror'] = 'Kan filter niet verwijderen. Er is een fout opgetreden'; $messages['filterdeleted'] = 'Filter succesvol verwijderd'; $messages['filtersaved'] = 'Filter succesvol opgeslagen'; -$messages['filtersaveerror'] = 'Kan filter niet opslaan. Er trad een serverfout op.'; +$messages['filtersaveerror'] = 'Kan filter niet opslaan. Er is een fout opgetreden.'; $messages['filterdeleteconfirm'] = 'Weet je zeker dat je het geselecteerde filter wilt verwijderen?'; $messages['ruledeleteconfirm'] = 'Weet je zeker dat je de geselecteerde regel wilt verwijderen?'; $messages['actiondeleteconfirm'] = 'Weet je zeker dat je de geselecteerde actie wilt verwijderen?'; $messages['forbiddenchars'] = 'Verboden karakters in het veld'; $messages['cannotbeempty'] = 'Veld mag niet leeg zijn'; $messages['ruleexist'] = 'Er bestaat al een filter met deze naam.'; -$messages['setactivateerror'] = 'Filterset kon niet geactiveerd worden. Er trad een serverfout op.'; -$messages['setdeactivateerror'] = 'Filterset kon niet gedeactiveerd worden. Er trad een serverfout op.'; -$messages['setdeleteerror'] = 'Filterset kon niet verwijderd worden. Er trad een serverfout op.'; +$messages['setactivateerror'] = 'Filterverzameling kon niet geactiveerd worden. Er trad een serverfout op.'; +$messages['setdeactivateerror'] = 'Filterverzameling kon niet gedeactiveerd worden. Er trad een serverfout op.'; +$messages['setdeleteerror'] = 'Filterverzameling kon niet verwijderd worden. Er trad een serverfout op.'; $messages['setactivated'] = 'Filterset succesvol geactiveerd.'; -$messages['setdeactivated'] = 'Filterset succesvol gedeactiveerd.'; -$messages['setdeleted'] = 'Filterset succesvol verwijderd.'; +$messages['setdeactivated'] = 'Filterverzameling succesvol gedeactiveerd.'; +$messages['setdeleted'] = 'Filterverzameling succesvol verwijderd.'; $messages['setdeleteconfirm'] = 'Weet u zeker dat u de geselecteerde filterset wilt verwijderen?'; -$messages['setcreateerror'] = 'Filterset kon niet aangemaakt worden. Er trad een serverfout op.'; -$messages['setcreated'] = 'Filterset succesvol aangemaakt.'; +$messages['setcreateerror'] = 'Filterverzameling kon niet aangemaakt worden. Er trad een serverfout op.'; +$messages['setcreated'] = 'Filterverzameling succesvol aangemaakt.'; $messages['activateerror'] = 'Geselecteerde filter(s) konden niet ingeschakeld worden. Er trad een serverfout op.'; $messages['deactivateerror'] = 'Geselecteerde filter(s) konden niet uitgeschakeld worden. Er trad een serverfout op.'; $messages['deactivated'] = 'Filter(s) succesvol ingeschakeld.'; $messages['activated'] = 'Filter(s) succesvol uitgeschakeld.'; $messages['moved'] = 'Filter succesvol verplaatst.'; -$messages['moveerror'] = 'Het geselecteerde filter kon niet verplaatst worden. Er trad een serverfout op.'; +$messages['moveerror'] = 'Geselecteerde filter(s) konden niet verplaatst worden. Er trad een serverfout op.'; $messages['nametoolong'] = 'Naam is te lang.'; $messages['namereserved'] = 'Gereserveerde naam.'; -$messages['setexist'] = 'Filterset bestaat al.'; +$messages['setexist'] = 'Set bestaat al.'; $messages['nodata'] = 'Tenminste één positie moet geselecteerd worden!'; -$messages['invaliddateformat'] = 'Ongeldige datum of datumformaat'; + ?> diff --git a/plugins/managesieve/localization/nn_NO.inc b/plugins/managesieve/localization/nn_NO.inc index 4ef35dbb4..18bf8b987 100644 --- a/plugins/managesieve/localization/nn_NO.inc +++ b/plugins/managesieve/localization/nn_NO.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filter'; $labels['managefilters'] = 'Rediger filter for innkommande e-post'; $labels['filtername'] = 'Filternamn'; @@ -53,7 +55,11 @@ $labels['add'] = 'Legg til'; $labels['del'] = 'Slett'; $labels['sender'] = 'Avsendar'; $labels['recipient'] = 'Mottakar'; +$labels['vacationaddresses'] = 'Liste med mottakaradresser (komma-separert):'; $labels['vacationdays'] = 'Periode mellom meldingar (i dagar):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'Innhald (grunngjeving for fråvær)'; $labels['vacationsubject'] = 'Meldingsemne:'; $labels['rulestop'] = 'Stopp evaluering av regler'; @@ -77,11 +83,13 @@ $labels['countisgreaterthanequal'] = 'mengd er fleire enn eller lik'; $labels['countislessthan'] = 'mengd er færre enn'; $labels['countislessthanequal'] = 'mengd er færre enn eller lik'; $labels['countequals'] = 'mengd er lik'; +$labels['countnotequals'] = 'mengd er ulik'; $labels['valueisgreaterthan'] = 'verdien er høgare enn'; $labels['valueisgreaterthanequal'] = 'verdien er høgare eller lik'; $labels['valueislessthan'] = 'verdien er lågare enn'; $labels['valueislessthanequal'] = 'verdien er lågare eller lik'; $labels['valueequals'] = 'verdien er lik'; +$labels['valuenotequals'] = 'verdien er ulik'; $labels['setflags'] = 'Sett meldingsflagg'; $labels['addflags'] = 'Legg til flagg på meldinga'; $labels['removeflags'] = 'Fjern flagg fra meldinga'; @@ -98,6 +106,7 @@ $labels['varlower'] = 'med små bokstavar'; $labels['varupper'] = 'med store bokstavar'; $labels['varlowerfirst'] = 'med liten forbokstav'; $labels['varupperfirst'] = 'med stor forbokstav'; +$labels['varquotewildcard'] = 'quote special characters'; $labels['varlength'] = 'lengde'; $labels['notify'] = 'Send varsel'; $labels['notifyaddress'] = 'Til e-postadresse:'; @@ -131,26 +140,38 @@ $labels['default'] = 'standard'; $labels['octet'] = 'streng (oktett)'; $labels['asciicasemap'] = 'ikkje skil mellom store og små bokstavar (ascii-casemap)'; $labels['asciinumeric'] = 'numerisk (ascii-numeric)'; + +$messages = array(); $messages['filterunknownerror'] = 'Ukjent problem med tenar.'; $messages['filterconnerror'] = 'Kunne ikkje kople til tenaren.'; +$messages['filterdeleteerror'] = 'Kunne ikkje slette filter. Det oppstod ein feil på tenaren.'; $messages['filterdeleted'] = 'Filteret er blitt sletta.'; $messages['filtersaved'] = 'Filteret er blitt lagra.'; +$messages['filtersaveerror'] = 'Kunne ikkje lagre filteret. Det oppstod ein feil på tenaren.'; $messages['filterdeleteconfirm'] = 'Vil du verkeleg slette det valde filteret?'; $messages['ruledeleteconfirm'] = 'Er du sikker på at du vil slette vald regel?'; $messages['actiondeleteconfirm'] = 'Er du sikker på at du vil slette vald hending?'; $messages['forbiddenchars'] = 'Ugyldige teikn i felt.'; $messages['cannotbeempty'] = 'Feltet kan ikkje stå tomt.'; $messages['ruleexist'] = 'Det finst alt eit filter med dette namnet.'; +$messages['setactivateerror'] = 'Kunne ikkje aktivere det valde filtersettet. Det oppsto ein tenarfeil.'; +$messages['setdeactivateerror'] = 'Kunne ikkje deaktivere det valde filtersettet. Det oppsto ein tenarfeil.'; +$messages['setdeleteerror'] = 'Kunne ikkje slette det valde filtersettet. Det oppsto ein tenarfeil.'; $messages['setactivated'] = 'Filtersett aktivert.'; $messages['setdeactivated'] = 'Filtersett deaktivert.'; $messages['setdeleted'] = 'Filtersett sletta.'; $messages['setdeleteconfirm'] = 'Er du sikker på at du vil slette det valde filtersettet?'; +$messages['setcreateerror'] = 'Kunne ikkje opprette filtersettet. Det oppstod ein tenarfeil.'; $messages['setcreated'] = 'Filtersett oppretta.'; +$messages['activateerror'] = 'Kunne ikkje skru på valde filter. Det oppstod ein tenarfeil.'; +$messages['deactivateerror'] = 'Kunne ikkje skru av valde filter. Det oppstod ein tenarfeil.'; $messages['deactivated'] = 'Filter skrudd på.'; $messages['activated'] = 'Filter skrudd av.'; $messages['moved'] = 'Filter vart flytta.'; +$messages['moveerror'] = 'Kunne ikkje flytte valde filter. Det oppstod ein tenarfeil.'; $messages['nametoolong'] = 'Namnet er for langt.'; $messages['namereserved'] = 'Namnet er reservert.'; $messages['setexist'] = 'Settet eksisterer alt.'; $messages['nodata'] = 'Du må velje minst éin posisjon!'; + ?> diff --git a/plugins/managesieve/localization/pl_PL.inc b/plugins/managesieve/localization/pl_PL.inc index 2759309ee..9a6b70d8a 100644 --- a/plugins/managesieve/localization/pl_PL.inc +++ b/plugins/managesieve/localization/pl_PL.inc @@ -15,8 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtry'; -$labels['managefilters'] = 'Zarządzanie filtrami poczty przychodzącej'; +$labels['managefilters'] = 'Zarządzaj filtrami wiadomości przychodzących'; $labels['filtername'] = 'Nazwa filtru'; $labels['newfilter'] = 'Nowy filtr'; $labels['filteradd'] = 'Dodaj filtr'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Wyślij kopię do'; $labels['messagereply'] = 'Odpowiedz wiadomością o treści'; $labels['messagedelete'] = 'Usuń wiadomość'; $labels['messagediscard'] = 'Odrzuć z komunikatem'; -$labels['messagekeep'] = 'Zachowaj wiadomość w Odebranych'; -$labels['messagesrules'] = 'W stosunku do przychodzącej poczty:'; +$labels['messagesrules'] = 'W stosunku do przychodzących wiadomości:'; $labels['messagesactions'] = '...wykonaj następujące czynności:'; $labels['add'] = 'Dodaj'; $labels['del'] = 'Usuń'; $labels['sender'] = 'Nadawca'; $labels['recipient'] = 'Odbiorca'; -$labels['vacationaddr'] = 'Moje dodatkowe adresy email:'; +$labels['vacationaddresses'] = 'Lista dodatkowych adresów odbiorców (oddzielonych przecinkami):'; $labels['vacationdays'] = 'Częstotliwość wysyłania wiadomości (w dniach):'; $labels['vacationinterval'] = 'Jak często wysyłać wiadomości:'; $labels['days'] = 'dni'; @@ -82,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'ilość jest równa lub większa od'; $labels['countislessthan'] = 'ilość jest mniejsza od'; $labels['countislessthanequal'] = 'ilość jest równa lub mniejsza od'; $labels['countequals'] = 'ilość jest równa'; -$labels['countnotequals'] = 'ilość nie jest równa'; +$labels['countnotequals'] = 'ilość jest różna od'; $labels['valueisgreaterthan'] = 'wartość jest większa od'; $labels['valueisgreaterthanequal'] = 'wartość jest równa lub większa od'; $labels['valueislessthan'] = 'wartość jest mniejsza od'; $labels['valueislessthanequal'] = 'wartość jest równa lub mniejsza od'; $labels['valueequals'] = 'wartość jest równa'; -$labels['valuenotequals'] = 'wartość nie jest równa'; +$labels['valuenotequals'] = 'wartość jest różna od'; $labels['setflags'] = 'Ustaw flagi wiadomości'; $labels['addflags'] = 'Dodaj flagi do wiadomości'; $labels['removeflags'] = 'Usuń flagi wiadomości'; @@ -114,28 +115,12 @@ $labels['notifysubject'] = 'Tytuł powiadomienia:'; $labels['notifyfrom'] = 'Nadawca powiadomienia:'; $labels['notifyimportance'] = 'Priorytet:'; $labels['notifyimportancelow'] = 'niski'; -$labels['notifyimportancenormal'] = 'normalny'; +$labels['notifyimportancenormal'] = 'ormalny'; $labels['notifyimportancehigh'] = 'wysoki'; $labels['filtercreate'] = 'Utwórz filtr'; $labels['usedata'] = 'Użyj następujących danych do utworzenia filtra:'; $labels['nextstep'] = 'Następny krok'; $labels['...'] = '...'; -$labels['currdate'] = 'Bieżąca data'; -$labels['datetest'] = 'Data'; -$labels['dateheader'] = 'nagłówek:'; -$labels['year'] = 'rok'; -$labels['month'] = 'miesiąc'; -$labels['day'] = 'dzień'; -$labels['date'] = 'data (rrrr-mm-dd)'; -$labels['julian'] = 'data (kalendarz juliański)'; -$labels['hour'] = 'godzina'; -$labels['minute'] = 'minuta'; -$labels['second'] = 'sekunda'; -$labels['time'] = 'czas (gg:mm:ss)'; -$labels['iso8601'] = 'data (ISO8601)'; -$labels['std11'] = 'data (RFC2822)'; -$labels['zone'] = 'Strefa czasowa'; -$labels['weekday'] = 'dzień tygodnia (0-6)'; $labels['advancedopts'] = 'Zaawansowane opcje'; $labels['body'] = 'Treść'; $labels['address'] = 'adres'; @@ -155,8 +140,8 @@ $labels['default'] = 'domyślny'; $labels['octet'] = 'dokładny (octet)'; $labels['asciicasemap'] = 'nierozróżniający wielkości liter (ascii-casemap)'; $labels['asciinumeric'] = 'numeryczny (ascii-numeric)'; -$labels['index'] = 'indeks:'; -$labels['indexlast'] = 'wstecz'; + +$messages = array(); $messages['filterunknownerror'] = 'Nieznany błąd serwera.'; $messages['filterconnerror'] = 'Nie można nawiązać połączenia z serwerem.'; $messages['filterdeleteerror'] = 'Nie można usunąć filtra. Błąd serwera.'; @@ -188,5 +173,5 @@ $messages['nametoolong'] = 'Zbyt długa nazwa.'; $messages['namereserved'] = 'Nazwa zarezerwowana.'; $messages['setexist'] = 'Zbiór już istnieje.'; $messages['nodata'] = 'Należy wybrać co najmniej jedną pozycję!'; -$messages['invaliddateformat'] = 'Nieprawidłowy format daty lub fragmentu daty'; + ?> diff --git a/plugins/managesieve/localization/pt_BR.inc b/plugins/managesieve/localization/pt_BR.inc index 063c60c5f..941119335 100644 --- a/plugins/managesieve/localization/pt_BR.inc +++ b/plugins/managesieve/localization/pt_BR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtros'; $labels['managefilters'] = 'Gerenciar filtros de entrada de e-mail'; $labels['filtername'] = 'Nome do filtro'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Enviar cópia da mensagem para'; $labels['messagereply'] = 'Responder com mensagem'; $labels['messagedelete'] = 'Excluir mensagem'; $labels['messagediscard'] = 'Descartar com mensagem'; -$labels['messagekeep'] = 'Manter mensagens na caixa'; $labels['messagesrules'] = 'Para e-mails recebidos:'; $labels['messagesactions'] = '...execute as seguintes ações:'; $labels['add'] = 'Adicionar'; $labels['del'] = 'Excluir'; $labels['sender'] = 'Remetente'; $labels['recipient'] = 'Destinatário'; -$labels['vacationaddr'] = 'Meu endereço de e-mail adicional:'; +$labels['vacationaddresses'] = 'Lista adicional de e-mails destinatários (separado por vírgula):'; $labels['vacationdays'] = 'Enviar mensagens com que frequência (em dias):'; $labels['vacationinterval'] = 'Como geralmente enviam mensagens:'; $labels['days'] = 'dias'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Criar filtro'; $labels['usedata'] = 'Usar os seguintes dados no filtro:'; $labels['nextstep'] = 'Próximo Passo'; $labels['...'] = '...'; -$labels['currdate'] = 'Data atual'; -$labels['datetest'] = 'Data'; -$labels['dateheader'] = 'cabeçalho:'; -$labels['year'] = 'ano'; -$labels['month'] = 'mês'; -$labels['day'] = 'dia'; -$labels['date'] = 'data (aaaa-mm-dd)'; -$labels['julian'] = 'data (calendário juliano)'; -$labels['hour'] = 'hora'; -$labels['minute'] = 'minuto'; -$labels['second'] = 'segundo'; -$labels['time'] = 'hora (hh:mm:ss)'; -$labels['iso8601'] = 'data (ISO8601)'; -$labels['std11'] = 'data (RFC2822)'; -$labels['zone'] = 'fuso horário'; -$labels['weekday'] = 'dia da semana (0-6)'; $labels['advancedopts'] = 'Opções avançadas'; $labels['body'] = 'Corpo'; $labels['address'] = 'endereço'; @@ -155,38 +140,38 @@ $labels['default'] = 'padrão'; $labels['octet'] = 'estrito (octeto)'; $labels['asciicasemap'] = 'caso insensível (mapa de caracteres ascii)'; $labels['asciinumeric'] = 'numérico (ascii-numeric)'; -$labels['index'] = 'índice:'; -$labels['indexlast'] = 'retroceder'; + +$messages = array(); $messages['filterunknownerror'] = 'Erro desconhecido de servidor'; $messages['filterconnerror'] = 'Não foi possível conectar ao servidor managesieve'; -$messages['filterdeleteerror'] = 'Impossível excluir o filtro. Ocorreu um erro no servidor.'; +$messages['filterdeleteerror'] = 'Não foi possível excluir filtro. Occorreu um erro de servidor'; $messages['filterdeleted'] = 'Filtro excluído com sucesso'; $messages['filtersaved'] = 'Filtro gravado com sucesso'; -$messages['filtersaveerror'] = 'Impossível salvar o filtro. Ocorreu um erro no servidor.'; +$messages['filtersaveerror'] = 'Não foi possível gravar filtro. Occoreu um erro de servidor.'; $messages['filterdeleteconfirm'] = 'Deseja realmente excluir o filtro selecionado?'; $messages['ruledeleteconfirm'] = 'Deseja realmente excluir a regra selecionada?'; $messages['actiondeleteconfirm'] = 'Deseja realmente excluir a ação selecionada?'; $messages['forbiddenchars'] = 'Caracteres não permitidos no campo'; $messages['cannotbeempty'] = 'Campo não pode ficar em branco'; $messages['ruleexist'] = 'O filtro com o nome especificado já existe.'; -$messages['setactivateerror'] = 'Impossível ativar o conjunto de filtros selecionados. Ocorreu um erro no servidor.'; -$messages['setdeactivateerror'] = 'Impossível desativar o conjunto de filtros selecionados. Ocorreu um erro no servidor.'; -$messages['setdeleteerror'] = 'Impossível excluir o conjunto de filtros selecionados. Ocorreu um erro no servidor.'; +$messages['setactivateerror'] = 'Não foi possível ativar o conjunto de filtros selecionados. Ocorreu um erro no servidor.'; +$messages['setdeactivateerror'] = 'Não foi possível desativar o conjunto de filtros selecionados. Ocorreu um erro no servidor.'; +$messages['setdeleteerror'] = 'Não foi possível excluir o conjunto de filtros selecionados. Ocorreu um erro no servidor.'; $messages['setactivated'] = 'Conjunto de filtros ativados com sucesso.'; $messages['setdeactivated'] = 'Conjunto de filtros desativados com sucesso.'; $messages['setdeleted'] = 'Conjunto de filtros excluídos com sucesso.'; $messages['setdeleteconfirm'] = 'Você está certo que deseja excluir o conjunto de filtros selecionados?'; -$messages['setcreateerror'] = 'Impossível criar o conjunto de filtros. Ocorreu um erro no servidor.'; +$messages['setcreateerror'] = 'Não foi possível criar o conjunto de filtros. Ocorreu um erro no servidor.'; $messages['setcreated'] = 'Conjunto de filtros criado com sucesso.'; -$messages['activateerror'] = 'Impossível habilitar o(s) filtro(s) selecionado(s). Ocorreu um erro no servidor.'; -$messages['deactivateerror'] = 'Impossível desabilitar o(s) filtro(s) selecionado(s). Ocorreu um erro no servidor.'; +$messages['activateerror'] = 'Não foi possível habilitar o(s) filtro(s) selecionado(s). Ocorreu um erro no servidor.'; +$messages['deactivateerror'] = 'Não foi possível desabilitar o(s) filtro(s) selecionado(s). Ocorreu um erro no servidor.'; $messages['deactivated'] = 'Filtro(s) habilitado(s) com sucesso.'; $messages['activated'] = 'Filtro(s) desabilitado(s) com sucesso.'; $messages['moved'] = 'Filtro movido com sucesso.'; -$messages['moveerror'] = 'Impossível mover o filtro selecionado. Ocorreu um erro no servidor.'; +$messages['moveerror'] = 'Não foi possível mover o filtro selecionado. Ocorreu um erro no servidor.'; $messages['nametoolong'] = 'Nome muito longo.'; $messages['namereserved'] = 'Nome reservado.'; $messages['setexist'] = 'Conjunto já existe.'; $messages['nodata'] = 'Pelo menos uma posição precisa ser selecionada!'; -$messages['invaliddateformat'] = 'Data inválida'; + ?> diff --git a/plugins/managesieve/localization/pt_PT.inc b/plugins/managesieve/localization/pt_PT.inc index 4e93076a7..bfb3f296a 100644 --- a/plugins/managesieve/localization/pt_PT.inc +++ b/plugins/managesieve/localization/pt_PT.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtros'; $labels['managefilters'] = 'Gerir filtros'; $labels['filtername'] = 'Nome do filtro'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Enviar cópia da mensagem para'; $labels['messagereply'] = 'Responder com a mensagem'; $labels['messagedelete'] = 'Eliminar mensagem'; $labels['messagediscard'] = 'Rejeitar mensagem'; -$labels['messagekeep'] = 'Manter mensagem na Caixa de entrada'; $labels['messagesrules'] = 'Regras para Filtros'; $labels['messagesactions'] = 'Acções para Filtros'; $labels['add'] = 'Adicionar'; $labels['del'] = 'Eliminar'; $labels['sender'] = 'Remetente'; $labels['recipient'] = 'Destinatário'; -$labels['vacationaddr'] = 'Os meus endereços de e-mail adicionais:'; +$labels['vacationaddresses'] = 'Lista adicional de destinatários de e-mails (separados por vírgula):'; $labels['vacationdays'] = 'Enviar mensagens com que frequência (em dias):'; $labels['vacationinterval'] = 'Com que frequência envia mensagens:'; $labels['days'] = 'dias'; @@ -82,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'contagem é maior ou igual a'; $labels['countislessthan'] = 'contagem é menor que'; $labels['countislessthanequal'] = 'contagem é menor ou igual a'; $labels['countequals'] = 'contagem é igual a'; -$labels['countnotequals'] = 'a contagem não é igual a'; +$labels['countnotequals'] = 'contagem é diferente de'; $labels['valueisgreaterthan'] = 'valor é maior que'; $labels['valueisgreaterthanequal'] = 'valor é maior ou igual a'; $labels['valueislessthan'] = 'valor é menor que'; $labels['valueislessthanequal'] = 'valor é menor ou igual a'; $labels['valueequals'] = 'valor é igual a'; -$labels['valuenotequals'] = 'o valor não é igual a'; +$labels['valuenotequals'] = 'valor diferente de'; $labels['setflags'] = 'Definir indicadores para a mensagem'; $labels['addflags'] = 'Adicionar indicadores para a mensagem'; $labels['removeflags'] = 'Eliminar indicadores da mensagem'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Criar filtro'; $labels['usedata'] = 'Usar os seguintes dados no filtro:'; $labels['nextstep'] = 'Próximo passo'; $labels['...'] = '...'; -$labels['currdate'] = 'Data atual'; -$labels['datetest'] = 'Data'; -$labels['dateheader'] = 'cabeçalho:'; -$labels['year'] = 'ano'; -$labels['month'] = 'mês'; -$labels['day'] = 'dia'; -$labels['date'] = 'data (yyyy-mm-dd)'; -$labels['julian'] = 'data (juliano)'; -$labels['hour'] = 'hora'; -$labels['minute'] = 'minuto'; -$labels['second'] = 'segundo'; -$labels['time'] = 'hora (hh:mm:ss)'; -$labels['iso8601'] = 'data (ISO8601)'; -$labels['std11'] = 'data (RFC2822)'; -$labels['zone'] = 'fuso horário'; -$labels['weekday'] = 'dia da semana (0-6)'; $labels['advancedopts'] = 'Opções avançadas'; $labels['body'] = 'Corpo'; $labels['address'] = 'endereço'; @@ -155,14 +140,14 @@ $labels['default'] = 'predefinido'; $labels['octet'] = 'estrito (octeto)'; $labels['asciicasemap'] = 'não sensível a maiúsculas/minúsculas (caracteres ascii)'; $labels['asciinumeric'] = 'numérico (numérico ascii)'; -$labels['index'] = 'índice:'; -$labels['indexlast'] = 'retroceder'; + +$messages = array(); $messages['filterunknownerror'] = 'Erro de servidor desconhecido'; $messages['filterconnerror'] = 'Não é possível ligar ao servidor Sieve'; -$messages['filterdeleteerror'] = 'Não foi possível eliminar o filtro. Ocorreu um erro no servidor.'; +$messages['filterdeleteerror'] = 'Não foi possível eliminar o filtro. Erro no servidor'; $messages['filterdeleted'] = 'Filtro eliminado com sucesso'; $messages['filtersaved'] = 'Filtro guardado com sucesso'; -$messages['filtersaveerror'] = 'Não foi possível guardar o filtro. Ocorreu um erro no servidor.'; +$messages['filtersaveerror'] = 'Não foi possível guardar o filtro. Erro no servidor'; $messages['filterdeleteconfirm'] = 'Tem a certeza que pretende eliminar este filtro?'; $messages['ruledeleteconfirm'] = 'Tem a certeza que pretende eliminar esta regra?'; $messages['actiondeleteconfirm'] = 'Tem a certeza que pretende eliminar esta acção?'; @@ -188,5 +173,5 @@ $messages['nametoolong'] = 'Nome demasiado longo.'; $messages['namereserved'] = 'Nome invertido.'; $messages['setexist'] = 'O conjunto já existe.'; $messages['nodata'] = 'Deve selecionar pelo menos uma posição.'; -$messages['invaliddateformat'] = 'Data ou formato de data inválido.'; + ?> diff --git a/plugins/managesieve/localization/ro_RO.inc b/plugins/managesieve/localization/ro_RO.inc index 2cddf36ae..5eb7186dd 100644 --- a/plugins/managesieve/localization/ro_RO.inc +++ b/plugins/managesieve/localization/ro_RO.inc @@ -15,60 +15,61 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtre'; -$labels['managefilters'] = 'Administreaza filtrele pentru mesaje primite.'; +$labels['managefilters'] = 'Administrează filtrele pentru mesaje primite.'; $labels['filtername'] = 'Nume filtru'; -$labels['newfilter'] = 'Filtru nou'; -$labels['filteradd'] = 'Adauga un filtru'; -$labels['filterdel'] = 'Sterge filtru.'; -$labels['moveup'] = 'Muta mai sus'; -$labels['movedown'] = 'Muta mai jos'; -$labels['filterallof'] = 'se potriveste cu toate regulile urmatoare'; -$labels['filteranyof'] = 'se potriveste cu oricare din regulile urmatoare'; +$labels['newfilter'] = 'Filtru nou.'; +$labels['filteradd'] = 'Adaugă un filtru'; +$labels['filterdel'] = 'Şterge filtru.'; +$labels['moveup'] = 'Mută mai sus'; +$labels['movedown'] = 'Mută mai jos'; +$labels['filterallof'] = 'se potriveşte cu toate din regulile următoare'; +$labels['filteranyof'] = 'se potriveşte cu oricare din regulile următoare'; $labels['filterany'] = 'toate mesajele'; -$labels['filtercontains'] = 'contine'; -$labels['filternotcontains'] = 'nu contine'; +$labels['filtercontains'] = 'conține'; +$labels['filternotcontains'] = 'nu conţine'; $labels['filteris'] = 'este egal cu'; $labels['filterisnot'] = 'este diferit de'; -$labels['filterexists'] = 'exista'; -$labels['filternotexists'] = 'nu exista'; -$labels['filtermatches'] = 'se potriveste cu expresia'; -$labels['filternotmatches'] = 'nu se potriveste cu expresia'; -$labels['filterregex'] = 'se potriveste cu expresia regulata'; -$labels['filternotregex'] = 'nu se potriveste cu expresia regulata'; +$labels['filterexists'] = 'există'; +$labels['filternotexists'] = 'nu există'; +$labels['filtermatches'] = 'se potriveşte cu expresia'; +$labels['filternotmatches'] = 'nu se potriveşte cu expresia'; +$labels['filterregex'] = 'se potriveşte cu expresia regulată'; +$labels['filternotregex'] = 'nu se potriveşte cu expresia regulată'; $labels['filterunder'] = 'sub'; $labels['filterover'] = 'peste'; -$labels['addrule'] = 'Adauga regula'; -$labels['delrule'] = 'Sterge regula'; -$labels['messagemoveto'] = 'Muta mesajul in'; -$labels['messageredirect'] = 'Redirectioneaza mesajul catre'; -$labels['messagecopyto'] = 'Copiaza mesajul in'; -$labels['messagesendcopy'] = 'Trimite o copie a mesajului catre'; -$labels['messagereply'] = 'Raspunde cu mesajul'; -$labels['messagedelete'] = 'Sterge mesajul'; +$labels['addrule'] = 'Adaugă regula'; +$labels['delrule'] = 'Şterge regula'; +$labels['messagemoveto'] = 'Mută mesajul în'; +$labels['messageredirect'] = 'Redirecţionează mesajul către'; +$labels['messagecopyto'] = 'Copiază mesajul în'; +$labels['messagesendcopy'] = 'Trimite o copie a mesajului către'; +$labels['messagereply'] = 'Răspunde cu mesajul'; +$labels['messagedelete'] = 'Şterge mesajul'; $labels['messagediscard'] = 'Respinge cu mesajul'; -$labels['messagekeep'] = 'Pastreaza mesajele in Inbox'; $labels['messagesrules'] = 'Pentru e-mail primit:'; -$labels['messagesactions'] = '...executa urmatoarele actiuni:'; -$labels['add'] = 'Adauga'; -$labels['del'] = 'Sterge'; +$labels['messagesactions'] = '...execută următoarele acţiuni:'; +$labels['add'] = 'Adaugă'; +$labels['del'] = 'Șterge'; $labels['sender'] = 'Expeditor'; $labels['recipient'] = 'Destinatar'; -$labels['vacationaddr'] = 'Adrese(le) mele de email suplimentare:'; -$labels['vacationdays'] = 'Cat de des sa trimit mesajele (in zile):'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; +$labels['vacationdays'] = 'Cât de des să trimit mesajele (în zile):'; $labels['vacationinterval'] = 'Cât de des să trimit mesaje:'; $labels['days'] = 'zile'; $labels['seconds'] = 'secunde'; -$labels['vacationreason'] = 'Corpul mesajului (motivul vacantei):'; +$labels['vacationreason'] = 'Corpul mesajului (motivul vacanţei):'; $labels['vacationsubject'] = 'Subiectul mesajului:'; $labels['rulestop'] = 'Nu mai evalua reguli'; -$labels['enable'] = 'Activeaza/Dezactiveaza'; +$labels['enable'] = 'Activează/Dezactivează'; $labels['filterset'] = 'Filtre setate'; -$labels['filtersets'] = 'Filtrul seteaza'; -$labels['filtersetadd'] = 'Adauga set de filtre'; -$labels['filtersetdel'] = 'Sterge setul curent de filtre'; -$labels['filtersetact'] = 'Activeaza setul curent de filtre'; -$labels['filtersetdeact'] = 'Dezactiveaza setul curent de filtre'; +$labels['filtersets'] = 'Filtrul setează'; +$labels['filtersetadd'] = 'Adaugă set de filtre'; +$labels['filtersetdel'] = 'Şterge setul curent de filtre'; +$labels['filtersetact'] = 'Activează setul curent de filtre'; +$labels['filtersetdeact'] = 'Dezactivează setul curent de filtre'; $labels['filterdef'] = 'Definiţie filtru'; $labels['filtersetname'] = 'Nume set filtre'; $labels['newfilterset'] = 'Set filtre nou'; @@ -82,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'numărul este mai mare sau egal cu'; $labels['countislessthan'] = 'numărul este mai mic decât'; $labels['countislessthanequal'] = 'numărul este mai mic sau egal cu'; $labels['countequals'] = 'numărul este egal cu'; -$labels['countnotequals'] = 'numaratoarea nu este egala cu'; +$labels['countnotequals'] = 'numărul nu este egal cu'; $labels['valueisgreaterthan'] = 'valoarea este egală cu'; -$labels['valueisgreaterthanequal'] = 'valoarea este mai mare sau egala cu'; +$labels['valueisgreaterthanequal'] = 'valoarea este mai mare sau egală cu'; $labels['valueislessthan'] = 'valoarea este mai mică decât'; $labels['valueislessthanequal'] = 'valoarea este mai mică sau egală cu'; $labels['valueequals'] = 'valoarea este egală cu'; -$labels['valuenotequals'] = 'valoarea nu este egala cu'; +$labels['valuenotequals'] = 'valoarea nu este egală cu'; $labels['setflags'] = 'Pune marcaje mesajului'; $labels['addflags'] = 'Adaugă marcaje mesajului'; $labels['removeflags'] = 'Şterge marcajele mesajului'; @@ -105,7 +106,7 @@ $labels['varlower'] = 'cu litere mici'; $labels['varupper'] = 'cu litere mari'; $labels['varlowerfirst'] = 'primul caracter cu litre mici'; $labels['varupperfirst'] = 'primul caracter cu litre mari'; -$labels['varquotewildcard'] = 'caracterele speciale in citat'; +$labels['varquotewildcard'] = 'caracterele speciale în citat'; $labels['varlength'] = 'lungime'; $labels['notify'] = 'Notificare trimitere'; $labels['notifyaddress'] = 'La adresa de e-mail'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Crează filtru'; $labels['usedata'] = 'Foloseşte următoarele date în filtru:'; $labels['nextstep'] = 'Următorul Pas'; $labels['...'] = '...'; -$labels['currdate'] = 'Data curenta'; -$labels['datetest'] = 'Data'; -$labels['dateheader'] = 'header:'; -$labels['year'] = 'an'; -$labels['month'] = 'luna'; -$labels['day'] = 'zi'; -$labels['date'] = 'data (AAAA-LL-ZZ)'; -$labels['julian'] = 'data (calendar iulian)'; -$labels['hour'] = 'ora'; -$labels['minute'] = 'minut'; -$labels['second'] = 'secunda'; -$labels['time'] = 'ora (hh:mm:ss)'; -$labels['iso8601'] = 'data (ISO8601)'; -$labels['std11'] = 'data (RFC2822)'; -$labels['zone'] = 'fus orar'; -$labels['weekday'] = 'zi saptamana (0-6)'; $labels['advancedopts'] = 'Opţiuni avansate'; $labels['body'] = 'Corp'; $labels['address'] = 'adresă'; @@ -155,29 +140,38 @@ $labels['default'] = 'implicit'; $labels['octet'] = 'strict (octet)'; $labels['asciicasemap'] = 'ignoră majusculele (ascii-casemap)'; $labels['asciinumeric'] = 'numeric (ascii-numeric)'; -$labels['index'] = 'index:'; -$labels['indexlast'] = 'invers'; + +$messages = array(); $messages['filterunknownerror'] = 'Eroare necunoscută la server:'; $messages['filterconnerror'] = 'Nu mă pot conecta la server.'; +$messages['filterdeleteerror'] = 'Nu pot şterge filtrul. S-a produs o eroare la server.'; $messages['filterdeleted'] = 'Filtrul a fost şters cu succes.'; $messages['filtersaved'] = 'Filtrul a fost salvat cu succes.'; +$messages['filtersaveerror'] = 'Nu am putut salva filtrul. S-a produs o eroare la server.'; $messages['filterdeleteconfirm'] = 'Chiar vrei să ştergi filtrul selectat?'; $messages['ruledeleteconfirm'] = 'Eşti sigur că vrei să ştergi regula selectată?'; $messages['actiondeleteconfirm'] = 'Eşti sigur că vrei să ştergi acţiunea selectată?'; $messages['forbiddenchars'] = 'Caractere nepermise în câmp.'; $messages['cannotbeempty'] = 'Câmpul nu poate fi gol.'; $messages['ruleexist'] = 'Filtrul cu numele specificat există deja.'; +$messages['setactivateerror'] = 'Nu pot activa setul de filtre selectat. S-a produs o eroare la server.'; +$messages['setdeactivateerror'] = 'Nu pot dezactiva setul de filtre selectat. S-a produs o eroare la server.'; +$messages['setdeleteerror'] = 'Nu pot şterge setul de filtre selectat. S-a produs o eroare la server.'; $messages['setactivated'] = 'Setul de filtre activat cu succes.'; $messages['setdeactivated'] = 'Setul de filtre dezactivat cu succes.'; $messages['setdeleted'] = 'Setul de filtre şters cu succes.'; $messages['setdeleteconfirm'] = 'Eşti sigur(ă) că vrei să ştergi setul de filtre selectat?'; +$messages['setcreateerror'] = 'Nu am putut crea setul de filtre. S-a produs o eroare la server.'; $messages['setcreated'] = 'Setul de filtre creat cu succes.'; +$messages['activateerror'] = 'Nu am putut activa filtrele selectate. S-a produs o eroare la server.'; +$messages['deactivateerror'] = 'Nu am putut dezactiva filtrele selectate. S-a produs o eroare la server.'; $messages['deactivated'] = 'Filtrele au fost activate cu succes.'; $messages['activated'] = 'Filtrele au fost dezactivate cu succes.'; $messages['moved'] = 'Filtrele au fost mutate cu succes.'; +$messages['moveerror'] = 'Nu am putut muta filtreele selectate. S-a produs o eroare la server.'; $messages['nametoolong'] = 'Numele este prea lung.'; $messages['namereserved'] = 'Nume rezervat.'; $messages['setexist'] = 'Setul există deja.'; $messages['nodata'] = 'Trebuie selectată cel putin o poziţie!'; -$messages['invaliddateformat'] = 'Data sau parte din data in format invalid'; + ?> diff --git a/plugins/managesieve/localization/ru_RU.inc b/plugins/managesieve/localization/ru_RU.inc index eccce9470..fb3f113c3 100644 --- a/plugins/managesieve/localization/ru_RU.inc +++ b/plugins/managesieve/localization/ru_RU.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Фильтры'; $labels['managefilters'] = 'Управление фильтрами для входящей почты'; $labels['filtername'] = 'Название фильтра'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Отправить копию сообщения $labels['messagereply'] = 'Ответить с сообщением'; $labels['messagedelete'] = 'Удалить сообщение'; $labels['messagediscard'] = 'Отбросить с сообщением'; -$labels['messagekeep'] = 'Оставить сообщение во Входящих'; $labels['messagesrules'] = 'Для входящей почты:'; $labels['messagesactions'] = '...выполнить следующие действия:'; $labels['add'] = 'Добавить'; $labels['del'] = 'Удалить'; $labels['sender'] = 'Отправитель'; $labels['recipient'] = 'Получатель'; -$labels['vacationaddr'] = 'Мой дополнительный адрес(а):'; +$labels['vacationaddresses'] = 'Список моих дополнительных адресов (разделённых запятыми):'; $labels['vacationdays'] = 'Как часто отправлять сообщения (в днях):'; $labels['vacationinterval'] = 'Как часто отправлять сообщения:'; $labels['days'] = 'дней'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Создать фильтр'; $labels['usedata'] = 'Использовать следующие данные в фильтре:'; $labels['nextstep'] = 'Далее'; $labels['...'] = '...'; -$labels['currdate'] = 'Текущая дата'; -$labels['datetest'] = 'Дата'; -$labels['dateheader'] = 'заголовок:'; -$labels['year'] = 'год'; -$labels['month'] = 'месяц'; -$labels['day'] = 'день'; -$labels['date'] = 'дата (гггг-мм-дд)'; -$labels['julian'] = 'дата (юлианская)'; -$labels['hour'] = 'час'; -$labels['minute'] = 'минута'; -$labels['second'] = 'секунда'; -$labels['time'] = 'время (чч:мм:сс)'; -$labels['iso8601'] = 'дата (ISO8601)'; -$labels['std11'] = 'дата (RFC2822)'; -$labels['zone'] = 'часовой пояс'; -$labels['weekday'] = 'день недели (0-6)'; $labels['advancedopts'] = 'Дополнительные параметры'; $labels['body'] = 'Тело письма'; $labels['address'] = 'адрес'; @@ -155,17 +140,17 @@ $labels['default'] = 'по умолчанию'; $labels['octet'] = 'Строгий (octet)'; $labels['asciicasemap'] = 'Регистронезависимый (ascii-casemap)'; $labels['asciinumeric'] = 'Числовой (ascii-numeric)'; -$labels['index'] = 'индекс:'; -$labels['indexlast'] = 'наоборот'; -$messages['filterunknownerror'] = 'Неизвестная ошибка сервера.'; -$messages['filterconnerror'] = 'Невозможно подключиться к серверу.'; + +$messages = array(); +$messages['filterunknownerror'] = 'Неизвестная ошибка сервера'; +$messages['filterconnerror'] = 'Невозможно подсоединится к серверу фильтров'; $messages['filterdeleteerror'] = 'Невозможно удалить фильтр. Ошибка сервера.'; $messages['filterdeleted'] = 'Фильтр успешно удалён.'; $messages['filtersaved'] = 'Фильтр успешно сохранён.'; $messages['filtersaveerror'] = 'Невозможно сохранить фильтр. Ошибка сервера.'; -$messages['filterdeleteconfirm'] = 'Вы действительно хотите удалить выделенный фильтр?'; -$messages['ruledeleteconfirm'] = 'Вы уверенны, что хотите удалить выделенное правило?'; -$messages['actiondeleteconfirm'] = 'Вы уверенны, что хотите удалить выделенное действие?'; +$messages['filterdeleteconfirm'] = 'Вы действительно хотите удалить фильтр?'; +$messages['ruledeleteconfirm'] = 'Вы уверенны, что хотите удалить это правило?'; +$messages['actiondeleteconfirm'] = 'Вы уверенны, что хотите удалить это действие?'; $messages['forbiddenchars'] = 'Недопустимые символы в поле.'; $messages['cannotbeempty'] = 'Поле не может быть пустым.'; $messages['ruleexist'] = 'Фильтр с таким именем уже существует.'; @@ -180,13 +165,13 @@ $messages['setcreateerror'] = 'Невозможно создать набор ф $messages['setcreated'] = 'Набор фильтров успешно создан.'; $messages['activateerror'] = 'Невозможно включить выбранный(е) фильтр(ы). Ошибка сервера.'; $messages['deactivateerror'] = 'Невозможно выключить выбранный(е) фильтр(ы). Ошибка сервера.'; -$messages['deactivated'] = 'Фильтр(ы) успешно отключен(ы).'; -$messages['activated'] = 'Фильтр(ы) успешно включен(ы).'; +$messages['deactivated'] = 'Фильтр(ы) успешно включен(ы).'; +$messages['activated'] = 'Фильтр(ы) успешно отключен(ы).'; $messages['moved'] = 'Фильтр успешно перемещён.'; $messages['moveerror'] = 'Невозможно переместить фильтр. Ошибка сервера.'; -$messages['nametoolong'] = 'Слишком длинное имя.'; +$messages['nametoolong'] = 'Невозможно создать набор фильтров. Название слишком длинное.'; $messages['namereserved'] = 'Зарезервированное имя.'; $messages['setexist'] = 'Набор уже существует.'; $messages['nodata'] = 'Нужно выбрать хотя бы одну позицию!'; -$messages['invaliddateformat'] = 'Неверная дата или формат части даты'; + ?> diff --git a/plugins/managesieve/localization/si_LK.inc b/plugins/managesieve/localization/si_LK.inc index 6537ed597..afc2e3851 100644 --- a/plugins/managesieve/localization/si_LK.inc +++ b/plugins/managesieve/localization/si_LK.inc @@ -15,28 +15,163 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'පෙරහණ'; +$labels['managefilters'] = 'Manage incoming mail filters'; +$labels['filtername'] = 'Filter name'; +$labels['newfilter'] = 'New filter'; +$labels['filteradd'] = 'Add filter'; +$labels['filterdel'] = 'Delete filter'; $labels['moveup'] = 'ඉහළට ගෙනයන්න'; $labels['movedown'] = 'පහළට ගෙනයන්න'; +$labels['filterallof'] = 'matching all of the following rules'; +$labels['filteranyof'] = 'matching any of the following rules'; $labels['filterany'] = 'සියලු පණිවිඩ'; $labels['filtercontains'] = 'අඩංගු'; +$labels['filternotcontains'] = 'not contains'; +$labels['filteris'] = 'is equal to'; +$labels['filterisnot'] = 'is not equal to'; +$labels['filterexists'] = 'exists'; +$labels['filternotexists'] = 'not exists'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; +$labels['addrule'] = 'Add rule'; +$labels['delrule'] = 'Delete rule'; +$labels['messagemoveto'] = 'Move message to'; +$labels['messageredirect'] = 'Redirect message to'; +$labels['messagecopyto'] = 'Copy message to'; +$labels['messagesendcopy'] = 'Send message copy to'; +$labels['messagereply'] = 'Reply with message'; $labels['messagedelete'] = 'පණිවිඩය මකන්න'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = '...execute the following actions:'; $labels['add'] = 'එක් කරන්න'; $labels['del'] = 'මකන්න'; $labels['sender'] = 'යවන්නා'; $labels['recipient'] = 'ලබන්නා'; +$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; $labels['vacationsubject'] = 'පණිවිඩයේ මාතෘකාව:'; +$labels['rulestop'] = 'Stop evaluating rules'; $labels['enable'] = 'සක්‍රීය කරන්න/අක්‍රීය කරන්න'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; $labels['active'] = 'සක්‍රීය'; $labels['none'] = 'කිසිවක් නැත'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; $labels['flagread'] = 'කියවන්න'; $labels['flagdeleted'] = 'මකන ලදී'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; $labels['flagdraft'] = 'කටු සටහන'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; $labels['nextstep'] = 'මීලග පියවර'; $labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; $labels['address'] = 'ලිපිනය'; $labels['envelope'] = 'ලියුම් කවරය'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; $labels['modtype'] = 'වර්ගය:'; $labels['allparts'] = 'සියල්ල'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unknown server error.'; +$messages['filterconnerror'] = 'Unable to connect to server.'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occured.'; +$messages['filterdeleted'] = 'Filter deleted successfully.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; +$messages['cannotbeempty'] = 'Field cannot be empty.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; $messages['nametoolong'] = 'නම දිග වැඩිය.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + ?> diff --git a/plugins/managesieve/localization/sk_SK.inc b/plugins/managesieve/localization/sk_SK.inc index 8a9e01708..f336cf2c5 100644 --- a/plugins/managesieve/localization/sk_SK.inc +++ b/plugins/managesieve/localization/sk_SK.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtre'; $labels['managefilters'] = 'Správa filtrov príchádzajúcej pošty'; $labels['filtername'] = 'Názov filtra'; @@ -47,18 +49,17 @@ $labels['messagesendcopy'] = 'Poslať kópiu správy'; $labels['messagereply'] = 'Pošli automatickú odpoveď'; $labels['messagedelete'] = 'Zmaž správu'; $labels['messagediscard'] = 'Zmaž a pošli správu na'; -$labels['messagekeep'] = 'Ponechať správy v Doručenej pošte'; $labels['messagesrules'] = 'Pre prichádzajúcu poštu'; $labels['messagesactions'] = 'vykonaj nasledovné akcie'; $labels['add'] = 'Pridaj'; $labels['del'] = 'Zmaž'; $labels['sender'] = 'Odosielateľ'; $labels['recipient'] = 'Adresát'; -$labels['vacationaddr'] = 'Iná moja e-mailová adresa (adresy):'; +$labels['vacationaddresses'] = 'Dodatoční príjemcovia správy (oddelení čiarkami):'; $labels['vacationdays'] = 'Počet dní medzi odoslaním správy:'; -$labels['vacationinterval'] = 'Ako často odosielať správy:'; -$labels['days'] = 'dní'; -$labels['seconds'] = 'sekúnd'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'Dôvod neprítomnosti:'; $labels['vacationsubject'] = 'Predmet správy:'; $labels['rulestop'] = 'Koniec pravidiel'; @@ -88,7 +89,7 @@ $labels['valueisgreaterthanequal'] = 'hodnota je väčšia alebo rovná ako'; $labels['valueislessthan'] = 'hodnota je menšia ako'; $labels['valueislessthanequal'] = 'hodnota je menšia alebo rovná'; $labels['valueequals'] = 'hodnota je rovná'; -$labels['valuenotequals'] = 'hodnota sa nerovná'; +$labels['valuenotequals'] = 'hodnota je rôzna od'; $labels['setflags'] = 'Nastaviť príznaky správy'; $labels['addflags'] = 'Pridať príznak správy'; $labels['removeflags'] = 'odstrániť príznaky zo správy'; @@ -97,45 +98,29 @@ $labels['flagdeleted'] = 'Zmazané'; $labels['flaganswered'] = 'Odpovedané'; $labels['flagflagged'] = 'Označené'; $labels['flagdraft'] = 'Koncept'; -$labels['setvariable'] = 'Nastaviť premennú'; -$labels['setvarname'] = 'Názov premennej:'; -$labels['setvarvalue'] = 'Hodnota premennej:'; -$labels['setvarmodifiers'] = 'Modifikátory:'; -$labels['varlower'] = 'malé písmená'; -$labels['varupper'] = 'VEĽKÉ PÍSMENÁ'; -$labels['varlowerfirst'] = 'prvé písmeno malé'; -$labels['varupperfirst'] = 'prvé písmeno veľké'; -$labels['varquotewildcard'] = 'k špeciálnym znakom pridať úvodzovky'; -$labels['varlength'] = 'dĺžka'; -$labels['notify'] = 'Odoslať oznámenie'; -$labels['notifyaddress'] = 'Na e-mailovú adresu:'; -$labels['notifybody'] = 'Telo oznámenia:'; -$labels['notifysubject'] = 'Predmet oznámenia:'; -$labels['notifyfrom'] = 'Odosielateľ oznámenia:'; -$labels['notifyimportance'] = 'Priorita:'; -$labels['notifyimportancelow'] = 'nízka'; -$labels['notifyimportancenormal'] = 'normálna'; -$labels['notifyimportancehigh'] = 'vysoká'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; $labels['filtercreate'] = 'Vytvoriť filter'; $labels['usedata'] = 'Použiť tieto údaje vo filtri:'; $labels['nextstep'] = 'Ďalší krok'; $labels['...'] = '...'; -$labels['currdate'] = 'Aktuálny dátum'; -$labels['datetest'] = 'Dátum'; -$labels['dateheader'] = 'záhlavie:'; -$labels['year'] = 'rok'; -$labels['month'] = 'mesiac'; -$labels['day'] = 'deň'; -$labels['date'] = 'dátum (rrrr-mm-dd)'; -$labels['julian'] = 'dátum (podľa Juliánskeho kalendára)'; -$labels['hour'] = 'hod.'; -$labels['minute'] = 'min.'; -$labels['second'] = 'sek.'; -$labels['time'] = 'čas (hh:mm:ss)'; -$labels['iso8601'] = 'dátum (ISO8601)'; -$labels['std11'] = 'dátum (RFC2822)'; -$labels['zone'] = 'časové pásmo'; -$labels['weekday'] = 'deň v týždni (0-6)'; $labels['advancedopts'] = 'Rozšírené nastavenia'; $labels['body'] = 'Telo'; $labels['address'] = 'adresa'; @@ -155,38 +140,38 @@ $labels['default'] = 'predvolené'; $labels['octet'] = 'striktný (osmičkovo)'; $labels['asciicasemap'] = 'nerozlišuje veľké a malé písmená (ascii tabuľka znakov)'; $labels['asciinumeric'] = 'numerické (ascii čísla)'; -$labels['index'] = 'index:'; -$labels['indexlast'] = 'dozadu'; + +$messages = array(); $messages['filterunknownerror'] = 'Neznáma chyba serveru'; $messages['filterconnerror'] = 'Nepodarilo sa pripojiť k managesieve serveru'; -$messages['filterdeleteerror'] = 'Nemožno vymazať filter. Nastala chyba servera.'; +$messages['filterdeleteerror'] = 'Nepodarilo sa zmazať filter, server ohlásil chybu'; $messages['filterdeleted'] = 'Filter bol zmazaný'; $messages['filtersaved'] = 'Filter bol uložený'; -$messages['filtersaveerror'] = 'Nemožno uložiť filter. Nastala chyba servera.'; +$messages['filtersaveerror'] = 'Nepodarilo sa uložiť filter, server ohlásil chybu'; $messages['filterdeleteconfirm'] = 'Naozaj si prajete zmazať tento filter?'; $messages['ruledeleteconfirm'] = 'Naozaj si prajete zamzať toto pravidlo?'; $messages['actiondeleteconfirm'] = 'Naozaj si prajete zmazať túto akciu?'; $messages['forbiddenchars'] = 'Pole obsahuje nepovolené znaky'; $messages['cannotbeempty'] = 'Pole nemôže byť prázdne'; $messages['ruleexist'] = 'Filter so zadaným menom už existuje.'; -$messages['setactivateerror'] = 'Nemožno aktivovať vybranú súpravu filtrov. Nastala chyba servera.'; -$messages['setdeactivateerror'] = 'Nemožno deaktivovať vybranú súpravu filtrov. Nastala chyba servera.'; -$messages['setdeleteerror'] = 'Nemožno vymazať vybranú súpravu filtrov. Nastala chyba servera.'; +$messages['setactivateerror'] = 'Nepodarilo sa aktivovať zvolenú sadu filtrov, server ohlásil chybu'; +$messages['setdeactivateerror'] = 'Nepodarilo sa deaktivovať zvolenú sadu filtrov, server ohlásil chybu'; +$messages['setdeleteerror'] = 'Nepodarilo sa zmazať zvolenú sadu filtrov, server ohlásil chybu'; $messages['setactivated'] = 'Sada filtrov bola aktivovaná'; $messages['setdeactivated'] = 'Sada filtrov bola deaktivovaná'; $messages['setdeleted'] = 'Sada filtrov bola zmazaná'; $messages['setdeleteconfirm'] = 'Naozaj si prajete zmazať túto sadu filtrov?'; -$messages['setcreateerror'] = 'Nemožno vytvoriť súpravu filtrov. Nastala chyba servera.'; +$messages['setcreateerror'] = 'Nepodarilo sa vytvoriť sadu filtrov, server ohlásil chybu'; $messages['setcreated'] = 'Sada filtrov bola vytvorená'; -$messages['activateerror'] = 'Nemožno aktivovať vybraný filter (vybrané filtre). Nastala chyba servera.'; -$messages['deactivateerror'] = 'Nemožno deaktivovať vybraný filter (vybrané filtre). Nastala chyba servera.'; +$messages['activateerror'] = 'Nepodarilo sa povoliť vybraný filter(e). Chyba servera.'; +$messages['deactivateerror'] = 'Nepodarilo sa vypnúť vybraný filter(e). Chyba servera.'; $messages['deactivated'] = 'Filter(e) povolený.'; $messages['activated'] = 'Filter(e) úspešne vypnutý.'; $messages['moved'] = 'Filter presunutý.'; -$messages['moveerror'] = 'Nemožno presunúť vybraný filter. Nastala chyba servera.'; +$messages['moveerror'] = 'Nemôžem presunúť zvolený filter. Chyba servera.'; $messages['nametoolong'] = 'Názov sady filtrov je príliš dlhý'; $messages['namereserved'] = 'Rezervovaný názov.'; $messages['setexist'] = 'Množina už existuje.'; $messages['nodata'] = 'Aspoň jedna pozícia musí byť zvolená.'; -$messages['invaliddateformat'] = 'Neplatný formát dátumu alebo časti dátumu'; + ?> diff --git a/plugins/managesieve/localization/sl_SI.inc b/plugins/managesieve/localization/sl_SI.inc index 2915684d3..d9da8ab60 100644 --- a/plugins/managesieve/localization/sl_SI.inc +++ b/plugins/managesieve/localization/sl_SI.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtri'; $labels['managefilters'] = 'Uredi filtre za dohodno pošto'; $labels['filtername'] = 'Ime filtra'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Pošlji kopijo sporočila na'; $labels['messagereply'] = 'Odgovori s sporočilom'; $labels['messagedelete'] = 'Izbriši sporočilo'; $labels['messagediscard'] = 'Zavrži s sporočilom'; -$labels['messagekeep'] = 'Ohrani sporočila v mapi Prejeto'; $labels['messagesrules'] = 'Določi pravila za dohodno pošto:'; $labels['messagesactions'] = '...izvrši naslednja dejanja:'; $labels['add'] = 'Dodaj'; $labels['del'] = 'Izbriši'; $labels['sender'] = 'Pošiljatelj'; $labels['recipient'] = 'Prejemnik'; -$labels['vacationaddr'] = 'Moji dodatni e-naslovi'; +$labels['vacationaddresses'] = 'Dodaten seznam naslovov prejemnikov (ločenih z vejico):'; $labels['vacationdays'] = 'Kako pogosto naj bodo sporočila poslana (v dnevih):'; $labels['vacationinterval'] = 'Sporočila pošlji na:'; $labels['days'] = 'dni'; @@ -82,13 +83,13 @@ $labels['countisgreaterthanequal'] = 'seštevek je večji ali enak'; $labels['countislessthan'] = 'seštevek je manjši od'; $labels['countislessthanequal'] = 'seštevel je manjši ali enak'; $labels['countequals'] = 'seštevek je enak'; -$labels['countnotequals'] = 'vsota ne ustreza'; +$labels['countnotequals'] = 'seštevek ni enak'; $labels['valueisgreaterthan'] = 'vrednost je večja od'; $labels['valueisgreaterthanequal'] = 'vrednost je večja ali enaka'; $labels['valueislessthan'] = 'vrednost je manjša od'; $labels['valueislessthanequal'] = 'vrednost je manjša ali enaka'; $labels['valueequals'] = 'vrednost je enaka'; -$labels['valuenotequals'] = 'vrednost ni enaka'; +$labels['valuenotequals'] = 'vrednost je neenaka'; $labels['setflags'] = 'Označi sporočilo'; $labels['addflags'] = 'Označi sporočilo'; $labels['removeflags'] = 'Odstrani zaznamke s sporočil'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Ustvari filter'; $labels['usedata'] = 'Pri stvarjanju filtra uporabi naslednje podatke'; $labels['nextstep'] = 'Naslednji korak'; $labels['...'] = '...'; -$labels['currdate'] = 'Današnji datum'; -$labels['datetest'] = 'Datum'; -$labels['dateheader'] = 'glava:'; -$labels['year'] = 'leto'; -$labels['month'] = 'mesec'; -$labels['day'] = 'dan'; -$labels['date'] = 'datum(yyyy-mm-dd)'; -$labels['julian'] = 'datum (julijanski)'; -$labels['hour'] = 'ura'; -$labels['minute'] = 'minuta'; -$labels['second'] = 'sekunda'; -$labels['time'] = 'čas'; -$labels['iso8601'] = 'datum (ISO8601)'; -$labels['std11'] = 'datum (RFC2822)'; -$labels['zone'] = 'časovni pas'; -$labels['weekday'] = 'dan v tednu (0-6)'; $labels['advancedopts'] = 'Dodatne možnosti'; $labels['body'] = 'Vsebina'; $labels['address'] = 'naslov'; @@ -155,28 +140,28 @@ $labels['default'] = 'privzeto'; $labels['octet'] = 'strict (octet)'; $labels['asciicasemap'] = 'ni občutljiv na velike/male črke (ascii-casemap)'; $labels['asciinumeric'] = 'numerično (ascii-numeric)'; -$labels['index'] = 'indeks:'; -$labels['indexlast'] = 'obraten vrstni red'; + +$messages = array(); $messages['filterunknownerror'] = 'Prišlo je do neznane napake.'; $messages['filterconnerror'] = 'Povezave s strežnikom (managesieve) ni bilo mogoče vzpostaviti'; $messages['filterdeleteerror'] = 'Pravila ni bilo mogoče izbrisati. Prišlo je do napake.'; $messages['filterdeleted'] = 'Pravilo je bilo uspešno izbrisano.'; $messages['filtersaved'] = 'Pravilo je bilo uspešno shranjeno'; -$messages['filtersaveerror'] = 'Pravila ni bilo mogoče shraniti. Prišlo je do napake.'; +$messages['filtersaveerror'] = 'Pravilo ni bilo shranjeno. Prišlo je do napake.'; $messages['filterdeleteconfirm'] = 'Ste prepričani, da želite izbrisati izbrano pravilo?'; $messages['ruledeleteconfirm'] = 'Ste prepričani, da želite izbrisati izbrano pravilo?'; $messages['actiondeleteconfirm'] = 'Ste prepričani, da želite izbrisati izbrano dejanje?'; $messages['forbiddenchars'] = 'V polju so neveljavni znaki'; $messages['cannotbeempty'] = 'Polje ne sme biti prazno'; $messages['ruleexist'] = 'Filer s tem imenom že obstaja'; -$messages['setactivateerror'] = 'Izbranih filtrov ni bilo mogoče vključiti. Prišlo je do napake na strežniku.'; -$messages['setdeactivateerror'] = 'Izbranih filtrov ni bilo mogoče izključiti. Prišlo je do napake na strežniku.'; -$messages['setdeleteerror'] = 'Izbranih filtrov ni bilo mogoče izbrisati. Prišlo je do napake na strežniku.'; +$messages['setactivateerror'] = 'Izbranega filtra ni bilo mogoče vključiti. Prišlo je do napake na strežniku.'; +$messages['setdeactivateerror'] = 'Izbranega filtra ni bilo mogoče izključiti. Prišlo je do napake na strežniku.'; +$messages['setdeleteerror'] = 'Izbranega filtra ni bilo mogoče izbrisati. Prišlo je do napake na strežniku.'; $messages['setactivated'] = 'Filter je bil uspešno vključen.'; $messages['setdeactivated'] = 'Filter je bil uspešno onemogočen.'; $messages['setdeleted'] = 'Filter je bil uspešno izbrisan.'; $messages['setdeleteconfirm'] = 'Ste prepričani, da želite izbrisati ta filter?'; -$messages['setcreateerror'] = 'Nabora filtrov ni bilo mogoče ustvariti. Prišlo je do napake na strežniku.'; +$messages['setcreateerror'] = 'Filtra ni bilo mogoče ustvariti. Prišlo je do napake na strežniku.'; $messages['setcreated'] = 'Filter je bil uspešno ustvarjen.'; $messages['activateerror'] = 'Izbranega/ih filtra/ov ni bilo mogoče vključiti. Prišlo je do napake na strežniku.'; $messages['deactivateerror'] = 'Izbranega/ih fitra/ov ni bilo mogoče izključiti. Prišlo je do napake na strežniku.'; @@ -188,5 +173,5 @@ $messages['nametoolong'] = 'Ime je predolgo.'; $messages['namereserved'] = 'Rezervirano ime.'; $messages['setexist'] = 'Nastavitev filtra že obstaja.'; $messages['nodata'] = 'Izbrana mora biti vsaj ena nastavitev!'; -$messages['invaliddateformat'] = 'Neveljaven datum ali oblika zapisa datuma'; + ?> diff --git a/plugins/managesieve/localization/sv_SE.inc b/plugins/managesieve/localization/sv_SE.inc index 63f88aeba..49d5b1222 100644 --- a/plugins/managesieve/localization/sv_SE.inc +++ b/plugins/managesieve/localization/sv_SE.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filter'; $labels['managefilters'] = 'Administrera filter'; $labels['filtername'] = 'Filternamn'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'Skicka kopia av meddelande till'; $labels['messagereply'] = 'Besvara meddelande'; $labels['messagedelete'] = 'Ta bort meddelande'; $labels['messagediscard'] = 'Avböj med felmeddelande'; -$labels['messagekeep'] = 'Behåll meddelande i Inkorg'; $labels['messagesrules'] = 'För inkommande meddelande'; $labels['messagesactions'] = 'Utför följande åtgärd'; $labels['add'] = 'Lägg till'; $labels['del'] = 'Ta bort'; $labels['sender'] = 'Avsändare'; $labels['recipient'] = 'Mottagare'; -$labels['vacationaddr'] = 'Ytterligare mottagaradresser:'; +$labels['vacationaddresses'] = 'Ytterligare mottagaradresser (avdelade med kommatecken)'; $labels['vacationdays'] = 'Antal dagar mellan auto-svar:'; $labels['vacationinterval'] = 'Tid mellan auto-svar:'; $labels['days'] = 'Dagar'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Skapa filter'; $labels['usedata'] = 'Använd följande information i filtret:'; $labels['nextstep'] = 'Nästa steg'; $labels['...'] = '...'; -$labels['currdate'] = 'Dagens datum'; -$labels['datetest'] = 'Datum'; -$labels['dateheader'] = 'huvud:'; -$labels['year'] = 'år'; -$labels['month'] = 'månad'; -$labels['day'] = 'dag'; -$labels['date'] = 'datum (åååå-mm-dd)'; -$labels['julian'] = 'datum (Julianskt)'; -$labels['hour'] = 'timme'; -$labels['minute'] = 'minut'; -$labels['second'] = 'sekund'; -$labels['time'] = 'tid (hh:mm:ss)'; -$labels['iso8601'] = 'datum (ISO8601)'; -$labels['std11'] = 'datum (RFC2822)'; -$labels['zone'] = 'tidszon'; -$labels['weekday'] = 'veckodag (0-6)'; $labels['advancedopts'] = 'Avancerade inställningar'; $labels['body'] = 'Meddelandeinnehåll'; $labels['address'] = 'adress'; @@ -155,8 +140,8 @@ $labels['default'] = 'standard'; $labels['octet'] = 'strikt (oktalt)'; $labels['asciicasemap'] = 'teckenlägesokänslig (ascii-casemap)'; $labels['asciinumeric'] = 'numerisk (ascii-numeric)'; -$labels['index'] = 'index:'; -$labels['indexlast'] = 'omvänd'; + +$messages = array(); $messages['filterunknownerror'] = 'Okänt serverfel'; $messages['filterconnerror'] = 'Anslutning till serverns filtertjänst misslyckades'; $messages['filterdeleteerror'] = 'Filtret kunde inte tas bort på grund av serverfel'; @@ -188,5 +173,5 @@ $messages['nametoolong'] = 'Filtergruppen kan inte läggas till med för långt $messages['namereserved'] = 'Reserverat namn.'; $messages['setexist'] = 'Filtergrupp finns redan.'; $messages['nodata'] = 'Minst en position måste väljas!'; -$messages['invaliddateformat'] = 'Ogiltigt datum eller del av datumformat'; + ?> diff --git a/plugins/managesieve/localization/tr_TR.inc b/plugins/managesieve/localization/tr_TR.inc index b0b09e18a..c36869d29 100644 --- a/plugins/managesieve/localization/tr_TR.inc +++ b/plugins/managesieve/localization/tr_TR.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Filtreler'; $labels['managefilters'] = 'Gelen e-posta filtrelerini yönet'; $labels['filtername'] = 'Filtre adı'; @@ -47,14 +49,13 @@ $labels['messagesendcopy'] = 'mesajın kopyasını gönder'; $labels['messagereply'] = 'mesajla birlikte cevap ver'; $labels['messagedelete'] = 'Mesajı sil'; $labels['messagediscard'] = 'mesajı yok say'; -$labels['messagekeep'] = 'Mesajı Gelen Kutusunda tut.'; $labels['messagesrules'] = 'Gelen e-postalar için:'; $labels['messagesactions'] = '... aşağıdaki aksiyonları çalıştır:'; $labels['add'] = 'Ekle'; $labels['del'] = 'Sil'; $labels['sender'] = 'Gönderici'; $labels['recipient'] = 'Alıcı'; -$labels['vacationaddr'] = 'Ek e-posta adres(ler)im:'; +$labels['vacationaddresses'] = 'İlave e-posta adreslerim(virgül ile ayrılmış)'; $labels['vacationdays'] = 'Ne sıklıkla mesajlar gönderilir(gün)'; $labels['vacationinterval'] = 'Ne kadar sıklıkla mesaj gönderirsiniz:'; $labels['days'] = 'günler'; @@ -82,7 +83,7 @@ $labels['countisgreaterthanequal'] = 'toplamı büyük veya eşit'; $labels['countislessthan'] = 'toplamı az'; $labels['countislessthanequal'] = 'toplamı daha az veya eşit'; $labels['countequals'] = 'toplamı eşit'; -$labels['countnotequals'] = 'toplamı eşit değil'; +$labels['countnotequals'] = 'toplamı eşit degil'; $labels['valueisgreaterthan'] = 'değeri büyük'; $labels['valueisgreaterthanequal'] = 'değeri büyük veya eşit'; $labels['valueislessthan'] = 'değer az'; @@ -120,22 +121,6 @@ $labels['filtercreate'] = 'Süzgeç oluştur'; $labels['usedata'] = 'Aşağıdaki verileri süzgeçte kullan'; $labels['nextstep'] = 'Sonraki adım'; $labels['...'] = '...'; -$labels['currdate'] = 'Mevcut tarih'; -$labels['datetest'] = 'Tarih'; -$labels['dateheader'] = 'Başlık'; -$labels['year'] = 'yıl'; -$labels['month'] = 'ay'; -$labels['day'] = 'gün'; -$labels['date'] = 'tarih (yyyy-aa-gg)'; -$labels['julian'] = 'tarih (julian)'; -$labels['hour'] = 'saat'; -$labels['minute'] = 'dakika'; -$labels['second'] = 'saniye'; -$labels['time'] = 'saat (ss:dd:ss)'; -$labels['iso8601'] = 'tarih (ISO8601)'; -$labels['std11'] = 'tarih (RFC2822)'; -$labels['zone'] = 'saat-dilimi'; -$labels['weekday'] = 'Hafta günleri (0-6)'; $labels['advancedopts'] = 'Gelişmiş seçenekler'; $labels['body'] = 'Gövde'; $labels['address'] = 'adres'; @@ -155,8 +140,8 @@ $labels['default'] = 'öntanımlı'; $labels['octet'] = 'sıkı(oktet)'; $labels['asciicasemap'] = 'büyük küçük harf duyarsız(ascii-casemap)'; $labels['asciinumeric'] = 'sayı (ascii-numeric)'; -$labels['index'] = 'indeks:'; -$labels['indexlast'] = 'geriye yönelik'; + +$messages = array(); $messages['filterunknownerror'] = 'Bilinmeyen sunucu hatası.'; $messages['filterconnerror'] = 'Sunucuya bağlanamıyor.'; $messages['filterdeleteerror'] = 'Filtre silinemedi. Sunucuda hata oluştu.'; @@ -183,10 +168,10 @@ $messages['deactivateerror'] = 'Seçilen filtre(ler) pasifleştirilemedi. Sunucu $messages['deactivated'] = 'Filtre(ler) başarıyla etkinleştirildi.'; $messages['activated'] = 'Filtre(ler) başarıyla iptal edildi.'; $messages['moved'] = 'Filtre başarıyla taşındı.'; -$messages['moveerror'] = 'Seçilen filtre taşınamadı. Sunucuda hata oluştu.'; +$messages['moveerror'] = 'Seçilen filtre(ler) taşınamadı. Sunucuda hata oluştu.'; $messages['nametoolong'] = 'İsim çok uzun.'; $messages['namereserved'] = 'rezerve edilmiş isim.'; $messages['setexist'] = 'Set zaten var.'; $messages['nodata'] = 'En az bir pozisyon seçilmelidir.'; -$messages['invaliddateformat'] = 'geçersiz tarih veya tarih biçimi'; + ?> diff --git a/plugins/managesieve/localization/uk_UA.inc b/plugins/managesieve/localization/uk_UA.inc index a0e7b6ad0..41623df35 100644 --- a/plugins/managesieve/localization/uk_UA.inc +++ b/plugins/managesieve/localization/uk_UA.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Фільтри'; $labels['managefilters'] = 'Керування фільтрами вхідної пошти'; $labels['filtername'] = 'Назва фільтру'; @@ -32,12 +34,18 @@ $labels['filteris'] = 'ідентичний до'; $labels['filterisnot'] = 'не ідентичний до'; $labels['filterexists'] = 'існує'; $labels['filternotexists'] = 'не існує'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; $labels['filterunder'] = 'менше, ніж'; $labels['filterover'] = 'більше, ніж'; $labels['addrule'] = 'Додати правило'; $labels['delrule'] = 'Видалити правило'; $labels['messagemoveto'] = 'Пересунути повідомлення до'; $labels['messageredirect'] = 'Перенаправити повідомлення до'; +$labels['messagecopyto'] = 'Copy message to'; +$labels['messagesendcopy'] = 'Send message copy to'; $labels['messagereply'] = 'Автовідповідач'; $labels['messagedelete'] = 'Видалити повідомлення'; $labels['messagediscard'] = 'Відхилити з повідомленням'; @@ -47,13 +55,21 @@ $labels['add'] = 'Додати'; $labels['del'] = 'Видалити'; $labels['sender'] = 'Відправник'; $labels['recipient'] = 'Отримувач'; +$labels['vacationaddresses'] = 'Додатковий список адрес отримувачів (розділених комою)'; $labels['vacationdays'] = 'Як часто повторювати (у днях):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'Текст повідомлення:'; +$labels['vacationsubject'] = 'Message subject:'; $labels['rulestop'] = 'Зупинити перевірку правил'; +$labels['enable'] = 'Enable/Disable'; $labels['filterset'] = 'Набір фільтрів'; +$labels['filtersets'] = 'Filter sets'; $labels['filtersetadd'] = 'Додати набір фільтрів'; $labels['filtersetdel'] = 'Видалити поточний набір'; $labels['filtersetact'] = 'Активувати поточний набір'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; $labels['filterdef'] = 'Параметри фільтру'; $labels['filtersetname'] = 'Назва набору фільтрів'; $labels['newfilterset'] = 'Новий набір фільтрів'; @@ -62,18 +78,100 @@ $labels['none'] = 'нічого'; $labels['fromset'] = 'з набору'; $labels['fromfile'] = 'з файлу'; $labels['filterdisabled'] = 'Фільтр вимкнено'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); $messages['filterunknownerror'] = 'Невідома помилка сервера'; $messages['filterconnerror'] = 'Неможливо з\'єднатися з сервером'; +$messages['filterdeleteerror'] = 'Неможливо видалити фільтр. Помилка сервера'; $messages['filterdeleted'] = 'Фільтр успішно видалено'; $messages['filtersaved'] = 'Фільтр успішно збережено'; +$messages['filtersaveerror'] = 'Неможливо зберегти фільтр. Помилка сервера'; $messages['filterdeleteconfirm'] = 'Ви дійсно хочете видалити обраний фільтр?'; $messages['ruledeleteconfirm'] = 'Ви дійсно хочете видалити обране правило?'; $messages['actiondeleteconfirm'] = 'Ви дійсно хочете видалити обрану дію?'; $messages['forbiddenchars'] = 'Введено заборонений символ'; $messages['cannotbeempty'] = 'Поле не може бути пустим'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Неможливо активувати обраний набір. Помилка сервера'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Неможливо видалити обраний набір. Помилка сервера'; $messages['setactivated'] = 'Набір фільтрів активовано успішно'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; $messages['setdeleted'] = 'Набір фільтрів видалено успішно'; $messages['setdeleteconfirm'] = 'Ви впевнені, що хочете видалити обраний набір?'; +$messages['setcreateerror'] = 'Не вдалося створити набір. Помилка сервера'; $messages['setcreated'] = 'Набір фільтрів створено успішно'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; $messages['nametoolong'] = 'Не вдалося створити набір. Занадто довга назва'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + ?> diff --git a/plugins/managesieve/localization/vi_VN.inc b/plugins/managesieve/localization/vi_VN.inc index 747d1931f..0a4ce6e82 100644 --- a/plugins/managesieve/localization/vi_VN.inc +++ b/plugins/managesieve/localization/vi_VN.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = 'Bộ lọc'; $labels['managefilters'] = 'Quản lý bộ lọc thư đến'; $labels['filtername'] = 'Lọc tên'; @@ -53,7 +55,11 @@ $labels['add'] = 'Thêm'; $labels['del'] = 'Xoá'; $labels['sender'] = 'Người gửi'; $labels['recipient'] = 'Người nhận'; +$labels['vacationaddresses'] = 'Địa chỉ email bổ sung của tôi ( phân cách bằng dấu phẩy)'; $labels['vacationdays'] = 'Số lần gửi thư (trong ngày)'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = 'Nội dung chính'; $labels['vacationsubject'] = 'Tiêu đề thư'; $labels['rulestop'] = 'Ngừng đánh giá qui luật'; @@ -77,11 +83,13 @@ $labels['countisgreaterthanequal'] = 'Đếm lớn hơn hoặc bằng'; $labels['countislessthan'] = 'Đếm ít hơn'; $labels['countislessthanequal'] = 'Đếm ít hơn hoặc bằng'; $labels['countequals'] = 'Đếm bằng'; +$labels['countnotequals'] = 'Đếm không bằng'; $labels['valueisgreaterthan'] = 'Giá trị lớn hơn'; $labels['valueisgreaterthanequal'] = 'Giá trị lớn hơn hoặc bằng'; $labels['valueislessthan'] = 'Giá trị nhỏ hơn'; $labels['valueislessthanequal'] = 'Giá trị nhỏ hơn hoặc bằng'; $labels['valueequals'] = 'Giá trị bằng'; +$labels['valuenotequals'] = 'Giá trị không bằng'; $labels['setflags'] = 'Thiết lập đánh dấu cho thư'; $labels['addflags'] = 'Thêm đánh dấu cho thư'; $labels['removeflags'] = 'Bỏ đánh dấu khỏi thư'; @@ -102,6 +110,9 @@ $labels['varquotewildcard'] = 'trích dẫn ký tự đặc biệt'; $labels['varlength'] = 'độ dài'; $labels['notify'] = 'Gửi thông báo'; $labels['notifyaddress'] = 'Gửi đến địa chỉ email:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; $labels['notifyimportance'] = 'Mức độ quan trọng:'; $labels['notifyimportancelow'] = 'thấp'; $labels['notifyimportancenormal'] = 'vừa phải'; @@ -129,26 +140,38 @@ $labels['default'] = 'Mặc định'; $labels['octet'] = 'Khắt khe'; $labels['asciicasemap'] = 'Không phân biệt chữ hoa chữ thường'; $labels['asciinumeric'] = 'Bảng mã ASCII'; + +$messages = array(); $messages['filterunknownerror'] = 'Không tìm được lỗi máy chủ'; $messages['filterconnerror'] = 'Không kết nối được với máy chủ.'; +$messages['filterdeleteerror'] = 'Không thể xóa bộ lọc. Xuất hiện lỗi ở máy chủ'; $messages['filterdeleted'] = 'Xóa bộ lọc thành công'; $messages['filtersaved'] = 'Lưu bộ lọc thành công'; +$messages['filtersaveerror'] = 'Không thể lưu bộ lọc. Xuất hiện lỗi ở máy chủ'; $messages['filterdeleteconfirm'] = 'Bạn có thực sự muốn xóa bộ lọc được chọn?'; $messages['ruledeleteconfirm'] = 'Bạn có chắc chắn muốn xóa qui luật được chọn?'; $messages['actiondeleteconfirm'] = 'Bạn có chắc chắn muốn xóa hành động được chọn?'; $messages['forbiddenchars'] = 'Ký tự bị cấm trong ô'; $messages['cannotbeempty'] = 'Ô không thể bị bỏ trống'; $messages['ruleexist'] = 'Đã tồn tại bộ lọc với tên cụ thế'; +$messages['setactivateerror'] = 'Không thể kích hoạt bộ lọc được lựa chọn. Xuất hiện lỗi ở máy chủ'; +$messages['setdeactivateerror'] = 'Không thể không kích hoạt bộ lọc được lựa chọn. Xuất hiện lỗi ở máy chủ'; +$messages['setdeleteerror'] = 'Không thể xóa bộ lọc được lựa chọn. Forbidden characters in field.'; $messages['setactivated'] = 'Bộ lọc được khởi động thành công'; $messages['setdeactivated'] = 'Ngừng kích hoạt bộ lọc thành công'; $messages['setdeleted'] = 'Xóa bộ lọc thành công'; $messages['setdeleteconfirm'] = 'Bạn có chắc bạn muốn xóa thiết lập bộ lọc được chọn?'; +$messages['setcreateerror'] = 'Không thể tạo thiết lập bộ lọc. Có lỗi xuất hiện ở máy chủ'; $messages['setcreated'] = 'Thiết lập bộ lọc được tạo thành công'; +$messages['activateerror'] = 'Không thể khởi động bộ lọc được chọn. Có lỗi xuất hiện ở máy chủ'; +$messages['deactivateerror'] = 'Không thể tắt bộ lọc đã chọn. Có lỗi xuất hiện ở máy chủ'; $messages['deactivated'] = 'Bộ lọc được khởi động thành công'; $messages['activated'] = 'Bộ lọc được tắt thành công'; $messages['moved'] = 'Bộ lọc được chuyển đi thành công'; +$messages['moveerror'] = 'Không thể chuyển bộc lọc đã chọn. Có lỗi xuất hiện ở máy chủ'; $messages['nametoolong'] = 'Tên quá dài'; $messages['namereserved'] = 'Tên đã được bảo vệ'; $messages['setexist'] = 'Thiết lập đã tồn tại'; $messages['nodata'] = 'Ít nhất một vị trí phải được chọn'; + ?> diff --git a/plugins/managesieve/localization/zh_CN.inc b/plugins/managesieve/localization/zh_CN.inc index 5c38cfe7f..79b705c54 100644 --- a/plugins/managesieve/localization/zh_CN.inc +++ b/plugins/managesieve/localization/zh_CN.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = '过滤器'; $labels['managefilters'] = '管理邮件过滤规则'; $labels['filtername'] = '过滤规则名称'; @@ -53,10 +55,11 @@ $labels['add'] = '添加'; $labels['del'] = '删除'; $labels['sender'] = '发件人'; $labels['recipient'] = '收件人'; +$labels['vacationaddresses'] = '收件人地址的附加名单(以半角逗号分隔)'; $labels['vacationdays'] = '发送邮件频率(单位:天):'; -$labels['vacationinterval'] = '发送邮件频率:'; -$labels['days'] = '天'; -$labels['seconds'] = '秒'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = '邮件正文(假期原因)'; $labels['vacationsubject'] = '邮件主题'; $labels['rulestop'] = '停止评价规则'; @@ -80,11 +83,13 @@ $labels['countisgreaterthanequal'] = '计数大于或等于'; $labels['countislessthan'] = '计数小于'; $labels['countislessthanequal'] = '计数小于或等于'; $labels['countequals'] = '计数等于'; +$labels['countnotequals'] = '计数不等于'; $labels['valueisgreaterthan'] = '值大于'; $labels['valueisgreaterthanequal'] = '值大于或等于'; $labels['valueislessthan'] = '值小于'; $labels['valueislessthanequal'] = '值小于或等于'; $labels['valueequals'] = '值等于'; +$labels['valuenotequals'] = '值不等于'; $labels['setflags'] = '设定邮件的标识'; $labels['addflags'] = '增加邮件的标识'; $labels['removeflags'] = '删除邮件的标识'; @@ -116,16 +121,6 @@ $labels['filtercreate'] = '创建过滤规则'; $labels['usedata'] = '在过滤器中使用下列数据'; $labels['nextstep'] = '下一步'; $labels['...'] = '...'; -$labels['currdate'] = '当前日期'; -$labels['datetest'] = '日期'; -$labels['year'] = '年'; -$labels['month'] = '月'; -$labels['day'] = '天'; -$labels['date'] = '日期 (年-月-日)'; -$labels['hour'] = '小时'; -$labels['minute'] = '分钟'; -$labels['second'] = '秒'; -$labels['zone'] = '时区'; $labels['advancedopts'] = '高级选项'; $labels['body'] = '正文'; $labels['address'] = '地址'; @@ -145,26 +140,38 @@ $labels['default'] = '默认'; $labels['octet'] = '严格模式(字节)'; $labels['asciicasemap'] = '不区分大小写(ascii 字符)'; $labels['asciinumeric'] = '数字类型(ascii 数字)'; + +$messages = array(); $messages['filterunknownerror'] = '未知的服务器错误'; $messages['filterconnerror'] = '无法连接至服务器'; +$messages['filterdeleteerror'] = '无法删除过滤器。服务器发生错误'; $messages['filterdeleted'] = '过滤器已成功删除'; $messages['filtersaved'] = '过滤器已成功保存。'; +$messages['filtersaveerror'] = '无法保存过滤器。服务器发生错误'; $messages['filterdeleteconfirm'] = '您确定要删除所选择的过滤器吗?'; $messages['ruledeleteconfirm'] = '您确定要删除所选择的规则吗?'; $messages['actiondeleteconfirm'] = '您确定要删除所选择的操作吗?'; $messages['forbiddenchars'] = '内容包含禁用字符'; $messages['cannotbeempty'] = '内容不能为空'; $messages['ruleexist'] = '指定过滤器名称已存在。'; +$messages['setactivateerror'] = '无法启用指定过滤器,服务器发生错误。'; +$messages['setdeactivateerror'] = '无法停用指定过滤器,服务器发生错误。'; +$messages['setdeleteerror'] = '无法删除指定过滤器,服务器发生错误。'; $messages['setactivated'] = '启用过滤器集成功。'; $messages['setdeactivated'] = '禁用过滤器集成功。'; $messages['setdeleted'] = '删除过滤器成功。'; $messages['setdeleteconfirm'] = '您确定要删除指定的过滤器吗?'; +$messages['setcreateerror'] = '无法创建过滤器,服务器发生错误。'; $messages['setcreated'] = '过滤器成功创建。'; +$messages['activateerror'] = '无法启用选中的过滤器,服务器发生错误。'; +$messages['deactivateerror'] = '无法禁用选中的过滤器,服务器发生错误。'; $messages['deactivated'] = '启用过滤器成功。'; $messages['activated'] = '禁用过滤器成功。'; $messages['moved'] = '移动过滤器成功。'; +$messages['moveerror'] = '无法移动选中的过滤器,服务器发生错误。'; $messages['nametoolong'] = '无法创建过滤器集,名称太长。'; $messages['namereserved'] = '保留名称。'; $messages['setexist'] = '设置已存在。'; $messages['nodata'] = '至少选择一个位置!'; + ?> diff --git a/plugins/managesieve/localization/zh_TW.inc b/plugins/managesieve/localization/zh_TW.inc index 72eb3393b..3f3fc1313 100644 --- a/plugins/managesieve/localization/zh_TW.inc +++ b/plugins/managesieve/localization/zh_TW.inc @@ -15,6 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ */ + + $labels['filters'] = '篩選器'; $labels['managefilters'] = '設定篩選器'; $labels['filtername'] = '篩選器名稱'; @@ -47,14 +49,17 @@ $labels['messagesendcopy'] = '寄送訊息複本至'; $labels['messagereply'] = '以下列內容回覆'; $labels['messagedelete'] = '刪除信件'; $labels['messagediscard'] = '刪除信件並以下列內容回覆'; -$labels['messagekeep'] = '在收件匣保留郵件'; $labels['messagesrules'] = '對新收到的信件:'; $labels['messagesactions'] = '執行下列動作:'; $labels['add'] = '新增'; $labels['del'] = '刪除'; $labels['sender'] = '寄件者'; $labels['recipient'] = '收件者'; +$labels['vacationaddresses'] = '其他收件者(用半形逗號隔開):'; $labels['vacationdays'] = '多久回覆一次(單位:天):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; $labels['vacationreason'] = '信件內容(休假原因):'; $labels['vacationsubject'] = '訊息主旨:'; $labels['rulestop'] = '停止評估規則'; @@ -78,11 +83,13 @@ $labels['countisgreaterthanequal'] = '計數大於或等於'; $labels['countislessthan'] = '計數小於'; $labels['countislessthanequal'] = '數量小於或等於'; $labels['countequals'] = '數量等於'; +$labels['countnotequals'] = '數量不等於'; $labels['valueisgreaterthan'] = '值大於'; $labels['valueisgreaterthanequal'] = '值大於等於'; $labels['valueislessthan'] = '值小於'; $labels['valueislessthanequal'] = '值小於或等於'; $labels['valueequals'] = '值等於'; +$labels['valuenotequals'] = '值不等於'; $labels['setflags'] = '設定標幟'; $labels['addflags'] = '新增標記到訊息'; $labels['removeflags'] = '移除訊息標記'; @@ -114,12 +121,6 @@ $labels['filtercreate'] = '建立郵件規則'; $labels['usedata'] = '於規則中使用轉寄時間'; $labels['nextstep'] = '下一步'; $labels['...'] = '…'; -$labels['date'] = '日期 (yyyy-mm-dd)'; -$labels['julian'] = '日期 (Julian Day)'; -$labels['time'] = '時間 (hh:mm:ss)'; -$labels['iso8601'] = '日期 (ISO8601)'; -$labels['std11'] = '日期 (RFC2822)'; -$labels['zone'] = '時區'; $labels['advancedopts'] = '進階選項'; $labels['body'] = '內文'; $labels['address'] = '郵件位址'; @@ -139,26 +140,38 @@ $labels['default'] = '預設'; $labels['octet'] = '嚴謹模式(八位元組)'; $labels['asciicasemap'] = '不區分大小寫(採用ASCII-Casemap)'; $labels['asciinumeric'] = '數字類型(ascii-numeric)'; + +$messages = array(); $messages['filterunknownerror'] = '未知的伺服器錯誤'; $messages['filterconnerror'] = '無法與伺服器連線'; +$messages['filterdeleteerror'] = '無法刪除篩選器。發生伺服器錯誤'; $messages['filterdeleted'] = '成功刪除篩選器'; $messages['filtersaved'] = '成功儲存篩選器。'; +$messages['filtersaveerror'] = '無法儲存篩選器。發生伺服器錯誤'; $messages['filterdeleteconfirm'] = '您確定要刪除選擇的郵件規則嗎?'; $messages['ruledeleteconfirm'] = '您確定要刪除選的規則嗎?'; $messages['actiondeleteconfirm'] = '您確定要刪除選擇的動作嗎?'; $messages['forbiddenchars'] = '內容包含禁用字元'; $messages['cannotbeempty'] = '內容不能為空白'; $messages['ruleexist'] = '規則名稱重複'; +$messages['setactivateerror'] = '無法啟用選擇的篩選器集合。 伺服器發生錯誤'; +$messages['setdeactivateerror'] = '無法停用選擇的篩選器集合。 伺服器發生錯誤'; +$messages['setdeleteerror'] = '無法刪除選擇的篩選器集合。 伺服器發生錯誤'; $messages['setactivated'] = '篩選器集合成功啟用'; $messages['setdeactivated'] = '篩選器集合成功停用'; $messages['setdeleted'] = '篩選器集合成功刪除'; $messages['setdeleteconfirm'] = '你確定要刪除選擇的篩選器集合嗎?'; +$messages['setcreateerror'] = '無法建立篩選器集合。 伺服器發生錯誤'; $messages['setcreated'] = '篩選器集合成功建立'; +$messages['activateerror'] = '無法啟用選擇的篩選器。伺服器錯誤'; +$messages['deactivateerror'] = '無法停用選擇的篩選器。伺服器錯誤'; $messages['deactivated'] = '篩選器已啟用'; $messages['activated'] = '篩選器已停用'; $messages['moved'] = '篩選器已移動'; -$messages['nametoolong'] = '名稱太長。'; +$messages['moveerror'] = '無法移動選擇的篩選器。伺服器錯誤'; +$messages['nametoolong'] = '無法建立篩選器集合。 名稱太長'; $messages['namereserved'] = '保留名稱.'; $messages['setexist'] = '設定已存在'; $messages['nodata'] = '至少要選擇一個位置'; + ?> diff --git a/plugins/managesieve/managesieve.js b/plugins/managesieve/managesieve.js index fa13b7125..035ed7bec 100644 --- a/plugins/managesieve/managesieve.js +++ b/plugins/managesieve/managesieve.js @@ -55,11 +55,6 @@ if (window.rcmail) { } $('input[type="text"]:first', rcmail.gui_objects.sieveform).focus(); - - // initialize smart list inputs - $('textarea[data-type="list"]', rcmail.gui_objects.sieveform).each(function() { - smart_field_init(this); - }); } else { rcmail.enable_command('plugin.managesieve-add', 'plugin.managesieve-setadd', !rcmail.env.sieveconnerror); @@ -474,11 +469,6 @@ rcube_webmail.prototype.managesieve_rulefill = function(content, id, after) row.className = 'rulerow'; row.innerHTML = content; - // initialize smart list inputs - $('textarea[data-type="list"]', row).each(function() { - smart_field_init(this); - }); - this.managesieve_formbuttons(div); } }; @@ -575,45 +565,40 @@ function rule_header_select(id) var obj = document.getElementById('header' + id), size = document.getElementById('rule_size' + id), op = document.getElementById('rule_op' + id), - header = document.getElementById('custom_header' + id + '_list'), + target = document.getElementById('rule_target' + id), + header = document.getElementById('custom_header' + id), mod = document.getElementById('rule_mod' + id), trans = document.getElementById('rule_trans' + id), - comp = document.getElementById('rule_comp' + id), - datepart = document.getElementById('rule_date_part' + id), - dateheader = document.getElementById('rule_date_header_div' + id), - h = obj.value; + comp = document.getElementById('rule_comp' + id); - if (h == 'size') { + if (obj.value == 'size') { size.style.display = 'inline'; - $.each([op, header, mod, trans, comp], function() { this.style.display = 'none'; }); + op.style.display = 'none'; + target.style.display = 'none'; + header.style.display = 'none'; + mod.style.display = 'none'; + trans.style.display = 'none'; + comp.style.display = 'none'; } else { - header.style.display = h != '...' ? 'none' : 'inline-block'; + header.style.display = obj.value != '...' ? 'none' : 'inline'; size.style.display = 'none'; op.style.display = 'inline'; comp.style.display = ''; - mod.style.display = h == 'body' || h == 'currentdate' || h == 'date' ? 'none' : 'block'; - trans.style.display = h == 'body' ? 'block' : 'none'; + rule_op_select(id); + mod.style.display = obj.value == 'body' ? 'none' : 'block'; + trans.style.display = obj.value == 'body' ? 'block' : 'none'; } - if (datepart) - datepart.style.display = h == 'currentdate' || h == 'date' ? 'inline' : 'none'; - if (dateheader) - dateheader.style.display = h == 'date' ? '' : 'none'; - - rule_op_select(op, id, h); - rule_mod_select(id, h); - obj.style.width = h == '...' ? '40px' : ''; + obj.style.width = obj.value == '...' ? '40px' : ''; }; -function rule_op_select(obj, id, header) +function rule_op_select(id) { - var target = document.getElementById('rule_target' + id + '_list'); + var obj = document.getElementById('rule_op' + id), + target = document.getElementById('rule_target' + id); - if (!header) - header = document.getElementById('header' + id).value; - - target.style.display = obj.value == 'exists' || obj.value == 'notexists' || header == 'size' ? 'none' : 'inline-block'; + target.style.display = obj.value == 'exists' || obj.value == 'notexists' ? 'none' : 'inline'; }; function rule_trans_select(id) @@ -624,19 +609,12 @@ function rule_trans_select(id) target.style.display = obj.value != 'content' ? 'none' : 'inline'; }; -function rule_mod_select(id, header) +function rule_mod_select(id) { var obj = document.getElementById('rule_mod_op' + id), - target = document.getElementById('rule_mod_type' + id), - index = document.getElementById('rule_index_div' + id); - - if (!header) - header = document.getElementById('header' + id).value; + target = document.getElementById('rule_mod_type' + id); target.style.display = obj.value != 'address' && obj.value != 'envelope' ? 'none' : 'inline'; - - if (index) - index.style.display = header != 'body' && header != 'currentdate' && header != 'size' && obj.value != 'envelope' ? '' : 'none'; }; function rule_join_radio(value) @@ -661,10 +639,10 @@ function rule_adv_switch(id, elem) function action_type_select(id) { var obj = document.getElementById('action_type' + id), - v = obj.value, enabled = {}, + enabled = {}, elems = { mailbox: document.getElementById('action_mailbox' + id), - target: document.getElementById('redirect_target' + id), + target: document.getElementById('action_target' + id), target_area: document.getElementById('action_target_area' + id), flags: document.getElementById('action_flags' + id), vacation: document.getElementById('action_vacation' + id), @@ -672,25 +650,25 @@ function action_type_select(id) notify: document.getElementById('action_notify' + id) }; - if (v == 'fileinto' || v == 'fileinto_copy') { + if (obj.value == 'fileinto' || obj.value == 'fileinto_copy') { enabled.mailbox = 1; } - else if (v == 'redirect' || v == 'redirect_copy') { + else if (obj.value == 'redirect' || obj.value == 'redirect_copy') { enabled.target = 1; } - else if (v.match(/^reject|ereject$/)) { + else if (obj.value.match(/^reject|ereject$/)) { enabled.target_area = 1; } - else if (v.match(/^(add|set|remove)flag$/)) { + else if (obj.value.match(/^(add|set|remove)flag$/)) { enabled.flags = 1; } - else if (v == 'vacation') { + else if (obj.value == 'vacation') { enabled.vacation = 1; } - else if (v == 'set') { + else if (obj.value == 'set') { enabled.set = 1; } - else if (v == 'notify') { + else if (obj.value == 'notify') { enabled.notify = 1; } @@ -699,72 +677,6 @@ function action_type_select(id) } }; -// Inititalizes smart list input -function smart_field_init(field) -{ - var id = field.id + '_list', - area = $(''), - list = field.value ? field.value.split("\n") : ['']; - - if ($('#'+id).length) - return; - - // add input rows - $.each(list, function(i, v) { - area.append(smart_field_row(v, field.name, i, $(field).data('size'))); - }); - - area.attr('id', id); - field = $(field); - - if (field.attr('disabled')) - area.hide(); - - field.after(area); - - if (field.hasClass('error')) { - area.addClass('error'); - rcmail.managesieve_tip_register([[id, field.data('tip')]]); - } -}; - -function smart_field_row(value, name, idx, size) -{ - // build row element content - var input, content = '' - + '', - elem = $(content), - attrs = {value: value, name: name + '[]'}; - - if (size) - attrs.size = size; - - input = $('input', elem).attr(attrs).keydown(function(e) { - var input = $(this); - // element creation event (on Enter) - if (e.which == 13) { - var name = input.attr('name').replace(/\[\]$/, ''), - dt = (new Date()).getTime(), - elem = smart_field_row('', name, dt, size); - - input.parent().after(elem); - $('input', elem).focus(); - } - }); - - // element deletion event - $('span[class="reset"]', elem).click(function() { - var span = $(this.parentNode); - - if (span.parent().children().length > 1) - span.remove(); - else - $('input', span).val('').focus(); - }); - - return elem; -} - // Register onmouse(leave/enter) events for tips on specified form element rcube_webmail.prototype.managesieve_tip_register = function(tips) { @@ -773,26 +685,25 @@ rcube_webmail.prototype.managesieve_tip_register = function(tips) for (var n in tips) { $('#'+tips[n][0]) - .data('tip', tips[n][1]) - .bind('mouseenter', function(e) { - var elem = $(this), - offset = elem.offset(), - left = offset.left, - top = offset.top - 12, - minwidth = elem.width(); - - if (framed) { - offset = $((rcmail.env.task == 'mail' ? '#sievefilterform > iframe' : '#filter-box'), parent.document).offset(); - top += offset.top; - left += offset.left; - } - - tip.html(elem.data('tip')); - top -= tip.height(); - - tip.css({left: left, top: top, minWidth: (minwidth-2) + 'px'}).show(); - }) - .bind('mouseleave', function(e) { tip.hide(); }); + .bind('mouseenter', {str: tips[n][1]}, + function(e) { + var offset = $(this).offset(), + left = offset.left, + top = offset.top - 12, + minwidth = $(this).width(); + + if (framed) { + offset = $((rcmail.env.task == 'mail' ? '#sievefilterform > iframe' : '#filter-box'), parent.document).offset(); + top += offset.top; + left += offset.left; + } + + tip.html(e.data.str) + top -= tip.height(); + + tip.css({left: left, top: top, minWidth: (minwidth-2) + 'px'}).show(); + }) + .bind('mouseleave', function(e) { tip.hide(); }); } }; diff --git a/plugins/managesieve/managesieve.php b/plugins/managesieve/managesieve.php index 6970193c2..80face70a 100644 --- a/plugins/managesieve/managesieve.php +++ b/plugins/managesieve/managesieve.php @@ -12,28 +12,60 @@ * * Configuration (see config.inc.php.dist) * - * Copyright (C) 2008-2013, The Roundcube Dev Team - * Copyright (C) 2011-2013, Kolab Systems AG + * Copyright (C) 2008-2012, The Roundcube Dev Team + * Copyright (C) 2011-2012, Kolab Systems AG * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later 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 + * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/. + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ class managesieve extends rcube_plugin { public $task = 'mail|settings'; + private $rc; - private $engine; + private $sieve; + private $errors; + private $form; + private $tips = array(); + private $script = array(); + private $exts = array(); + private $list; + private $active = array(); + private $headers = array( + 'subject' => 'Subject', + 'from' => 'From', + 'to' => 'To', + ); + private $addr_headers = array( + // Required + "from", "to", "cc", "bcc", "sender", "resent-from", "resent-to", + // Additional (RFC 822 / RFC 2822) + "reply-to", "resent-reply-to", "resent-sender", "resent-cc", "resent-bcc", + // Non-standard (RFC 2076, draft-palme-mailext-headers-08.txt) + "for-approval", "for-handling", "for-comment", "apparently-to", "errors-to", + "delivered-to", "return-receipt-to", "x-admin", "read-receipt-to", + "x-confirm-reading-to", "return-receipt-requested", + "registered-mail-reply-requested-by", "mail-followup-to", "mail-reply-to", + "abuse-reports-to", "x-complaints-to", "x-report-abuse-to", + // Undocumented + "x-beenthere", + ); + + const VERSION = '6.2'; + const PROGNAME = 'Roundcube (Managesieve)'; + const PORT = 4190; + function init() { @@ -60,11 +92,10 @@ class managesieve extends rcube_plugin /** * Initializes plugin's UI (localization, js script) */ - function init_ui() + private function init_ui() { - if ($this->ui_initialized) { + if ($this->ui_initialized) return; - } // load localization $this->add_texts('localization/', array('filters','managefilters')); @@ -78,11 +109,6 @@ class managesieve extends rcube_plugin */ function mail_task_handler() { - // make sure we're not in ajax request - if ($this->rc->output->type != 'html') { - return; - } - // use jQuery for popup window $this->require_plugin('jqueryui'); @@ -154,18 +180,352 @@ class managesieve extends rcube_plugin } /** - * Plugin action handler + * Loads configuration, initializes plugin (including sieve connection) */ + function managesieve_start() + { + $this->load_config(); + + // register UI objects + $this->rc->output->add_handlers(array( + 'filterslist' => array($this, 'filters_list'), + 'filtersetslist' => array($this, 'filtersets_list'), + 'filterframe' => array($this, 'filter_frame'), + 'filterform' => array($this, 'filter_form'), + 'filtersetform' => array($this, 'filterset_form'), + )); + + // Add include path for internal classes + $include_path = $this->home . '/lib' . PATH_SEPARATOR; + $include_path .= ini_get('include_path'); + set_include_path($include_path); + + // Get connection parameters + $host = $this->rc->config->get('managesieve_host', 'localhost'); + $port = $this->rc->config->get('managesieve_port'); + $tls = $this->rc->config->get('managesieve_usetls', false); + + $host = rcube_parse_host($host); + $host = rcube_idn_to_ascii($host); + + // remove tls:// prefix, set TLS flag + if (($host = preg_replace('|^tls://|i', '', $host, 1, $cnt)) && $cnt) { + $tls = true; + } + + if (empty($port)) { + $port = getservbyname('sieve', 'tcp'); + if (empty($port)) { + $port = self::PORT; + } + } + + $plugin = $this->rc->plugins->exec_hook('managesieve_connect', array( + 'user' => $_SESSION['username'], + 'password' => $this->rc->decrypt($_SESSION['password']), + 'host' => $host, + 'port' => $port, + 'usetls' => $tls, + 'auth_type' => $this->rc->config->get('managesieve_auth_type'), + 'disabled' => $this->rc->config->get('managesieve_disabled_extensions'), + 'debug' => $this->rc->config->get('managesieve_debug', false), + 'auth_cid' => $this->rc->config->get('managesieve_auth_cid'), + 'auth_pw' => $this->rc->config->get('managesieve_auth_pw'), + )); + + // try to connect to managesieve server and to fetch the script + $this->sieve = new rcube_sieve( + $plugin['user'], + $plugin['password'], + $plugin['host'], + $plugin['port'], + $plugin['auth_type'], + $plugin['usetls'], + $plugin['disabled'], + $plugin['debug'], + $plugin['auth_cid'], + $plugin['auth_pw'] + ); + + if (!($error = $this->sieve->error())) { + // Get list of scripts + $list = $this->list_scripts(); + + if (!empty($_GET['_set']) || !empty($_POST['_set'])) { + $script_name = get_input_value('_set', RCUBE_INPUT_GPC, true); + } + else if (!empty($_SESSION['managesieve_current'])) { + $script_name = $_SESSION['managesieve_current']; + } + else { + // get (first) active script + if (!empty($this->active[0])) { + $script_name = $this->active[0]; + } + else if ($list) { + $script_name = $list[0]; + } + // create a new (initial) script + else { + // if script not exists build default script contents + $script_file = $this->rc->config->get('managesieve_default'); + $script_name = $this->rc->config->get('managesieve_script_name'); + + if (empty($script_name)) + $script_name = 'roundcube'; + + if ($script_file && is_readable($script_file)) + $content = file_get_contents($script_file); + + // add script and set it active + if ($this->sieve->save_script($script_name, $content)) { + $this->activate_script($script_name); + $this->list[] = $script_name; + } + } + } + + if ($script_name) { + $this->sieve->load($script_name); + } + + $error = $this->sieve->error(); + } + + // finally set script objects + if ($error) { + switch ($error) { + case SIEVE_ERROR_CONNECTION: + case SIEVE_ERROR_LOGIN: + $this->rc->output->show_message('managesieve.filterconnerror', 'error'); + break; + default: + $this->rc->output->show_message('managesieve.filterunknownerror', 'error'); + break; + } + + raise_error(array('code' => 403, 'type' => 'php', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => "Unable to connect to managesieve on $host:$port"), true, false); + + // to disable 'Add filter' button set env variable + $this->rc->output->set_env('filterconnerror', true); + $this->script = array(); + } + else { + $this->exts = $this->sieve->get_extensions(); + $this->script = $this->sieve->script->as_array(); + $this->rc->output->set_env('currentset', $this->sieve->current); + $_SESSION['managesieve_current'] = $this->sieve->current; + } + + return $error; + } + function managesieve_actions() { $this->init_ui(); - $engine = $this->get_engine(); - $engine->actions(); + + $error = $this->managesieve_start(); + + // Handle user requests + if ($action = get_input_value('_act', RCUBE_INPUT_GPC)) { + $fid = (int) get_input_value('_fid', RCUBE_INPUT_POST); + + if ($action == 'delete' && !$error) { + if (isset($this->script[$fid])) { + if ($this->sieve->script->delete_rule($fid)) + $result = $this->save_script(); + + if ($result === true) { + $this->rc->output->show_message('managesieve.filterdeleted', 'confirmation'); + $this->rc->output->command('managesieve_updatelist', 'del', array('id' => $fid)); + } else { + $this->rc->output->show_message('managesieve.filterdeleteerror', 'error'); + } + } + } + else if ($action == 'move' && !$error) { + if (isset($this->script[$fid])) { + $to = (int) get_input_value('_to', RCUBE_INPUT_POST); + $rule = $this->script[$fid]; + + // remove rule + unset($this->script[$fid]); + $this->script = array_values($this->script); + + // add at target position + if ($to >= count($this->script)) { + $this->script[] = $rule; + } + else { + $script = array(); + foreach ($this->script as $idx => $r) { + if ($idx == $to) + $script[] = $rule; + $script[] = $r; + } + $this->script = $script; + } + + $this->sieve->script->content = $this->script; + $result = $this->save_script(); + + if ($result === true) { + $result = $this->list_rules(); + + $this->rc->output->show_message('managesieve.moved', 'confirmation'); + $this->rc->output->command('managesieve_updatelist', 'list', + array('list' => $result, 'clear' => true, 'set' => $to)); + } else { + $this->rc->output->show_message('managesieve.moveerror', 'error'); + } + } + } + else if ($action == 'act' && !$error) { + if (isset($this->script[$fid])) { + $rule = $this->script[$fid]; + $disabled = $rule['disabled'] ? true : false; + $rule['disabled'] = !$disabled; + $result = $this->sieve->script->update_rule($fid, $rule); + + if ($result !== false) + $result = $this->save_script(); + + if ($result === true) { + if ($rule['disabled']) + $this->rc->output->show_message('managesieve.deactivated', 'confirmation'); + else + $this->rc->output->show_message('managesieve.activated', 'confirmation'); + $this->rc->output->command('managesieve_updatelist', 'update', + array('id' => $fid, 'disabled' => $rule['disabled'])); + } else { + if ($rule['disabled']) + $this->rc->output->show_message('managesieve.deactivateerror', 'error'); + else + $this->rc->output->show_message('managesieve.activateerror', 'error'); + } + } + } + else if ($action == 'setact' && !$error) { + $script_name = get_input_value('_set', RCUBE_INPUT_GPC, true); + $result = $this->activate_script($script_name); + $kep14 = $this->rc->config->get('managesieve_kolab_master'); + + if ($result === true) { + $this->rc->output->set_env('active_sets', $this->active); + $this->rc->output->show_message('managesieve.setactivated', 'confirmation'); + $this->rc->output->command('managesieve_updatelist', 'setact', + array('name' => $script_name, 'active' => true, 'all' => !$kep14)); + } else { + $this->rc->output->show_message('managesieve.setactivateerror', 'error'); + } + } + else if ($action == 'deact' && !$error) { + $script_name = get_input_value('_set', RCUBE_INPUT_GPC, true); + $result = $this->deactivate_script($script_name); + + if ($result === true) { + $this->rc->output->set_env('active_sets', $this->active); + $this->rc->output->show_message('managesieve.setdeactivated', 'confirmation'); + $this->rc->output->command('managesieve_updatelist', 'setact', + array('name' => $script_name, 'active' => false)); + } else { + $this->rc->output->show_message('managesieve.setdeactivateerror', 'error'); + } + } + else if ($action == 'setdel' && !$error) { + $script_name = get_input_value('_set', RCUBE_INPUT_GPC, true); + $result = $this->remove_script($script_name); + + if ($result === true) { + $this->rc->output->show_message('managesieve.setdeleted', 'confirmation'); + $this->rc->output->command('managesieve_updatelist', 'setdel', + array('name' => $script_name)); + $this->rc->session->remove('managesieve_current'); + } else { + $this->rc->output->show_message('managesieve.setdeleteerror', 'error'); + } + } + else if ($action == 'setget') { + $script_name = get_input_value('_set', RCUBE_INPUT_GPC, true); + $script = $this->sieve->get_script($script_name); + + if (PEAR::isError($script)) + exit; + + $browser = new rcube_browser; + + // send download headers + header("Content-Type: application/octet-stream"); + header("Content-Length: ".strlen($script)); + + if ($browser->ie) + header("Content-Type: application/force-download"); + if ($browser->ie && $browser->ver < 7) + $filename = rawurlencode(abbreviate_string($script_name, 55)); + else if ($browser->ie) + $filename = rawurlencode($script_name); + else + $filename = addcslashes($script_name, '\\"'); + + header("Content-Disposition: attachment; filename=\"$filename.txt\""); + echo $script; + exit; + } + else if ($action == 'list') { + $result = $this->list_rules(); + + $this->rc->output->command('managesieve_updatelist', 'list', array('list' => $result)); + } + else if ($action == 'ruleadd') { + $rid = get_input_value('_rid', RCUBE_INPUT_GPC); + $id = $this->genid(); + $content = $this->rule_div($fid, $id, false); + + $this->rc->output->command('managesieve_rulefill', $content, $id, $rid); + } + else if ($action == 'actionadd') { + $aid = get_input_value('_aid', RCUBE_INPUT_GPC); + $id = $this->genid(); + $content = $this->action_div($fid, $id, false); + + $this->rc->output->command('managesieve_actionfill', $content, $id, $aid); + } + + $this->rc->output->send(); + } + else if ($this->rc->task == 'mail') { + // Initialize the form + $rules = get_input_value('r', RCUBE_INPUT_GET); + if (!empty($rules)) { + $i = 0; + foreach ($rules as $rule) { + list($header, $value) = explode(':', $rule, 2); + $tests[$i] = array( + 'type' => 'contains', + 'test' => 'header', + 'arg1' => $header, + 'arg2' => $value, + ); + $i++; + } + + $this->form = array( + 'join' => count($tests) > 1 ? 'allof' : 'anyof', + 'name' => '', + 'tests' => $tests, + 'actions' => array( + 0 => array('type' => 'fileinto'), + 1 => array('type' => 'stop'), + ), + ); + } + } + + $this->managesieve_send(); } - /** - * Forms save action handler - */ function managesieve_save() { // load localization @@ -176,26 +536,1515 @@ class managesieve extends rcube_plugin $this->include_script('managesieve.js'); } - $engine = $this->get_engine(); - $engine->save(); + // Init plugin and handle managesieve connection + $error = $this->managesieve_start(); + + // get request size limits (#1488648) + $max_post = max(array( + ini_get('max_input_vars'), + ini_get('suhosin.request.max_vars'), + ini_get('suhosin.post.max_vars'), + )); + $max_depth = max(array( + ini_get('suhosin.request.max_array_depth'), + ini_get('suhosin.post.max_array_depth'), + )); + + // check request size limit + if ($max_post && count($_POST, COUNT_RECURSIVE) >= $max_post) { + rcube::raise_error(array( + 'code' => 500, 'type' => 'php', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => "Request size limit exceeded (one of max_input_vars/suhosin.request.max_vars/suhosin.post.max_vars)" + ), true, false); + $this->rc->output->show_message('managesieve.filtersaveerror', 'error'); + } + // check request depth limits + else if ($max_depth && count($_POST['_header']) > $max_depth) { + rcube::raise_error(array( + 'code' => 500, 'type' => 'php', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => "Request size limit exceeded (one of suhosin.request.max_array_depth/suhosin.post.max_array_depth)" + ), true, false); + $this->rc->output->show_message('managesieve.filtersaveerror', 'error'); + } + // filters set add action + else if (!empty($_POST['_newset'])) { + $name = get_input_value('_name', RCUBE_INPUT_POST, true); + $copy = get_input_value('_copy', RCUBE_INPUT_POST, true); + $from = get_input_value('_from', RCUBE_INPUT_POST); + $exceptions = $this->rc->config->get('managesieve_filename_exceptions'); + $kolab = $this->rc->config->get('managesieve_kolab_master'); + $name_uc = mb_strtolower($name); + $list = $this->list_scripts(); + + if (!$name) { + $this->errors['name'] = $this->gettext('cannotbeempty'); + } + else if (mb_strlen($name) > 128) { + $this->errors['name'] = $this->gettext('nametoolong'); + } + else if (!empty($exceptions) && in_array($name, (array)$exceptions)) { + $this->errors['name'] = $this->gettext('namereserved'); + } + else if (!empty($kolab) && in_array($name_uc, array('MASTER', 'USER', 'MANAGEMENT'))) { + $this->errors['name'] = $this->gettext('namereserved'); + } + else if (in_array($name, $list)) { + $this->errors['name'] = $this->gettext('setexist'); + } + else if ($from == 'file') { + // from file + if (is_uploaded_file($_FILES['_file']['tmp_name'])) { + $file = file_get_contents($_FILES['_file']['tmp_name']); + $file = preg_replace('/\r/', '', $file); + // for security don't save script directly + // check syntax before, like this... + $this->sieve->load_script($file); + if (!$this->save_script($name)) { + $this->errors['file'] = $this->gettext('setcreateerror'); + } + } + else { // upload failed + $err = $_FILES['_file']['error']; + + if ($err == UPLOAD_ERR_INI_SIZE || $err == UPLOAD_ERR_FORM_SIZE) { + $msg = rcube_label(array('name' => 'filesizeerror', + 'vars' => array('size' => + show_bytes(parse_bytes(ini_get('upload_max_filesize')))))); + } + else { + $this->errors['file'] = $this->gettext('fileuploaderror'); + } + } + } + else if (!$this->sieve->copy($name, $from == 'set' ? $copy : '')) { + $error = 'managesieve.setcreateerror'; + } + + if (!$error && empty($this->errors)) { + // Find position of the new script on the list + $list[] = $name; + asort($list, SORT_LOCALE_STRING); + $list = array_values($list); + $index = array_search($name, $list); + + $this->rc->output->show_message('managesieve.setcreated', 'confirmation'); + $this->rc->output->command('parent.managesieve_updatelist', 'setadd', + array('name' => $name, 'index' => $index)); + } else if ($msg) { + $this->rc->output->command('display_message', $msg, 'error'); + } else if ($error) { + $this->rc->output->show_message($error, 'error'); + } + } + // filter add/edit action + else if (isset($_POST['_name'])) { + $name = trim(get_input_value('_name', RCUBE_INPUT_POST, true)); + $fid = trim(get_input_value('_fid', RCUBE_INPUT_POST)); + $join = trim(get_input_value('_join', RCUBE_INPUT_POST)); + + // and arrays + $headers = get_input_value('_header', RCUBE_INPUT_POST); + $cust_headers = get_input_value('_custom_header', RCUBE_INPUT_POST); + $ops = get_input_value('_rule_op', RCUBE_INPUT_POST); + $sizeops = get_input_value('_rule_size_op', RCUBE_INPUT_POST); + $sizeitems = get_input_value('_rule_size_item', RCUBE_INPUT_POST); + $sizetargets = get_input_value('_rule_size_target', RCUBE_INPUT_POST); + $targets = get_input_value('_rule_target', RCUBE_INPUT_POST, true); + $mods = get_input_value('_rule_mod', RCUBE_INPUT_POST); + $mod_types = get_input_value('_rule_mod_type', RCUBE_INPUT_POST); + $body_trans = get_input_value('_rule_trans', RCUBE_INPUT_POST); + $body_types = get_input_value('_rule_trans_type', RCUBE_INPUT_POST, true); + $comparators = get_input_value('_rule_comp', RCUBE_INPUT_POST); + $act_types = get_input_value('_action_type', RCUBE_INPUT_POST, true); + $mailboxes = get_input_value('_action_mailbox', RCUBE_INPUT_POST, true); + $act_targets = get_input_value('_action_target', RCUBE_INPUT_POST, true); + $area_targets = get_input_value('_action_target_area', RCUBE_INPUT_POST, true); + $reasons = get_input_value('_action_reason', RCUBE_INPUT_POST, true); + $addresses = get_input_value('_action_addresses', RCUBE_INPUT_POST, true); + $days = get_input_value('_action_days', RCUBE_INPUT_POST); + $subject = get_input_value('_action_subject', RCUBE_INPUT_POST, true); + $flags = get_input_value('_action_flags', RCUBE_INPUT_POST); + $varnames = get_input_value('_action_varname', RCUBE_INPUT_POST); + $varvalues = get_input_value('_action_varvalue', RCUBE_INPUT_POST); + $varmods = get_input_value('_action_varmods', RCUBE_INPUT_POST); + $notifyaddrs = get_input_value('_action_notifyaddress', RCUBE_INPUT_POST); + $notifybodies = get_input_value('_action_notifybody', RCUBE_INPUT_POST); + $notifymessages = get_input_value('_action_notifymessage', RCUBE_INPUT_POST); + $notifyfrom = get_input_value('_action_notifyfrom', RCUBE_INPUT_POST); + $notifyimp = get_input_value('_action_notifyimportance', RCUBE_INPUT_POST); + + // we need a "hack" for radiobuttons + foreach ($sizeitems as $item) + $items[] = $item; + + $this->form['disabled'] = $_POST['_disabled'] ? true : false; + $this->form['join'] = $join=='allof' ? true : false; + $this->form['name'] = $name; + $this->form['tests'] = array(); + $this->form['actions'] = array(); + + if ($name == '') + $this->errors['name'] = $this->gettext('cannotbeempty'); + else { + foreach($this->script as $idx => $rule) + if($rule['name'] == $name && $idx != $fid) { + $this->errors['name'] = $this->gettext('ruleexist'); + break; + } + } + + $i = 0; + // rules + if ($join == 'any') { + $this->form['tests'][0]['test'] = 'true'; + } + else { + foreach ($headers as $idx => $header) { + $header = $this->strip_value($header); + $target = $this->strip_value($targets[$idx], true); + $operator = $this->strip_value($ops[$idx]); + $comparator = $this->strip_value($comparators[$idx]); + + if ($header == 'size') { + $sizeop = $this->strip_value($sizeops[$idx]); + $sizeitem = $this->strip_value($items[$idx]); + $sizetarget = $this->strip_value($sizetargets[$idx]); + + $this->form['tests'][$i]['test'] = 'size'; + $this->form['tests'][$i]['type'] = $sizeop; + $this->form['tests'][$i]['arg'] = $sizetarget; + + if ($sizetarget == '') + $this->errors['tests'][$i]['sizetarget'] = $this->gettext('cannotbeempty'); + else if (!preg_match('/^[0-9]+(K|M|G)?$/i', $sizetarget.$sizeitem, $m)) { + $this->errors['tests'][$i]['sizetarget'] = $this->gettext('forbiddenchars'); + $this->form['tests'][$i]['item'] = $sizeitem; + } + else + $this->form['tests'][$i]['arg'] .= $m[1]; + } + else if ($header == 'body') { + $trans = $this->strip_value($body_trans[$idx]); + $trans_type = $this->strip_value($body_types[$idx], true); + + if (preg_match('/^not/', $operator)) + $this->form['tests'][$i]['not'] = true; + $type = preg_replace('/^not/', '', $operator); + + if ($type == 'exists') { + $this->errors['tests'][$i]['op'] = true; + } + + $this->form['tests'][$i]['test'] = 'body'; + $this->form['tests'][$i]['type'] = $type; + $this->form['tests'][$i]['arg'] = $target; + + if ($target == '' && $type != 'exists') + $this->errors['tests'][$i]['target'] = $this->gettext('cannotbeempty'); + else if (preg_match('/^(value|count)-/', $type) && !preg_match('/[0-9]+/', $target)) + $this->errors['tests'][$i]['target'] = $this->gettext('forbiddenchars'); + + $this->form['tests'][$i]['part'] = $trans; + if ($trans == 'content') { + $this->form['tests'][$i]['content'] = $trans_type; + } + } + else { + $cust_header = $headers = $this->strip_value($cust_headers[$idx]); + $mod = $this->strip_value($mods[$idx]); + $mod_type = $this->strip_value($mod_types[$idx]); + + if (preg_match('/^not/', $operator)) + $this->form['tests'][$i]['not'] = true; + $type = preg_replace('/^not/', '', $operator); + + if ($header == '...') { + $headers = preg_split('/[\s,]+/', $cust_header, -1, PREG_SPLIT_NO_EMPTY); + + if (!count($headers)) + $this->errors['tests'][$i]['header'] = $this->gettext('cannotbeempty'); + else { + foreach ($headers as $hr) { + // RFC2822: printable ASCII except colon + if (!preg_match('/^[\x21-\x39\x41-\x7E]+$/i', $hr)) { + $this->errors['tests'][$i]['header'] = $this->gettext('forbiddenchars'); + } + } + } + + if (empty($this->errors['tests'][$i]['header'])) + $cust_header = (is_array($headers) && count($headers) == 1) ? $headers[0] : $headers; + } + + if ($type == 'exists') { + $this->form['tests'][$i]['test'] = 'exists'; + $this->form['tests'][$i]['arg'] = $header == '...' ? $cust_header : $header; + } + else { + $test = 'header'; + $header = $header == '...' ? $cust_header : $header; + + if ($mod == 'address' || $mod == 'envelope') { + $found = false; + if (empty($this->errors['tests'][$i]['header'])) { + foreach ((array)$header as $hdr) { + if (!in_array(strtolower(trim($hdr)), $this->addr_headers)) + $found = true; + } + } + if (!$found) + $test = $mod; + } + + $this->form['tests'][$i]['type'] = $type; + $this->form['tests'][$i]['test'] = $test; + $this->form['tests'][$i]['arg1'] = $header; + $this->form['tests'][$i]['arg2'] = $target; + + if ($target == '') + $this->errors['tests'][$i]['target'] = $this->gettext('cannotbeempty'); + else if (preg_match('/^(value|count)-/', $type) && !preg_match('/[0-9]+/', $target)) + $this->errors['tests'][$i]['target'] = $this->gettext('forbiddenchars'); + + if ($mod) { + $this->form['tests'][$i]['part'] = $mod_type; + } + } + } + + if ($header != 'size' && $comparator) { + if (preg_match('/^(value|count)/', $this->form['tests'][$i]['type'])) + $comparator = 'i;ascii-numeric'; + + $this->form['tests'][$i]['comparator'] = $comparator; + } + + $i++; + } + } + + $i = 0; + // actions + foreach($act_types as $idx => $type) { + $type = $this->strip_value($type); + $target = $this->strip_value($act_targets[$idx]); + + switch ($type) { + + case 'fileinto': + case 'fileinto_copy': + $mailbox = $this->strip_value($mailboxes[$idx], false, false); + $this->form['actions'][$i]['target'] = $this->mod_mailbox($mailbox, 'in'); + if ($type == 'fileinto_copy') { + $type = 'fileinto'; + $this->form['actions'][$i]['copy'] = true; + } + break; + + case 'reject': + case 'ereject': + $target = $this->strip_value($area_targets[$idx]); + $this->form['actions'][$i]['target'] = str_replace("\r\n", "\n", $target); + + // if ($target == '') +// $this->errors['actions'][$i]['targetarea'] = $this->gettext('cannotbeempty'); + break; + + case 'redirect': + case 'redirect_copy': + $this->form['actions'][$i]['target'] = $target; + + if ($this->form['actions'][$i]['target'] == '') + $this->errors['actions'][$i]['target'] = $this->gettext('cannotbeempty'); + else if (!check_email($this->form['actions'][$i]['target'])) + $this->errors['actions'][$i]['target'] = $this->gettext('noemailwarning'); + + if ($type == 'redirect_copy') { + $type = 'redirect'; + $this->form['actions'][$i]['copy'] = true; + } + break; + + case 'addflag': + case 'setflag': + case 'removeflag': + $_target = array(); + if (empty($flags[$idx])) { + $this->errors['actions'][$i]['target'] = $this->gettext('noflagset'); + } + else { + foreach ($flags[$idx] as $flag) { + $_target[] = $this->strip_value($flag); + } + } + $this->form['actions'][$i]['target'] = $_target; + break; + + case 'vacation': + $reason = $this->strip_value($reasons[$idx]); + $this->form['actions'][$i]['reason'] = str_replace("\r\n", "\n", $reason); + $this->form['actions'][$i]['days'] = $days[$idx]; + $this->form['actions'][$i]['subject'] = $subject[$idx]; + $this->form['actions'][$i]['addresses'] = explode(',', $addresses[$idx]); +// @TODO: vacation :mime, :from, :handle + + if ($this->form['actions'][$i]['addresses']) { + foreach($this->form['actions'][$i]['addresses'] as $aidx => $address) { + $address = trim($address); + if (!$address) + unset($this->form['actions'][$i]['addresses'][$aidx]); + else if(!check_email($address)) { + $this->errors['actions'][$i]['addresses'] = $this->gettext('noemailwarning'); + break; + } else + $this->form['actions'][$i]['addresses'][$aidx] = $address; + } + } + + if ($this->form['actions'][$i]['reason'] == '') + $this->errors['actions'][$i]['reason'] = $this->gettext('cannotbeempty'); + if ($this->form['actions'][$i]['days'] && !preg_match('/^[0-9]+$/', $this->form['actions'][$i]['days'])) + $this->errors['actions'][$i]['days'] = $this->gettext('forbiddenchars'); + break; + + case 'set': + $this->form['actions'][$i]['name'] = $varnames[$idx]; + $this->form['actions'][$i]['value'] = $varvalues[$idx]; + foreach ((array)$varmods[$idx] as $v_m) { + $this->form['actions'][$i][$v_m] = true; + } + + if (empty($varnames[$idx])) { + $this->errors['actions'][$i]['name'] = $this->gettext('cannotbeempty'); + } + else if (!preg_match('/^[0-9a-z_]+$/i', $varnames[$idx])) { + $this->errors['actions'][$i]['name'] = $this->gettext('forbiddenchars'); + } + + if (!isset($varvalues[$idx]) || $varvalues[$idx] === '') { + $this->errors['actions'][$i]['value'] = $this->gettext('cannotbeempty'); + } + break; + + case 'notify': + if (empty($notifyaddrs[$idx])) { + $this->errors['actions'][$i]['address'] = $this->gettext('cannotbeempty'); + } + else if (!check_email($notifyaddrs[$idx])) { + $this->errors['actions'][$i]['address'] = $this->gettext('noemailwarning'); + } + if (!empty($notifyfrom[$idx]) && !check_email($notifyfrom[$idx])) { + $this->errors['actions'][$i]['from'] = $this->gettext('noemailwarning'); + } + $this->form['actions'][$i]['address'] = $notifyaddrs[$idx]; + $this->form['actions'][$i]['body'] = $notifybodies[$idx]; + $this->form['actions'][$i]['message'] = $notifymessages[$idx]; + $this->form['actions'][$i]['from'] = $notifyfrom[$idx]; + $this->form['actions'][$i]['importance'] = $notifyimp[$idx]; + break; + } + + $this->form['actions'][$i]['type'] = $type; + $i++; + } + + if (!$this->errors && !$error) { + // zapis skryptu + if (!isset($this->script[$fid])) { + $fid = $this->sieve->script->add_rule($this->form); + $new = true; + } else + $fid = $this->sieve->script->update_rule($fid, $this->form); + + if ($fid !== false) + $save = $this->save_script(); + + if ($save && $fid !== false) { + $this->rc->output->show_message('managesieve.filtersaved', 'confirmation'); + if ($this->rc->task != 'mail') { + $this->rc->output->command('parent.managesieve_updatelist', + isset($new) ? 'add' : 'update', + array( + 'name' => $this->form['name'], + 'id' => $fid, + 'disabled' => $this->form['disabled'] + )); + } + else { + $this->rc->output->command('managesieve_dialog_close'); + $this->rc->output->send('iframe'); + } + } + else { + $this->rc->output->show_message('managesieve.filtersaveerror', 'error'); +// $this->rc->output->send(); + } + } + } + + $this->managesieve_send(); + } + + private function managesieve_send() + { + // Handle form action + if (isset($_GET['_framed']) || isset($_POST['_framed'])) { + if (isset($_GET['_newset']) || isset($_POST['_newset'])) { + $this->rc->output->send('managesieve.setedit'); + } + else { + $this->rc->output->send('managesieve.filteredit'); + } + } else { + $this->rc->output->set_pagetitle($this->gettext('filters')); + $this->rc->output->send('managesieve.managesieve'); + } + } + + // return the filters list as HTML table + function filters_list($attrib) + { + // add id to message list table if not specified + if (!strlen($attrib['id'])) + $attrib['id'] = 'rcmfilterslist'; + + // define list of cols to be displayed + $a_show_cols = array('name'); + + $result = $this->list_rules(); + + // create XHTML table + $out = rcube_table_output($attrib, $result, $a_show_cols, 'id'); + + // set client env + $this->rc->output->add_gui_object('filterslist', $attrib['id']); + $this->rc->output->include_script('list.js'); + + // add some labels to client + $this->rc->output->add_label('managesieve.filterdeleteconfirm'); + + return $out; + } + + // return the filters list as '; + $out .= sprintf(' ', 'from_none', Q($this->gettext('none'))); + + // filters set list + $list = $this->list_scripts(); + $select = new html_select(array('name' => '_copy', 'id' => '_copy')); + + if (is_array($list)) { + asort($list, SORT_LOCALE_STRING); + + if (!$copy) + $copy = $_SESSION['managesieve_current']; + + foreach ($list as $set) { + $select->add($set, $set); + } + + $out .= '
'; + $out .= sprintf(' ', 'from_set', Q($this->gettext('fromset'))); + $out .= $select->show($copy); + } + + // script upload box + $upload = new html_inputfield(array('name' => '_file', 'id' => '_file', 'size' => 30, + 'type' => 'file', 'class' => ($this->errors['file'] ? 'error' : ''))); + + $out .= '
'; + $out .= sprintf(' ', 'from_file', Q($this->gettext('fromfile'))); + $out .= $upload->show(); + $out .= ''; + + $this->rc->output->add_gui_object('sieveform', 'filtersetform'); + + if ($this->errors['name']) + $this->add_tip('_name', $this->errors['name'], true); + if ($this->errors['file']) + $this->add_tip('_file', $this->errors['file'], true); + + $this->print_tips(); + + return $out; + } + + + function filter_form($attrib) + { + if (!$attrib['id']) + $attrib['id'] = 'rcmfilterform'; + + $fid = get_input_value('_fid', RCUBE_INPUT_GPC); + $scr = isset($this->form) ? $this->form : $this->script[$fid]; + + $hiddenfields = new html_hiddenfield(array('name' => '_task', 'value' => $this->rc->task)); + $hiddenfields->add(array('name' => '_action', 'value' => 'plugin.managesieve-save')); + $hiddenfields->add(array('name' => '_framed', 'value' => ($_POST['_framed'] || $_GET['_framed'] ? 1 : 0))); + $hiddenfields->add(array('name' => '_fid', 'value' => $fid)); + + $out = ''."\n"; + $out .= $hiddenfields->show(); + + // 'any' flag + if (sizeof($scr['tests']) == 1 && $scr['tests'][0]['test'] == 'true' && !$scr['tests'][0]['not']) + $any = true; + + // filter name input + $field_id = '_name'; + $input_name = new html_inputfield(array('name' => '_name', 'id' => $field_id, 'size' => 30, + 'class' => ($this->errors['name'] ? 'error' : ''))); + + if ($this->errors['name']) + $this->add_tip($field_id, $this->errors['name'], true); + + if (isset($scr)) + $input_name = $input_name->show($scr['name']); + else + $input_name = $input_name->show(); + + $out .= sprintf("\n %s\n", + $field_id, Q($this->gettext('filtername')), $input_name); + + // filter set selector + if ($this->rc->task == 'mail') { + $out .= sprintf("\n  %s\n", + $field_id, Q($this->gettext('filterset')), + $this->filtersets_list(array('id' => 'sievescriptname'), true)); + } + + $out .= '

' . Q($this->gettext('messagesrules')) . "\n"; + + // any, allof, anyof radio buttons + $field_id = '_allof'; + $input_join = new html_radiobutton(array('name' => '_join', 'id' => $field_id, 'value' => 'allof', + 'onclick' => 'rule_join_radio(\'allof\')', 'class' => 'radio')); + + if (isset($scr) && !$any) + $input_join = $input_join->show($scr['join'] ? 'allof' : ''); + else + $input_join = $input_join->show(); + + $out .= sprintf("%s \n", + $input_join, $field_id, Q($this->gettext('filterallof'))); + + $field_id = '_anyof'; + $input_join = new html_radiobutton(array('name' => '_join', 'id' => $field_id, 'value' => 'anyof', + 'onclick' => 'rule_join_radio(\'anyof\')', 'class' => 'radio')); + + if (isset($scr) && !$any) + $input_join = $input_join->show($scr['join'] ? '' : 'anyof'); + else + $input_join = $input_join->show('anyof'); // default + + $out .= sprintf("%s\n", + $input_join, $field_id, Q($this->gettext('filteranyof'))); + + $field_id = '_any'; + $input_join = new html_radiobutton(array('name' => '_join', 'id' => $field_id, 'value' => 'any', + 'onclick' => 'rule_join_radio(\'any\')', 'class' => 'radio')); + + $input_join = $input_join->show($any ? 'any' : ''); + + $out .= sprintf("%s\n", + $input_join, $field_id, Q($this->gettext('filterany'))); + + $rows_num = isset($scr) ? sizeof($scr['tests']) : 1; + + $out .= '\n"; + + $out .= "
\n"; + + // actions + $out .= '
' . Q($this->gettext('messagesactions')) . "\n"; + + $rows_num = isset($scr) ? sizeof($scr['actions']) : 1; + + $out .= '
'; + for ($x=0; $x<$rows_num; $x++) + $out .= $this->action_div($fid, $x); + $out .= "
\n"; + + $out .= "
\n"; + + $this->print_tips(); + + if ($scr['disabled']) { + $this->rc->output->set_env('rule_disabled', true); + } + $this->rc->output->add_label( + 'managesieve.ruledeleteconfirm', + 'managesieve.actiondeleteconfirm' + ); + $this->rc->output->add_gui_object('sieveform', 'filterform'); + + return $out; + } + + function rule_div($fid, $id, $div=true) + { + $rule = isset($this->form) ? $this->form['tests'][$id] : $this->script[$fid]['tests'][$id]; + $rows_num = isset($this->form) ? sizeof($this->form['tests']) : sizeof($this->script[$fid]['tests']); + + // headers select + $select_header = new html_select(array('name' => "_header[]", 'id' => 'header'.$id, + 'onchange' => 'rule_header_select(' .$id .')')); + foreach($this->headers as $name => $val) + $select_header->add(Q($this->gettext($name)), Q($val)); + if (in_array('body', $this->exts)) + $select_header->add(Q($this->gettext('body')), 'body'); + $select_header->add(Q($this->gettext('size')), 'size'); + $select_header->add(Q($this->gettext('...')), '...'); + + // TODO: list arguments + $aout = ''; + + if ((isset($rule['test']) && in_array($rule['test'], array('header', 'address', 'envelope'))) + && !is_array($rule['arg1']) && in_array($rule['arg1'], $this->headers) + ) { + $aout .= $select_header->show($rule['arg1']); + } + else if ((isset($rule['test']) && $rule['test'] == 'exists') + && !is_array($rule['arg']) && in_array($rule['arg'], $this->headers) + ) { + $aout .= $select_header->show($rule['arg']); + } + else if (isset($rule['test']) && $rule['test'] == 'size') + $aout .= $select_header->show('size'); + else if (isset($rule['test']) && $rule['test'] == 'body') + $aout .= $select_header->show('body'); + else if (isset($rule['test']) && $rule['test'] != 'true') + $aout .= $select_header->show('...'); + else + $aout .= $select_header->show(); + + if (isset($rule['test']) && in_array($rule['test'], array('header', 'address', 'envelope'))) { + if (is_array($rule['arg1'])) + $custom = implode(', ', $rule['arg1']); + else if (!in_array($rule['arg1'], $this->headers)) + $custom = $rule['arg1']; + } + else if (isset($rule['test']) && $rule['test'] == 'exists') { + if (is_array($rule['arg'])) + $custom = implode(', ', $rule['arg']); + else if (!in_array($rule['arg'], $this->headers)) + $custom = $rule['arg']; + } + + $tout = '
+ error_class($id, 'test', 'header', 'custom_header_i') + .' value="' .Q($custom). '" size="15" /> 
' . "\n"; + + // matching type select (operator) + $select_op = new html_select(array('name' => "_rule_op[]", 'id' => 'rule_op'.$id, + 'style' => 'display:' .($rule['test']!='size' ? 'inline' : 'none'), + 'class' => 'operator_selector', + 'onchange' => 'rule_op_select('.$id.')')); + $select_op->add(Q($this->gettext('filtercontains')), 'contains'); + $select_op->add(Q($this->gettext('filternotcontains')), 'notcontains'); + $select_op->add(Q($this->gettext('filteris')), 'is'); + $select_op->add(Q($this->gettext('filterisnot')), 'notis'); + $select_op->add(Q($this->gettext('filterexists')), 'exists'); + $select_op->add(Q($this->gettext('filternotexists')), 'notexists'); + $select_op->add(Q($this->gettext('filtermatches')), 'matches'); + $select_op->add(Q($this->gettext('filternotmatches')), 'notmatches'); + if (in_array('regex', $this->exts)) { + $select_op->add(Q($this->gettext('filterregex')), 'regex'); + $select_op->add(Q($this->gettext('filternotregex')), 'notregex'); + } + if (in_array('relational', $this->exts)) { + $select_op->add(Q($this->gettext('countisgreaterthan')), 'count-gt'); + $select_op->add(Q($this->gettext('countisgreaterthanequal')), 'count-ge'); + $select_op->add(Q($this->gettext('countislessthan')), 'count-lt'); + $select_op->add(Q($this->gettext('countislessthanequal')), 'count-le'); + $select_op->add(Q($this->gettext('countequals')), 'count-eq'); + $select_op->add(Q($this->gettext('countnotequals')), 'count-ne'); + $select_op->add(Q($this->gettext('valueisgreaterthan')), 'value-gt'); + $select_op->add(Q($this->gettext('valueisgreaterthanequal')), 'value-ge'); + $select_op->add(Q($this->gettext('valueislessthan')), 'value-lt'); + $select_op->add(Q($this->gettext('valueislessthanequal')), 'value-le'); + $select_op->add(Q($this->gettext('valueequals')), 'value-eq'); + $select_op->add(Q($this->gettext('valuenotequals')), 'value-ne'); + } + + // target input (TODO: lists) + + if (in_array($rule['test'], array('header', 'address', 'envelope'))) { + $test = ($rule['not'] ? 'not' : '').($rule['type'] ? $rule['type'] : 'is'); + $target = $rule['arg2']; + } + else if ($rule['test'] == 'body') { + $test = ($rule['not'] ? 'not' : '').($rule['type'] ? $rule['type'] : 'is'); + $target = $rule['arg']; + } + else if ($rule['test'] == 'size') { + $test = ''; + $target = ''; + if (preg_match('/^([0-9]+)(K|M|G)?$/', $rule['arg'], $matches)) { + $sizetarget = $matches[1]; + $sizeitem = $matches[2]; + } + else { + $sizetarget = $rule['arg']; + $sizeitem = $rule['item']; + } + } + else { + $test = ($rule['not'] ? 'not' : '').$rule['test']; + $target = ''; + } + + $tout .= $select_op->show($test); + $tout .= 'error_class($id, 'test', 'target', 'rule_target') + . ' style="display:' . ($rule['test']!='size' && $rule['test'] != 'exists' ? 'inline' : 'none') . '" />'."\n"; + + $select_size_op = new html_select(array('name' => "_rule_size_op[]", 'id' => 'rule_size_op'.$id)); + $select_size_op->add(Q($this->gettext('filterover')), 'over'); + $select_size_op->add(Q($this->gettext('filterunder')), 'under'); + + $tout .= '
'; + $tout .= $select_size_op->show($rule['test']=='size' ? $rule['type'] : ''); + $tout .= 'error_class($id, 'test', 'sizetarget', 'rule_size_i') .' /> + '.rcube_label('B').' + '.rcube_label('KB').' + '.rcube_label('MB').' + '.rcube_label('GB'); + $tout .= '
'; + + // Advanced modifiers (address, envelope) + $select_mod = new html_select(array('name' => "_rule_mod[]", 'id' => 'rule_mod_op'.$id, + 'onchange' => 'rule_mod_select(' .$id .')')); + $select_mod->add(Q($this->gettext('none')), ''); + $select_mod->add(Q($this->gettext('address')), 'address'); + if (in_array('envelope', $this->exts)) + $select_mod->add(Q($this->gettext('envelope')), 'envelope'); + + $select_type = new html_select(array('name' => "_rule_mod_type[]", 'id' => 'rule_mod_type'.$id)); + $select_type->add(Q($this->gettext('allparts')), 'all'); + $select_type->add(Q($this->gettext('domain')), 'domain'); + $select_type->add(Q($this->gettext('localpart')), 'localpart'); + if (in_array('subaddress', $this->exts)) { + $select_type->add(Q($this->gettext('user')), 'user'); + $select_type->add(Q($this->gettext('detail')), 'detail'); + } + + $need_mod = $rule['test'] != 'size' && $rule['test'] != 'body'; + $mout = '
'; + $mout .= ' '; + $mout .= Q($this->gettext('modifier')) . ' '; + $mout .= $select_mod->show($rule['test']); + $mout .= ''; + $mout .= ' '; + $mout .= Q($this->gettext('modtype')) . ' '; + $mout .= $select_type->show($rule['part']); + $mout .= ''; + $mout .= '
'; + + // Advanced modifiers (body transformations) + $select_mod = new html_select(array('name' => "_rule_trans[]", 'id' => 'rule_trans_op'.$id, + 'onchange' => 'rule_trans_select(' .$id .')')); + $select_mod->add(Q($this->gettext('text')), 'text'); + $select_mod->add(Q($this->gettext('undecoded')), 'raw'); + $select_mod->add(Q($this->gettext('contenttype')), 'content'); + + $mout .= '
'; + $mout .= ' '; + $mout .= Q($this->gettext('modifier')) . ' '; + $mout .= $select_mod->show($rule['part']); + $mout .= 'error_class($id, 'test', 'part', 'rule_trans_type') .' />'; + $mout .= ''; + $mout .= '
'; + + // Advanced modifiers (body transformations) + $select_comp = new html_select(array('name' => "_rule_comp[]", 'id' => 'rule_comp_op'.$id)); + $select_comp->add(Q($this->gettext('default')), ''); + $select_comp->add(Q($this->gettext('octet')), 'i;octet'); + $select_comp->add(Q($this->gettext('asciicasemap')), 'i;ascii-casemap'); + if (in_array('comparator-i;ascii-numeric', $this->exts)) { + $select_comp->add(Q($this->gettext('asciinumeric')), 'i;ascii-numeric'); + } + + $mout .= '
'; + $mout .= ' '; + $mout .= Q($this->gettext('comparator')) . ' '; + $mout .= $select_comp->show($rule['comparator']); + $mout .= ''; + $mout .= '
'; + + // Build output table + $out = $div ? '
'."\n" : ''; + $out .= ''; + $out .= ''; + $out .= ''; + $out .= ''; + + // add/del buttons + $out .= ''; + $out .= '
'; + $out .= '  '; + $out .= '' . $aout . '' . $tout . "\n"; + $out .= ''; + $out .= ''; + $out .= ''; + $out .= ''; + $out .= '
'; + + $out .= $div ? "
\n" : ''; + + return $out; + } + + function action_div($fid, $id, $div=true) + { + $action = isset($this->form) ? $this->form['actions'][$id] : $this->script[$fid]['actions'][$id]; + $rows_num = isset($this->form) ? sizeof($this->form['actions']) : sizeof($this->script[$fid]['actions']); + + $out = $div ? '
'."\n" : ''; + + $out .= ''; + + // actions target inputs + $out .= ''; + + // add/del buttons + $out .= ''; + + $out .= '
'; + + // action select + $select_action = new html_select(array('name' => "_action_type[$id]", 'id' => 'action_type'.$id, + 'onchange' => 'action_type_select(' .$id .')')); + if (in_array('fileinto', $this->exts)) + $select_action->add(Q($this->gettext('messagemoveto')), 'fileinto'); + if (in_array('fileinto', $this->exts) && in_array('copy', $this->exts)) + $select_action->add(Q($this->gettext('messagecopyto')), 'fileinto_copy'); + $select_action->add(Q($this->gettext('messageredirect')), 'redirect'); + if (in_array('copy', $this->exts)) + $select_action->add(Q($this->gettext('messagesendcopy')), 'redirect_copy'); + if (in_array('reject', $this->exts)) + $select_action->add(Q($this->gettext('messagediscard')), 'reject'); + else if (in_array('ereject', $this->exts)) + $select_action->add(Q($this->gettext('messagediscard')), 'ereject'); + if (in_array('vacation', $this->exts)) + $select_action->add(Q($this->gettext('messagereply')), 'vacation'); + $select_action->add(Q($this->gettext('messagedelete')), 'discard'); + if (in_array('imapflags', $this->exts) || in_array('imap4flags', $this->exts)) { + $select_action->add(Q($this->gettext('setflags')), 'setflag'); + $select_action->add(Q($this->gettext('addflags')), 'addflag'); + $select_action->add(Q($this->gettext('removeflags')), 'removeflag'); + } + if (in_array('variables', $this->exts)) { + $select_action->add(Q($this->gettext('setvariable')), 'set'); + } + if (in_array('enotify', $this->exts) || in_array('notify', $this->exts)) { + $select_action->add(Q($this->gettext('notify')), 'notify'); + } + $select_action->add(Q($this->gettext('rulestop')), 'stop'); + + $select_type = $action['type']; + if (in_array($action['type'], array('fileinto', 'redirect')) && $action['copy']) { + $select_type .= '_copy'; + } + + $out .= $select_action->show($select_type); + $out .= ''; + // shared targets + $out .= 'error_class($id, 'action', 'target', 'action_target') .' />'; + $out .= '\n"; + + // vacation + $out .= '
'; + $out .= ''. Q($this->gettext('vacationreason')) .'
' + .'\n"; + $out .= '
' .Q($this->gettext('vacationsubject')) . '
' + .'error_class($id, 'action', 'subject', 'action_subject') .' />'; + $out .= '
' .Q($this->gettext('vacationaddresses')) . '
' + .'error_class($id, 'action', 'addresses', 'action_addr') .' />'; + $out .= '
' . Q($this->gettext('vacationdays')) . '
' + .'error_class($id, 'action', 'days', 'action_days') .' />'; + $out .= '
'; + + // flags + $flags = array( + 'read' => '\\Seen', + 'answered' => '\\Answered', + 'flagged' => '\\Flagged', + 'deleted' => '\\Deleted', + 'draft' => '\\Draft', + ); + $flags_target = (array)$action['target']; + + $out .= '
error_class($id, 'action', 'flags', 'action_flags') . '>'; + foreach ($flags as $fidx => $flag) { + $out .= '' + . Q($this->gettext('flag'.$fidx)) .'
'; + } + $out .= '
'; + + // set variable + $set_modifiers = array( + 'lower', + 'upper', + 'lowerfirst', + 'upperfirst', + 'quotewildcard', + 'length' + ); + + $out .= '
'; + $out .= '' .Q($this->gettext('setvarname')) . '
' + .'error_class($id, 'action', 'name', 'action_varname') .' />'; + $out .= '
' .Q($this->gettext('setvarvalue')) . '
' + .'error_class($id, 'action', 'value', 'action_varvalue') .' />'; + $out .= '
' .Q($this->gettext('setvarmodifiers')) . '
'; + foreach ($set_modifiers as $j => $s_m) { + $s_m_id = 'action_varmods' . $id . $s_m; + $out .= sprintf('%s
', + $id, $s_m, $s_m_id, + (array_key_exists($s_m, (array)$action) && $action[$s_m] ? ' checked="checked"' : ''), + Q($this->gettext('var' . $s_m))); + } + $out .= '
'; + + // notify + // skip :options tag - not used by the mailto method + $out .= '
'; + $out .= '' .Q($this->gettext('notifyaddress')) . '
' + .'error_class($id, 'action', 'address', 'action_notifyaddress') .' />'; + $out .= '
'. Q($this->gettext('notifybody')) .'
' + .'\n"; + $out .= '
' .Q($this->gettext('notifysubject')) . '
' + .'error_class($id, 'action', 'message', 'action_notifymessage') .' />'; + $out .= '
' .Q($this->gettext('notifyfrom')) . '
' + .'error_class($id, 'action', 'from', 'action_notifyfrom') .' />'; + $importance_options = array( + 3 => 'notifyimportancelow', + 2 => 'notifyimportancenormal', + 1 => 'notifyimportancehigh' + ); + $select_importance = new html_select(array( + 'name' => '_action_notifyimportance[' . $id . ']', + 'id' => '_action_notifyimportance' . $id, + 'class' => $this->error_class($id, 'action', 'importance', 'action_notifyimportance'))); + foreach ($importance_options as $io_v => $io_n) { + $select_importance->add(Q($this->gettext($io_n)), $io_v); + } + $out .= '
' . Q($this->gettext('notifyimportance')) . '
'; + $out .= $select_importance->show($action['importance'] ? $action['importance'] : 2); + $out .= '
'; + + // mailbox select + if ($action['type'] == 'fileinto') + $mailbox = $this->mod_mailbox($action['target'], 'out'); + else + $mailbox = ''; + + $select = rcmail_mailbox_select(array( + 'realnames' => false, + 'maxlength' => 100, + 'id' => 'action_mailbox' . $id, + 'name' => "_action_mailbox[$id]", + 'style' => 'display:'.(!isset($action) || $action['type']=='fileinto' ? 'inline' : 'none') + )); + $out .= $select->show($mailbox); + $out .= '
'; + $out .= ''; + $out .= ''; + $out .= '
'; + + $out .= $div ? "
\n" : ''; + + return $out; + } + + private function genid() + { + return preg_replace('/[^0-9]/', '', microtime(true)); + } + + private function strip_value($str, $allow_html = false, $trim = true) + { + if (!$allow_html) { + $str = strip_tags($str); + } + + return $trim ? trim($str) : $str; + } + + private function error_class($id, $type, $target, $elem_prefix='') + { + // TODO: tooltips + if (($type == 'test' && ($str = $this->errors['tests'][$id][$target])) || + ($type == 'action' && ($str = $this->errors['actions'][$id][$target])) + ) { + $this->add_tip($elem_prefix.$id, $str, true); + return ' class="error"'; + } + + return ''; + } + + private function add_tip($id, $str, $error=false) + { + if ($error) + $str = html::span('sieve error', $str); + + $this->tips[] = array($id, $str); + } + + private function print_tips() + { + if (empty($this->tips)) + return; + + $script = JS_OBJECT_NAME.'.managesieve_tip_register('.json_encode($this->tips).');'; + $this->rc->output->add_script($script, 'foot'); } /** - * Initializes engine object + * Converts mailbox name from/to UTF7-IMAP from/to internal Sieve encoding + * with delimiter replacement. + * + * @param string $mailbox Mailbox name + * @param string $mode Conversion direction ('in'|'out') + * + * @return string Mailbox name */ - private function get_engine() + private function mod_mailbox($mailbox, $mode = 'out') { - if (!$this->engine) { - $this->load_config(); + $delimiter = $_SESSION['imap_delimiter']; + $replace_delimiter = $this->rc->config->get('managesieve_replace_delimiter'); + $mbox_encoding = $this->rc->config->get('managesieve_mbox_encoding', 'UTF7-IMAP'); + + if ($mode == 'out') { + $mailbox = rcube_charset_convert($mailbox, $mbox_encoding, 'UTF7-IMAP'); + if ($replace_delimiter && $replace_delimiter != $delimiter) + $mailbox = str_replace($replace_delimiter, $delimiter, $mailbox); + } + else { + $mailbox = rcube_charset_convert($mailbox, 'UTF7-IMAP', $mbox_encoding); + if ($replace_delimiter && $replace_delimiter != $delimiter) + $mailbox = str_replace($delimiter, $replace_delimiter, $mailbox); + } + + return $mailbox; + } + + /** + * List sieve scripts + * + * @return array Scripts list + */ + public function list_scripts() + { + if ($this->list !== null) { + return $this->list; + } + + $this->list = $this->sieve->get_scripts(); + + // Handle active script(s) and list of scripts according to Kolab's KEP:14 + if ($this->rc->config->get('managesieve_kolab_master')) { - // Add include path for internal classes - $include_path = $this->home . '/lib' . PATH_SEPARATOR; - $include_path .= ini_get('include_path'); - set_include_path($include_path); + // Skip protected names + foreach ((array)$this->list as $idx => $name) { + $_name = strtoupper($name); + if ($_name == 'MASTER') + $master_script = $name; + else if ($_name == 'MANAGEMENT') + $management_script = $name; + else if($_name == 'USER') + $user_script = $name; + else + continue; - $this->engine = new rcube_sieve_engine($this); + unset($this->list[$idx]); + } + + // get active script(s), read USER script + if ($user_script) { + $extension = $this->rc->config->get('managesieve_filename_extension', '.sieve'); + $filename_regex = '/'.preg_quote($extension, '/').'$/'; + $_SESSION['managesieve_user_script'] = $user_script; + + $this->sieve->load($user_script); + + foreach ($this->sieve->script->as_array() as $rules) { + foreach ($rules['actions'] as $action) { + if ($action['type'] == 'include' && empty($action['global'])) { + $name = preg_replace($filename_regex, '', $action['target']); + $this->active[] = $name; + } + } + } + } + // create USER script if it doesn't exist + else { + $content = "# USER Management Script\n" + ."#\n" + ."# This script includes the various active sieve scripts\n" + ."# it is AUTOMATICALLY GENERATED. DO NOT EDIT MANUALLY!\n" + ."#\n" + ."# For more information, see http://wiki.kolab.org/KEP:14#USER\n" + ."#\n"; + if ($this->sieve->save_script('USER', $content)) { + $_SESSION['managesieve_user_script'] = 'USER'; + if (empty($this->master_file)) + $this->sieve->activate('USER'); + } + } + } + else if (!empty($this->list)) { + // Get active script name + if ($active = $this->sieve->get_active()) { + $this->active = array($active); + } + + // Hide scripts from config + $exceptions = $this->rc->config->get('managesieve_filename_exceptions'); + if (!empty($exceptions)) { + $this->list = array_diff($this->list, (array)$exceptions); + } + } + + return $this->list; + } + + /** + * Removes sieve script + * + * @param string $name Script name + * + * @return bool True on success, False on failure + */ + public function remove_script($name) + { + $result = $this->sieve->remove($name); + + // Kolab's KEP:14 + if ($result && $this->rc->config->get('managesieve_kolab_master')) { + $this->deactivate_script($name); + } + + return $result; + } + + /** + * Activates sieve script + * + * @param string $name Script name + * + * @return bool True on success, False on failure + */ + public function activate_script($name) + { + // Kolab's KEP:14 + if ($this->rc->config->get('managesieve_kolab_master')) { + $extension = $this->rc->config->get('managesieve_filename_extension', '.sieve'); + $user_script = $_SESSION['managesieve_user_script']; + + // if the script is not active... + if ($user_script && ($key = array_search($name, $this->active)) === false) { + // ...rewrite USER file adding appropriate include command + if ($this->sieve->load($user_script)) { + $script = $this->sieve->script->as_array(); + $list = array(); + $regexp = '/' . preg_quote($extension, '/') . '$/'; + + // Create new include entry + $rule = array( + 'actions' => array( + 0 => array( + 'target' => $name.$extension, + 'type' => 'include', + 'personal' => true, + ))); + + // get all active scripts for sorting + foreach ($script as $rid => $rules) { + foreach ($rules['actions'] as $aid => $action) { + if ($action['type'] == 'include' && empty($action['global'])) { + $target = $extension ? preg_replace($regexp, '', $action['target']) : $action['target']; + $list[] = $target; + } + } + } + $list[] = $name; + + // Sort and find current script position + asort($list, SORT_LOCALE_STRING); + $list = array_values($list); + $index = array_search($name, $list); + + // add rule at the end of the script + if ($index === false || $index == count($list)-1) { + $this->sieve->script->add_rule($rule); + } + // add rule at index position + else { + $script2 = array(); + foreach ($script as $rid => $rules) { + if ($rid == $index) { + $script2[] = $rule; + } + $script2[] = $rules; + } + $this->sieve->script->content = $script2; + } + + $result = $this->sieve->save(); + if ($result) { + $this->active[] = $name; + } + } + } + } + else { + $result = $this->sieve->activate($name); + if ($result) + $this->active = array($name); + } + + return $result; + } + + /** + * Deactivates sieve script + * + * @param string $name Script name + * + * @return bool True on success, False on failure + */ + public function deactivate_script($name) + { + // Kolab's KEP:14 + if ($this->rc->config->get('managesieve_kolab_master')) { + $extension = $this->rc->config->get('managesieve_filename_extension', '.sieve'); + $user_script = $_SESSION['managesieve_user_script']; + + // if the script is active... + if ($user_script && ($key = array_search($name, $this->active)) !== false) { + // ...rewrite USER file removing appropriate include command + if ($this->sieve->load($user_script)) { + $script = $this->sieve->script->as_array(); + $name = $name.$extension; + + foreach ($script as $rid => $rules) { + foreach ($rules['actions'] as $aid => $action) { + if ($action['type'] == 'include' && empty($action['global']) + && $action['target'] == $name + ) { + break 2; + } + } + } + + // Entry found + if ($rid < count($script)) { + $this->sieve->script->delete_rule($rid); + $result = $this->sieve->save(); + if ($result) { + unset($this->active[$key]); + } + } + } + } + } + else { + $result = $this->sieve->deactivate(); + if ($result) + $this->active = array(); + } + + return $result; + } + + /** + * Saves current script (adding some variables) + */ + public function save_script($name = null) + { + // Kolab's KEP:14 + if ($this->rc->config->get('managesieve_kolab_master')) { + $this->sieve->script->set_var('EDITOR', self::PROGNAME); + $this->sieve->script->set_var('EDITOR_VERSION', self::VERSION); + } + + return $this->sieve->save($name); + } + + /** + * Returns list of rules from the current script + * + * @return array List of rules + */ + public function list_rules() + { + $result = array(); + $i = 1; + + foreach ($this->script as $idx => $filter) { + if ($filter['type'] != 'if') { + continue; + } + $fname = $filter['name'] ? $filter['name'] : "#$i"; + $result[] = array( + 'id' => $idx, + 'name' => $fname, + 'class' => $filter['disabled'] ? 'disabled' : '', + ); + $i++; } - return $this->engine; + return $result; } } diff --git a/plugins/managesieve/package.xml b/plugins/managesieve/package.xml index 6ae53c250..a0c38b82d 100644 --- a/plugins/managesieve/package.xml +++ b/plugins/managesieve/package.xml @@ -17,16 +17,16 @@ alec@alec.pl yes - 2013-09-09 + 2013-02-17 - 7.0 - 7.0 + 6.2 + 6.0 stable stable - GNU GPLv3+ + GNU GPLv2 - @@ -38,10 +38,6 @@ - - - - @@ -97,7 +93,6 @@ - @@ -108,8 +103,11 @@ - + + + + diff --git a/plugins/managesieve/skins/classic/managesieve.css b/plugins/managesieve/skins/classic/managesieve.css index 59d88cb46..b7c6f5d06 100644 --- a/plugins/managesieve/skins/classic/managesieve.css +++ b/plugins/managesieve/skins/classic/managesieve.css @@ -171,12 +171,12 @@ td.advbutton a td.advbutton a.show { - background: url(images/down_small.gif) center no-repeat; + background: url(images/down_small.gif?v=8629.106) center no-repeat; } td.advbutton a.hide { - background: url(images/up_small.gif) center no-repeat; + background: url(images/up_small.gif?v=c56c.106) center no-repeat; } td.rowbuttons @@ -201,30 +201,11 @@ td.rowtargets padding-top: 2px; } -td.rowtargets > div -{ - vertical-align: top; - margin-top: 2px; -} - td.rowtargets div.adv { padding-top: 3px; } -td.rowtargets div.adv span.label -{ - display: inline-block; - padding-right: 10px; - min-width: 65px; -} - -html.mozilla #filter-form select -{ - padding-top: 3px; - padding-bottom: 3px; -} - input.disabled, input.disabled:hover { color: #999999; @@ -245,7 +226,6 @@ input.radio select.operator_selector { width: 200px; - vertical-align: top; } td.rowtargets span, @@ -256,11 +236,6 @@ span.label white-space: nowrap; } -td.rowtargets label -{ - color: black; -} - #footer { padding-top: 5px; @@ -299,7 +274,7 @@ span.sieve.error a.button.add { - background: url(images/add.png) no-repeat; + background: url(images/add.png?v=a165.280) no-repeat; width: 30px; height: 20px; margin-right: 4px; @@ -308,7 +283,7 @@ a.button.add a.button.del { - background: url(images/del.png) no-repeat; + background: url(images/del.png?v=3c27.247) no-repeat; width: 30px; height: 20px; display: inline-block; @@ -326,78 +301,8 @@ a.button.disabled #filter-form textarea { font-size: 11px; - vertical-align: middle; } -/* smart multi-row input field */ -.listarea -{ - border: 1px solid #666; - margin: 0; - padding: 1px; - display: inline-block; - max-height: 67px; - overflow-y: auto; -} - -td.rowtargets > span.listarea -{ - vertical-align: top; - margin-top: 2px; -} - -.listelement -{ - display: block; - white-space: nowrap; - background-color: #fff; - border-top: 1px solid #e2e2e2; - height: 16px; - padding: 0; - margin: 0; - overflow: hidden; - line-height: 16px; -} - -.listarea.error .listelement -{ - background-color: #FFFFC4; -} - -.listelement:first-child -{ - border-top: none; -} - -#filter-form .listelement input -{ - border: none; - border-radius: 0; - box-shadow: none; - outline: none; - vertical-align: top; - height: 16px; - padding-top: 0; - padding-bottom: 0; - line-height: 16px; - background-color: transparent; -} - -.listelement input:focus -{ - box-shadow: none; -} - -.listelement .reset -{ - display: inline-block; - width: 16px; - height: 16px; - background: url(images/erase.png) -1px 0 no-repeat #eee; - cursor: pointer; -} - - /* fixes for popup window */ body.iframe.mail diff --git a/plugins/managesieve/skins/classic/managesieve_mail.css b/plugins/managesieve/skins/classic/managesieve_mail.css index 87a11cc92..73cc47ba2 100644 --- a/plugins/managesieve/skins/classic/managesieve_mail.css +++ b/plugins/managesieve/skins/classic/managesieve_mail.css @@ -1,5 +1,5 @@ #messagemenu li a.filterlink { - background-image: url(images/filter.png); + background-image: url(images/filter.png?v=b0fe.547); background-position: 7px 0; } diff --git a/plugins/managesieve/skins/classic/templates/managesieve.html b/plugins/managesieve/skins/classic/templates/managesieve.html index 869e3ac36..71eebe105 100644 --- a/plugins/managesieve/skins/classic/templates/managesieve.html +++ b/plugins/managesieve/skins/classic/templates/managesieve.html @@ -19,7 +19,7 @@ - + @@ -83,9 +83,5 @@
- - diff --git a/plugins/managesieve/skins/larry/managesieve.css b/plugins/managesieve/skins/larry/managesieve.css index 2144fe13f..bf5910edc 100644 --- a/plugins/managesieve/skins/larry/managesieve.css +++ b/plugins/managesieve/skins/larry/managesieve.css @@ -43,7 +43,7 @@ #filtersetslist { width: 100%; - table-layout: fixed; + table-layout: fixed; } #filterslist tbody td, @@ -145,12 +145,12 @@ td.advbutton a td.advbutton a.show { - background: url(images/down_small.gif) center no-repeat; + background: url(images/down_small.gif?v=8629.106) center no-repeat; } td.advbutton a.hide { - background: url(images/up_small.gif) center no-repeat; + background: url(images/up_small.gif?v=c56c.106) center no-repeat; } td.rowbuttons @@ -175,23 +175,9 @@ td.rowtargets padding-top: 2px; } -td.rowtargets > div -{ - vertical-align: top; - margin-top: 2px; -} - td.rowtargets div.adv { padding-top: 3px; - font-size: 10px; -} - -td.rowtargets div.adv span.label -{ - display: inline-block; - padding-right: 5px; - min-width: 70px; } input.disabled, input.disabled:hover @@ -211,15 +197,9 @@ input.radio margin-top: 0; } -input.radio -{ - vertical-align: middle; -} - select.operator_selector { width: 200px; - vertical-align: top; } td.rowtargets span, @@ -230,11 +210,6 @@ span.label white-space: nowrap; } -td.rowtargets label -{ - color: black; -} - #footer { padding-top: 5px; @@ -277,7 +252,7 @@ a.button a.button.add { - background: url(images/add.png) no-repeat; + background: url(images/add.png?v=a165.280) no-repeat; width: 30px; height: 20px; margin-right: 4px; @@ -286,7 +261,7 @@ a.button.add a.button.del { - background: url(images/del.png) no-repeat; + background: url(images/del.png?v=3c27.247) no-repeat; width: 30px; height: 20px; display: inline-block; @@ -305,13 +280,6 @@ a.button.disabled { font-size: 11px; padding: 1px; - vertical-align: middle; -} - -html.mozilla #filter-form select -{ - padding-top: 3px; - padding-bottom: 3px; } /* revert larry style button */ @@ -328,80 +296,6 @@ fieldset border-radius: 4px; } -/* smart multi-row input field */ -.listarea -{ - border: 1px solid #B2B2B2; - border-radius: 4px; - box-shadow: inset 0 0 2px 1px rgba(0,0,0, 0.1); - -moz-box-shadow: inset 0 0 2px 1px rgba(0,0,0, 0.1); - -webkit-box-shadow: inset 0 0 2px 1px rgba(0,0,0, 0.1); - -o-box-shadow: inset 0 0 2px 1px rgba(0,0,0, 0.1); - margin: 0; - padding: 2px; - display: inline-block; - max-height: 59px; - overflow-y: auto; -} - -td.rowtargets > span.listarea -{ - vertical-align: top; - margin-top: 2px; -} - -.listelement -{ - display: block; - white-space: nowrap; - background-color: #fff; - border-top: 1px solid #e2e2e2; - height: 14px; - padding: 0; - margin: 0; - overflow: hidden; - line-height: 14px; -} - -.listarea.error .listelement -{ - background-color: #FFFFC4; -} - -.listelement:first-child -{ - border-top: none; -} - -#filter-form .listelement input -{ - border: none; - border-radius: 0; - box-shadow: none; - outline: none; - vertical-align: top; - height: 14px; - padding-top: 0; - padding-bottom: 0; - line-height: 14px; - background-color: transparent; -} - -.listelement input:focus -{ - box-shadow: none; -} - -.listelement .reset -{ - display: inline-block; - width: 16px; - height: 16px; - background: url(images/erase.png) -1px -1px no-repeat #eee; - cursor: pointer; -} - - /* fixes for popup window */ body.iframe.mail diff --git a/plugins/managesieve/tests/src/parser b/plugins/managesieve/tests/src/parser index c99b49814..9c4717be4 100644 --- a/plugins/managesieve/tests/src/parser +++ b/plugins/managesieve/tests/src/parser @@ -6,13 +6,13 @@ if anyof (header :contains "X-DSPAM-Result" "Spam") stop; } # rule:[test1] -if anyof (header :contains :comparator "i;ascii-casemap" ["From","To"] "test@domain.tld") +if anyof (header :comparator "i;ascii-casemap" :contains ["From","To"] "test@domain.tld") { discard; stop; } # rule:[test2] -if anyof (not header :contains :comparator "i;octet" ["Subject"] "[test]", header :contains "Subject" "[test2]") +if anyof (not header :comparator "i;octet" :contains ["Subject"] "[test]", header :contains "Subject" "[test2]") { fileinto "test"; stop; diff --git a/plugins/managesieve/tests/src/parser.out b/plugins/managesieve/tests/src/parser.out index 796343d4a..385c8890d 100644 --- a/plugins/managesieve/tests/src/parser.out +++ b/plugins/managesieve/tests/src/parser.out @@ -1,4 +1,4 @@ -require ["envelope","fileinto","reject"]; +require ["fileinto","reject","envelope"]; # rule:[spam] if header :contains "X-DSPAM-Result" "Spam" { @@ -12,7 +12,7 @@ if header :contains ["From","To"] "test@domain.tld" stop; } # rule:[test2] -if anyof (not header :contains :comparator "i;octet" "Subject" "[test]", header :contains "Subject" "[test2]") +if anyof (not header :comparator "i;octet" :contains "Subject" "[test]", header :contains "Subject" "[test2]") { fileinto "test"; stop; @@ -39,7 +39,7 @@ if true } fileinto "Test"; # rule:[address test] -if address :is "From" "nagios@domain.tld" +if address :all :is "From" "nagios@domain.tld" { fileinto "domain.tld"; stop; diff --git a/plugins/managesieve/tests/src/parser_enotify_b b/plugins/managesieve/tests/src/parser_enotify_b index a3011bac2..8854658f4 100644 --- a/plugins/managesieve/tests/src/parser_enotify_b +++ b/plugins/managesieve/tests/src/parser_enotify_b @@ -1,6 +1,6 @@ -require ["enotify","envelope","variables"]; +require ["envelope","variables","enotify"]; # rule:[from] -if envelope :matches "from" "*" +if envelope :all :matches "from" "*" { set "env_from" " [really: ${1}]"; } @@ -10,7 +10,7 @@ if header :matches "Subject" "*" set "subject" "${1}"; } # rule:[from notify] -if address :matches "from" "*" +if address :all :matches "from" "*" { set "from_addr" "${1}"; notify :message "${from_addr}${env_from}: ${subject}" "mailto:alm@example.com"; diff --git a/plugins/managesieve/tests/src/parser_notify_b b/plugins/managesieve/tests/src/parser_notify_b index ab90ed48c..cf80a9701 100644 --- a/plugins/managesieve/tests/src/parser_notify_b +++ b/plugins/managesieve/tests/src/parser_notify_b @@ -1,6 +1,6 @@ -require ["envelope","notify","variables"]; +require ["envelope","variables","notify"]; # rule:[from] -if envelope :matches "from" "*" +if envelope :all :matches "from" "*" { set "env_from" " [really: ${1}]"; } @@ -10,7 +10,7 @@ if header :matches "Subject" "*" set "subject" "${1}"; } # rule:[from notify] -if address :matches "from" "*" +if address :all :matches "from" "*" { set "from_addr" "${1}"; notify :message "${from_addr}${env_from}: ${subject}" :method "sms:1234567890"; diff --git a/plugins/managesieve/tests/src/parser_relational b/plugins/managesieve/tests/src/parser_relational index 92c5e1a8e..0a92fde54 100644 --- a/plugins/managesieve/tests/src/parser_relational +++ b/plugins/managesieve/tests/src/parser_relational @@ -1,4 +1,4 @@ -require ["comparator-i;ascii-numeric","relational"]; +require ["relational","comparator-i;ascii-numeric"]; # rule:[redirect] if header :value "ge" :comparator "i;ascii-numeric" "X-Spam-score" "14" { diff --git a/plugins/managesieve/tests/src/parser_subaddress b/plugins/managesieve/tests/src/parser_subaddress index e44555096..f106b796e 100644 --- a/plugins/managesieve/tests/src/parser_subaddress +++ b/plugins/managesieve/tests/src/parser_subaddress @@ -1,4 +1,4 @@ -require ["envelope","fileinto","subaddress"]; +require ["envelope","subaddress","fileinto"]; if envelope :user "To" "postmaster" { fileinto "postmaster"; diff --git a/plugins/markasjunk/localization/az_AZ.inc b/plugins/markasjunk/localization/az_AZ.inc index 407db71c2..420cd036a 100644 --- a/plugins/markasjunk/localization/az_AZ.inc +++ b/plugins/markasjunk/localization/az_AZ.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Spam'; $labels['buttontitle'] = 'Spam qovluğuna köçür'; $labels['reportedasjunk'] = 'Spam qovluğuna köçürüldü'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/be_BE.inc b/plugins/markasjunk/localization/be_BE.inc index 3f4a5f9a6..d11e34bdd 100644 --- a/plugins/markasjunk/localization/be_BE.inc +++ b/plugins/markasjunk/localization/be_BE.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ -$labels['buttontext'] = 'Спам'; + +$labels = array(); +$labels['buttontext'] = 'Junk'; $labels['buttontitle'] = 'Пазначыць як спам'; -$labels['reportedasjunk'] = 'Пазначаны як спам'; +$labels['reportedasjunk'] = 'Паспяхова пазначаны як спам'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/ber.inc b/plugins/markasjunk/localization/ber.inc index 046e45733..12fe4442e 100644 --- a/plugins/markasjunk/localization/ber.inc +++ b/plugins/markasjunk/localization/ber.inc @@ -13,4 +13,5 @@ +-----------------------------------------------------------------------+ */ +$labels = array(); diff --git a/plugins/markasjunk/localization/br.inc b/plugins/markasjunk/localization/br.inc index 3980bc2e3..4ae4190be 100644 --- a/plugins/markasjunk/localization/br.inc +++ b/plugins/markasjunk/localization/br.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Lastez'; $labels['buttontitle'] = 'Merkañ evel lastez'; $labels['reportedasjunk'] = 'Danevellet evel lastez gant berzh'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/bs_BA.inc b/plugins/markasjunk/localization/bs_BA.inc index 6a32ee099..aaa093300 100644 --- a/plugins/markasjunk/localization/bs_BA.inc +++ b/plugins/markasjunk/localization/bs_BA.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Spam'; $labels['buttontitle'] = 'Označi kao spam'; $labels['reportedasjunk'] = 'Uspješno označeno kao spam'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/ca_ES.inc b/plugins/markasjunk/localization/ca_ES.inc index 18fef58a8..4b05d9248 100644 --- a/plugins/markasjunk/localization/ca_ES.inc +++ b/plugins/markasjunk/localization/ca_ES.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Correu brossa'; $labels['buttontitle'] = 'Marca com a Spam'; $labels['reportedasjunk'] = 'S\'ha reportat correctament com a Spam'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/cs_CZ.inc b/plugins/markasjunk/localization/cs_CZ.inc index d0dbc6cd0..b56cb5c88 100644 --- a/plugins/markasjunk/localization/cs_CZ.inc +++ b/plugins/markasjunk/localization/cs_CZ.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Spam'; $labels['buttontitle'] = 'Označit jako Spam'; $labels['reportedasjunk'] = 'Úspěšně nahlášeno jako Spam'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/cy_GB.inc b/plugins/markasjunk/localization/cy_GB.inc index 9ea2c9d21..7b1b6e6d3 100644 --- a/plugins/markasjunk/localization/cy_GB.inc +++ b/plugins/markasjunk/localization/cy_GB.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Sothach'; $labels['buttontitle'] = 'Nodi fel Sbwriel'; $labels['reportedasjunk'] = 'Adroddwyd yn llwyddiannus fel Sbwriel'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/da_DK.inc b/plugins/markasjunk/localization/da_DK.inc index ac2a4c85c..bd76b6ba7 100644 --- a/plugins/markasjunk/localization/da_DK.inc +++ b/plugins/markasjunk/localization/da_DK.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Spam'; $labels['buttontitle'] = 'Marker som spam mail'; $labels['reportedasjunk'] = 'Successfuldt rapporteret som spam mail'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/de_CH.inc b/plugins/markasjunk/localization/de_CH.inc index c61028510..89b22b7b4 100644 --- a/plugins/markasjunk/localization/de_CH.inc +++ b/plugins/markasjunk/localization/de_CH.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Spam'; $labels['buttontitle'] = 'Als SPAM markieren'; $labels['reportedasjunk'] = 'Erfolgreich als SPAM gemeldet'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/de_DE.inc b/plugins/markasjunk/localization/de_DE.inc index 28abacf63..f158d78ac 100644 --- a/plugins/markasjunk/localization/de_DE.inc +++ b/plugins/markasjunk/localization/de_DE.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Spam'; $labels['buttontitle'] = 'als SPAM markieren'; $labels['reportedasjunk'] = 'Erfolgreich als SPAM gemeldet'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/el_GR.inc b/plugins/markasjunk/localization/el_GR.inc index d63ecd57d..fb16a29ce 100644 --- a/plugins/markasjunk/localization/el_GR.inc +++ b/plugins/markasjunk/localization/el_GR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Ανεπιθύμητα'; $labels['buttontitle'] = 'Σήμανση ως Ανεπιθύμητου'; $labels['reportedasjunk'] = 'Αναφέρθηκε ως Ανεπιθήμητο'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/en_GB.inc b/plugins/markasjunk/localization/en_GB.inc index 92c041948..aaa3c91ac 100644 --- a/plugins/markasjunk/localization/en_GB.inc +++ b/plugins/markasjunk/localization/en_GB.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Junk'; $labels['buttontitle'] = 'Mark as Junk'; $labels['reportedasjunk'] = 'Successfully reported as Junk'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/en_US.inc b/plugins/markasjunk/localization/en_US.inc index aaa3c91ac..0cc212f22 100644 --- a/plugins/markasjunk/localization/en_US.inc +++ b/plugins/markasjunk/localization/en_US.inc @@ -2,10 +2,10 @@ /* +-----------------------------------------------------------------------+ - | plugins/markasjunk/localization/.inc | + | plugins/markasjunk/localization/.inc | | | | Localization file of the Roundcube Webmail Mark-As-Junk plugin | - | Copyright (C) 2012-2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | diff --git a/plugins/markasjunk/localization/eo.inc b/plugins/markasjunk/localization/eo.inc index d92e48952..220750a20 100644 --- a/plugins/markasjunk/localization/eo.inc +++ b/plugins/markasjunk/localization/eo.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Rubaĵo'; $labels['buttontitle'] = 'Marki kiel rubaĵo'; $labels['reportedasjunk'] = 'Sukcese raportita kiel rubaĵo'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/es_AR.inc b/plugins/markasjunk/localization/es_AR.inc index b9c452bf1..58e1f25b4 100644 --- a/plugins/markasjunk/localization/es_AR.inc +++ b/plugins/markasjunk/localization/es_AR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Correo no deseado'; $labels['buttontitle'] = 'Marcar como SPAM'; $labels['reportedasjunk'] = 'Mensaje reportado como SPAM'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/es_ES.inc b/plugins/markasjunk/localization/es_ES.inc index e1f7f1750..5bb75548b 100644 --- a/plugins/markasjunk/localization/es_ES.inc +++ b/plugins/markasjunk/localization/es_ES.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'SPAM'; $labels['buttontitle'] = 'Marcar como SPAM'; $labels['reportedasjunk'] = 'Mensaje informado como SPAM'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/et_EE.inc b/plugins/markasjunk/localization/et_EE.inc index 2b1d1f8e7..2d90a4a8c 100644 --- a/plugins/markasjunk/localization/et_EE.inc +++ b/plugins/markasjunk/localization/et_EE.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Rämps'; $labels['buttontitle'] = 'Märgista Rämpsuks'; $labels['reportedasjunk'] = 'Edukalt Rämpsuks märgitud'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/fa_IR.inc b/plugins/markasjunk/localization/fa_IR.inc index f0ba38985..2dc051890 100644 --- a/plugins/markasjunk/localization/fa_IR.inc +++ b/plugins/markasjunk/localization/fa_IR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'بنجل'; $labels['buttontitle'] = 'علامت گذاری به عنوان بنجل'; $labels['reportedasjunk'] = 'با موفقیت به عنوان بنجل گزارش شد'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/fi_FI.inc b/plugins/markasjunk/localization/fi_FI.inc index adf71ea92..4af075f33 100644 --- a/plugins/markasjunk/localization/fi_FI.inc +++ b/plugins/markasjunk/localization/fi_FI.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Roskaposti'; $labels['buttontitle'] = 'Merkitse roskapostiksi'; $labels['reportedasjunk'] = 'Roskapostista on ilmoitettu onnistuneesti'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/fr_FR.inc b/plugins/markasjunk/localization/fr_FR.inc index 1eaa48074..ff96e6a1e 100644 --- a/plugins/markasjunk/localization/fr_FR.inc +++ b/plugins/markasjunk/localization/fr_FR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Indésirables'; $labels['buttontitle'] = 'Marquer comme indésirable'; $labels['reportedasjunk'] = 'Notification de message indésirable envoyée'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/gl_ES.inc b/plugins/markasjunk/localization/gl_ES.inc index 336c0108f..d2a9e98b7 100644 --- a/plugins/markasjunk/localization/gl_ES.inc +++ b/plugins/markasjunk/localization/gl_ES.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Correo lixo'; $labels['buttontitle'] = 'Marcar como correo lixo'; $labels['reportedasjunk'] = 'Mensaxe marcada como correo lixo'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/he_IL.inc b/plugins/markasjunk/localization/he_IL.inc index d672e4bb7..bb2cc266b 100644 --- a/plugins/markasjunk/localization/he_IL.inc +++ b/plugins/markasjunk/localization/he_IL.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'זבל'; $labels['buttontitle'] = 'סמן כדואר זבל'; $labels['reportedasjunk'] = 'דואר הזבל דווח בהצלחה'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/hr_HR.inc b/plugins/markasjunk/localization/hr_HR.inc index 86c72b898..b1da8b128 100644 --- a/plugins/markasjunk/localization/hr_HR.inc +++ b/plugins/markasjunk/localization/hr_HR.inc @@ -15,6 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); +$labels['buttontext'] = 'Junk'; $labels['buttontitle'] = 'Označi kao smeće (spam)'; $labels['reportedasjunk'] = 'Uspješno prijavljeno kao smeće (spam)'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/hu_HU.inc b/plugins/markasjunk/localization/hu_HU.inc index aaccbd461..b5529f024 100644 --- a/plugins/markasjunk/localization/hu_HU.inc +++ b/plugins/markasjunk/localization/hu_HU.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Levélszemét'; $labels['buttontitle'] = 'Szemétnek jelölés'; $labels['reportedasjunk'] = 'Sikeresen szemétnek jelentve'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/hy_AM.inc b/plugins/markasjunk/localization/hy_AM.inc index f08421241..f614b5814 100644 --- a/plugins/markasjunk/localization/hy_AM.inc +++ b/plugins/markasjunk/localization/hy_AM.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Թափոն'; $labels['buttontitle'] = 'Նշել որպես Թափոն'; $labels['reportedasjunk'] = 'Բարեհաջող հաղորդվեց որպես Թափոն'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/id_ID.inc b/plugins/markasjunk/localization/id_ID.inc index e2988fb96..b5cf0e9de 100644 --- a/plugins/markasjunk/localization/id_ID.inc +++ b/plugins/markasjunk/localization/id_ID.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Sampah'; $labels['buttontitle'] = 'Tandai sebagai sampah'; $labels['reportedasjunk'] = 'Berhasil dilaporkan sebagai sampah'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/it_IT.inc b/plugins/markasjunk/localization/it_IT.inc index 86db382a1..8ffa1eb23 100644 --- a/plugins/markasjunk/localization/it_IT.inc +++ b/plugins/markasjunk/localization/it_IT.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Spam'; $labels['buttontitle'] = 'Marca come Spam'; $labels['reportedasjunk'] = 'Messaggio marcato come Spam'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/ja_JP.inc b/plugins/markasjunk/localization/ja_JP.inc index a90e6be99..52811505e 100644 --- a/plugins/markasjunk/localization/ja_JP.inc +++ b/plugins/markasjunk/localization/ja_JP.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = '迷惑メール'; $labels['buttontitle'] = '迷惑メールとして設定'; $labels['reportedasjunk'] = '迷惑メールとして報告しました。'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/km_KH.inc b/plugins/markasjunk/localization/km_KH.inc index ca4ceed66..655af9cb8 100644 --- a/plugins/markasjunk/localization/km_KH.inc +++ b/plugins/markasjunk/localization/km_KH.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'សំបុត្រមិនល្អ'; $labels['buttontitle'] = 'ចាត់ជា សំបុត្រមិនល្អ'; $labels['reportedasjunk'] = 'រាយការណ៏ថាជា សំបុត្រមិនល្អ បានសំរេច'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/ko_KR.inc b/plugins/markasjunk/localization/ko_KR.inc index 209f530a1..dd2d1e798 100644 --- a/plugins/markasjunk/localization/ko_KR.inc +++ b/plugins/markasjunk/localization/ko_KR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = '정크메일'; $labels['buttontitle'] = '정크메일로 표시'; $labels['reportedasjunk'] = '성공적으로, 정크메일이라 보고 됨'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/ku.inc b/plugins/markasjunk/localization/ku.inc index 0bb30fa59..da3dda775 100644 --- a/plugins/markasjunk/localization/ku.inc +++ b/plugins/markasjunk/localization/ku.inc @@ -15,6 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); +$labels['buttontext'] = 'Junk'; $labels['buttontitle'] = 'nawnişani bka ba şkaw'; $labels['reportedasjunk'] = 'ba gşti raport kra'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/lt_LT.inc b/plugins/markasjunk/localization/lt_LT.inc index b93e85d0f..b1973dee0 100644 --- a/plugins/markasjunk/localization/lt_LT.inc +++ b/plugins/markasjunk/localization/lt_LT.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Brukalas'; $labels['buttontitle'] = 'Žymėti kaip brukalą'; $labels['reportedasjunk'] = 'Sėkmingai pranešta, jog laiškas yra brukalas'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/lv_LV.inc b/plugins/markasjunk/localization/lv_LV.inc index 6c56c54ed..f0ea921ba 100644 --- a/plugins/markasjunk/localization/lv_LV.inc +++ b/plugins/markasjunk/localization/lv_LV.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ -$labels['buttontext'] = 'Mēstules'; -$labels['buttontitle'] = 'Atzīmēt kā mēstuli'; -$labels['reportedasjunk'] = 'Sekmīgi iatzīmēta kā mēstule'; + +$labels = array(); +$labels['buttontext'] = 'Junk'; +$labels['buttontitle'] = 'Iezīmēt kā mēstuli'; +$labels['reportedasjunk'] = 'Sekmīgi iezīmēta kā mēstule'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/ml_IN.inc b/plugins/markasjunk/localization/ml_IN.inc index aaa736b98..faeea49ed 100644 --- a/plugins/markasjunk/localization/ml_IN.inc +++ b/plugins/markasjunk/localization/ml_IN.inc @@ -15,6 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); +$labels['buttontext'] = 'Junk'; $labels['buttontitle'] = 'സ്പാം ആയി അടയാളപ്പെടുത്തുക'; $labels['reportedasjunk'] = 'സ്പാം ആയി അടയാളപ്പെടുത്തി'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/mr_IN.inc b/plugins/markasjunk/localization/mr_IN.inc index 232b4b33e..e5d4e89d3 100644 --- a/plugins/markasjunk/localization/mr_IN.inc +++ b/plugins/markasjunk/localization/mr_IN.inc @@ -15,6 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); +$labels['buttontext'] = 'Junk'; $labels['buttontitle'] = 'नको असलेला अशी खूण करा'; $labels['reportedasjunk'] = 'नको आहे असे यशस्वीरीत्या नक्की केले'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/nb_NO.inc b/plugins/markasjunk/localization/nb_NO.inc index af1b2cbf9..1c8058b23 100644 --- a/plugins/markasjunk/localization/nb_NO.inc +++ b/plugins/markasjunk/localization/nb_NO.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Useriøs e-post'; $labels['buttontitle'] = 'Marker som useriøs e-post'; $labels['reportedasjunk'] = 'Rapportering av useriøs e-post var vellykket'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/nl_NL.inc b/plugins/markasjunk/localization/nl_NL.inc index e1ed11568..235ad8e0f 100644 --- a/plugins/markasjunk/localization/nl_NL.inc +++ b/plugins/markasjunk/localization/nl_NL.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Spam'; $labels['buttontitle'] = 'Markeer als spam'; $labels['reportedasjunk'] = 'Succesvol gemarkeerd als spam'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/nn_NO.inc b/plugins/markasjunk/localization/nn_NO.inc index f198c5633..977f4bd01 100644 --- a/plugins/markasjunk/localization/nn_NO.inc +++ b/plugins/markasjunk/localization/nn_NO.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Useriøs e-post'; $labels['buttontitle'] = 'Marker som useriøs e-post'; $labels['reportedasjunk'] = 'Rapportering av useriøs e-post var vellykka'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/pl_PL.inc b/plugins/markasjunk/localization/pl_PL.inc index a23a8de2f..3078967cc 100644 --- a/plugins/markasjunk/localization/pl_PL.inc +++ b/plugins/markasjunk/localization/pl_PL.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Spam'; $labels['buttontitle'] = 'Oznacz jako SPAM'; $labels['reportedasjunk'] = 'Pomyślnie oznaczono jako SPAM'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/pt_BR.inc b/plugins/markasjunk/localization/pt_BR.inc index 001d4639c..578d1de1c 100644 --- a/plugins/markasjunk/localization/pt_BR.inc +++ b/plugins/markasjunk/localization/pt_BR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Spam'; $labels['buttontitle'] = 'Marcar como Spam'; $labels['reportedasjunk'] = 'Marcado como Spam com sucesso'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/pt_PT.inc b/plugins/markasjunk/localization/pt_PT.inc index fd26a38da..20cb00356 100644 --- a/plugins/markasjunk/localization/pt_PT.inc +++ b/plugins/markasjunk/localization/pt_PT.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Lixo'; $labels['buttontitle'] = 'Marcar como Lixo'; $labels['reportedasjunk'] = 'Reportado como Lixo com sucesso'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/ro_RO.inc b/plugins/markasjunk/localization/ro_RO.inc index b843fa590..1186aab73 100644 --- a/plugins/markasjunk/localization/ro_RO.inc +++ b/plugins/markasjunk/localization/ro_RO.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Spam'; $labels['buttontitle'] = 'Marchează ca Spam'; $labels['reportedasjunk'] = 'Raportat cu succes ca Spam'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/ru_RU.inc b/plugins/markasjunk/localization/ru_RU.inc index 78e269543..cbf99d253 100644 --- a/plugins/markasjunk/localization/ru_RU.inc +++ b/plugins/markasjunk/localization/ru_RU.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'СПАМ'; -$labels['buttontitle'] = 'Переместить в СПАМ'; -$labels['reportedasjunk'] = 'Перемещено в СПАМ'; +$labels['buttontitle'] = 'Переместить в "СПАМ'; +$labels['reportedasjunk'] = 'Перемещено в "СПАМ'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/si_LK.inc b/plugins/markasjunk/localization/si_LK.inc index 06283ef87..2a60675af 100644 --- a/plugins/markasjunk/localization/si_LK.inc +++ b/plugins/markasjunk/localization/si_LK.inc @@ -15,6 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); +$labels['buttontext'] = 'Junk'; $labels['buttontitle'] = 'සුන්බුන් ලෙස සලකුණු කරන්න'; $labels['reportedasjunk'] = 'සුන්බුන් ලෙස වාර්තා කිරීම සාර්ථකයි'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/sk_SK.inc b/plugins/markasjunk/localization/sk_SK.inc index 101b57ab7..51b45b835 100644 --- a/plugins/markasjunk/localization/sk_SK.inc +++ b/plugins/markasjunk/localization/sk_SK.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Spam'; $labels['buttontitle'] = 'Označiť ako Spam'; $labels['reportedasjunk'] = 'Úspešne nahlásené ako Spam'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/sl_SI.inc b/plugins/markasjunk/localization/sl_SI.inc index 538bb7f23..c9f585143 100644 --- a/plugins/markasjunk/localization/sl_SI.inc +++ b/plugins/markasjunk/localization/sl_SI.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Nezaželena sporočila'; $labels['buttontitle'] = 'Označi kot spam'; $labels['reportedasjunk'] = 'Uspešno označeno kot spam'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/sr_CS.inc b/plugins/markasjunk/localization/sr_CS.inc index 6977bdcbd..d1d67c3d7 100644 --- a/plugins/markasjunk/localization/sr_CS.inc +++ b/plugins/markasjunk/localization/sr_CS.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Смеће'; $labels['buttontitle'] = 'Означи као cмеће'; $labels['reportedasjunk'] = 'Успешно пријављени као cмеће'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/sv_SE.inc b/plugins/markasjunk/localization/sv_SE.inc index 369821e1d..5b8ddf559 100644 --- a/plugins/markasjunk/localization/sv_SE.inc +++ b/plugins/markasjunk/localization/sv_SE.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Skräp'; $labels['buttontitle'] = 'Märk som skräp'; $labels['reportedasjunk'] = 'Framgångsrikt rapporterat som skräp'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/tr_TR.inc b/plugins/markasjunk/localization/tr_TR.inc index c4230799f..2b07e4dbc 100644 --- a/plugins/markasjunk/localization/tr_TR.inc +++ b/plugins/markasjunk/localization/tr_TR.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'İstenmeyen'; $labels['buttontitle'] = 'Çöp olarak işaretle'; $labels['reportedasjunk'] = 'Spam olarak rapor edildi'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/uk_UA.inc b/plugins/markasjunk/localization/uk_UA.inc index 34e627f1f..17e90447c 100644 --- a/plugins/markasjunk/localization/uk_UA.inc +++ b/plugins/markasjunk/localization/uk_UA.inc @@ -15,6 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); +$labels['buttontext'] = 'Junk'; $labels['buttontitle'] = 'Перемістити в "Спам'; $labels['reportedasjunk'] = 'Переміщено до "Спаму'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/vi_VN.inc b/plugins/markasjunk/localization/vi_VN.inc index cd0909820..5a97db7bc 100644 --- a/plugins/markasjunk/localization/vi_VN.inc +++ b/plugins/markasjunk/localization/vi_VN.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = 'Thư rác'; $labels['buttontitle'] = 'Đánh dấu để được xem là thư rác'; $labels['reportedasjunk'] = 'Đánh dấu để được xem là thư rác thành công'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/zh_CN.inc b/plugins/markasjunk/localization/zh_CN.inc index 1f2250e2b..118e3a956 100644 --- a/plugins/markasjunk/localization/zh_CN.inc +++ b/plugins/markasjunk/localization/zh_CN.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = '垃圾邮件'; $labels['buttontitle'] = '标记为垃圾邮件'; $labels['reportedasjunk'] = '成功报告该邮件为垃圾邮件'; + ?> \ No newline at end of file diff --git a/plugins/markasjunk/localization/zh_TW.inc b/plugins/markasjunk/localization/zh_TW.inc index a42fd119d..3deb85caa 100644 --- a/plugins/markasjunk/localization/zh_TW.inc +++ b/plugins/markasjunk/localization/zh_TW.inc @@ -15,7 +15,10 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-markasjunk/ */ + +$labels = array(); $labels['buttontext'] = '垃圾郵件'; $labels['buttontitle'] = '標示為垃圾信'; $labels['reportedasjunk'] = '成功回報垃圾信'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/az_AZ.inc b/plugins/new_user_dialog/localization/az_AZ.inc index c5196dd99..df576c6f6 100644 --- a/plugins/new_user_dialog/localization/az_AZ.inc +++ b/plugins/new_user_dialog/localization/az_AZ.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Lütfən, adınızı yazın.'; $labels['identitydialoghint'] = 'Bu məlumat yalnız ilk girişdə göstərilir.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/be_BE.inc b/plugins/new_user_dialog/localization/be_BE.inc index 9986d4320..08881d8e6 100644 --- a/plugins/new_user_dialog/localization/be_BE.inc +++ b/plugins/new_user_dialog/localization/be_BE.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ -$labels['identitydialogtitle'] = 'Калі ласка, запоўніце тоеснасць адпраўніка'; -$labels['identitydialoghint'] = 'Гэтае акно з\'яўляецца толькі аднойчы, у час першага ўваходу.'; + +$labels = array(); +$labels['identitydialogtitle'] = 'Калі ласка, запоўніце асабістыя звесткі'; +$labels['identitydialoghint'] = 'Гэтае вакно з\'яўляецца толькі аднойчы, у час першага ўваходу.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/bg_BG.inc b/plugins/new_user_dialog/localization/bg_BG.inc index 38b2c3a10..3201c6104 100644 --- a/plugins/new_user_dialog/localization/bg_BG.inc +++ b/plugins/new_user_dialog/localization/bg_BG.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ -$labels['identitydialogtitle'] = 'Моля попълнете Вашите данни за идентичност на подател'; -$labels['identitydialoghint'] = 'Този диалог се появява само при първоначално регистриране.'; + +$labels = array(); +$labels['identitydialogtitle'] = 'Моля попълнете Вашите данни.'; +$labels['identitydialoghint'] = 'Това съобщение се появява само при първото влизане.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/bs_BA.inc b/plugins/new_user_dialog/localization/bs_BA.inc index ade75f28f..6b07e7cd5 100644 --- a/plugins/new_user_dialog/localization/bs_BA.inc +++ b/plugins/new_user_dialog/localization/bs_BA.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Molimo vas da kompletirate vaš identitet pošiljaoca'; $labels['identitydialoghint'] = 'Ovaj okvir se pojavljuje samo jednom prilikom prve prijave.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/ca_ES.inc b/plugins/new_user_dialog/localization/ca_ES.inc index 148bd440c..047042293 100644 --- a/plugins/new_user_dialog/localization/ca_ES.inc +++ b/plugins/new_user_dialog/localization/ca_ES.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Si us plau, completeu la identitat del vostre remitent'; $labels['identitydialoghint'] = 'Aquest quadre només apareix un cop a la primera entrada.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/cs_CZ.inc b/plugins/new_user_dialog/localization/cs_CZ.inc index ccc9b1023..90f84d0a1 100644 --- a/plugins/new_user_dialog/localization/cs_CZ.inc +++ b/plugins/new_user_dialog/localization/cs_CZ.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Prosím doplňte své jméno a e-mail'; $labels['identitydialoghint'] = 'Tento dialog se objeví pouze při prvním přihlášení.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/cy_GB.inc b/plugins/new_user_dialog/localization/cy_GB.inc index 33eb284e2..e9e42d166 100644 --- a/plugins/new_user_dialog/localization/cy_GB.inc +++ b/plugins/new_user_dialog/localization/cy_GB.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Cwblhewch eich enw danfonwr'; $labels['identitydialoghint'] = 'Mae\'r bocs hwn yn ymddangos unwaith ar eich mewngofnodiad cyntaf.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/da_DK.inc b/plugins/new_user_dialog/localization/da_DK.inc index a34282a3a..c08c108ed 100644 --- a/plugins/new_user_dialog/localization/da_DK.inc +++ b/plugins/new_user_dialog/localization/da_DK.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Udfyld din afsender identitet'; $labels['identitydialoghint'] = 'Denne boks vises kun én gang ved første login'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/de_CH.inc b/plugins/new_user_dialog/localization/de_CH.inc index b5aed0519..23a897d47 100644 --- a/plugins/new_user_dialog/localization/de_CH.inc +++ b/plugins/new_user_dialog/localization/de_CH.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Bitte vervollständigen Sie Ihre Absender-Informationen'; $labels['identitydialoghint'] = 'Dieser Dialog erscheint nur einmal beim ersten Login.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/de_DE.inc b/plugins/new_user_dialog/localization/de_DE.inc index b5aed0519..23a897d47 100644 --- a/plugins/new_user_dialog/localization/de_DE.inc +++ b/plugins/new_user_dialog/localization/de_DE.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Bitte vervollständigen Sie Ihre Absender-Informationen'; $labels['identitydialoghint'] = 'Dieser Dialog erscheint nur einmal beim ersten Login.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/el_GR.inc b/plugins/new_user_dialog/localization/el_GR.inc index 761ec363e..b03d43c61 100644 --- a/plugins/new_user_dialog/localization/el_GR.inc +++ b/plugins/new_user_dialog/localization/el_GR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Παρακαλώ συμπληρώστε την ταυτότητα του αποστολέα'; $labels['identitydialoghint'] = 'Αυτό το πλαίσιο εμφανίζεται μια φορά κατά την πρώτη σύνδεση'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/en_GB.inc b/plugins/new_user_dialog/localization/en_GB.inc index 37043cb52..ead515db8 100644 --- a/plugins/new_user_dialog/localization/en_GB.inc +++ b/plugins/new_user_dialog/localization/en_GB.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Please complete your sender identity.'; $labels['identitydialoghint'] = 'This box only appears once at the first login.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/en_US.inc b/plugins/new_user_dialog/localization/en_US.inc index d508cfc9c..a9e66bd23 100644 --- a/plugins/new_user_dialog/localization/en_US.inc +++ b/plugins/new_user_dialog/localization/en_US.inc @@ -2,10 +2,10 @@ /* +-----------------------------------------------------------------------+ - | plugins/new_user_dialog/localization/.inc | + | plugins/new_user_dialog/localization/.inc | | | | Localization file of the Roundcube Webmail New User Dialog plugin | - | Copyright (C) 2012-2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | diff --git a/plugins/new_user_dialog/localization/eo.inc b/plugins/new_user_dialog/localization/eo.inc index 5eff25356..e8fd2e987 100644 --- a/plugins/new_user_dialog/localization/eo.inc +++ b/plugins/new_user_dialog/localization/eo.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Bonvole plenumu vian identon pri sendanto'; $labels['identitydialoghint'] = 'Ĉi tiu kesto aperas nur unufoje je la unua ensaluto.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/es_ES.inc b/plugins/new_user_dialog/localization/es_ES.inc index 45f55d8f3..c44e3bbae 100644 --- a/plugins/new_user_dialog/localization/es_ES.inc +++ b/plugins/new_user_dialog/localization/es_ES.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Por favor, complete sus datos personales'; $labels['identitydialoghint'] = 'Este diálogo sólo aparecerá la primera vez que se conecte al correo.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/et_EE.inc b/plugins/new_user_dialog/localization/et_EE.inc index 2f2d5e70c..610d496e5 100644 --- a/plugins/new_user_dialog/localization/et_EE.inc +++ b/plugins/new_user_dialog/localization/et_EE.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Palun täida oma saatja identiteet'; $labels['identitydialoghint'] = 'See kast ilmub ainult esimesel sisselogimisel.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/fa_IR.inc b/plugins/new_user_dialog/localization/fa_IR.inc index b1f89f253..473ac7267 100644 --- a/plugins/new_user_dialog/localization/fa_IR.inc +++ b/plugins/new_user_dialog/localization/fa_IR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'لطفا شناسنه ارسالی‌تان را کامل کنید'; $labels['identitydialoghint'] = 'این جعبه فقط یک بار در اولین ورود ظاهر می‌شود.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/fi_FI.inc b/plugins/new_user_dialog/localization/fi_FI.inc index 882df9653..22ca93c4e 100644 --- a/plugins/new_user_dialog/localization/fi_FI.inc +++ b/plugins/new_user_dialog/localization/fi_FI.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Täydennä lähettäjätietosi'; $labels['identitydialoghint'] = 'Tämä kohta näkyy vain ensimmäisellä kirjautumiskerralla.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/fr_FR.inc b/plugins/new_user_dialog/localization/fr_FR.inc index e34f0bcd0..58bc5f86c 100644 --- a/plugins/new_user_dialog/localization/fr_FR.inc +++ b/plugins/new_user_dialog/localization/fr_FR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Veuillez saisir votre identité d\'expéditeur'; $labels['identitydialoghint'] = 'Cette fenêtre de dialogue ne s\'affiche qu\'une seule fois à la première connexion.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/gl_ES.inc b/plugins/new_user_dialog/localization/gl_ES.inc index 83c73b90d..c61299757 100644 --- a/plugins/new_user_dialog/localization/gl_ES.inc +++ b/plugins/new_user_dialog/localization/gl_ES.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Por favor, complete os seus datos persoais'; $labels['identitydialoghint'] = 'Este diálogo só aparecerá a primera vez que se conecte ao correo.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/he_IL.inc b/plugins/new_user_dialog/localization/he_IL.inc index e4a7472f2..97991dfa4 100644 --- a/plugins/new_user_dialog/localization/he_IL.inc +++ b/plugins/new_user_dialog/localization/he_IL.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'נא להשלים את פרטי זהותך'; $labels['identitydialoghint'] = 'תיבה זו מופיעה פעם אחת בזמן הכניסה הראשונה למערכת'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/hr_HR.inc b/plugins/new_user_dialog/localization/hr_HR.inc index 136d9c5ad..33b11c339 100644 --- a/plugins/new_user_dialog/localization/hr_HR.inc +++ b/plugins/new_user_dialog/localization/hr_HR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Molim dovršite vaš identitet za slanje poruka'; $labels['identitydialoghint'] = 'Ova poruka će se pojaviti samo kod prve prijave.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/hu_HU.inc b/plugins/new_user_dialog/localization/hu_HU.inc index b793b4b3e..7a636d97e 100644 --- a/plugins/new_user_dialog/localization/hu_HU.inc +++ b/plugins/new_user_dialog/localization/hu_HU.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Kérem töltse ki a küldő azonosítóját'; $labels['identitydialoghint'] = 'Ez az ablak csak az első belépéskor jelenik meg.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/hy_AM.inc b/plugins/new_user_dialog/localization/hy_AM.inc index be3a1d9a4..8d96de0da 100644 --- a/plugins/new_user_dialog/localization/hy_AM.inc +++ b/plugins/new_user_dialog/localization/hy_AM.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Լրացրեք Ձեր ինքնությունը'; $labels['identitydialoghint'] = 'Այս նշումը երևում է միայն առաջին մուտքի ժամանակ մեկ անգամ'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/id_ID.inc b/plugins/new_user_dialog/localization/id_ID.inc index e0b2e7b23..b2f7ace4b 100644 --- a/plugins/new_user_dialog/localization/id_ID.inc +++ b/plugins/new_user_dialog/localization/id_ID.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Tolong lengkapi identitas pengirim Anda'; $labels['identitydialoghint'] = 'Kotak ini hanya muncul sekali saat masuk pertama kali.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/it_IT.inc b/plugins/new_user_dialog/localization/it_IT.inc index b8f8df57e..0d1032d6c 100644 --- a/plugins/new_user_dialog/localization/it_IT.inc +++ b/plugins/new_user_dialog/localization/it_IT.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Per favore completa le informazioni riguardo la tua identità'; $labels['identitydialoghint'] = 'Questa finestra comparirà una volta sola al primo accesso'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/ja_JP.inc b/plugins/new_user_dialog/localization/ja_JP.inc index 5f2430190..fbf5b5b4c 100644 --- a/plugins/new_user_dialog/localization/ja_JP.inc +++ b/plugins/new_user_dialog/localization/ja_JP.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = '送信者情報の入力を完了してください。'; $labels['identitydialoghint'] = 'このボックスは最初のログイン時に一度だけ表示されます。'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/km_KH.inc b/plugins/new_user_dialog/localization/km_KH.inc index cbb87713e..1752a10e7 100644 --- a/plugins/new_user_dialog/localization/km_KH.inc +++ b/plugins/new_user_dialog/localization/km_KH.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'សូមបំពេញអ្តសញ្ញាណអ្នកផ្ញើ'; $labels['identitydialoghint'] = 'ប្រអប់នេះបង្ហាញតែម្តងទេ ពេលចូលលើកទីមួយ'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/ko_KR.inc b/plugins/new_user_dialog/localization/ko_KR.inc index 2f14b0fc8..d9b519475 100644 --- a/plugins/new_user_dialog/localization/ko_KR.inc +++ b/plugins/new_user_dialog/localization/ko_KR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = '수신인의 신원을 완성하시기 바랍니다.'; $labels['identitydialoghint'] = '이 상자는 최초로 로그인할 때만 나타납니다.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/ku.inc b/plugins/new_user_dialog/localization/ku.inc index 2ca2654df..fe0f8e55c 100644 --- a/plugins/new_user_dialog/localization/ku.inc +++ b/plugins/new_user_dialog/localization/ku.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'tkaya nawnişani nenar ba tawawi bnwsa'; $labels['identitydialoghint'] = 'am qtwia wadiara yak jar la sarata krawatawa'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/lt_LT.inc b/plugins/new_user_dialog/localization/lt_LT.inc index dc982ba97..f134bc486 100644 --- a/plugins/new_user_dialog/localization/lt_LT.inc +++ b/plugins/new_user_dialog/localization/lt_LT.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Prašom užpildyti trūkstamą informaciją apie save'; $labels['identitydialoghint'] = 'Šis langas rodomas tik prisijungus pirmąjį kartą.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/lv_LV.inc b/plugins/new_user_dialog/localization/lv_LV.inc index 037f7cb1e..2e3642330 100644 --- a/plugins/new_user_dialog/localization/lv_LV.inc +++ b/plugins/new_user_dialog/localization/lv_LV.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ -$labels['identitydialogtitle'] = 'Lūdzu aizpildiet Jūsu, kā sūtītāja, identitātes informāciju'; -$labels['identitydialoghint'] = 'Šis logs parādīsies tikai pirmajā autorizācijas reizē.'; + +$labels = array(); +$labels['identitydialogtitle'] = 'Lūdzu, aizpildiet nosūtītāja identifikācijas informāciju'; +$labels['identitydialoghint'] = 'Šis logs parādīsies tikai pirmajā pieteikšanās reizē'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/ml_IN.inc b/plugins/new_user_dialog/localization/ml_IN.inc index d97ad9989..74ce4285a 100644 --- a/plugins/new_user_dialog/localization/ml_IN.inc +++ b/plugins/new_user_dialog/localization/ml_IN.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'സ്വീകര്‍ത്താവിന്റെ വ്യക്തിത്വം പൂര്‍ത്തീകരിക്കുക'; $labels['identitydialoghint'] = 'ആദ്യത്തെ പ്രവേശനത്തില്‍ മാത്രമേ ഈ പെട്ടി വരികയുള്ളു'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/mr_IN.inc b/plugins/new_user_dialog/localization/mr_IN.inc index d78f2b010..2e684aaa9 100644 --- a/plugins/new_user_dialog/localization/mr_IN.inc +++ b/plugins/new_user_dialog/localization/mr_IN.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'कृपया पाठवणा-याची ओळख पूर्ण करा'; $labels['identitydialoghint'] = 'हा चौकोन पहिल्यांदा लॉगिन करताना एकदाच दिसेल.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/nb_NO.inc b/plugins/new_user_dialog/localization/nb_NO.inc index 320bd9a8d..18ddd9ce7 100644 --- a/plugins/new_user_dialog/localization/nb_NO.inc +++ b/plugins/new_user_dialog/localization/nb_NO.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Vennligst fullfør din avvsender identitet.'; $labels['identitydialoghint'] = 'Denne boksen kommer kun ved første pålogging.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/nl_NL.inc b/plugins/new_user_dialog/localization/nl_NL.inc index 450b4f6a7..c5d392f98 100644 --- a/plugins/new_user_dialog/localization/nl_NL.inc +++ b/plugins/new_user_dialog/localization/nl_NL.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Vul alstublieft uw afzendergegevens in.'; $labels['identitydialoghint'] = 'Dit scherm verschijnt eenmalig bij uw eerste aanmelding.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/nn_NO.inc b/plugins/new_user_dialog/localization/nn_NO.inc index a1122bc03..a7fd7d650 100644 --- a/plugins/new_user_dialog/localization/nn_NO.inc +++ b/plugins/new_user_dialog/localization/nn_NO.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Fullfør avsendaridentiteten din.'; $labels['identitydialoghint'] = 'Denne boksen kjem berre fram ved første pålogging.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/pl_PL.inc b/plugins/new_user_dialog/localization/pl_PL.inc index be7ed19e5..034893b35 100644 --- a/plugins/new_user_dialog/localization/pl_PL.inc +++ b/plugins/new_user_dialog/localization/pl_PL.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Uzupełnij tożsamość nadawcy'; $labels['identitydialoghint'] = 'To okno pojawia się tylko przy pierwszym logowaniu.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/pt_BR.inc b/plugins/new_user_dialog/localization/pt_BR.inc index 32640f44e..7556b4d1a 100644 --- a/plugins/new_user_dialog/localization/pt_BR.inc +++ b/plugins/new_user_dialog/localization/pt_BR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Por favor complete a sua identidade'; $labels['identitydialoghint'] = 'Esta tela aparece somente no primeiro acesso.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/pt_PT.inc b/plugins/new_user_dialog/localization/pt_PT.inc index 5eeff7e10..3e3922fca 100644 --- a/plugins/new_user_dialog/localization/pt_PT.inc +++ b/plugins/new_user_dialog/localization/pt_PT.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Por favor, complete a sua identidade'; $labels['identitydialoghint'] = 'Esta caixa aparece apenas uma vez no primeiro acesso.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/ro_RO.inc b/plugins/new_user_dialog/localization/ro_RO.inc index e765212e5..9d16daee5 100644 --- a/plugins/new_user_dialog/localization/ro_RO.inc +++ b/plugins/new_user_dialog/localization/ro_RO.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Te rog completează identitatea expeditorului.'; $labels['identitydialoghint'] = 'Această căsuţă apare doar la prima autentificare.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/ru_RU.inc b/plugins/new_user_dialog/localization/ru_RU.inc index 0b408858f..2c948781e 100644 --- a/plugins/new_user_dialog/localization/ru_RU.inc +++ b/plugins/new_user_dialog/localization/ru_RU.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Пожалуйста, укажите Ваше имя.'; $labels['identitydialoghint'] = 'Данное сообщение отображается только при первом входе.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/sk_SK.inc b/plugins/new_user_dialog/localization/sk_SK.inc index 236c1d893..ca57463df 100644 --- a/plugins/new_user_dialog/localization/sk_SK.inc +++ b/plugins/new_user_dialog/localization/sk_SK.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Doplňte prosím Vašu identifikáciu odosielateľa'; $labels['identitydialoghint'] = 'Toto okno sa objaví len pri prvom prihlásení.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/sl_SI.inc b/plugins/new_user_dialog/localization/sl_SI.inc index 12d115ad4..7d26b44bd 100644 --- a/plugins/new_user_dialog/localization/sl_SI.inc +++ b/plugins/new_user_dialog/localization/sl_SI.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Izberite identiteto za pošiljanje'; $labels['identitydialoghint'] = 'To okno se prikaže le ob prvi prijavi v spletno pošto.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/sr_CS.inc b/plugins/new_user_dialog/localization/sr_CS.inc index 25298a175..ee2999bab 100644 --- a/plugins/new_user_dialog/localization/sr_CS.inc +++ b/plugins/new_user_dialog/localization/sr_CS.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Молимо вас да попуните свој идентитет пошиљаоца'; $labels['identitydialoghint'] = 'Ово поље се појављује само једном у првом логовању'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/sv_SE.inc b/plugins/new_user_dialog/localization/sv_SE.inc index 2fb018005..71ecfc7fe 100644 --- a/plugins/new_user_dialog/localization/sv_SE.inc +++ b/plugins/new_user_dialog/localization/sv_SE.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Fyll i namn och avsändaradress under personliga inställningar'; $labels['identitydialoghint'] = 'Informationen visas endast vid första inloggningen.'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/tr_TR.inc b/plugins/new_user_dialog/localization/tr_TR.inc index 982a5b6de..4d6c6d16e 100644 --- a/plugins/new_user_dialog/localization/tr_TR.inc +++ b/plugins/new_user_dialog/localization/tr_TR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Lütfen gönderici kimliğinizi tamamlayın'; $labels['identitydialoghint'] = 'Bu ekran ilk girişte bir kereliğine gözükür'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/uk_UA.inc b/plugins/new_user_dialog/localization/uk_UA.inc index b6caef051..0c4111d85 100644 --- a/plugins/new_user_dialog/localization/uk_UA.inc +++ b/plugins/new_user_dialog/localization/uk_UA.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Будь ласка, вкажіть Ваше ім’я'; $labels['identitydialoghint'] = 'Це повідомлення відображається тільки під час першого заходу'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/vi_VN.inc b/plugins/new_user_dialog/localization/vi_VN.inc index a6947810b..86d164124 100644 --- a/plugins/new_user_dialog/localization/vi_VN.inc +++ b/plugins/new_user_dialog/localization/vi_VN.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = 'Xin điền nhận diện người gửi của bạn'; $labels['identitydialoghint'] = 'Hộp này chỉ xuất hiện 1 lần khi đăng nhập lần đầu tiên'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/zh_CN.inc b/plugins/new_user_dialog/localization/zh_CN.inc index 16fc0d4a2..ca40173af 100644 --- a/plugins/new_user_dialog/localization/zh_CN.inc +++ b/plugins/new_user_dialog/localization/zh_CN.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = '请填写发送人身份'; $labels['identitydialoghint'] = '本提示仅在第一次登录时显示。'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/localization/zh_TW.inc b/plugins/new_user_dialog/localization/zh_TW.inc index 25f5883f7..d9309fc12 100644 --- a/plugins/new_user_dialog/localization/zh_TW.inc +++ b/plugins/new_user_dialog/localization/zh_TW.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-new_user_dialog/ */ + +$labels = array(); $labels['identitydialogtitle'] = '請完成您的身份資訊'; $labels['identitydialoghint'] = '此視窗只會於第一次登入時出現。'; + ?> \ No newline at end of file diff --git a/plugins/new_user_dialog/new_user_dialog.php b/plugins/new_user_dialog/new_user_dialog.php index 39a707638..9c9dcce1c 100644 --- a/plugins/new_user_dialog/new_user_dialog.php +++ b/plugins/new_user_dialog/new_user_dialog.php @@ -10,12 +10,10 @@ * @version @package_version@ * @license GNU GPLv3+ * @author Thomas Bruederli - * @author Aleksander Machniak */ class new_user_dialog extends rcube_plugin { public $task = 'login|mail'; - public $noframe = true; function init() { @@ -34,9 +32,8 @@ class new_user_dialog extends rcube_plugin function create_identity($p) { // set session flag when a new user was created and the default identity seems to be incomplete - if ($p['login'] && !$p['complete']) { + if ($p['login'] && !$p['complete']) $_SESSION['plugin.newuserdialog'] = true; - } } /** @@ -66,7 +63,7 @@ class new_user_dialog extends rcube_plugin $table->add(null, html::tag('input', array( 'type' => 'text', 'name' => '_email', - 'value' => rcube_utils::idn_to_utf8($identity['email']), + 'value' => rcube_idn_to_utf8($identity['email']), 'disabled' => ($identities_level == 1 || $identities_level == 3) ))); @@ -89,30 +86,20 @@ class new_user_dialog extends rcube_plugin 'id' => 'newuserdialog', 'action' => $rcmail->url('plugin.newusersave'), 'method' => 'post'), - html::p('hint', rcube::Q($this->gettext('identitydialoghint'))) . + html::tag('h3', null, Q($this->gettext('identitydialogtitle'))) . + html::p('hint', Q($this->gettext('identitydialoghint'))) . $table->show() . html::p(array('class' => 'formbuttons'), html::tag('input', array('type' => 'submit', 'class' => 'button mainaction', 'value' => $this->gettext('save')))) )); - $title = rcube::JQ($this->gettext('identitydialogtitle')); - // disable keyboard events for messages list (#1486726) - $rcmail->output->add_script(" - $('#newuserdialog').show() - .dialog({modal:true, resizable:false, closeOnEscape:false, width:450, title:'$title'}) - .submit(function() { - var i, request = {}, form = $(this).serializeArray(); - - for (i in form) - request[form[i].name] = form[i].value; - - rcmail.http_post('plugin.newusersave', request, true); - return false; - }); - $('input[name=_name]').focus(); - rcube_webmail.prototype.new_user_dialog_close = function() { $('#newuserdialog').dialog('close'); } + $rcmail->output->add_script( + "rcmail.message_list.key_press = function(){}; + rcmail.message_list.key_down = function(){}; + $('#newuserdialog').show().dialog({ modal:true, resizable:false, closeOnEscape:false, width:420 }); + $('input[name=_name]').focus(); ", 'docready'); $this->include_stylesheet('newuserdialog.css'); @@ -120,45 +107,39 @@ class new_user_dialog extends rcube_plugin } /** - * Handler for submitted form (ajax request) + * Handler for submitted form * * Check fields and save to default identity if valid. * Afterwards the session flag is removed and we're done. */ function save_data() { - $rcmail = rcmail::get_instance(); - $identity = $rcmail->user->get_identity(); - $ident_level = intval($rcmail->config->get('identities_level', 0)); + $rcmail = rcmail::get_instance(); + $identity = $rcmail->user->get_identity(); + $identities_level = intval($rcmail->config->get('identities_level', 0)); $save_data = array( - 'name' => rcube_utils::get_input_value('_name', rcube_utils::INPUT_POST), - 'email' => rcube_utils::get_input_value('_email', rcube_utils::INPUT_POST), - 'organization' => rcube_utils::get_input_value('_organization', rcube_utils::INPUT_POST), - 'signature' => rcube_utils::get_input_value('_signature', rcube_utils::INPUT_POST), + 'name' => get_input_value('_name', RCUBE_INPUT_POST), + 'email' => get_input_value('_email', RCUBE_INPUT_POST), + 'organization' => get_input_value('_organization', RCUBE_INPUT_POST), + 'signature' => get_input_value('_signature', RCUBE_INPUT_POST), ); // don't let the user alter the e-mail address if disabled by config - if (in_array($ident_level, array(1,3,4))) { + if ($identities_level == 1 || $identities_level == 3) $save_data['email'] = $identity['email']; - } + else + $save_data['email'] = rcube_idn_to_ascii($save_data['email']); - if (empty($save_data['name']) || empty($save_data['email'])) { - $rcmail->output->show_message('formincomplete', 'error'); - } - else if (!rcube_utils::check_email($save_data['email'] = rcube_utils::idn_to_ascii($save_data['email']))) { - $rcmail->output->show_message('emailformaterror', 'error', array('email' => $save_data['email'])); - } - else { - // save data + // save data if not empty + if (!empty($save_data['name']) && !empty($save_data['email'])) { $rcmail->user->update_identity($identity['identity_id'], $save_data); $rcmail->session->remove('plugin.newuserdialog'); - // hide dialog - $rcmail->output->command('new_user_dialog_close'); - $rcmail->output->show_message('successfullysaved', 'confirmation'); } - $rcmail->output->send(); + $rcmail->output->redirect(''); } } + +?> diff --git a/plugins/new_user_dialog/package.xml b/plugins/new_user_dialog/package.xml index 68a929931..0bca1d9d4 100644 --- a/plugins/new_user_dialog/package.xml +++ b/plugins/new_user_dialog/package.xml @@ -13,16 +13,21 @@ roundcube@gmail.com yes - 2013-05-09 + 2012-01-16 + - 2.0 - 2.0 + 1.5 + 1.0 stable stable GNU GPLv3+ + +- Use jquery UI to render the dialog +- Fixed IDNA encoding/decoding of e-mail addresses (#1487909) + @@ -66,4 +71,84 @@ + + + 2010-03-29 + + + 1.0 + 1.0 + + + stable + stable + + GNU GPLv2 + + + + 2010-05-13 + + + 1.1 + 1.0 + + + stable + stable + + GNU GPLv2 + +- Fix space bar and backspace buttons not working (#1486726) + + + + 2010-05-27 + + + 1.2 + 1.0 + + + stable + stable + + GNU GPLv2 + +- Add overlay box only to mail task main template +- Fix possible error on form submission (#1486103) + + + + 2010-12-02 + + + 1.3 + 1.0 + + + stable + stable + + GNU GPLv2 + +- Added setting of focus on name input +- Added gl_ES translation + + + + 2012-01-16 + + + 1.5 + 1.0 + + + stable + stable + + GNU GPLv2 + - Use jquery UI to render the dialog + + diff --git a/plugins/new_user_identity/new_user_identity.php b/plugins/new_user_identity/new_user_identity.php index 3943134b2..200d9accd 100644 --- a/plugins/new_user_identity/new_user_identity.php +++ b/plugins/new_user_identity/new_user_identity.php @@ -8,18 +8,17 @@ * * @version @package_version@ * @author Kris Steinhoff - * @license GNU GPLv3+ * * Example configuration: * * // The id of the address book to use to automatically set a new * // user's full name in their new identity. (This should be an - * // string, which refers to the $config['ldap_public'] array.) - * $config['new_user_identity_addressbook'] = 'People'; + * // string, which refers to the $rcmail_config['ldap_public'] array.) + * $rcmail_config['new_user_identity_addressbook'] = 'People'; * * // When automatically setting a new users's full name in their * // new identity, match the user's login name against this field. - * $config['new_user_identity_match'] = 'uid'; + * $rcmail_config['new_user_identity_match'] = 'uid'; */ class new_user_identity extends rcube_plugin { @@ -34,6 +33,8 @@ class new_user_identity extends rcube_plugin function lookup_user_name($args) { + $rcmail = rcmail::get_instance(); + if ($this->init_ldap($args['host'])) { $results = $this->ldap->search('*', $args['user'], true); if (count($results->records) == 1) { @@ -42,7 +43,7 @@ class new_user_identity extends rcube_plugin $args['user_name'] = $user_name; if (!$args['user_email'] && strpos($user_email, '@')) { - $args['user_email'] = rcube_utils::idn_to_ascii($user_email); + $args['user_email'] = rcube_idn_to_ascii($user_email); } } } diff --git a/plugins/new_user_identity/package.xml b/plugins/new_user_identity/package.xml index 45a3c4c8d..e50cd9255 100644 --- a/plugins/new_user_identity/package.xml +++ b/plugins/new_user_identity/package.xml @@ -24,7 +24,7 @@ stable stable - GNU GPLv3+ + GNU GPLv2 - diff --git a/plugins/newmail_notifier/config.inc.php.dist b/plugins/newmail_notifier/config.inc.php.dist index 1a7c0d74f..067fe19f1 100644 --- a/plugins/newmail_notifier/config.inc.php.dist +++ b/plugins/newmail_notifier/config.inc.php.dist @@ -1,15 +1,12 @@ diff --git a/plugins/newmail_notifier/localization/ar_SA.inc b/plugins/newmail_notifier/localization/ar_SA.inc index 7ea3d2e52..9ed56632b 100644 --- a/plugins/newmail_notifier/localization/ar_SA.inc +++ b/plugins/newmail_notifier/localization/ar_SA.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'إظهار رسالة تنبيه فى المتصفح عند وصول رسالة جديدة'; $labels['desktop'] = 'إظهار رسالة تنبيه على سطح المكتب عند وصول رسالة جديدة'; $labels['sound'] = 'التنبيه الصوتى عند وصول رسالة جديدة'; @@ -24,4 +25,5 @@ $labels['body'] = 'لديك رسالة جديدة'; $labels['testbody'] = 'هذه رسالة تجربية'; $labels['desktopdisabled'] = 'رسائل التنبيه على سطح المكتب غير مفعلة فى متصفح الانترنت الخاص بك'; $labels['desktopunsupported'] = 'المتصفح الخاص بك لا يدعم رسائل سطح المكتب'; + ?> diff --git a/plugins/newmail_notifier/localization/az_AZ.inc b/plugins/newmail_notifier/localization/az_AZ.inc index 94283f9dc..b1b9114ae 100644 --- a/plugins/newmail_notifier/localization/az_AZ.inc +++ b/plugins/newmail_notifier/localization/az_AZ.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Yeni məktubun gəlməsi haqda brauzerdə xəbər ver'; $labels['desktop'] = 'Yeni məktubun gəlməsi haqda iş masasında xəbər ver'; $labels['sound'] = 'Yeni məktubun gəlməsi haqda səs siqnalı ver'; @@ -24,4 +25,5 @@ $labels['body'] = 'Sizə məktub gəldi'; $labels['testbody'] = 'Bu sınaq bildirişidir'; $labels['desktopdisabled'] = 'Sizin brauzerdə iş masasında bildiriş söndürülüb'; $labels['desktopunsupported'] = 'Sizin brauzer iş masasında bildiriş funksiyasını dəstəkləmir'; + ?> diff --git a/plugins/newmail_notifier/localization/be_BE.inc b/plugins/newmail_notifier/localization/be_BE.inc index e0b8e0bb9..4d17d5785 100644 --- a/plugins/newmail_notifier/localization/be_BE.inc +++ b/plugins/newmail_notifier/localization/be_BE.inc @@ -15,14 +15,15 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ -$labels['basic'] = 'Паказваць апавяшчэнні аб атрыманні новых паведамленняў у браўзеры'; -$labels['desktop'] = 'Паказваць апавяшчэнні аб атрыманні новых паведамленняў на працоўным стале'; + +$labels['basic'] = 'Адлюстроўваць інфармаванні азіральніка ў час атрымання новых павдеамленняў'; +$labels['desktop'] = 'Адлюстроўваць інфармаванні працоўнага стала ў час атрымання новых павдеамленняў'; $labels['sound'] = 'Агучваць атрыманне новых паведамленняў'; $labels['test'] = 'Праверыць'; $labels['title'] = 'Новы ліст!'; $labels['body'] = 'Вы атрымалі новае паведамленне.'; -$labels['testbody'] = 'Гэта тэставае апавяшчэнне.'; -$labels['desktopdisabled'] = 'Апавяшчэнні на працоўным стале адключаныя ў браўзеры.'; -$labels['desktopunsupported'] = 'Ваш браўзер не падтрымлівае апавяшчэнні на працоўным стале.'; -$labels['desktoptimeout'] = 'Зачыніць апавяшчэнне на працоўным стале'; +$labels['testbody'] = 'Гэта тэставае інфармаванне.'; +$labels['desktopdisabled'] = 'Інфармаванне працоўнага стала адлкючана ў вашым азіральніку'; +$labels['desktopunsupported'] = 'Ваш азіральнік не падтрымлівае інфармаванне працоўнага стала.'; + ?> diff --git a/plugins/newmail_notifier/localization/br.inc b/plugins/newmail_notifier/localization/br.inc index 0ef3c86dd..540876eb3 100644 --- a/plugins/newmail_notifier/localization/br.inc +++ b/plugins/newmail_notifier/localization/br.inc @@ -15,6 +15,15 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + +$labels['basic'] = 'Display browser notifications on new message'; +$labels['desktop'] = 'Display desktop notifications on new message'; $labels['sound'] = 'Seniñ ar son pa kemennadenn nevez'; +$labels['test'] = 'Test'; $labels['title'] = 'Kemennadenn nevez !'; +$labels['body'] = 'You\'ve received a new message.'; +$labels['testbody'] = 'This is a test notification.'; +$labels['desktopdisabled'] = 'Desktop notifications are disabled in your browser.'; +$labels['desktopunsupported'] = 'Your browser does not support desktop notifications.'; + ?> diff --git a/plugins/newmail_notifier/localization/bs_BA.inc b/plugins/newmail_notifier/localization/bs_BA.inc index a849c64c8..267b542fc 100644 --- a/plugins/newmail_notifier/localization/bs_BA.inc +++ b/plugins/newmail_notifier/localization/bs_BA.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Prikaži obavijesti za nove poruke u pregledniku'; $labels['desktop'] = 'Prikaži obavijesti za nove poruke na desktopu'; $labels['sound'] = 'Zvučni signal za novu poruku'; @@ -24,5 +25,5 @@ $labels['body'] = 'Dobili ste novu poruku.'; $labels['testbody'] = 'Ovo je testna obavijest.'; $labels['desktopdisabled'] = 'Desktop obavijesti su onemogućene u vašem pregledniku.'; $labels['desktopunsupported'] = 'Vaš preglednik ne podržava desktop obavijesti.'; -$labels['desktoptimeout'] = 'Zatvori desktop obavijesti'; + ?> diff --git a/plugins/newmail_notifier/localization/ca_ES.inc b/plugins/newmail_notifier/localization/ca_ES.inc index 1ae40d158..8e0a8b443 100644 --- a/plugins/newmail_notifier/localization/ca_ES.inc +++ b/plugins/newmail_notifier/localization/ca_ES.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Mostra notificacions del navegador quan hi hagi un missatge nou'; $labels['desktop'] = 'Mostra notificacions de l\'escriptori quan hi hagi un missatge nou'; $labels['sound'] = 'Reprodueix el so quan hi hagi un missatge nou'; @@ -24,5 +25,5 @@ $labels['body'] = 'Heu rebut un missatge nou.'; $labels['testbody'] = 'Això és una notificació de prova.'; $labels['desktopdisabled'] = 'Les notificacions d\'escriptori estan deshabilitades al vostre navegador.'; $labels['desktopunsupported'] = 'El vostre navegador no permet les notificacions d\'escriptori.'; -$labels['desktoptimeout'] = 'Tancar notificació de l\'escriptori'; + ?> diff --git a/plugins/newmail_notifier/localization/cs_CZ.inc b/plugins/newmail_notifier/localization/cs_CZ.inc index c7f2a8d09..55899aeb0 100644 --- a/plugins/newmail_notifier/localization/cs_CZ.inc +++ b/plugins/newmail_notifier/localization/cs_CZ.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Zobrazit upozornění v prohlížeči při příchozí zprávě'; $labels['desktop'] = 'Zobrazit upozornění na ploše při příchozí zprávě'; $labels['sound'] = 'Přehrát zvuk při příchozí zprávě'; @@ -24,5 +25,5 @@ $labels['body'] = 'Dostali jste novou zprávu.'; $labels['testbody'] = 'Toto je zkouška upozornění.'; $labels['desktopdisabled'] = 'Upozornění na ploše jsou ve vašem prohlížeči vypnuté.'; $labels['desktopunsupported'] = 'Váš prohlížeč nepodporuje upozornění na ploše.'; -$labels['desktoptimeout'] = 'Zavřít upozornění na ploše'; + ?> diff --git a/plugins/newmail_notifier/localization/cy_GB.inc b/plugins/newmail_notifier/localization/cy_GB.inc index 126ddfdf9..38af4da49 100644 --- a/plugins/newmail_notifier/localization/cy_GB.inc +++ b/plugins/newmail_notifier/localization/cy_GB.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Dangos hysbysiadau porwr ar neges newydd'; $labels['desktop'] = 'Dangos hysbysiadau penbwrdd ar neges newydd'; $labels['sound'] = 'Chwarae sŵn ar neges newydd'; @@ -24,5 +25,5 @@ $labels['body'] = 'Rydych wedi derbyn neges newydd.'; $labels['testbody'] = 'Hysbysiad prawf yw hwn.'; $labels['desktopdisabled'] = 'Mae hysbysiadau penbwrdd wedi ei analluogi yn eich porwr'; $labels['desktopunsupported'] = 'Nid yw eich porwr yn cefnogi hysbysiadau penbwrdd.'; -$labels['desktoptimeout'] = 'Cau hysbysiad penbwrdd'; + ?> diff --git a/plugins/newmail_notifier/localization/da_DK.inc b/plugins/newmail_notifier/localization/da_DK.inc index 356076f71..f06b80f6b 100644 --- a/plugins/newmail_notifier/localization/da_DK.inc +++ b/plugins/newmail_notifier/localization/da_DK.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Vis browserbesked ved ny besked'; $labels['desktop'] = 'Vis skrivebordsbesked ved ny besked'; $labels['sound'] = 'Afspil en lyd ved ny besked'; @@ -24,5 +25,5 @@ $labels['body'] = 'Du har modtaget en ny besked.'; $labels['testbody'] = 'Dette er en test meddelelse.'; $labels['desktopdisabled'] = 'Skrivebordsbeskeder er deaktiveret i din browser.'; $labels['desktopunsupported'] = 'Din browser understøtter ikke skrivebordsbeskeder.'; -$labels['desktoptimeout'] = 'Luk skrivebordsbesked'; + ?> diff --git a/plugins/newmail_notifier/localization/de_CH.inc b/plugins/newmail_notifier/localization/de_CH.inc index 1119e6a03..03a3957c9 100644 --- a/plugins/newmail_notifier/localization/de_CH.inc +++ b/plugins/newmail_notifier/localization/de_CH.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Anzeige im Browser bei neuer Nachricht'; $labels['desktop'] = 'Desktop-Benachrichtigung bei neuer Nachricht'; $labels['sound'] = 'Akustische Meldung bei neuer Nachricht'; @@ -24,5 +25,5 @@ $labels['body'] = 'Sie haben eine neue Nachricht'; $labels['testbody'] = 'Dies ist eine Testbenachrichtigung'; $labels['desktopdisabled'] = 'Desktop-Benachrichtigungen sind deaktiviert.'; $labels['desktopunsupported'] = 'Ihr Browser unterstützt keine Desktop-Benachrichtigungen.'; -$labels['desktoptimeout'] = 'Anzeige im Browser schliessen'; + ?> diff --git a/plugins/newmail_notifier/localization/de_DE.inc b/plugins/newmail_notifier/localization/de_DE.inc index 4ecb8a3c8..3974fe897 100644 --- a/plugins/newmail_notifier/localization/de_DE.inc +++ b/plugins/newmail_notifier/localization/de_DE.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Benachrichtigung im Browser bei neuer Nachricht'; $labels['desktop'] = 'Desktop-Benachrichtigung bei neuer Nachricht'; $labels['sound'] = 'Akustische Meldung bei neuer Nachricht'; @@ -24,5 +25,5 @@ $labels['body'] = 'Sie haben eine neue Nachricht'; $labels['testbody'] = 'Dies ist eine Testbenachrichtigung'; $labels['desktopdisabled'] = 'Desktop-Benachrichtigungen sind deaktiviert.'; $labels['desktopunsupported'] = 'Ihr Browser unterstützt keine Desktop-Benachrichtigungen.'; -$labels['desktoptimeout'] = 'Desktop-Benachrichtigung geschlossen.'; + ?> diff --git a/plugins/newmail_notifier/localization/en_GB.inc b/plugins/newmail_notifier/localization/en_GB.inc index 3ac79e594..3ea6c8c74 100644 --- a/plugins/newmail_notifier/localization/en_GB.inc +++ b/plugins/newmail_notifier/localization/en_GB.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Display browser notifications on new message'; $labels['desktop'] = 'Display desktop notifications on new message'; $labels['sound'] = 'Play sound on new message'; @@ -24,4 +25,5 @@ $labels['body'] = 'You\'ve received a new message.'; $labels['testbody'] = 'This is a test notification.'; $labels['desktopdisabled'] = 'Desktop notifications are disabled in your browser.'; $labels['desktopunsupported'] = 'Your browser does not support desktop notifications.'; + ?> diff --git a/plugins/newmail_notifier/localization/en_US.inc b/plugins/newmail_notifier/localization/en_US.inc index 1c4054615..da8340b80 100644 --- a/plugins/newmail_notifier/localization/en_US.inc +++ b/plugins/newmail_notifier/localization/en_US.inc @@ -5,7 +5,7 @@ | plugins/newmail_notifier/localization/.inc | | | | Localization file of the Roundcube Webmail New Mail Notifier plugin | - | Copyright (C) 2012-2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | @@ -25,6 +25,5 @@ $labels['body'] = 'You\'ve received a new message.'; $labels['testbody'] = 'This is a test notification.'; $labels['desktopdisabled'] = 'Desktop notifications are disabled in your browser.'; $labels['desktopunsupported'] = 'Your browser does not support desktop notifications.'; -$labels['desktoptimeout'] = 'Close desktop notification'; ?> diff --git a/plugins/newmail_notifier/localization/eo.inc b/plugins/newmail_notifier/localization/eo.inc index 8a4657677..da3f18e6b 100644 --- a/plugins/newmail_notifier/localization/eo.inc +++ b/plugins/newmail_notifier/localization/eo.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Montri atentigojn de retumilo pri nova mesaĝo'; $labels['desktop'] = 'Montri atentigojn de komputilo pri nova mesaĝo'; $labels['sound'] = 'Ludi sonon por nova mesaĝo'; @@ -24,4 +25,5 @@ $labels['body'] = 'Vi ricevis novan mesaĝon.'; $labels['testbody'] = 'Tio estas testo pri atentigo.'; $labels['desktopdisabled'] = 'Atentigoj de komputilo estas malŝaltitaj en via retumilo.'; $labels['desktopunsupported'] = 'Via retumilo ne subtenas atentigojn de komputilo.'; + ?> diff --git a/plugins/newmail_notifier/localization/es_ES.inc b/plugins/newmail_notifier/localization/es_ES.inc index 8809aa03c..410d9356e 100644 --- a/plugins/newmail_notifier/localization/es_ES.inc +++ b/plugins/newmail_notifier/localization/es_ES.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Mostrar notificaciones del navegador cuando llegue un nuevo mensaje'; $labels['desktop'] = 'Mostrar notificaciones del escritorio cuando llegue un nuevo mensaje'; $labels['sound'] = 'Reproducir sonido cuando llegue un nuevo mensaje'; @@ -24,5 +25,5 @@ $labels['body'] = 'Has recibido un mensaje nuevo.'; $labels['testbody'] = 'Esta es una notificación de pruebas.'; $labels['desktopdisabled'] = 'Las notificaciones de escritorio están deshabilitadas en tu navegador.'; $labels['desktopunsupported'] = 'Tu navegador no soporta notificaciones de escritorio.'; -$labels['desktoptimeout'] = 'Cerrar notificación de escritorio'; + ?> diff --git a/plugins/newmail_notifier/localization/et_EE.inc b/plugins/newmail_notifier/localization/et_EE.inc index 22bdde908..30971d79a 100644 --- a/plugins/newmail_notifier/localization/et_EE.inc +++ b/plugins/newmail_notifier/localization/et_EE.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Uue kirja saabumisel näita lehitsejas teavitust'; $labels['desktop'] = 'Uue kirja saabumisel näita töölaua teavitust'; $labels['sound'] = 'Uue kirja saabumisel mängi heli'; @@ -24,4 +25,5 @@ $labels['body'] = 'Saabus uus kiri.'; $labels['testbody'] = 'See on teavituse proov.'; $labels['desktopdisabled'] = 'Töölaua märguanded on su veebilehitsejas keelatud.'; $labels['desktopunsupported'] = 'Sinu veebilehitseja ei toeta töölaua märguandeid.'; + ?> diff --git a/plugins/newmail_notifier/localization/fa_IR.inc b/plugins/newmail_notifier/localization/fa_IR.inc index 2c7980640..71155fe4b 100644 --- a/plugins/newmail_notifier/localization/fa_IR.inc +++ b/plugins/newmail_notifier/localization/fa_IR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'نمایش تذکرهای مرورگر برای پیغام جدید'; $labels['desktop'] = 'نمایش تذکرهای رومیزی برای پیغام جدید'; $labels['sound'] = 'پخش صدا برای پیغام جدید'; @@ -24,5 +25,5 @@ $labels['body'] = 'شما یک پیغام جدید دریافت کرده‌ای $labels['testbody'] = 'این یک تذکر آزمایشی است.'; $labels['desktopdisabled'] = 'تذکرهای رومیزی در مرورگر شما غیرفعال شده‌اند.'; $labels['desktopunsupported'] = 'مرورگر شما تذکرهای رومیزی را پشتیبانی نمی‌کند.'; -$labels['desktoptimeout'] = 'بستن تذکر دسکتاپ'; + ?> diff --git a/plugins/newmail_notifier/localization/fi_FI.inc b/plugins/newmail_notifier/localization/fi_FI.inc index 8d5c01243..206ae8a1e 100644 --- a/plugins/newmail_notifier/localization/fi_FI.inc +++ b/plugins/newmail_notifier/localization/fi_FI.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Näytä selainilmoitus uuden viestin saapuessa'; $labels['desktop'] = 'Näytä työpöytäilmoitus uuden viestin saapuessa'; $labels['sound'] = 'Toista ääni uuden viestin saapuessa'; @@ -24,5 +25,5 @@ $labels['body'] = 'Sait uuden viestin.'; $labels['testbody'] = 'Tämä on testi-ilmoitus.'; $labels['desktopdisabled'] = 'Työpöytäilmoitukset on estetty selaimessa.'; $labels['desktopunsupported'] = 'Selaimesi ei tue työpöytäilmoituksia.'; -$labels['desktoptimeout'] = 'Sulje työpöytäilmoitus'; + ?> diff --git a/plugins/newmail_notifier/localization/fr_FR.inc b/plugins/newmail_notifier/localization/fr_FR.inc index 613b409ae..3568b13cc 100644 --- a/plugins/newmail_notifier/localization/fr_FR.inc +++ b/plugins/newmail_notifier/localization/fr_FR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Afficher une notification dans le navigateur à réception d\'un nouveau message'; $labels['desktop'] = 'Afficher une notification sur le bureau à réception d\'un nouveau message'; $labels['sound'] = 'Jouer un son à réception d\'un nouveau message'; @@ -24,5 +25,5 @@ $labels['body'] = 'Vous avez reçu un nouveau message'; $labels['testbody'] = 'Test de notification'; $labels['desktopdisabled'] = 'Les notifications sur le bureau sont désactivées dans votre navigateur'; $labels['desktopunsupported'] = 'Votre navigateur ne supporte pas les notifications sur le bureau'; -$labels['desktoptimeout'] = 'Fermer les notifications de bureau'; + ?> diff --git a/plugins/newmail_notifier/localization/gl_ES.inc b/plugins/newmail_notifier/localization/gl_ES.inc index 1dae35297..8d105531e 100644 --- a/plugins/newmail_notifier/localization/gl_ES.inc +++ b/plugins/newmail_notifier/localization/gl_ES.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Amosar notificacións no navegador cando entre unha mensaxe nova'; $labels['desktop'] = 'Amosar notificacións no escritorio cando chegue unha mensaxe nova'; $labels['sound'] = 'Tocar un son cando chegue unha mensaxe nova'; @@ -24,4 +25,5 @@ $labels['body'] = 'Recibiu unha mensaxe nova'; $labels['testbody'] = 'Esta é unha notificación de proba'; $labels['desktopdisabled'] = 'As notificacións de escritorio están desactivadas no seu navegador'; $labels['desktopunsupported'] = 'O teu navegador non soporta notificacións de escritorio.'; + ?> diff --git a/plugins/newmail_notifier/localization/he_IL.inc b/plugins/newmail_notifier/localization/he_IL.inc index 9002d7c6d..4241fcfcc 100644 --- a/plugins/newmail_notifier/localization/he_IL.inc +++ b/plugins/newmail_notifier/localization/he_IL.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'איתות מהדפדפן על הגעת הודעות חדשות'; $labels['desktop'] = 'איתות משולחן העבודה על הגעת הודעות חדשות'; $labels['sound'] = 'השמעת איתות קולי בעת הגעה של הודעה חדשה'; @@ -24,4 +25,5 @@ $labels['body'] = 'התקבלה הודעה חדשה'; $labels['testbody'] = 'זה איתות לנסיון'; $labels['desktopdisabled'] = 'איתותים משולחן העבודה אינם פעילים בדפדפן שלך'; $labels['desktopunsupported'] = 'הדפדפן שלך אינו תומך באיתותים משולחן העבודה'; + ?> diff --git a/plugins/newmail_notifier/localization/hr_HR.inc b/plugins/newmail_notifier/localization/hr_HR.inc index 3ee6cff3b..6800c6b04 100644 --- a/plugins/newmail_notifier/localization/hr_HR.inc +++ b/plugins/newmail_notifier/localization/hr_HR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Prikaži dojave preglednika kada dođe nova poruka'; $labels['desktop'] = 'Prikaži dojave na desktopu kada dođe nova poruka'; $labels['sound'] = 'Pusti zvuk kada dođe nova poruka'; @@ -24,4 +25,5 @@ $labels['body'] = 'Primili ste novu poruku'; $labels['testbody'] = 'Ovo je probna dojava.'; $labels['desktopdisabled'] = 'Dojave na desktopu su onemogućene u vašem pregledniku.'; $labels['desktopunsupported'] = 'Vaš preglednik ne podržava dojave na desktopu.'; + ?> diff --git a/plugins/newmail_notifier/localization/hu_HU.inc b/plugins/newmail_notifier/localization/hu_HU.inc index 59464f27c..46fa78fc9 100644 --- a/plugins/newmail_notifier/localization/hu_HU.inc +++ b/plugins/newmail_notifier/localization/hu_HU.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Értesítés megjelenítése böngészőben amikor új üzenet érkezik'; $labels['desktop'] = 'Asztali értesítés megjelenítése új üzenet érkezésekor'; $labels['sound'] = 'Hang lejátszása új üzenet érkezésekor'; @@ -24,5 +25,5 @@ $labels['body'] = 'Új üzeneted érkezett.'; $labels['testbody'] = 'Ez egy teszt értesítés.'; $labels['desktopdisabled'] = 'Az asztali értesítés ki van kapcsolva a böngésződben.'; $labels['desktopunsupported'] = 'A böngésződ nem támogatja az asztali értesítéseket.'; -$labels['desktoptimeout'] = 'Az asztali értesítés bezárása'; + ?> diff --git a/plugins/newmail_notifier/localization/hy_AM.inc b/plugins/newmail_notifier/localization/hy_AM.inc index 23fdbed65..a932d0e0e 100644 --- a/plugins/newmail_notifier/localization/hy_AM.inc +++ b/plugins/newmail_notifier/localization/hy_AM.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Ցուցադրել զննարկչի ծանուցում նոր հաղորդագրություն ստանալիս'; $labels['desktop'] = 'Ցուցադրել սեղանադրի ծանուցում նոր հաղորդագրություն ստանալիս'; $labels['sound'] = 'Ձայն հանել նոր հաղորդագրություն ստանալիս'; @@ -24,4 +25,5 @@ $labels['body'] = 'Դուք ստացաք նոր հաղորդագրություն $labels['testbody'] = 'Սա փորձնական ծանուցում է'; $labels['desktopdisabled'] = 'Սեղանադրի ծանուցումները Ձեր զննարկչում անջատված են'; $labels['desktopunsupported'] = 'Ձեր զննարկիչը չունի սեղանադրի ծանուցումների հնարավորություն։'; + ?> diff --git a/plugins/newmail_notifier/localization/ia.inc b/plugins/newmail_notifier/localization/ia.inc index cf83712ec..32187347f 100644 --- a/plugins/newmail_notifier/localization/ia.inc +++ b/plugins/newmail_notifier/localization/ia.inc @@ -15,8 +15,15 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Monstrar notificationes de navigator in cata nove message'; +$labels['desktop'] = 'Display desktop notifications on new message'; +$labels['sound'] = 'Play the sound on new message'; $labels['test'] = 'Prova'; $labels['title'] = 'Nove message!'; +$labels['body'] = 'You\'ve received a new message.'; $labels['testbody'] = 'Iste es un notification de prova.'; +$labels['desktopdisabled'] = 'Desktop notifications are disabled in your browser.'; +$labels['desktopunsupported'] = 'Your browser does not support desktop notifications.'; + ?> diff --git a/plugins/newmail_notifier/localization/id_ID.inc b/plugins/newmail_notifier/localization/id_ID.inc index 1f32afa7c..87886a9d5 100644 --- a/plugins/newmail_notifier/localization/id_ID.inc +++ b/plugins/newmail_notifier/localization/id_ID.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Tampilkan pemberitahuan pada peramban saat ada pesan baru'; $labels['desktop'] = 'Tampilkan pemberitahuan pada desktop saat ada pesan baru'; $labels['sound'] = 'Mainkan suara saat ada pesan baru'; @@ -24,4 +25,5 @@ $labels['body'] = 'Anda telah menerima sebuah pesan baru.'; $labels['testbody'] = 'Ini adalah percobaan pemberitahuan.'; $labels['desktopdisabled'] = 'Pemberitahuan di desktop dimatikan pada peramban Anda.'; $labels['desktopunsupported'] = 'Peramban Anda tidak mendukung pemberitahuan pada desktop'; + ?> diff --git a/plugins/newmail_notifier/localization/it_IT.inc b/plugins/newmail_notifier/localization/it_IT.inc index 8e3843b81..8b894ee2f 100644 --- a/plugins/newmail_notifier/localization/it_IT.inc +++ b/plugins/newmail_notifier/localization/it_IT.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'visualizza notifica nel browser per nuovi messaggi'; $labels['desktop'] = 'visualizza notifiche sul desktop per nuovi messaggi'; $labels['sound'] = 'riproduci il suono per nuovi messaggi'; @@ -24,5 +25,5 @@ $labels['body'] = 'hai ricevuto un nuovo messaggio'; $labels['testbody'] = 'notifica di prova'; $labels['desktopdisabled'] = 'le notifiche sul desktop sono disabilitate nel tuo browser'; $labels['desktopunsupported'] = 'il tuo browser non supporta le notifiche sul desktop'; -$labels['desktoptimeout'] = 'Chiudi la notifica visualizzata sul desktop'; + ?> diff --git a/plugins/newmail_notifier/localization/ja_JP.inc b/plugins/newmail_notifier/localization/ja_JP.inc index 6efcb6985..aa5fd7774 100644 --- a/plugins/newmail_notifier/localization/ja_JP.inc +++ b/plugins/newmail_notifier/localization/ja_JP.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = '新しいメッセージの通知をブラウザーに表示'; $labels['desktop'] = '新しいメッセージの通知をデスクトップに表示'; $labels['sound'] = '新しいメッセージが届くと音を再生'; @@ -24,5 +25,5 @@ $labels['body'] = '新しいメッセージを受信しました。'; $labels['testbody'] = 'これはテストの通知です。'; $labels['desktopdisabled'] = 'ブラウザーでデスクトップ通知が無効になっています。'; $labels['desktopunsupported'] = 'ブラウザーがデスクトップ通知をサポートしていません。'; -$labels['desktoptimeout'] = 'デスクトップ通知を閉じる'; + ?> diff --git a/plugins/newmail_notifier/localization/km_KH.inc b/plugins/newmail_notifier/localization/km_KH.inc index fdad4b302..e200ce820 100644 --- a/plugins/newmail_notifier/localization/km_KH.inc +++ b/plugins/newmail_notifier/localization/km_KH.inc @@ -15,9 +15,15 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + +$labels['basic'] = 'Display browser notifications on new message'; +$labels['desktop'] = 'Display desktop notifications on new message'; $labels['sound'] = 'បន្លឹសម្កេងពេលមានសារថ្មី'; $labels['test'] = 'សាកល្បង'; $labels['title'] = 'មានសារថ្មី'; $labels['body'] = 'អ្នកបានទទួលសារថ្មី'; $labels['testbody'] = 'នេះជាការសាក្បងដំណឹង'; +$labels['desktopdisabled'] = 'Desktop notifications are disabled in your browser.'; +$labels['desktopunsupported'] = 'Your browser does not support desktop notifications.'; + ?> diff --git a/plugins/newmail_notifier/localization/ko_KR.inc b/plugins/newmail_notifier/localization/ko_KR.inc index 81abd55b9..2176e4508 100644 --- a/plugins/newmail_notifier/localization/ko_KR.inc +++ b/plugins/newmail_notifier/localization/ko_KR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = '새로운 메시지가 도착 시에 브라우저의 알림에 표시'; $labels['desktop'] = '새로운 메시지가 도착 시에 데스크탑의 알림에 표시'; $labels['sound'] = '새로운 메시지가 도착 시에 소리 재생'; @@ -24,4 +25,5 @@ $labels['body'] = '새로운 메시지를 수신하였습니다.'; $labels['testbody'] = '이 것은 시험용 알림입니다.'; $labels['desktopdisabled'] = '당신의 브라우져에서는 데스크탑의 알림이 불가능하도록 되어있습니다.'; $labels['desktopunsupported'] = '당신의 브라우져에서는 데스크탑의 알림을 지원하지 않습니다.'; + ?> diff --git a/plugins/newmail_notifier/localization/lt_LT.inc b/plugins/newmail_notifier/localization/lt_LT.inc index 6db304f90..956dca0d1 100644 --- a/plugins/newmail_notifier/localization/lt_LT.inc +++ b/plugins/newmail_notifier/localization/lt_LT.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Pranešti apie naujus laiškus naršyklėje'; $labels['desktop'] = 'Pranešti apie naujus laiškus sistemos pranešimu'; $labels['sound'] = 'Pranešti apie naujus laiškus garsu'; @@ -24,4 +25,5 @@ $labels['body'] = 'Jūs gavote naują laišką.'; $labels['testbody'] = 'Tai – bandomasis pranešimas.'; $labels['desktopdisabled'] = 'Jūsų naršyklėje sistemos pranešimai išjungti.'; $labels['desktopunsupported'] = 'Jūsų naršyklėje sistemos pranešimai nepalaikomi.'; + ?> diff --git a/plugins/newmail_notifier/localization/lv_LV.inc b/plugins/newmail_notifier/localization/lv_LV.inc index 4ca083598..9df738b25 100644 --- a/plugins/newmail_notifier/localization/lv_LV.inc +++ b/plugins/newmail_notifier/localization/lv_LV.inc @@ -15,14 +15,15 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ -$labels['basic'] = 'Saņemot jaunu vēstuli, parādīt paziņojumu'; -$labels['desktop'] = 'Saņemot jaunu vēstuli, parādīt darbavirsmas paziņojumu'; -$labels['sound'] = 'Saņemot jaunu vēstuli, atskaņot skaņas signālu'; -$labels['test'] = 'Pārbaudīt'; -$labels['title'] = 'Jauns e-pasts!'; -$labels['body'] = 'Jūs esat saņēmis jaunu vēstuli.'; + +$labels['basic'] = 'Attēlot paziņojumu pie jaunas vēstules saņemšanas'; +$labels['desktop'] = 'Attēlot darbvirsmas paziņojumu pie jaunas vēstules saņemšanas'; +$labels['sound'] = 'Atskaņot skaņas signālu pie jaunas vēstules saņemšanas'; +$labels['test'] = 'Test'; +$labels['title'] = 'Jauns E-pasts!'; +$labels['body'] = 'Jūs esat saņēmis jaunu e-pastu.'; $labels['testbody'] = 'Šis ir testa paziņojums.'; -$labels['desktopdisabled'] = 'Darbavirsmas paziņojumi Jūsu pārlūkprogrammā ir atslēgti.'; -$labels['desktopunsupported'] = 'Jūsu pārlūkprogramma neatbalsta darbavirsmas paziņojumus.'; -$labels['desktoptimeout'] = 'Aizvērt darbavirsmas paziņojumu'; +$labels['desktopdisabled'] = 'Darbvirsmas paziņojumi ir atslēgti Jūsu pārlūkprogrammā.'; +$labels['desktopunsupported'] = 'Jūsu pārlūkprogramma neatbalsta darbvirsmas paziņojumus.'; + ?> diff --git a/plugins/newmail_notifier/localization/ml_IN.inc b/plugins/newmail_notifier/localization/ml_IN.inc index 44ec26e69..7ef16775a 100644 --- a/plugins/newmail_notifier/localization/ml_IN.inc +++ b/plugins/newmail_notifier/localization/ml_IN.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'ബ്രൌസര്‍ അറിയിപ്പുകള്‍ പുതിയ സന്ദേശത്തില്‍ കാണിക്കുക'; $labels['desktop'] = 'ഡെസ്ക്ക്ടോപ്പ് അറിയിപ്പുകള്‍ പുതിയ സന്ദേശത്തില്‍ കാണിക്കുക'; $labels['sound'] = 'പുതിയ സന്ദേശത്തില്‍ സബ്ദം കേള്‍പ്പിക്കുക'; @@ -24,4 +25,5 @@ $labels['body'] = 'താങ്കള്‍ക്ക് ഒരു പുതി $labels['testbody'] = 'ഇത് ഒരു പരീക്ഷണ അറിയിപ്പാണ്.'; $labels['desktopdisabled'] = 'താങ്കളുടെ ബ്രൌസറില്‍ ഡെസ്ക്ക്ടോപ്പ് നോട്ടിഫിക്കേഷന്‍ പ്രവര്‍ത്തനരഹിതമാണ്.'; $labels['desktopunsupported'] = 'താങ്കളുടെ ബ്രൌസ്സര്‍ ഡെസ്ക്ടോപ്പ് അറിയിപ്പുകള്‍ പിന്‍തുണയ്ക്കുന്നില്ല.'; + ?> diff --git a/plugins/newmail_notifier/localization/mr_IN.inc b/plugins/newmail_notifier/localization/mr_IN.inc index 14b453a1d..8d3cf592d 100644 --- a/plugins/newmail_notifier/localization/mr_IN.inc +++ b/plugins/newmail_notifier/localization/mr_IN.inc @@ -15,9 +15,15 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + +$labels['basic'] = 'Display browser notifications on new message'; +$labels['desktop'] = 'Display desktop notifications on new message'; $labels['sound'] = 'नवीन संदेश आल्यास नाद करा'; $labels['test'] = 'चाचणी'; $labels['title'] = 'नवीन ईमेल'; $labels['body'] = 'तुमच्यासाठी नवीन संदेश आला आहे'; $labels['testbody'] = 'हा एक चाचणी निर्देश आहे'; +$labels['desktopdisabled'] = 'Desktop notifications are disabled in your browser.'; +$labels['desktopunsupported'] = 'Your browser does not support desktop notifications.'; + ?> diff --git a/plugins/newmail_notifier/localization/nb_NO.inc b/plugins/newmail_notifier/localization/nb_NO.inc index 7174da15f..83adf6e86 100644 --- a/plugins/newmail_notifier/localization/nb_NO.inc +++ b/plugins/newmail_notifier/localization/nb_NO.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Vis varsel i nettleseren ved ny melding'; $labels['desktop'] = 'Vis varsel på skrivebordet ved ny melding'; $labels['sound'] = 'Spill av lyd ved ny melding'; @@ -24,4 +25,5 @@ $labels['body'] = 'Du har mottatt en ny melding'; $labels['testbody'] = 'Dette er et testvarsel.'; $labels['desktopdisabled'] = 'Skrivebordsvarsel er slått av i din nettleser.'; $labels['desktopunsupported'] = 'Din nettleser støtter ikke visning av varsel på skrivebordet.'; + ?> diff --git a/plugins/newmail_notifier/localization/nl_NL.inc b/plugins/newmail_notifier/localization/nl_NL.inc index 83901597f..01f97e4ce 100644 --- a/plugins/newmail_notifier/localization/nl_NL.inc +++ b/plugins/newmail_notifier/localization/nl_NL.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Toon melding in browser bij nieuw bericht'; $labels['desktop'] = 'Toon melding op bureaublad bij nieuw bericht'; $labels['sound'] = 'Geluid afspelen bij nieuw bericht'; @@ -24,5 +25,5 @@ $labels['body'] = 'U heeft een nieuw bericht ontvangen.'; $labels['testbody'] = 'Dit is een testmelding.'; $labels['desktopdisabled'] = 'Bureaubladmeldingen zijn uitgeschakeld in uw browser.'; $labels['desktopunsupported'] = 'Uw browser ondersteunt geen bureaubladmeldingen.'; -$labels['desktoptimeout'] = 'Sluit bureaubladmelding'; + ?> diff --git a/plugins/newmail_notifier/localization/nn_NO.inc b/plugins/newmail_notifier/localization/nn_NO.inc index 4d42182b5..24ba91d18 100644 --- a/plugins/newmail_notifier/localization/nn_NO.inc +++ b/plugins/newmail_notifier/localization/nn_NO.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Vis varsel i nettlesaren ved ny melding'; $labels['desktop'] = 'Vis varsel på skrivebordet ved ny melding'; $labels['sound'] = 'Spill av lyd ved ny melding'; @@ -24,4 +25,5 @@ $labels['body'] = 'Du har mottatt ei ny melding.'; $labels['testbody'] = 'Dette er eit testvarsel.'; $labels['desktopdisabled'] = 'Skrivebordsvarsel er slått av i din nettlesar.'; $labels['desktopunsupported'] = 'Din nettlesar støttar ikkje vising av varsel på skrivebordet.'; + ?> diff --git a/plugins/newmail_notifier/localization/pl_PL.inc b/plugins/newmail_notifier/localization/pl_PL.inc index 5aa9f055c..b94204c45 100644 --- a/plugins/newmail_notifier/localization/pl_PL.inc +++ b/plugins/newmail_notifier/localization/pl_PL.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Wyświetlaj powiadomienia o nadejściu nowej wiadomości w przeglądarce'; $labels['desktop'] = 'Wyświetlaj powiadomienia o nadejściu nowej wiadomości na pulpicie'; $labels['sound'] = 'Odtwarzaj dźwięk o nadejściu nowej wiadomości'; @@ -24,5 +25,5 @@ $labels['body'] = 'Nadeszła nowa wiadomość.'; $labels['testbody'] = 'To jest testowe powiadomienie.'; $labels['desktopdisabled'] = 'Powiadomienia na pulpicie zostały zablokowane w twojej przeglądarce.'; $labels['desktopunsupported'] = 'Twoja przeglądarka nie obsługuje powiadomień na pulpicie.'; -$labels['desktoptimeout'] = 'Zamknij powiadomienie pulpitu'; + ?> diff --git a/plugins/newmail_notifier/localization/pt_BR.inc b/plugins/newmail_notifier/localization/pt_BR.inc index 6982e2193..5b772f464 100644 --- a/plugins/newmail_notifier/localization/pt_BR.inc +++ b/plugins/newmail_notifier/localization/pt_BR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Exibir notificação quando uma nova mensagem chegar'; $labels['desktop'] = 'Exibir notificação no desktop quando uma nova mensagem chegar'; $labels['sound'] = 'Alerta sonoro quando uma nova mensagem chegar'; @@ -24,5 +25,5 @@ $labels['body'] = 'Você recebeu uma nova mensagem.'; $labels['testbody'] = 'Essa é uma notificação de teste.'; $labels['desktopdisabled'] = 'As notificações no desktop estão desabilitadas no seu navegador.'; $labels['desktopunsupported'] = 'Seu navegador não suporta notificações no desktop'; -$labels['desktoptimeout'] = 'Fechar notificação'; + ?> diff --git a/plugins/newmail_notifier/localization/pt_PT.inc b/plugins/newmail_notifier/localization/pt_PT.inc index 622fc1c92..28a414be4 100644 --- a/plugins/newmail_notifier/localization/pt_PT.inc +++ b/plugins/newmail_notifier/localization/pt_PT.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Mostrar notificação quando uma nova mensagem chegar'; $labels['desktop'] = 'Mostrar alerta no ambiente de trabalho de nova mensagem'; $labels['sound'] = 'Alerta sonoro para nova mensagem'; @@ -24,5 +25,5 @@ $labels['body'] = 'Você recebeu uma nova mensagem.'; $labels['testbody'] = 'Isto é uma notificação de teste.'; $labels['desktopdisabled'] = 'As notificações no ambiente de trabalho estão desactivadas no seu navegador.'; $labels['desktopunsupported'] = 'O seu navegador não suporta notificações no ambiente de trabalho'; -$labels['desktoptimeout'] = 'Fechar notificação no ambiente de trabalho'; + ?> diff --git a/plugins/newmail_notifier/localization/ro_RO.inc b/plugins/newmail_notifier/localization/ro_RO.inc index b039dd2f4..b27e506ab 100644 --- a/plugins/newmail_notifier/localization/ro_RO.inc +++ b/plugins/newmail_notifier/localization/ro_RO.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Afişează notificări în browser la mesaj nou.'; $labels['desktop'] = 'Afişează notificări desktop la mesaj nou.'; $labels['sound'] = 'Redă un sunet la mesaj nou.'; @@ -24,5 +25,5 @@ $labels['body'] = 'Ai primit un mesaj nou.'; $labels['testbody'] = 'Aceasta este o notificare de test.'; $labels['desktopdisabled'] = 'Notificările desktop sunt dezactivate în browser.'; $labels['desktopunsupported'] = 'Browser-ul dumneavoastră nu suportă notificări desktop.'; -$labels['desktoptimeout'] = 'Închide notificarea de birou'; + ?> diff --git a/plugins/newmail_notifier/localization/ru_RU.inc b/plugins/newmail_notifier/localization/ru_RU.inc index d7ae6a7ed..a3da38b09 100644 --- a/plugins/newmail_notifier/localization/ru_RU.inc +++ b/plugins/newmail_notifier/localization/ru_RU.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Показывать в браузере уведомление о приходе нового сообщения'; $labels['desktop'] = 'Показывать на рабочем столе уведомление о приходе нового сообщения'; $labels['sound'] = 'Подавать звуковой сигнал о приходе нового сообщения'; @@ -24,5 +25,5 @@ $labels['body'] = 'Вы получили новое сообщение.'; $labels['testbody'] = 'Это тестовое уведомление.'; $labels['desktopdisabled'] = 'В Вашем браузере отключены уведомления на рабочем столе.'; $labels['desktopunsupported'] = 'Ваш браузер не поддерживает уведомления на рабочем столе.'; -$labels['desktoptimeout'] = 'Закрыть уведомление на рабочем столе'; + ?> diff --git a/plugins/newmail_notifier/localization/si_LK.inc b/plugins/newmail_notifier/localization/si_LK.inc index cc139aa48..2de2d810f 100644 --- a/plugins/newmail_notifier/localization/si_LK.inc +++ b/plugins/newmail_notifier/localization/si_LK.inc @@ -15,5 +15,15 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + +$labels['basic'] = 'Display browser notifications on new message'; +$labels['desktop'] = 'Display desktop notifications on new message'; +$labels['sound'] = 'Play the sound on new message'; $labels['test'] = 'පිරික්සන්න'; +$labels['title'] = 'New Email!'; +$labels['body'] = 'You\'ve received a new message.'; +$labels['testbody'] = 'This is a test notification.'; +$labels['desktopdisabled'] = 'Desktop notifications are disabled in your browser.'; +$labels['desktopunsupported'] = 'Your browser does not support desktop notifications.'; + ?> diff --git a/plugins/newmail_notifier/localization/sk_SK.inc b/plugins/newmail_notifier/localization/sk_SK.inc index b60447c36..cda6cf197 100644 --- a/plugins/newmail_notifier/localization/sk_SK.inc +++ b/plugins/newmail_notifier/localization/sk_SK.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Zobraziť upozornenie v prehliadači pri novej správe'; $labels['desktop'] = 'Zobraziť upozornenie na ploche pri novej správe'; $labels['sound'] = 'Prehrať zvuk pri novej správe'; @@ -24,5 +25,5 @@ $labels['body'] = 'Máte novú správu.'; $labels['testbody'] = 'Toto je skúšobné upozornenie.'; $labels['desktopdisabled'] = 'Upozornenia na ploche sú vo vašom prehliadači vypnuté.'; $labels['desktopunsupported'] = 'Váč prehliadač nepodporuje upozornenia na ploche.'; -$labels['desktoptimeout'] = 'Zatvoriť notifikáciu na ploche'; + ?> diff --git a/plugins/newmail_notifier/localization/sl_SI.inc b/plugins/newmail_notifier/localization/sl_SI.inc index a95fde055..49ae62048 100644 --- a/plugins/newmail_notifier/localization/sl_SI.inc +++ b/plugins/newmail_notifier/localization/sl_SI.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Prikaži obvestilo za nova sporočila'; $labels['desktop'] = 'Prikaži obvestila na namizju za vsa nova sporočila'; $labels['sound'] = 'Ob novem sporočilu predvajaj zvok'; @@ -24,5 +25,5 @@ $labels['body'] = 'Prejeli ste novo sporočilo.'; $labels['testbody'] = 'To je testno obvestilo.'; $labels['desktopdisabled'] = 'Obvestila na namizju so v vašem brskalniku onemogočena.'; $labels['desktopunsupported'] = 'Vaš brskalnik ne podpira izpis obvestil na namizju.'; -$labels['desktoptimeout'] = 'Zapri obvestila na namizju'; + ?> diff --git a/plugins/newmail_notifier/localization/sr_CS.inc b/plugins/newmail_notifier/localization/sr_CS.inc index bc587bf66..55e342a27 100644 --- a/plugins/newmail_notifier/localization/sr_CS.inc +++ b/plugins/newmail_notifier/localization/sr_CS.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Прикажи обавештења о новим порукама у прегледачу'; $labels['desktop'] = 'Прикажи обавештења о новим порукама у систему'; $labels['sound'] = 'Пусти звук по пријему поруке'; @@ -24,4 +25,5 @@ $labels['body'] = 'Примили сте нову поруку.'; $labels['testbody'] = 'Ово је пробно обавештење.'; $labels['desktopdisabled'] = 'Обавештења у систему су искључена у вашем прегледачу'; $labels['desktopunsupported'] = 'Ваш прегледач не подржава обавештења у систему.'; + ?> diff --git a/plugins/newmail_notifier/localization/sv_SE.inc b/plugins/newmail_notifier/localization/sv_SE.inc index 5e0c9fc29..76ce72313 100644 --- a/plugins/newmail_notifier/localization/sv_SE.inc +++ b/plugins/newmail_notifier/localization/sv_SE.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Avisera nytt meddelande i webbläsaren'; $labels['desktop'] = 'Avisera nytt meddelande på skrivbordet'; $labels['sound'] = 'Avisera nytt meddelande med ljudsignal'; @@ -24,5 +25,5 @@ $labels['body'] = 'Du har mottagit ett nytt meddelande.'; $labels['testbody'] = 'Denna avisering är ett prov.'; $labels['desktopdisabled'] = 'Avisering på skrivbordet är avstängt i webbläsaren.'; $labels['desktopunsupported'] = 'Avisering på skrivbordet stöds inte av webbläsaren.'; -$labels['desktoptimeout'] = 'Stäng avisering på skrivbordet'; + ?> diff --git a/plugins/newmail_notifier/localization/tr_TR.inc b/plugins/newmail_notifier/localization/tr_TR.inc index 8c4e0c158..77217b9b1 100644 --- a/plugins/newmail_notifier/localization/tr_TR.inc +++ b/plugins/newmail_notifier/localization/tr_TR.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Yeni mesajlarda web tarayıcı bildirimlerini göster'; $labels['desktop'] = 'Yeni mesajlarda masa üstü bildirimlerini göster'; $labels['sound'] = 'Yeni mesajlarda muzik çal'; @@ -24,5 +25,5 @@ $labels['body'] = 'Yeni bir mesaj aldınız'; $labels['testbody'] = 'Bu bir test bildirimidir.'; $labels['desktopdisabled'] = 'Web tarayıcınızda masa üstü bildirimi iptal edildi'; $labels['desktopunsupported'] = 'Web tarayıcınız masa üstü bildidrimleri desteklemiyor'; -$labels['desktoptimeout'] = 'Masaüstü bildirimini kapat'; + ?> diff --git a/plugins/newmail_notifier/localization/uk_UA.inc b/plugins/newmail_notifier/localization/uk_UA.inc index 06fb8b964..68722c006 100644 --- a/plugins/newmail_notifier/localization/uk_UA.inc +++ b/plugins/newmail_notifier/localization/uk_UA.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Показувати у браузері сповіщення про нові повідомлення'; $labels['desktop'] = 'Показувати на робочому столі сповіщення про нові повідомлення'; $labels['sound'] = 'Програвати звук при появленні нового повідомлення'; @@ -24,4 +25,5 @@ $labels['body'] = 'Ви отримали нове повідомлення.'; $labels['testbody'] = 'Це тестове сповіщення'; $labels['desktopdisabled'] = 'Повідомлення на робочому столі відключені у вашому браузері.'; $labels['desktopunsupported'] = 'Ваш браузер не підтримує повідомлення на робочому столі.'; + ?> diff --git a/plugins/newmail_notifier/localization/vi_VN.inc b/plugins/newmail_notifier/localization/vi_VN.inc index e8ce68b69..9aa93a27a 100644 --- a/plugins/newmail_notifier/localization/vi_VN.inc +++ b/plugins/newmail_notifier/localization/vi_VN.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = 'Hiển thị thông báo trên trình duyệt là có thư mới'; $labels['desktop'] = 'Hiển thị thông báo trên màn hình là có thư mới'; $labels['sound'] = 'Mở tính năng âm thanh trên thư mới'; @@ -24,4 +25,5 @@ $labels['body'] = 'Bạn vừa nhận một thư mới'; $labels['testbody'] = 'Đây là thông báo kiểm tra'; $labels['desktopdisabled'] = 'Thông báo máy tính bị tắt trên trình duyệt của bạn'; $labels['desktopunsupported'] = 'Trình duyệt của bạn không hỗ trợ thông báo trên máy tính'; + ?> diff --git a/plugins/newmail_notifier/localization/zh_CN.inc b/plugins/newmail_notifier/localization/zh_CN.inc index cc405773b..5bb9e846b 100644 --- a/plugins/newmail_notifier/localization/zh_CN.inc +++ b/plugins/newmail_notifier/localization/zh_CN.inc @@ -15,13 +15,15 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = '在浏览器中显示新邮件提醒'; $labels['desktop'] = '在桌面显示新邮件提醒'; -$labels['sound'] = '收到新邮件时播放声音'; +$labels['sound'] = '有新的邮件时播放声音'; $labels['test'] = '测试'; -$labels['title'] = '您收到一封新邮件!'; +$labels['title'] = '新邮件!'; $labels['body'] = '您收到一封新邮件。'; $labels['testbody'] = '这是一个提醒测试。'; $labels['desktopdisabled'] = '您的浏览器已禁止桌面提醒功能。'; $labels['desktopunsupported'] = '您的浏览器不支持桌面提醒功能。'; + ?> diff --git a/plugins/newmail_notifier/localization/zh_TW.inc b/plugins/newmail_notifier/localization/zh_TW.inc index c6d6c8a8f..902eccd14 100644 --- a/plugins/newmail_notifier/localization/zh_TW.inc +++ b/plugins/newmail_notifier/localization/zh_TW.inc @@ -15,6 +15,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/ */ + $labels['basic'] = '當有新郵件顯示瀏覽器通知'; $labels['desktop'] = '當有新郵件顯示桌面通知'; $labels['sound'] = '當有新郵件播放音效'; @@ -24,5 +25,5 @@ $labels['body'] = '您有一封新郵件'; $labels['testbody'] = '這是測試通知'; $labels['desktopdisabled'] = '您的瀏覽器已停用桌面通知'; $labels['desktopunsupported'] = '您的瀏覽器不支援桌面通知功能'; -$labels['desktoptimeout'] = '自動關閉桌面通知'; + ?> diff --git a/plugins/newmail_notifier/newmail_notifier.js b/plugins/newmail_notifier/newmail_notifier.js index 2beacf650..45238eb56 100644 --- a/plugins/newmail_notifier/newmail_notifier.js +++ b/plugins/newmail_notifier/newmail_notifier.js @@ -34,13 +34,6 @@ function newmail_notifier_stop(prop) $('').replaceAll('link[rel="shortcut icon"]'); rcmail.env.favicon_changed = 0; } - - // Remove IE icon overlay if we're pinned to Taskbar - try { - if(window.external.msIsSiteMode()) { - window.external.msSiteModeClearIconOverlay(); - } - } catch(e) {} } // Basic notification: window.focus and favicon change @@ -59,25 +52,12 @@ function newmail_notifier_basic() rcmail.env.favicon_changed = 1; link.replaceAll(oldlink); - - // Add IE icon overlay if we're pinned to Taskbar - try { - if (window.external.msIsSiteMode()) { - window.external.msSiteModeSetIconOverlay('plugins/newmail_notifier/overlay.ico', rcmail.gettext('title', 'newmail_notifier')); - } - } catch(e) {} } // Sound notification function newmail_notifier_sound() { - var elem, src = 'plugins/newmail_notifier/sound', - plugin = navigator.mimeTypes ? navigator.mimeTypes['audio/mp3'] : {}; - - // Internet Explorer does not support wav files, - // support in other browsers depends on enabled plugins, - // so we use wav as a fallback - src += bw.ie || (plugin && plugin.enabledPlugin) ? '.mp3' : '.wav'; + var elem, src = 'plugins/newmail_notifier/sound.wav'; // HTML5 try { @@ -92,77 +72,44 @@ function newmail_notifier_sound() } } -// Desktop notification -// - Require Chrome or Firefox latest version (22+) / 21.0 or older with a plugin +// Desktop notification (need Chrome or Firefox with a plugin) function newmail_notifier_desktop(body) { - var timeout = rcmail.env.newmail_notifier_timeout || 10; - - // As of 17 June 2013, Chrome/Chromium does not implement Notification.permission correctly that - // it gives 'undefined' until an object has been created: - // https://code.google.com/p/chromium/issues/detail?id=163226 - try { - if (Notification.permission == 'granted' || Notification.permission == undefined) { - var popup = new Notification(rcmail.gettext('title', 'newmail_notifier'), { - dir: "auto", - lang: "", - body: body, - tag: "newmail_notifier", - icon: "plugins/newmail_notifier/mail.png", - }); - popup.onclick = function() { - this.close(); - } - setTimeout(function() { popup.close(); }, timeout * 1000); - if (popup.permission == 'granted') return true; - } - } - catch (e) { - var dn = window.webkitNotifications; - - if (dn && !dn.checkPermission()) { - if (rcmail.newmail_popup) - rcmail.newmail_popup.cancel(); - var popup = window.webkitNotifications.createNotification('plugins/newmail_notifier/mail.png', - rcmail.gettext('title', 'newmail_notifier'), body); - popup.onclick = function() { - this.cancel(); - } - popup.show(); - setTimeout(function() { popup.cancel(); }, timeout * 1000); - rcmail.newmail_popup = popup; - return true; + var dn = window.webkitNotifications; + + if (dn && !dn.checkPermission()) { + if (rcmail.newmail_popup) + rcmail.newmail_popup.cancel(); + var popup = window.webkitNotifications.createNotification('plugins/newmail_notifier/mail.png', + rcmail.gettext('title', 'newmail_notifier'), body); + popup.onclick = function() { + this.cancel(); } + popup.show(); + setTimeout(function() { popup.cancel(); }, 10000); // close after 10 seconds + rcmail.newmail_popup = popup; + return true; } + return false; } function newmail_notifier_test_desktop() { - var txt = rcmail.gettext('testbody', 'newmail_notifier'); + var dn = window.webkitNotifications, + txt = rcmail.gettext('testbody', 'newmail_notifier'); - // W3C draft implementation (with fix for Chrome/Chromium) - try { - var testNotification = new window.Notification(txt, {tag: "newmail_notifier"}); // Try to show a test message - if (Notification.permission !== 'granted' || (testNotification.permission && testNotification.permission !== 'granted')) - newmail_notifier_desktop_authorize(); - } - // webkit implementation - catch (e) { - var dn = window.webkitNotifications; - if (dn) { - if (!dn.checkPermission()) - newmail_notifier_desktop(txt); - else - dn.requestPermission(function() { - if (!newmail_notifier_desktop(txt)) - rcmail.display_message(rcmail.gettext('desktopdisabled', 'newmail_notifier'), 'error'); - }); - } + if (dn) { + if (!dn.checkPermission()) + newmail_notifier_desktop(txt); else - // Everything fails, means the browser has no support - rcmail.display_message(rcmail.gettext('desktopunsupported', 'newmail_notifier'), 'error'); + dn.requestPermission(function() { + if (!newmail_notifier_desktop(txt)) + rcmail.display_message(rcmail.gettext('desktopdisabled', 'newmail_notifier'), 'error'); + }); } + else + rcmail.display_message(rcmail.gettext('desktopunsupported', 'newmail_notifier'), 'error'); } function newmail_notifier_test_basic() @@ -174,12 +121,3 @@ function newmail_notifier_test_sound() { newmail_notifier_sound(); } - -function newmail_notifier_desktop_authorize() { - Notification.requestPermission(function(perm) { - if (perm == 'denied') - rcmail.display_message(rcmail.gettext('desktopdisabled', 'newmail_notifier'), 'error'); - if (perm == 'granted') - newmail_notifier_test_desktop(); // Test again, which should show test message - }); -} diff --git a/plugins/newmail_notifier/newmail_notifier.php b/plugins/newmail_notifier/newmail_notifier.php index 20c542f58..2c7ba949d 100644 --- a/plugins/newmail_notifier/newmail_notifier.php +++ b/plugins/newmail_notifier/newmail_notifier.php @@ -15,18 +15,18 @@ * * Copyright (C) 2011, Kolab Systems AG * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later 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 + * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/. + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ class newmail_notifier extends rcube_plugin @@ -35,9 +35,6 @@ class newmail_notifier extends rcube_plugin private $rc; private $notified; - private $opt = array(); - private $exceptions = array(); - /** * Plugin initialization @@ -52,34 +49,13 @@ class newmail_notifier extends rcube_plugin $this->add_hook('preferences_save', array($this, 'prefs_save')); } else { // if ($this->rc->task == 'mail') { + $this->add_hook('new_messages', array($this, 'notify')); // add script when not in ajax and not in frame if ($this->rc->output->type == 'html' && empty($_REQUEST['_framed'])) { $this->add_texts('localization/'); $this->rc->output->add_label('newmail_notifier.title', 'newmail_notifier.body'); $this->include_script('newmail_notifier.js'); } - - if ($this->rc->action == 'refresh') { - // Load configuration - $this->load_config(); - - $this->opt['basic'] = $this->rc->config->get('newmail_notifier_basic'); - $this->opt['sound'] = $this->rc->config->get('newmail_notifier_sound'); - $this->opt['desktop'] = $this->rc->config->get('newmail_notifier_desktop'); - - if (!empty($this->opt)) { - // Get folders to skip checking for - $exceptions = array('drafts_mbox', 'sent_mbox', 'trash_mbox'); - foreach ($exceptions as $folder) { - $folder = $this->rc->config->get($folder); - if (strlen($folder) && $folder != 'INBOX') { - $this->exceptions[] = $folder; - } - } - - $this->add_hook('new_messages', array($this, 'notify')); - } - } } } @@ -117,29 +93,12 @@ class newmail_notifier extends rcube_plugin $this->gettext('test')); $args['blocks']['new_message']['options'][$key] = array( - 'title' => html::label($field_id, rcube::Q($this->gettext($type))), + 'title' => html::label($field_id, Q($this->gettext($type))), 'content' => $content ); } } - $type = 'desktop_timeout'; - $key = 'newmail_notifier_' . $type; - if (!in_array($key, $dont_override)) { - $field_id = '_' . $key; - $select = new html_select(array('name' => $field_id, 'id' => $field_id)); - - foreach (array(5, 10, 15, 30, 45, 60) as $sec) { - $label = $this->rc->gettext(array('name' => 'afternseconds', 'vars' => array('n' => $sec))); - $select->add($label, $sec); - } - - $args['blocks']['new_message']['options'][$key] = array( - 'title' => html::label($field_id, rcube::Q($this->gettext('desktoptimeout'))), - 'content' => $select->show((int) $this->rc->config->get($key)) - ); - } - return $args; } @@ -161,14 +120,7 @@ class newmail_notifier extends rcube_plugin foreach (array('basic', 'desktop', 'sound') as $type) { $key = 'newmail_notifier_' . $type; if (!in_array($key, $dont_override)) { - $args['prefs'][$key] = rcube_utils::get_input_value('_'.$key, rcube_utils::INPUT_POST) ? true : false; - } - } - - $option = 'newmail_notifier_desktop_timeout'; - if (!in_array($option, $dont_override)) { - if ($value = (int) rcube_utils::get_input_value('_' . $option, rcube_utils::INPUT_POST)) { - $args['prefs'][$option] = $value; + $args['prefs'][$key] = get_input_value('_'.$key, RCUBE_INPUT_POST) ? true : false; } } @@ -180,37 +132,45 @@ class newmail_notifier extends rcube_plugin */ function notify($args) { - // Already notified or unexpected input - if ($this->notified || empty($args['diff']['new'])) { + // Already notified or non-automatic check + if ($this->notified || !empty($_GET['_refresh'])) { return $args; } - $mbox = $args['mailbox']; - $storage = $this->rc->get_storage(); - $delimiter = $storage->get_hierarchy_delimiter(); + // Get folders to skip checking for + if (empty($this->exceptions)) { + $this->delimiter = $this->rc->storage->get_hierarchy_delimiter(); + + $exceptions = array('drafts_mbox', 'sent_mbox', 'trash_mbox'); + foreach ($exceptions as $folder) { + $folder = $this->rc->config->get($folder); + if (strlen($folder) && $folder != 'INBOX') { + $this->exceptions[] = $folder; + } + } + } + + $mbox = $args['mailbox']; // Skip exception (sent/drafts) folders (and their subfolders) foreach ($this->exceptions as $folder) { - if (strpos($mbox.$delimiter, $folder.$delimiter) === 0) { + if (strpos($mbox.$this->delimiter, $folder.$this->delimiter) === 0) { return $args; } } - // Check if any of new messages is UNSEEN - $deleted = $this->rc->config->get('skip_deleted') ? 'UNDELETED ' : ''; - $search = $deleted . 'UNSEEN UID ' . $args['diff']['new']; - $unseen = $storage->search_once($mbox, $search); + $this->notified = true; + + // Load configuration + $this->load_config(); - if ($unseen->count()) { - $this->notified = true; + $basic = $this->rc->config->get('newmail_notifier_basic'); + $sound = $this->rc->config->get('newmail_notifier_sound'); + $desktop = $this->rc->config->get('newmail_notifier_desktop'); - $this->rc->output->set_env('newmail_notifier_timeout', $this->rc->config->get('newmail_notifier_desktop_timeout')); + if ($basic || $sound || $desktop) { $this->rc->output->command('plugin.newmail_notifier', - array( - 'basic' => $this->opt['basic'], - 'sound' => $this->opt['sound'], - 'desktop' => $this->opt['desktop'], - )); + array('basic' => $basic, 'sound' => $sound, 'desktop' => $desktop)); } return $args; diff --git a/plugins/newmail_notifier/package.xml b/plugins/newmail_notifier/package.xml index 3d7277bb4..d3de25fb3 100644 --- a/plugins/newmail_notifier/package.xml +++ b/plugins/newmail_notifier/package.xml @@ -19,16 +19,16 @@ alec@alec.pl yes - 2013-10-04 + 2012-02-07 - 0.7 - 0.5 + 0.4 + 0.3 stable stable - GNU GPLv3+ + GNU GPLv2 - diff --git a/plugins/password/README b/plugins/password/README index 262ebfd86..ef6f5b428 100644 --- a/plugins/password/README +++ b/plugins/password/README @@ -1,29 +1,31 @@ ----------------------------------------------------------------------- Password Plugin for Roundcube ----------------------------------------------------------------------- + Plugin that adds a possibility to change user password using many methods (drivers) via Settings/Password tab. + ----------------------------------------------------------------------- - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later 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 + as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. @version @package_version@ - @author Aleksander Machniak + @author Aleksander 'A.L.E.C' Machniak @author ----------------------------------------------------------------------- - 1. Configuration - 2. Drivers + 1. Configuration + 2. Drivers 2.1. Database (sql) 2.2. Cyrus/SASL (sasl) 2.3. Poppassd/Courierpassd (poppassd) @@ -42,8 +44,7 @@ 2.16. DBMail (dbmail) 2.17. Expect (expect) 2.18. Samba (smb) - 2.19. Vpopmail daemon (vpopmaild) - 3. Driver API + 3. Driver API 1. Configuration @@ -64,40 +65,40 @@ ------------------- You can specify which database to connect by 'password_db_dsn' option and - what SQL query to execute by 'password_query'. See config.inc.php.dist file for + what SQL query to execute by 'password_query'. See main.inc.php.dist file for more info. Example implementations of an update_passwd function: - This is for use with LMS (http://lms.org.pl) database and postgres: - CREATE OR REPLACE FUNCTION update_passwd(hash text, account text) RETURNS integer AS $$ - DECLARE - res integer; - BEGIN - UPDATE passwd SET password = hash - WHERE login = split_part(account, '@', 1) - AND domainid = (SELECT id FROM domains WHERE name = split_part(account, '@', 2)) - RETURNING id INTO res; - RETURN res; - END; - $$ LANGUAGE plpgsql SECURITY DEFINER; + CREATE OR REPLACE FUNCTION update_passwd(hash text, account text) RETURNS integer AS $$ + DECLARE + res integer; + BEGIN + UPDATE passwd SET password = hash + WHERE login = split_part(account, '@', 1) + AND domainid = (SELECT id FROM domains WHERE name = split_part(account, '@', 2)) + RETURNING id INTO res; + RETURN res; + END; + $$ LANGUAGE plpgsql SECURITY DEFINER; - This is for use with a SELECT update_passwd(%o,%c,%u) query - Updates the password only when the old password matches the MD5 password - in the database - - CREATE FUNCTION update_password (oldpass text, cryptpass text, user text) RETURNS text - MODIFIES SQL DATA - BEGIN - DECLARE currentsalt varchar(20); - DECLARE error text; - SET error = 'incorrect current password'; - SELECT substring_index(substr(user.password,4),_latin1'$',1) INTO currentsalt FROM users WHERE username=user; - SELECT '' INTO error FROM users WHERE username=user AND password=ENCRYPT(oldpass,currentsalt); - UPDATE users SET password=cryptpass WHERE username=user AND password=ENCRYPT(oldpass,currentsalt); - RETURN error; - END + Updates the password only when the old password matches the MD5 password + in the database + + CREATE FUNCTION update_password (oldpass text, cryptpass text, user text) RETURNS text + MODIFIES SQL DATA + BEGIN + DECLARE currentsalt varchar(20); + DECLARE error text; + SET error = 'incorrect current password'; + SELECT substring_index(substr(user.password,4),_latin1'$',1) INTO currentsalt FROM users WHERE username=user; + SELECT '' INTO error FROM users WHERE username=user AND password=ENCRYPT(oldpass,currentsalt); + UPDATE users SET password=cryptpass WHERE username=user AND password=ENCRYPT(oldpass,currentsalt); + RETURN error; + END Example SQL UPDATEs: @@ -137,11 +138,12 @@ Installation: - Change into the helpers directory. Edit the chgsaslpasswd.c file as is + Change into the helpers directory. Copy and edit + /usr/share/roundcube-plugins/examples/chgsaslpasswd.c as is documented within it. Compile the wrapper program: - gcc -o chgsaslpasswd chgsaslpasswd.c + gcc -o chgsaslpasswd chgsaslpasswd.c Chown the compiled chgsaslpasswd binary to the cyrus user and group that your browser runs as, then chmod them to 4550. @@ -149,13 +151,13 @@ For example, if your cyrus user is 'cyrus' and the apache server group is 'nobody' (I've been told Redhat runs Apache as user 'apache'): - chown cyrus:nobody chgsaslpasswd - chmod 4550 chgsaslpasswd + chown cyrus:nobody chgsaslpasswd + chmod 4550 chgsaslpasswd Stephen Carr has suggested users should try to run the scripts on a test account as the cyrus user eg; - su cyrus -c "./chgsaslpasswd -p test_account" + su cyrus -c "./chgsaslpasswd -p test_account" This will allow you to make sure that the script will work for your setup. Should the script not work, make sure that: @@ -191,12 +193,8 @@ 2.6. cPanel (cpanel) -------------------- - Install cPanel XMLAPI Client Class into Roundcube program/lib directory - or any other place in PHP include path. You can get the class from - https://raw.github.com/CpanelInc/xmlapi-php/master/xmlapi.php - - You can configure parameters for connection to cPanel's API interface. - See config.inc.php.dist file for more info. + You can specify parameters for HTTP connection to cPanel's admin + interface. See config.inc.php.dist file for more info. 2.7. XIMSS/Communigate (ximms) @@ -210,7 +208,8 @@ ---------------------------- As in sasl driver this one allows to change password using shell - utility called "virtualmin". See helpers/chgvirtualminpasswd.c for + utility called "virtualmin". See + /usr/share/doc/roundcube-plugins/examples/chgvirtualminpasswd.c for installation instructions. See also config.inc.php.dist file. @@ -235,8 +234,9 @@ Driver that adds functionality to change the systems user password via the 'chpasswd' command. See config.inc.php.dist file. - Attached wrapper script (helpers/chpass-wrapper.py) restricts password changes - to uids >= 1000 and can deny requests based on a blacklist. + Attached wrapper script + (/usr/share/doc/roundcube-plugins/examples/chpass-wrapper.py) restricts + password changes to uids >= 1000 and can deny requests based on a blacklist. 2.12. LDAP - no PEAR (ldap_simple) @@ -247,7 +247,7 @@ This driver is fully compatible with the ldap driver, but does not require (or uses) the - $config['password_ldap_force_replace'] variable. + $rcmail_config['password_ldap_force_replace'] variable. Other advantages: * Connects only once with the LDAP server when using the search user. * Does not read the DN, but only replaces the password within (that is @@ -300,16 +300,6 @@ Driver to change Samba user password via the 'smbpasswd' command. See config.inc.php.dist file for configuration description. - 2.19. Vpopmail daemon (vpopmaild) - ----------------------------------- - - Driver for the daemon of vpopmail. Vpopmail is used with qmail to - enable virtual users that are saved in a database and not in /etc/passwd. - - Set $config['password_vpopmaild_host'] to the host where vpopmaild runs. - - Set $config['password_vpopmaild_port'] to the port of vpopmaild. - 3. Driver API ------------- diff --git a/plugins/password/config.inc.php.dist b/plugins/password/config.inc.php.dist index 8c83dd703..a40e2a93f 100644 --- a/plugins/password/config.inc.php.dist +++ b/plugins/password/config.inc.php.dist @@ -4,43 +4,39 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$config['password_driver'] = 'sql'; +$rcmail_config['password_driver'] = 'sql'; // Determine whether current password is required to change password. // Default: false. -$config['password_confirm_current'] = true; +$rcmail_config['password_confirm_current'] = true; // Require the new password to be a certain length. // set to blank to allow passwords of any length -$config['password_minimum_length'] = 0; +$rcmail_config['password_minimum_length'] = 0; // Require the new password to contain a letter and punctuation character // Change to false to remove this check. -$config['password_require_nonalpha'] = false; +$rcmail_config['password_require_nonalpha'] = false; // Enables logging of password changes into logs/password -$config['password_log'] = false; +$rcmail_config['password_log'] = false; // Comma-separated list of login exceptions for which password change // will be not available (no Password tab in Settings) -$config['password_login_exceptions'] = null; +$rcmail_config['password_login_exceptions'] = null; // Array of hosts that support password changing. Default is NULL. // Listed hosts will feature a Password option in Settings; others will not. // Example: -//$config['password_hosts'] = array('mail.example.com', 'mail2.example.org'); -$config['password_hosts'] = null; - -// Enables saving the new password even if it matches the old password. Useful -// for upgrading the stored passwords after the encryption scheme has changed. -$config['password_force_save'] = false; +//$rcmail_config['password_hosts'] = array('mail.example.com', 'mail2.example.org'); +$rcmail_config['password_hosts'] = null; // SQL Driver options // ------------------ // PEAR database DSN for performing the query. By default // Roundcube DB settings are used. -$config['password_db_dsn'] = ''; +$rcmail_config['password_db_dsn'] = ''; // The SQL query used to change the password. // The query can contain the following macros that will be expanded as follows: @@ -60,52 +56,52 @@ $config['password_db_dsn'] = ''; // (in case the username is an email address) // Escaping of macros is handled by this module. // Default: "SELECT update_passwd(%c, %u)" -$config['password_query'] = 'SELECT update_passwd(%c, %u)'; +$rcmail_config['password_query'] = 'SELECT update_passwd(%c, %u)'; // By default the crypt() function which is used to create the '%c' // parameter uses the md5 algorithm. To use different algorithms // you can choose between: des, md5, blowfish, sha256, sha512. // Before using other hash functions than des or md5 please make sure // your operating system supports the other hash functions. -$config['password_crypt_hash'] = 'md5'; +$rcmail_config['password_crypt_hash'] = 'md5'; // By default domains in variables are using unicode. // Enable this option to use punycoded names -$config['password_idn_ascii'] = false; +$rcmail_config['password_idn_ascii'] = false; // Path for dovecotpw (if not in $PATH) -// $config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; +// $rcmail_config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; // Dovecot method (dovecotpw -s 'method') -$config['password_dovecotpw_method'] = 'CRAM-MD5'; +$rcmail_config['password_dovecotpw_method'] = 'CRAM-MD5'; // Enables use of password with crypt method prefix in %D, e.g. {MD5}$1$LUiMYWqx$fEkg/ggr/L6Mb2X7be4i1/ -$config['password_dovecotpw_with_method'] = false; +$rcmail_config['password_dovecotpw_with_method'] = false; // Using a password hash for %n and %q variables. // Determine which hashing algorithm should be used to generate // the hashed new and current password for using them within the // SQL query. Requires PHP's 'hash' extension. -$config['password_hash_algorithm'] = 'sha1'; +$rcmail_config['password_hash_algorithm'] = 'sha1'; // You can also decide whether the hash should be provided // as hex string or in base64 encoded format. -$config['password_hash_base64'] = false; +$rcmail_config['password_hash_base64'] = false; // Poppassd Driver options // ----------------------- // The host which changes the password -$config['password_pop_host'] = 'localhost'; +$rcmail_config['password_pop_host'] = 'localhost'; // TCP port used for poppassd connections -$config['password_pop_port'] = 106; +$rcmail_config['password_pop_port'] = 106; // SASL Driver options // ------------------- // Additional arguments for the saslpasswd2 call -$config['password_saslpasswd_args'] = ''; +$rcmail_config['password_saslpasswd_args'] = ''; // LDAP and LDAP_SIMPLE Driver options @@ -114,41 +110,41 @@ $config['password_saslpasswd_args'] = ''; // You can provide one or several hosts in an array in which case the hosts are tried from left to right. // Exemple: array('ldap1.exemple.com', 'ldap2.exemple.com'); // Default: 'localhost' -$config['password_ldap_host'] = 'localhost'; +$rcmail_config['password_ldap_host'] = 'localhost'; // LDAP server port to connect to // Default: '389' -$config['password_ldap_port'] = '389'; +$rcmail_config['password_ldap_port'] = '389'; // TLS is started after connecting // Using TLS for password modification is recommanded. // Default: false -$config['password_ldap_starttls'] = false; +$rcmail_config['password_ldap_starttls'] = false; // LDAP version // Default: '3' -$config['password_ldap_version'] = '3'; +$rcmail_config['password_ldap_version'] = '3'; // LDAP base name (root directory) // Exemple: 'dc=exemple,dc=com' -$config['password_ldap_basedn'] = 'dc=exemple,dc=com'; +$rcmail_config['password_ldap_basedn'] = 'dc=exemple,dc=com'; // LDAP connection method // There is two connection method for changing a user's LDAP password. // 'user': use user credential (recommanded, require password_confirm_current=true) // 'admin': use admin credential (this mode require password_ldap_adminDN and password_ldap_adminPW) // Default: 'user' -$config['password_ldap_method'] = 'user'; +$rcmail_config['password_ldap_method'] = 'user'; // LDAP Admin DN // Used only in admin connection mode // Default: null -$config['password_ldap_adminDN'] = null; +$rcmail_config['password_ldap_adminDN'] = null; // LDAP Admin Password // Used only in admin connection mode // Default: null -$config['password_ldap_adminPW'] = null; +$rcmail_config['password_ldap_adminPW'] = null; // LDAP user DN mask // The user's DN is mandatory and as we only have his login, @@ -158,7 +154,7 @@ $config['password_ldap_adminPW'] = null; // '%domain' will be replaced by the current roundcube user's domain part // '%dc' will be replaced by domain name hierarchal string e.g. "dc=test,dc=domain,dc=com" // Exemple: 'uid=%login,ou=people,dc=exemple,dc=com' -$config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com'; +$rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com'; // LDAP search DN // The DN roundcube should bind with to find out user's DN @@ -169,7 +165,7 @@ $config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com'; // users login to find his DN instead. A common reason might be that // your users are placed under different ou's like engineering or // sales which cannot be derived from their login only. -$config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com'; +$rcmail_config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com'; // LDAP search password // If password_ldap_searchDN is set, the password to use for @@ -179,13 +175,13 @@ $config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com' // is only accesible to roundcube and don't forget to restrict roundcube's access to // your directory as much as possible using ACLs. Should this password be compromised // you want to minimize the damage. -$config['password_ldap_searchPW'] = 'secret'; +$rcmail_config['password_ldap_searchPW'] = 'secret'; // LDAP search base // If password_ldap_searchDN is set, the base to search in using the filter below. // Note that you should comment out the default password_ldap_userDN_mask setting // for this to take effect. -$config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; +$rcmail_config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; // LDAP search filter // If password_ldap_searchDN is set, the filter to use when @@ -197,42 +193,42 @@ $config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com'; // '%dc' will be replaced by domain name hierarchal string e.g. "dc=test,dc=domain,dc=com" // Example: '(uid=%login)' // Example: '(&(objectClass=posixAccount)(uid=%login))' -$config['password_ldap_search_filter'] = '(uid=%login)'; +$rcmail_config['password_ldap_search_filter'] = '(uid=%login)'; // LDAP password hash type // Standard LDAP encryption type which must be one of: crypt, -// ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, ad or clear. +// ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, or clear. // Please note that most encodage types require external libraries // to be included in your PHP installation, see function hashPassword in drivers/ldap.php for more info. // Default: 'crypt' -$config['password_ldap_encodage'] = 'crypt'; +$rcmail_config['password_ldap_encodage'] = 'crypt'; // LDAP password attribute // Name of the ldap's attribute used for storing user password // Default: 'userPassword' -$config['password_ldap_pwattr'] = 'userPassword'; +$rcmail_config['password_ldap_pwattr'] = 'userPassword'; // LDAP password force replace // Force LDAP replace in cases where ACL allows only replace not read // See http://pear.php.net/package/Net_LDAP2/docs/latest/Net_LDAP2/Net_LDAP2_Entry.html#methodreplace // Default: true -$config['password_ldap_force_replace'] = true; +$rcmail_config['password_ldap_force_replace'] = true; // LDAP Password Last Change Date // Some places use an attribute to store the date of the last password change // The date is meassured in "days since epoch" (an integer value) // Whenever the password is changed, the attribute will be updated if set (e.g. shadowLastChange) -$config['password_ldap_lchattr'] = ''; +$rcmail_config['password_ldap_lchattr'] = ''; // LDAP Samba password attribute, e.g. sambaNTPassword // Name of the LDAP's Samba attribute used for storing user password -$config['password_ldap_samba_pwattr'] = ''; +$rcmail_config['password_ldap_samba_pwattr'] = ''; // LDAP Samba Password Last Change Date attribute, e.g. sambaPwdLastSet // Some places use an attribute to store the date of the last password change // The date is meassured in "seconds since epoch" (an integer value) // Whenever the password is changed, the attribute will be updated if set -$config['password_ldap_samba_lchattr'] = ''; +$rcmail_config['password_ldap_samba_lchattr'] = ''; // DirectAdmin Driver options @@ -242,57 +238,63 @@ $config['password_ldap_samba_lchattr'] = ''; // The host can contain the following macros that will be expanded as follows: // %h is replaced with the imap host (from the session info) // %d is replaced with the domain part of the username (if the username is an email) -$config['password_directadmin_host'] = 'tcp://localhost'; +$rcmail_config['password_directadmin_host'] = 'tcp://localhost'; // TCP port used for DirectAdmin connections -$config['password_directadmin_port'] = 2222; +$rcmail_config['password_directadmin_port'] = 2222; // vpopmaild Driver options // ----------------------- // The host which changes the password -$config['password_vpopmaild_host'] = 'localhost'; +$rcmail_config['password_vpopmaild_host'] = 'localhost'; // TCP port used for vpopmaild connections -$config['password_vpopmaild_port'] = 89; +$rcmail_config['password_vpopmaild_port'] = 89; // cPanel Driver options // -------------------------- // The cPanel Host name -$config['password_cpanel_host'] = 'host.domain.com'; +$rcmail_config['password_cpanel_host'] = 'host.domain.com'; // The cPanel admin username -$config['password_cpanel_username'] = 'username'; +$rcmail_config['password_cpanel_username'] = 'username'; // The cPanel admin password -$config['password_cpanel_password'] = 'password'; +$rcmail_config['password_cpanel_password'] = 'password'; // The cPanel port to use -$config['password_cpanel_port'] = 2087; +$rcmail_config['password_cpanel_port'] = 2082; + +// Using ssl for cPanel connections? +$rcmail_config['password_cpanel_ssl'] = true; + +// The cPanel theme in use +$rcmail_config['password_cpanel_theme'] = 'x'; // XIMSS (Communigate server) Driver options // ----------------------------------------- // Host name of the Communigate server -$config['password_ximss_host'] = 'mail.example.com'; +$rcmail_config['password_ximss_host'] = 'mail.example.com'; // XIMSS port on Communigate server -$config['password_ximss_port'] = 11024; +$rcmail_config['password_ximss_port'] = 11024; // chpasswd Driver options // --------------------- // Command to use -$config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null'; +$rcmail_config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null'; // XMail Driver options // --------------------- -$config['xmail_host'] = 'localhost'; -$config['xmail_user'] = 'YourXmailControlUser'; -$config['xmail_pass'] = 'YourXmailControlPass'; -$config['xmail_port'] = 6017; +$rcmail_config['xmail_host'] = 'localhost'; +$rcmail_config['xmail_user'] = 'YourXmailControlUser'; +$rcmail_config['xmail_pass'] = 'YourXmailControlPass'; +$rcmail_config['xmail_port'] = 6017; // hMail Driver options @@ -300,9 +302,9 @@ $config['xmail_port'] = 6017; // Remote hMailServer configuration // true: HMailserver is on a remote box (php.ini: com.allow_dcom = true) // false: Hmailserver is on same box as PHP -$config['hmailserver_remote_dcom'] = false; +$rcmail_config['hmailserver_remote_dcom'] = false; // Windows credentials -$config['hmailserver_server'] = array( +$rcmail_config['hmailserver_server'] = array( 'Server' => 'localhost', // hostname or ip address 'Username' => 'administrator', // windows username 'Password' => 'password' // windows user password @@ -328,36 +330,32 @@ $config['password_virtualmin_format'] = 0; // Use comma delimited exlist to disable password change for users // Add the following line to visudo to tighten security: // www ALL=NOPASSWORD: /usr/sbin/pw -$config['password_pw_usermod_cmd'] = 'sudo /usr/sbin/pw usermod -h 0 -n'; +$rcmail_config['password_pw_usermod_cmd'] = 'sudo /usr/sbin/pw usermod -h 0 -n'; // DBMail Driver options // ------------------- // Additional arguments for the dbmail-users call -$config['password_dbmail_args'] = '-p sha512'; +$rcmail_config['password_dbmail_args'] = '-p sha512'; // Expect Driver options // --------------------- // Location of expect binary -$config['password_expect_bin'] = '/usr/bin/expect'; +$rcmail_config['password_expect_bin'] = '/usr/bin/expect'; // Location of expect script (see helpers/passwd-expect) -$config['password_expect_script'] = ''; +$rcmail_config['password_expect_script'] = ''; // Arguments for the expect script. See the helpers/passwd-expect file for details. // This is probably a good starting default: // -telent -host localhost -output /tmp/passwd.log -log /tmp/passwd.log -$config['password_expect_params'] = ''; +$rcmail_config['password_expect_params'] = ''; // smb Driver options // --------------------- // Samba host (default: localhost) -// Supported replacement variables: -// %n - hostname ($_SERVER['SERVER_NAME']) -// %t - hostname without the first part -// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) -$config['password_smb_host'] = 'localhost'; +$rcmail_config['password_smb_host'] = 'localhost'; // Location of smbpasswd binary -$config['password_smb_cmd'] = '/usr/bin/smbpasswd'; +$rcmail_config['password_smb_cmd'] = '/usr/bin/smbpasswd'; diff --git a/plugins/password/drivers/chpasswd.php b/plugins/password/drivers/chpasswd.php index 137275e69..3ea10159c 100644 --- a/plugins/password/drivers/chpasswd.php +++ b/plugins/password/drivers/chpasswd.php @@ -26,7 +26,7 @@ class rcube_chpasswd_password return PASSWORD_SUCCESS; } else { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, diff --git a/plugins/password/drivers/cpanel.php b/plugins/password/drivers/cpanel.php index b71c33ec1..79887109b 100644 --- a/plugins/password/drivers/cpanel.php +++ b/plugins/password/drivers/cpanel.php @@ -4,43 +4,95 @@ * cPanel Password Driver * * Driver that adds functionality to change the users cPanel password. - * Originally written by Fulvio Venturelli + * The cPanel PHP API code has been taken from: http://www.phpclasses.org/browse/package/3534.html * - * Completely rewritten using the cPanel API2 call Email::passwdpop - * as opposed to the original coding against the UI, which is a fragile method that - * makes the driver to always return a failure message for any language other than English - * see http://trac.roundcube.net/ticket/1487015 + * This driver has been tested with Hostmonster hosting and seems to work fine. * - * This driver has been tested with o2switch hosting and seems to work fine. - * - * @version 3.0 - * @author Christian Chech + * @version 2.0 + * @author Fulvio Venturelli */ class rcube_cpanel_password { public function save($curpas, $newpass) { - require_once 'xmlapi.php'; - $rcmail = rcmail::get_instance(); - $this->cuser = $rcmail->config->get('password_cpanel_username'); - - // Setup the xmlapi connection - $this->xmlapi = new xmlapi($rcmail->config->get('password_cpanel_host')); - $this->xmlapi->set_port($rcmail->config->get('password_cpanel_port')); - $this->xmlapi->password_auth($this->cuser, $rcmail->config->get('password_cpanel_password')); - $this->xmlapi->set_output('json'); - $this->xmlapi->set_debug(0); + // Create a cPanel email object + $cPanel = new emailAccount($rcmail->config->get('password_cpanel_host'), + $rcmail->config->get('password_cpanel_username'), + $rcmail->config->get('password_cpanel_password'), + $rcmail->config->get('password_cpanel_port'), + $rcmail->config->get('password_cpanel_ssl'), + $rcmail->config->get('password_cpanel_theme'), + $_SESSION['username'] ); - if ($this->setPassword($_SESSION['username'], $newpass)) { + if ($cPanel->setPassword($newpass)) { return PASSWORD_SUCCESS; } else { return PASSWORD_ERROR; } } +} + + +class HTTP +{ + function HTTP($host, $username, $password, $port, $ssl, $theme) + { + $this->ssl = $ssl ? 'ssl://' : ''; + $this->username = $username; + $this->password = $password; + $this->theme = $theme; + $this->auth = base64_encode($username . ':' . $password); + $this->port = $port; + $this->host = $host; + $this->path = '/frontend/' . $theme . '/'; + } + + function getData($url, $data = '') + { + $url = $this->path . $url; + if (is_array($data)) { + $url = $url . '?'; + foreach ($data as $key => $value) { + $url .= urlencode($key) . '=' . urlencode($value) . '&'; + } + $url = substr($url, 0, -1); + } + + $response = ''; + $fp = fsockopen($this->ssl . $this->host, $this->port); + if (!$fp) { + return false; + } + + $out = 'GET ' . $url . ' HTTP/1.0' . "\r\n"; + $out .= 'Authorization: Basic ' . $this->auth . "\r\n"; + $out .= 'Connection: Close' . "\r\n\r\n"; + fwrite($fp, $out); + while (!feof($fp)) { + $response .= @fgets($fp); + } + fclose($fp); + return $response; + } +} + + +class emailAccount +{ + function emailAccount($host, $username, $password, $port, $ssl, $theme, $address) + { + $this->HTTP = new HTTP($host, $username, $password, $port, $ssl, $theme); + if (strpos($address, '@')) { + list($this->email, $this->domain) = explode('@', $address); + } + else { + list($this->email, $this->domain) = array($address, ''); + } + } /** * Change email account password @@ -49,24 +101,16 @@ class rcube_cpanel_password * @param string $password email account password * @return bool */ - function setPassword($address, $password) + function setPassword($password) { - if (strpos($address, '@')) { - list($data['email'], $data['domain']) = explode('@', $address); - } - else { - list($data['email'], $data['domain']) = array($address, ''); - } - + $data['email'] = $this->email; + $data['domain'] = $this->domain; $data['password'] = $password; + $response = $this->HTTP->getData('mail/dopasswdpop.html', $data); - $query = $this->xmlapi->api2_query($this->cuser, 'Email', 'passwdpop', $data); - $query = json_decode($query, true); - - if ($query['cpanelresult']['data'][0]['result'] == 1) { + if (strpos($response, 'success') && !strpos($response, 'failure')) { return true; } - return false; } } diff --git a/plugins/password/drivers/dbmail.php b/plugins/password/drivers/dbmail.php index 529027b8d..e4c0d52e3 100644 --- a/plugins/password/drivers/dbmail.php +++ b/plugins/password/drivers/dbmail.php @@ -29,7 +29,7 @@ class rcube_dbmail_password return PASSWORD_SUCCESS; } else { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, diff --git a/plugins/password/drivers/directadmin.php b/plugins/password/drivers/directadmin.php index 44ecea406..fb156cea9 100644 --- a/plugins/password/drivers/directadmin.php +++ b/plugins/password/drivers/directadmin.php @@ -43,7 +43,7 @@ class rcube_directadmin_password $response = $Socket->fetch_parsed_body(); //DEBUG - //rcube::console("Password Plugin: [USER: $da_user] [HOST: $da_host] - Response: [SOCKET: ".$Socket->result_status_code."] [DA ERROR: ".strip_tags($response['error'])."] [TEXT: ".$response[text]."]"); + //console("Password Plugin: [USER: $da_user] [HOST: $da_host] - Response: [SOCKET: ".$Socket->result_status_code."] [DA ERROR: ".strip_tags($response['error'])."] [TEXT: ".$response[text]."]"); if($Socket->result_status_code != 200) return array('code' => PASSWORD_CONNECT_ERROR, 'message' => $Socket->error[0]); @@ -297,6 +297,7 @@ class HTTPSocket { $status = socket_get_status($socket); $startTime = time(); $length = 0; + $prevSecond = 0; while ( !feof($socket) && !$status['timed_out'] ) { $chunk = fgets($socket,1024); diff --git a/plugins/password/drivers/domainfactory.php b/plugins/password/drivers/domainfactory.php index 9128720c9..7f6b8860e 100644 --- a/plugins/password/drivers/domainfactory.php +++ b/plugins/password/drivers/domainfactory.php @@ -4,9 +4,9 @@ * domainFACTORY Password Driver * * Driver to change passwords with the hosting provider domainFACTORY. - * http://www.df.eu/ + * See: http://www.df.eu/ * - * @version 2.1 + * @version 2.0 * @author Till Krüss * @link http://tillkruess.com/projects/roundcube/ * @@ -14,76 +14,57 @@ class rcube_domainfactory_password { - function save($curpass, $passwd) - { - $rcmail = rcmail::get_instance(); + function save($curpass, $passwd) + { + $rcmail = rcmail::get_instance(); - if (is_null($curpass)) { - $curpass = $rcmail->decrypt($_SESSION['password']); - } + if (is_null($curpass)) { + $curpass = $rcmail->decrypt($_SESSION['password']); + } - if ($ch = curl_init()) { + if ($ch = curl_init()) { + // initial login + curl_setopt_array($ch, array( + CURLOPT_RETURNTRANSFER => true, + CURLOPT_URL => 'https://ssl.df.eu/chmail.php', + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => array( + 'login' => $rcmail->user->get_username(), + 'pwd' => $curpass, + 'action' => 'change' + ) + )); - // initial login - curl_setopt_array($ch, array( - CURLOPT_RETURNTRANSFER => true, - CURLOPT_URL => 'https://ssl.df.eu/chmail.php', - CURLOPT_POST => true, - CURLOPT_POSTFIELDS => array( - 'login' => $rcmail->user->get_username(), - 'pwd' => $curpass, - 'action' => 'change' - ) - )); + if ($result = curl_exec($ch)) { + // login successful, get token! + $postfields = array( + 'pwd1' => $passwd, + 'pwd2' => $passwd, + 'action[update]' => 'Speichern' + ); - if ($result = curl_exec($ch)) { - // login successful, get token! - $postfields = array( - 'pwd1' => $passwd, - 'pwd2' => $passwd, - 'action[update]' => 'Speichern' - ); + preg_match_all('~~i', $result, $fields); + foreach ($fields[1] as $field_key => $field_name) { + $postfields[$field_name] = $fields[2][$field_key]; + } - preg_match_all('~~i', $result, $fields); - foreach ($fields[1] as $field_key => $field_name) { - $postfields[$field_name] = $fields[2][$field_key]; - } + // change password + $ch = curl_copy_handle($ch); + curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); + if ($result = curl_exec($ch)) { + if (strpos($result, 'Einstellungen erfolgreich') !== false) { + return PASSWORD_SUCCESS; + } + } else { + return PASSWORD_CONNECT_ERROR; + } + } else { + return PASSWORD_CONNECT_ERROR; + } + } else { + return PASSWORD_CONNECT_ERROR; + } - // change password - $ch = curl_copy_handle($ch); - curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); - if ($result = curl_exec($ch)) { - - // has the password been changed? - if (strpos($result, 'Einstellungen erfolgreich') !== false) { - return PASSWORD_SUCCESS; - } - - // show error message(s) if possible - if (strpos($result, '
') !== false) { - preg_match_all('#
(.*?)
#s', $result, $errors); - if (isset($errors[1])) { - $error_message = ''; - foreach ( $errors[1] as $error ) { - $error_message .= trim(mb_convert_encoding( $error, 'UTF-8', 'ISO-8859-15' )).' '; - } - return array('code' => PASSWORD_ERROR, 'message' => $error_message); - } - } - - - } else { - return PASSWORD_CONNECT_ERROR; - } - - } else { - return PASSWORD_CONNECT_ERROR; - } - - } else { - return PASSWORD_CONNECT_ERROR; - } - - return PASSWORD_ERROR; - } + return PASSWORD_ERROR; + } } diff --git a/plugins/password/drivers/expect.php b/plugins/password/drivers/expect.php index 1f68924df..7a191e254 100644 --- a/plugins/password/drivers/expect.php +++ b/plugins/password/drivers/expect.php @@ -45,7 +45,7 @@ class rcube_expect_password return PASSWORD_SUCCESS; } else { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, diff --git a/plugins/password/drivers/hmail.php b/plugins/password/drivers/hmail.php index 650434617..104c851ae 100644 --- a/plugins/password/drivers/hmail.php +++ b/plugins/password/drivers/hmail.php @@ -5,6 +5,7 @@ * * @version 2.0 * @author Roland 'rosali' Liebl + * */ class rcube_hmail_password @@ -25,8 +26,8 @@ class rcube_hmail_password $obApp = new COM("hMailServer.Application"); } catch (Exception $e) { - rcube::write_log('errors', "Plugin password (hmail driver): " . trim(strip_tags($e->getMessage()))); - rcube::write_log('errors', "Plugin password (hmail driver): This problem is often caused by DCOM permissions not being set."); + write_log('errors', "Plugin password (hmail driver): " . trim(strip_tags($e->getMessage()))); + write_log('errors', "Plugin password (hmail driver): This problem is often caused by DCOM permissions not being set."); return PASSWORD_ERROR; } @@ -38,7 +39,8 @@ class rcube_hmail_password else { $domain = $rcmail->config->get('username_domain',false); if (!$domain) { - rcube::write_log('errors','Plugin password (hmail driver): $config[\'username_domain\'] is not defined.'); + write_log('errors','Plugin password (hmail driver): $rcmail_config[\'username_domain\'] is not defined.'); + write_log('errors','Plugin password (hmail driver): Hint: Use hmail_login plugin (http://myroundcube.googlecode.com'); return PASSWORD_ERROR; } $username = $username . "@" . $domain; @@ -53,8 +55,8 @@ class rcube_hmail_password return PASSWORD_SUCCESS; } catch (Exception $e) { - rcube::write_log('errors', "Plugin password (hmail driver): " . trim(strip_tags($e->getMessage()))); - rcube::write_log('errors', "Plugin password (hmail driver): This problem is often caused by DCOM permissions not being set."); + write_log('errors', "Plugin password (hmail driver): " . trim(strip_tags($e->getMessage()))); + write_log('errors', "Plugin password (hmail driver): This problem is often caused by DCOM permissions not being set."); return PASSWORD_ERROR; } } diff --git a/plugins/password/drivers/ldap.php b/plugins/password/drivers/ldap.php index 739958ad7..f773335ac 100644 --- a/plugins/password/drivers/ldap.php +++ b/plugins/password/drivers/ldap.php @@ -23,7 +23,7 @@ class rcube_ldap_password // Building user DN if ($userDN = $rcmail->config->get('password_ldap_userDN_mask')) { - $userDN = self::substitute_vars($userDN); + $userDN = $this->substitute_vars($userDN); } else { $userDN = $this->search_userdn($rcmail); } @@ -64,7 +64,7 @@ class rcube_ldap_password return PASSWORD_CONNECT_ERROR; } - $crypted_pass = self::hash_password($passwd, $rcmail->config->get('password_ldap_encodage')); + $crypted_pass = $this->hashPassword($passwd, $rcmail->config->get('password_ldap_encodage')); $force = $rcmail->config->get('password_ldap_force_replace'); $pwattr = $rcmail->config->get('password_ldap_pwattr'); $lchattr = $rcmail->config->get('password_ldap_lchattr'); @@ -84,7 +84,7 @@ class rcube_ldap_password } // Crypt new samba password - if ($smbpwattr && !($samba_pass = self::hash_password($passwd, 'samba'))) { + if ($smbpwattr && !($samba_pass = $this->hashPassword($passwd, 'samba'))) { return PASSWORD_CRYPT_ERROR; } @@ -146,8 +146,8 @@ class rcube_ldap_password return ''; } - $base = self::substitute_vars($rcmail->config->get('password_ldap_search_base')); - $filter = self::substitute_vars($rcmail->config->get('password_ldap_search_filter')); + $base = $rcmail->config->get('password_ldap_search_base'); + $filter = $this->substitute_vars($rcmail->config->get('password_ldap_search_filter')); $options = array ( 'scope' => 'sub', 'attributes' => array(), @@ -163,25 +163,27 @@ class rcube_ldap_password } /** - * Substitute %login, %name, %domain, %dc in $str - * See plugin config for details + * Substitute %login, %name, %domain, %dc in $str. + * See plugin config for details. */ - static function substitute_vars($str) + function substitute_vars($str) { - $str = str_replace('%login', $_SESSION['username'], $str); - $str = str_replace('%l', $_SESSION['username'], $str); - - $parts = explode('@', $_SESSION['username']); - - if (count($parts) == 2) { - $dc = 'dc='.strtr($parts[1], array('.' => ',dc=')); // hierarchal domain string - - $str = str_replace('%name', $parts[0], $str); - $str = str_replace('%n', $parts[0], $str); - $str = str_replace('%dc', $dc, $str); - $str = str_replace('%domain', $parts[1], $str); - $str = str_replace('%d', $parts[1], $str); - } + $rcmail = rcmail::get_instance(); + $domain = $rcmail->user->get_username('domain'); + $dc = 'dc='.strtr($domain, array('.' => ',dc=')); // hierarchal domain string + + $str = str_replace(array( + '%login', + '%name', + '%domain', + '%dc', + ), array( + $_SESSION['username'], + $rcmail->user->get_username('local'), + $domain, + $dc, + ), $str + ); return $str; } @@ -190,109 +192,128 @@ class rcube_ldap_password * Code originaly from the phpLDAPadmin development team * http://phpldapadmin.sourceforge.net/ * - * Hashes a password and returns the hash based on the specified enc_type + * Hashes a password and returns the hash based on the specified enc_type. + * + * @param string $passwordClear The password to hash in clear text. + * @param string $encodageType Standard LDAP encryption type which must be one of + * crypt, ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, or clear. + * @return string The hashed password. + * */ - static function hash_password($password_clear, $encodage_type) + function hashPassword( $passwordClear, $encodageType ) { - $encodage_type = strtolower($encodage_type); - switch ($encodage_type) { + $encodageType = strtolower( $encodageType ); + switch( $encodageType ) { case 'crypt': - $crypted_password = '{CRYPT}' . crypt($password_clear, self::random_salt(2)); + $cryptedPassword = '{CRYPT}' . crypt($passwordClear, $this->randomSalt(2)); break; + case 'ext_des': - /* Extended DES crypt. see OpenBSD crypt man page */ - if (!defined('CRYPT_EXT_DES') || CRYPT_EXT_DES == 0) { - /* Your system crypt library does not support extended DES encryption */ - return false; + // extended des crypt. see OpenBSD crypt man page. + if ( ! defined( 'CRYPT_EXT_DES' ) || CRYPT_EXT_DES == 0 ) { + // Your system crypt library does not support extended DES encryption. + return FALSE; } - $crypted_password = '{CRYPT}' . crypt($password_clear, '_' . self::random_salt(8)); + $cryptedPassword = '{CRYPT}' . crypt( $passwordClear, '_' . $this->randomSalt(8) ); break; + case 'md5crypt': - if (!defined('CRYPT_MD5') || CRYPT_MD5 == 0) { - /* Your system crypt library does not support md5crypt encryption */ - return false; + if( ! defined( 'CRYPT_MD5' ) || CRYPT_MD5 == 0 ) { + // Your system crypt library does not support md5crypt encryption. + return FALSE; } - $crypted_password = '{CRYPT}' . crypt($password_clear, '$1$' . self::random_salt(9)); + $cryptedPassword = '{CRYPT}' . crypt( $passwordClear , '$1$' . $this->randomSalt(9) ); break; + case 'blowfish': - if (!defined('CRYPT_BLOWFISH') || CRYPT_BLOWFISH == 0) { - /* Your system crypt library does not support blowfish encryption */ - return false; + if( ! defined( 'CRYPT_BLOWFISH' ) || CRYPT_BLOWFISH == 0 ) { + // Your system crypt library does not support blowfish encryption. + return FALSE; } - /* Hardcoded to second blowfish version and set number of rounds */ - $crypted_password = '{CRYPT}' . crypt($password_clear, '$2a$12$' . self::random_salt(13)); + // hardcoded to second blowfish version and set number of rounds + $cryptedPassword = '{CRYPT}' . crypt( $passwordClear , '$2a$12$' . $this->randomSalt(13) ); break; + case 'md5': - $crypted_password = '{MD5}' . base64_encode(pack('H*', md5($password_clear))); + $cryptedPassword = '{MD5}' . base64_encode( pack( 'H*' , md5( $passwordClear) ) ); break; + case 'sha': - if (function_exists('sha1')) { - /* Use PHP 4.3.0+ sha1 function, if it is available */ - $crypted_password = '{SHA}' . base64_encode(pack('H*', sha1($password_clear))); - } else if (function_exists('mhash')) { - $crypted_password = '{SHA}' . base64_encode(mhash(MHASH_SHA1, $password_clear)); + if( function_exists('sha1') ) { + // use php 4.3.0+ sha1 function, if it is available. + $cryptedPassword = '{SHA}' . base64_encode( pack( 'H*' , sha1( $passwordClear) ) ); + } elseif( function_exists( 'mhash' ) ) { + $cryptedPassword = '{SHA}' . base64_encode( mhash( MHASH_SHA1, $passwordClear) ); } else { - /* Your PHP install does not have the mhash() function */ - return false; + return FALSE; //Your PHP install does not have the mhash() function. Cannot do SHA hashes. } break; + case 'ssha': - if (function_exists('mhash') && function_exists('mhash_keygen_s2k')) { - mt_srand((double) microtime() * 1000000 ); - $salt = mhash_keygen_s2k(MHASH_SHA1, $password_clear, substr(pack('h*', md5(mt_rand())), 0, 8), 4); - $crypted_password = '{SSHA}' . base64_encode(mhash(MHASH_SHA1, $password_clear . $salt) . $salt); + if( function_exists( 'mhash' ) && function_exists( 'mhash_keygen_s2k' ) ) { + mt_srand( (double) microtime() * 1000000 ); + $salt = mhash_keygen_s2k( MHASH_SHA1, $passwordClear, substr( pack( 'h*', md5( mt_rand() ) ), 0, 8 ), 4 ); + $cryptedPassword = '{SSHA}'.base64_encode( mhash( MHASH_SHA1, $passwordClear.$salt ).$salt ); } else { - /* Your PHP install does not have the mhash() function */ - return false; + return FALSE; //Your PHP install does not have the mhash() function. Cannot do SHA hashes. } break; + case 'smd5': - if (function_exists('mhash') && function_exists('mhash_keygen_s2k')) { - mt_srand((double) microtime() * 1000000 ); - $salt = mhash_keygen_s2k(MHASH_MD5, $password_clear, substr(pack('h*', md5(mt_rand())), 0, 8), 4); - $crypted_password = '{SMD5}' . base64_encode(mhash(MHASH_MD5, $password_clear . $salt) . $salt); + if( function_exists( 'mhash' ) && function_exists( 'mhash_keygen_s2k' ) ) { + mt_srand( (double) microtime() * 1000000 ); + $salt = mhash_keygen_s2k( MHASH_MD5, $passwordClear, substr( pack( 'h*', md5( mt_rand() ) ), 0, 8 ), 4 ); + $cryptedPassword = '{SMD5}'.base64_encode( mhash( MHASH_MD5, $passwordClear.$salt ).$salt ); } else { - /* Your PHP install does not have the mhash() function */ - return false; + return FALSE; //Your PHP install does not have the mhash() function. Cannot do SHA hashes. } break; + case 'samba': if (function_exists('hash')) { - $crypted_password = hash('md4', rcube_charset::convert($password_clear, RCUBE_CHARSET, 'UTF-16LE')); - $crypted_password = strtoupper($crypted_password); + $cryptedPassword = hash('md4', rcube_charset_convert($passwordClear, RCMAIL_CHARSET, 'UTF-16LE')); + $cryptedPassword = strtoupper($cryptedPassword); } else { /* Your PHP install does not have the hash() function */ return false; } break; - case 'ad': - $crypted_password = rcube_charset::convert('"' . $password_clear . '"', RCUBE_CHARSET, 'UTF-16LE'); - break; + case 'clear': default: - $crypted_password = $password_clear; + $cryptedPassword = $passwordClear; } - return $crypted_password; + return $cryptedPassword; } /** * Code originaly from the phpLDAPadmin development team * http://phpldapadmin.sourceforge.net/ * - * Used to generate a random salt for crypt-style passwords + * Used to generate a random salt for crypt-style passwords. Salt strings are used + * to make pre-built hash cracking dictionaries difficult to use as the hash algorithm uses + * not only the user's password but also a randomly generated string. The string is + * stored as the first N characters of the hash for reference of hashing algorithms later. + * + * --- added 20021125 by bayu irawan --- + * --- ammended 20030625 by S C Rigler --- + * + * @param int $length The length of the salt string to generate. + * @return string The generated salt string. */ - static function random_salt($length) + function randomSalt( $length ) { - $possible = '0123456789' . 'abcdefghijklmnopqrstuvwxyz' . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' . './'; + $possible = '0123456789'. + 'abcdefghijklmnopqrstuvwxyz'. + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. + './'; $str = ''; // mt_srand((double)microtime() * 1000000); - while (strlen($str) < $length) { + while (strlen($str) < $length) $str .= substr($possible, (rand() % strlen($possible)), 1); - } return $str; } - } diff --git a/plugins/password/drivers/ldap_simple.php b/plugins/password/drivers/ldap_simple.php index 47e3b07de..01385f2d0 100644 --- a/plugins/password/drivers/ldap_simple.php +++ b/plugins/password/drivers/ldap_simple.php @@ -13,37 +13,21 @@ class rcube_ldap_simple_password { - private $debug = false; - function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $this->debug = $rcmail->config->get('ldap_debug'); - - $ldap_host = $rcmail->config->get('password_ldap_host'); - $ldap_port = $rcmail->config->get('password_ldap_port'); - - $this->_debug("C: Connect to $ldap_host:$ldap_port"); - // Connect - if (!$ds = ldap_connect($ldap_host, $ldap_port)) { - $this->_debug("S: NOT OK"); - - rcube::raise_error(array( - 'code' => 100, 'type' => 'ldap', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Could not connect to LDAP server" - ), - true); - + if (!$ds = ldap_connect($rcmail->config->get('password_ldap_host'), $rcmail->config->get('password_ldap_port'))) { + ldap_unbind($ds); return PASSWORD_CONNECT_ERROR; } - $this->_debug("S: OK"); - // Set protocol version - ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, $rcmail->config->get('password_ldap_version')); + if (!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, $rcmail->config->get('password_ldap_version'))) { + ldap_unbind($ds); + return PASSWORD_CONNECT_ERROR; + } // Start TLS if ($rcmail->config->get('password_ldap_starttls')) { @@ -53,19 +37,9 @@ class rcube_ldap_simple_password } } - // include 'ldap' driver, we share some static methods with it - require_once INSTALL_PATH . 'plugins/password/drivers/ldap.php'; - - // other plugins might want to modify user DN - $plugin = $rcmail->plugins->exec_hook('password_ldap_bind', array( - 'user_dn' => '', 'conn' => $ds)); - // Build user DN - if (!empty($plugin['user_dn'])) { - $user_dn = $plugin['user_dn']; - } - else if ($user_dn = $rcmail->config->get('password_ldap_userDN_mask')) { - $user_dn = rcube_ldap_password::substitute_vars($user_dn); + if ($user_dn = $rcmail->config->get('password_ldap_userDN_mask')) { + $user_dn = $this->substitute_vars($user_dn); } else { $user_dn = $this->search_userdn($rcmail, $ds); @@ -89,13 +63,12 @@ class rcube_ldap_simple_password break; } + $crypted_pass = $this->hash_password($passwd, $rcmail->config->get('password_ldap_encodage')); $lchattr = $rcmail->config->get('password_ldap_lchattr'); $pwattr = $rcmail->config->get('password_ldap_pwattr'); $smbpwattr = $rcmail->config->get('password_ldap_samba_pwattr'); $smblchattr = $rcmail->config->get('password_ldap_samba_lchattr'); $samba = $rcmail->config->get('password_ldap_samba'); - $pass_mode = $rcmail->config->get('password_ldap_encodage'); - $crypted_pass = rcube_ldap_password::hash_password($passwd, $pass_mode); // Support password_ldap_samba option for backward compat. if ($samba && !$smbpwattr) { @@ -109,55 +82,40 @@ class rcube_ldap_simple_password } // Crypt new Samba password - if ($smbpwattr && !($samba_pass = rcube_ldap_password::hash_password($passwd, 'samba'))) { + if ($smbpwattr && !($samba_pass = $this->hash_password($passwd, 'samba'))) { return PASSWORD_CRYPT_ERROR; } - $this->_debug("C: Bind $binddn [pass: $bindpw]"); - // Bind if (!ldap_bind($ds, $binddn, $bindpw)) { - $this->_debug("S: ".ldap_error($ds)); - ldap_unbind($ds); - return PASSWORD_CONNECT_ERROR; } - $this->_debug("S: OK"); - - $entry[$pwattr] = $crypted_pass; + $entree[$pwattr] = $crypted_pass; // Update PasswordLastChange Attribute if desired if ($lchattr) { - $entry[$lchattr] = (int)(time() / 86400); + $entree[$lchattr] = (int)(time() / 86400); } // Update Samba password if ($smbpwattr) { - $entry[$smbpwattr] = $samba_pass; + $entree[$smbpwattr] = $samba_pass; } // Update Samba password last change if ($smblchattr) { - $entry[$smblchattr] = time(); + $entree[$smblchattr] = time(); } - $this->_debug("C: Modify $user_dn: " . print_r($entry, true)); - - if (!ldap_modify($ds, $user_dn, $entry)) { - $this->_debug("S: ".ldap_error($ds)); - + if (!ldap_modify($ds, $user_dn, $entree)) { ldap_unbind($ds); - return PASSWORD_CONNECT_ERROR; } - $this->_debug("S: OK"); - // All done, no error ldap_unbind($ds); - return PASSWORD_SUCCESS; } @@ -168,57 +126,151 @@ class rcube_ldap_simple_password */ function search_userdn($rcmail, $ds) { - $search_user = $rcmail->config->get('password_ldap_searchDN'); - $search_pass = $rcmail->config->get('password_ldap_searchPW'); - - if (empty($search_user)) { - return null; + /* Bind */ + if (!ldap_bind($ds, $rcmail->config->get('password_ldap_searchDN'), $rcmail->config->get('password_ldap_searchPW'))) { + return false; } - $this->_debug("C: Bind $search_user [pass: $search_pass]"); + /* Search for the DN */ + if (!$sr = ldap_search($ds, $rcmail->config->get('password_ldap_search_base'), $this->substitute_vars($rcmail->config->get('password_ldap_search_filter')))) { + return false; + } - // Bind - if (!ldap_bind($ds, $search_user, $search_pass)) { - $this->_debug("S: ".ldap_error($ds)); + /* If no or more entries were found, return false */ + if (ldap_count_entries($ds, $sr) != 1) { return false; } - $this->_debug("S: OK"); + return ldap_get_dn($ds, ldap_first_entry($ds, $sr)); + } - $search_base = $rcmail->config->get('password_ldap_search_base'); - $search_filter = $rcmail->config->get('password_ldap_search_filter'); + /** + * Substitute %login, %name, %domain, %dc in $str + * See plugin config for details + */ + function substitute_vars($str) + { + $str = str_replace('%login', $_SESSION['username'], $str); + $str = str_replace('%l', $_SESSION['username'], $str); - $search_base = rcube_ldap_password::substitute_vars($search_base); - $search_filter = rcube_ldap_password::substitute_vars($search_filter); + $parts = explode('@', $_SESSION['username']); - $this->_debug("C: Search $search_base for $search_filter"); + if (count($parts) == 2) { + $dc = 'dc='.strtr($parts[1], array('.' => ',dc=')); // hierarchal domain string - // Search for the DN - if (!$sr = ldap_search($ds, $search_base, $search_filter)) { - $this->_debug("S: ".ldap_error($ds)); - return false; + $str = str_replace('%name', $parts[0], $str); + $str = str_replace('%n', $parts[0], $str); + $str = str_replace('%dc', $dc, $str); + $str = str_replace('%domain', $parts[1], $str); + $str = str_replace('%d', $parts[1], $str); } - $found = ldap_count_entries($ds, $sr); - - $this->_debug("S: OK [found $found records]"); + return $str; + } - // If no or more entries were found, return false - if ($found != 1) { - return false; + /** + * Code originaly from the phpLDAPadmin development team + * http://phpldapadmin.sourceforge.net/ + * + * Hashes a password and returns the hash based on the specified enc_type + */ + function hash_password($password_clear, $encodage_type) + { + $encodage_type = strtolower($encodage_type); + switch ($encodage_type) { + case 'crypt': + $crypted_password = '{CRYPT}' . crypt($password_clear, $this->random_salt(2)); + break; + case 'ext_des': + /* Extended DES crypt. see OpenBSD crypt man page */ + if (!defined('CRYPT_EXT_DES') || CRYPT_EXT_DES == 0) { + /* Your system crypt library does not support extended DES encryption */ + return false; + } + $crypted_password = '{CRYPT}' . crypt($password_clear, '_' . $this->random_salt(8)); + break; + case 'md5crypt': + if (!defined('CRYPT_MD5') || CRYPT_MD5 == 0) { + /* Your system crypt library does not support md5crypt encryption */ + return false; + } + $crypted_password = '{CRYPT}' . crypt($password_clear, '$1$' . $this->random_salt(9)); + break; + case 'blowfish': + if (!defined('CRYPT_BLOWFISH') || CRYPT_BLOWFISH == 0) { + /* Your system crypt library does not support blowfish encryption */ + return false; + } + /* Hardcoded to second blowfish version and set number of rounds */ + $crypted_password = '{CRYPT}' . crypt($password_clear, '$2a$12$' . $this->random_salt(13)); + break; + case 'md5': + $crypted_password = '{MD5}' . base64_encode(pack('H*', md5($password_clear))); + break; + case 'sha': + if (function_exists('sha1')) { + /* Use PHP 4.3.0+ sha1 function, if it is available */ + $crypted_password = '{SHA}' . base64_encode(pack('H*', sha1($password_clear))); + } else if (function_exists('mhash')) { + $crypted_password = '{SHA}' . base64_encode(mhash(MHASH_SHA1, $password_clear)); + } else { + /* Your PHP install does not have the mhash() function */ + return false; + } + break; + case 'ssha': + if (function_exists('mhash') && function_exists('mhash_keygen_s2k')) { + mt_srand((double) microtime() * 1000000 ); + $salt = mhash_keygen_s2k(MHASH_SHA1, $password_clear, substr(pack('h*', md5(mt_rand())), 0, 8), 4); + $crypted_password = '{SSHA}' . base64_encode(mhash(MHASH_SHA1, $password_clear . $salt) . $salt); + } else { + /* Your PHP install does not have the mhash() function */ + return false; + } + break; + case 'smd5': + if (function_exists('mhash') && function_exists('mhash_keygen_s2k')) { + mt_srand((double) microtime() * 1000000 ); + $salt = mhash_keygen_s2k(MHASH_MD5, $password_clear, substr(pack('h*', md5(mt_rand())), 0, 8), 4); + $crypted_password = '{SMD5}' . base64_encode(mhash(MHASH_MD5, $password_clear . $salt) . $salt); + } else { + /* Your PHP install does not have the mhash() function */ + return false; + } + break; + case 'samba': + if (function_exists('hash')) { + $crypted_password = hash('md4', rcube_charset_convert($password_clear, RCMAIL_CHARSET, 'UTF-16LE')); + $crypted_password = strtoupper($crypted_password); + } else { + /* Your PHP install does not have the hash() function */ + return false; + } + break; + case 'clear': + default: + $crypted_password = $password_clear; } - return ldap_get_dn($ds, ldap_first_entry($ds, $sr)); + return $crypted_password; } /** - * Prints debug info to the log + * Code originaly from the phpLDAPadmin development team + * http://phpldapadmin.sourceforge.net/ + * + * Used to generate a random salt for crypt-style passwords */ - private function _debug($str) + function random_salt($length) { - if ($this->debug) { - rcube::write_log('ldap', $str); + $possible = '0123456789' . 'abcdefghijklmnopqrstuvwxyz' . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' . './'; + $str = ''; + // mt_srand((double)microtime() * 1000000); + + while (strlen($str) < $length) { + $str .= substr($possible, (rand() % strlen($possible)), 1); } - } + return $str; + } } diff --git a/plugins/password/drivers/pam.php b/plugins/password/drivers/pam.php index 4d0ba1656..15a802c74 100644 --- a/plugins/password/drivers/pam.php +++ b/plugins/password/drivers/pam.php @@ -21,7 +21,7 @@ class rcube_pam_password } } else { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, @@ -30,7 +30,7 @@ class rcube_pam_password } } else { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, diff --git a/plugins/password/drivers/pw_usermod.php b/plugins/password/drivers/pw_usermod.php index 237e275a7..5b92fcbfb 100644 --- a/plugins/password/drivers/pw_usermod.php +++ b/plugins/password/drivers/pw_usermod.php @@ -28,7 +28,7 @@ class rcube_pw_usermod_password return PASSWORD_SUCCESS; } else { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, diff --git a/plugins/password/drivers/sasl.php b/plugins/password/drivers/sasl.php index 8776eff2e..9380cf838 100644 --- a/plugins/password/drivers/sasl.php +++ b/plugins/password/drivers/sasl.php @@ -32,7 +32,7 @@ class rcube_sasl_password return PASSWORD_SUCCESS; } else { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, diff --git a/plugins/password/drivers/smb.php b/plugins/password/drivers/smb.php index 9f2b96afa..88021156f 100644 --- a/plugins/password/drivers/smb.php +++ b/plugins/password/drivers/smb.php @@ -26,15 +26,13 @@ class rcube_smb_password public function save($currpass, $newpass) { - $host = rcmail::get_instance()->config->get('password_smb_host','localhost'); - $bin = rcmail::get_instance()->config->get('password_smb_cmd','/usr/bin/smbpasswd'); + $host = rcmail::get_instance()->config->get('password_smb_host','localhost'); + $bin = rcmail::get_instance()->config->get('password_smb_cmd','/usr/bin/smbpasswd'); $username = $_SESSION['username']; - $host = rcube_utils::parse_host($host); - $tmpfile = tempnam(sys_get_temp_dir(),'smb'); - $cmd = $bin . ' -r ' . $host . ' -s -U "' . $username . '" > ' . $tmpfile . ' 2>&1'; - $handle = @popen($cmd, 'w'); - + $tmpfile = tempnam(sys_get_temp_dir(),'smb'); + $cmd = $bin . ' -r ' . $host . ' -s -U "' . $username . '" > ' . $tmpfile . ' 2>&1'; + $handle = @popen($cmd, 'w'); fputs($handle, $currpass."\n"); fputs($handle, $newpass."\n"); fputs($handle, $newpass."\n"); @@ -46,7 +44,7 @@ class rcube_smb_password return PASSWORD_SUCCESS; } else { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, diff --git a/plugins/password/drivers/sql.php b/plugins/password/drivers/sql.php index 7a51dfe44..8c8dc87b5 100644 --- a/plugins/password/drivers/sql.php +++ b/plugins/password/drivers/sql.php @@ -34,9 +34,8 @@ class rcube_sql_password $db = $rcmail->get_dbh(); } - if ($db->is_error()) { + if ($err = $db->is_error()) return PASSWORD_ERROR; - } // crypted password if (strpos($sql, '%c') !== FALSE) { @@ -118,7 +117,7 @@ class rcube_sql_password // hashed passwords if (preg_match('/%[n|q]/', $sql)) { if (!extension_loaded('hash')) { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, @@ -165,14 +164,14 @@ class rcube_sql_password // convert domains to/from punnycode if ($rcmail->config->get('password_idn_ascii')) { - $domain_part = rcube_utils::idn_to_ascii($domain_part); - $username = rcube_utils::idn_to_ascii($username); - $host = rcube_utils::idn_to_ascii($host); + $domain_part = rcube_idn_to_ascii($domain_part); + $username = rcube_idn_to_ascii($username); + $host = rcube_idn_to_ascii($host); } else { - $domain_part = rcube_utils::idn_to_utf8($domain_part); - $username = rcube_utils::idn_to_utf8($username); - $host = rcube_utils::idn_to_utf8($host); + $domain_part = rcube_idn_to_utf8($domain_part); + $username = rcube_idn_to_utf8($username); + $host = rcube_idn_to_utf8($host); } // at least we should always have the local part @@ -185,7 +184,7 @@ class rcube_sql_password if (!$db->is_error()) { if (strtolower(substr(trim($sql),0,6)) == 'select') { - if ($db->fetch_array($res)) + if ($result = $db->fetch_array($res)) return PASSWORD_SUCCESS; } else { // This is the good case: 1 row updated diff --git a/plugins/password/drivers/virtualmin.php b/plugins/password/drivers/virtualmin.php index 36c54664b..40f5c2529 100644 --- a/plugins/password/drivers/virtualmin.php +++ b/plugins/password/drivers/virtualmin.php @@ -66,7 +66,7 @@ class rcube_virtualmin_password return PASSWORD_SUCCESS; } else { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, diff --git a/plugins/password/drivers/xmail.php b/plugins/password/drivers/xmail.php index 47beb2178..33a49ffe3 100644 --- a/plugins/password/drivers/xmail.php +++ b/plugins/password/drivers/xmail.php @@ -10,10 +10,10 @@ * Setup xmail_host, xmail_user, xmail_pass and xmail_port into * config.inc.php of password plugin as follows: * - * $config['xmail_host'] = 'localhost'; - * $config['xmail_user'] = 'YourXmailControlUser'; - * $config['xmail_pass'] = 'YourXmailControlPass'; - * $config['xmail_port'] = 6017; + * $rcmail_config['xmail_host'] = 'localhost'; + * $rcmail_config['xmail_user'] = 'YourXmailControlUser'; + * $rcmail_config['xmail_pass'] = 'YourXmailControlPass'; + * $rcmail_config['xmail_port'] = 6017; * */ @@ -32,7 +32,7 @@ class rcube_xmail_password $xmail->port = $rcmail->config->get('xmail_port'); if (!$xmail->connect()) { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, @@ -42,7 +42,7 @@ class rcube_xmail_password } else if (!$xmail->send("userpasswd\t".$domain."\t".$user."\t".$newpass."\n")) { $xmail->close(); - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, @@ -67,7 +67,7 @@ class XMail { function send($msg) { socket_write($this->socket,$msg); - if (substr(socket_read($this->socket, 512, PHP_BINARY_READ),0,1) != "+") { + if (substr($in = socket_read($this->socket, 512, PHP_BINARY_READ),0,1) != "+") { return false; } return true; @@ -85,7 +85,7 @@ class XMail { return false; } - if (substr(socket_read($this->socket, 512, PHP_BINARY_READ),0,1) != "+") { + if (substr($in = socket_read($this->socket, 512, PHP_BINARY_READ),0,1) != "+") { socket_close($this->socket); return false; } diff --git a/plugins/password/localization/az_AZ.inc b/plugins/password/localization/az_AZ.inc index 18fa758f4..c99ab2ab3 100644 --- a/plugins/password/localization/az_AZ.inc +++ b/plugins/password/localization/az_AZ.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Şifrəni dəyiş'; $labels['curpasswd'] = 'Hal-hazırki şifrə:'; $labels['newpasswd'] = 'Yeni şifrə:'; $labels['confpasswd'] = 'Yeni şifrə: (təkrar)'; + +$messages = array(); $messages['nopassword'] = 'Yeni şifrəni daxil edin.'; $messages['nocurpassword'] = 'Hal-hazırda istifadə etdiyiniz şifrəni daxil edin.'; $messages['passwordincorrect'] = 'Yalnış şifrə daxil etdiniz.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Yeni şifrənin saxlanılması mümkün olmadı.'; $messages['passwordshort'] = 'Yeni şifrə $length simvoldan uzun olmalıdır.'; $messages['passwordweak'] = 'Şifrədə heç olmasa minimum bir rəqəm və simvol olmalıdır.'; $messages['passwordforbidden'] = 'Şifrədə icazə verilməyən simvollar vardır.'; + ?> diff --git a/plugins/password/localization/ber.inc b/plugins/password/localization/ber.inc index 046e45733..12fe4442e 100644 --- a/plugins/password/localization/ber.inc +++ b/plugins/password/localization/ber.inc @@ -13,4 +13,5 @@ +-----------------------------------------------------------------------+ */ +$labels = array(); diff --git a/plugins/password/localization/bg_BG.inc b/plugins/password/localization/bg_BG.inc index c1c8b9b7a..9bd8a4a17 100644 --- a/plugins/password/localization/bg_BG.inc +++ b/plugins/password/localization/bg_BG.inc @@ -15,18 +15,23 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Промяна на парола'; $labels['curpasswd'] = 'Текуща парола:'; $labels['newpasswd'] = 'Нова парола:'; -$labels['confpasswd'] = 'Повторно нова парола:'; +$labels['confpasswd'] = 'Повторете:'; + +$messages = array(); $messages['nopassword'] = 'Моля въведете нова парола.'; -$messages['nocurpassword'] = 'Моля въведете текущата парола.'; +$messages['nocurpassword'] = 'Моля въведете текущата.'; $messages['passwordincorrect'] = 'Невалидна текуща парола.'; -$messages['passwordinconsistency'] = 'Паролите не съвпадат, опитайте отново.'; -$messages['crypterror'] = 'Невъзможна промяна на паролата. Липсва PHP функция за криптиране.'; -$messages['connecterror'] = 'Невъзможна промяна на паролата. Грешка при свързване със сървър.'; -$messages['internalerror'] = 'Паролата не може да бъде променена.'; +$messages['passwordinconsistency'] = 'Паролите не съвпадат, опитайте пак.'; +$messages['crypterror'] = 'Паролата не може да бъде сменена. Грешка в криптирането.'; +$messages['connecterror'] = 'Паролата не може да бъде сменена. Грешка в свързването.'; +$messages['internalerror'] = 'Паролата не може да бъде сменена.'; $messages['passwordshort'] = 'Паролата трябва да е дълга поне $length знака.'; -$messages['passwordweak'] = 'Паролата трябва да включва поне един цифра и поне един знак за пунктуация.'; -$messages['passwordforbidden'] = 'Паролата съдържа непозволени символи.'; +$messages['passwordweak'] = 'Паролата трябва да включва поне един азбучен символ и една пунктуация.'; +$messages['passwordforbidden'] = 'Паролата съдържа невалидни знаци.'; + ?> diff --git a/plugins/password/localization/br.inc b/plugins/password/localization/br.inc index 423fc74df..f07786b39 100644 --- a/plugins/password/localization/br.inc +++ b/plugins/password/localization/br.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Kemmañ ar ger-tremen'; $labels['curpasswd'] = 'Ger-tremen red :'; $labels['newpasswd'] = 'Ger-tremen nevez :'; $labels['confpasswd'] = 'Kadarnaat ar ger-tremen :'; + +$messages = array(); $messages['nopassword'] = 'Roit ur ger-tremen nevez, mar plij.'; $messages['nocurpassword'] = 'Roit ar ger-tremen red, mar plij.'; $messages['passwordincorrect'] = 'Direizh eo ar ger-tremen red.'; @@ -27,5 +31,7 @@ $messages['crypterror'] = 'N\'haller ket enrollañ ar ger-tremen nevez. Arc\'hwe $messages['connecterror'] = 'N\'haller ket enrollañ ar ger-tremen nevez. Fazi gant ar c\'hennask.'; $messages['internalerror'] = 'N\'haller ket enrollañ ar ger-tremen nevez.'; $messages['passwordshort'] = 'Ret eo d\'ar ger-tremen bezañ hiroc\'h eget $length arouezenn.'; +$messages['passwordweak'] = 'Password must include at least one number and one punctuation character.'; $messages['passwordforbidden'] = 'Arouezennoù difennet zo er ger-tremen.'; + ?> diff --git a/plugins/password/localization/bs_BA.inc b/plugins/password/localization/bs_BA.inc index f030fef87..c98a49d97 100644 --- a/plugins/password/localization/bs_BA.inc +++ b/plugins/password/localization/bs_BA.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Promijeni šifru'; $labels['curpasswd'] = 'Trenutna šifra:'; $labels['newpasswd'] = 'Nova šifra:'; $labels['confpasswd'] = 'Potvrdite novu šifru:'; + +$messages = array(); $messages['nopassword'] = 'Molimo vas da upišete novu šifru.'; $messages['nocurpassword'] = 'Molimo vas da upišete trenutnu šifru.'; $messages['passwordincorrect'] = 'Trenutna šifra je netačna.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Nije moguće sačuvati novu šifru.'; $messages['passwordshort'] = 'Šifra mora sadržavati barem $length znakova.'; $messages['passwordweak'] = 'Šifra mora imati barem jedan broj i jedan interpunkcijski znak.'; $messages['passwordforbidden'] = 'Šifra sadrži nedozvoljene znakove.'; + ?> diff --git a/plugins/password/localization/ca_ES.inc b/plugins/password/localization/ca_ES.inc index 3ab4ed1ad..95f5df833 100644 --- a/plugins/password/localization/ca_ES.inc +++ b/plugins/password/localization/ca_ES.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Canvia la contrasenya'; $labels['curpasswd'] = 'Contrasenya actual:'; $labels['newpasswd'] = 'Nova contrasenya:'; $labels['confpasswd'] = 'Confirmeu la nova contrasenya:'; + +$messages = array(); $messages['nopassword'] = 'Si us plau, introduïu la nova contrasenya.'; $messages['nocurpassword'] = 'Si us plau, introduïu la contrasenya actual.'; $messages['passwordincorrect'] = 'Contrasenya actual incorrecta.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'No es pot desar la nova contrasenya.'; $messages['passwordshort'] = 'La nova contrasenya ha de tenir com a mínim $length caràcters de llarg.'; $messages['passwordweak'] = 'La nova contrasenya ha d\'incloure com a mínim un nombre i un caràcter de puntuació.'; $messages['passwordforbidden'] = 'La contrasenya conté caràcters no permesos.'; + ?> diff --git a/plugins/password/localization/cs_CZ.inc b/plugins/password/localization/cs_CZ.inc index 46076b0a0..857961c61 100644 --- a/plugins/password/localization/cs_CZ.inc +++ b/plugins/password/localization/cs_CZ.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Změna hesla'; $labels['curpasswd'] = 'Aktuální heslo:'; $labels['newpasswd'] = 'Nové heslo:'; $labels['confpasswd'] = 'Nové heslo (pro kontrolu):'; + +$messages = array(); $messages['nopassword'] = 'Prosím zadejte nové heslo.'; $messages['nocurpassword'] = 'Prosím zadejte aktuální heslo.'; $messages['passwordincorrect'] = 'Zadané aktuální heslo není správné.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Heslo se nepodařilo uložit.'; $messages['passwordshort'] = 'Heslo musí mít alespoň $length znaků.'; $messages['passwordweak'] = 'Heslo musí obsahovat alespoň jedno číslo a jedno interpuknční znaménko.'; $messages['passwordforbidden'] = 'Heslo obsahuje nepovolené znaky.'; + ?> diff --git a/plugins/password/localization/cy_GB.inc b/plugins/password/localization/cy_GB.inc index 16fc65447..c43b7473b 100644 --- a/plugins/password/localization/cy_GB.inc +++ b/plugins/password/localization/cy_GB.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Newid Cyfrinair'; $labels['curpasswd'] = 'Cyfrinair Presennol:'; $labels['newpasswd'] = 'Cyfrinair Newydd:'; $labels['confpasswd'] = 'Cadarnhau Cyfrinair Newydd:'; + +$messages = array(); $messages['nopassword'] = 'Rhowch eich cyfrinair newydd.'; $messages['nocurpassword'] = 'Rhowch eich cyfrinair presennol.'; $messages['passwordincorrect'] = 'Roedd y cyfrinair presennol yn anghywir.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Methwyd cadw\'r cyfrinair newydd.'; $messages['passwordshort'] = 'Rhaid i\'r cyfrinair fod o leia $length llythyren o hyd.'; $messages['passwordweak'] = 'Rhaid i\'r cyfrinair gynnwys o leia un rhif a un cymeriad atalnodi.'; $messages['passwordforbidden'] = 'Mae\'r cyfrinair yn cynnwys llythrennau wedi gwahardd.'; + ?> diff --git a/plugins/password/localization/da_DK.inc b/plugins/password/localization/da_DK.inc index 76e161db4..bc8fb26df 100644 --- a/plugins/password/localization/da_DK.inc +++ b/plugins/password/localization/da_DK.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Skift adgangskode'; $labels['curpasswd'] = 'Nuværende adgangskode:'; $labels['newpasswd'] = 'Ny adgangskode:'; $labels['confpasswd'] = 'Bekræft ny adgangskode:'; + +$messages = array(); $messages['nopassword'] = 'Indtast venligst en ny adgangskode.'; $messages['nocurpassword'] = 'Indtast venligst nuværende adgangskode.'; $messages['passwordincorrect'] = 'Nuværende adgangskode er forkert.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Kunne ikke gemme den nye adgangskode.'; $messages['passwordshort'] = 'Adgangskoden skal være mindst $length tegn lang.'; $messages['passwordweak'] = 'Adgangskoden skal indeholde mindst et tal og et tegnsætningstegn (-.,)'; $messages['passwordforbidden'] = 'Adgangskoden indeholder forbudte tegn.'; + ?> diff --git a/plugins/password/localization/de_CH.inc b/plugins/password/localization/de_CH.inc index a446e1b52..6016ffeac 100644 --- a/plugins/password/localization/de_CH.inc +++ b/plugins/password/localization/de_CH.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Passwort ändern'; $labels['curpasswd'] = 'Aktuelles Passwort'; $labels['newpasswd'] = 'Neues Passwort'; $labels['confpasswd'] = 'Passwort Wiederholung'; + +$messages = array(); $messages['nopassword'] = 'Bitte geben Sie ein neues Passwort ein'; $messages['nocurpassword'] = 'Bitte geben Sie Ihr aktuelles Passwort an'; $messages['passwordincorrect'] = 'Das aktuelle Passwort ist nicht korrekt'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Neues Passwort nicht gespeichert'; $messages['passwordshort'] = 'Passwort muss mindestens $length Zeichen lang sein.'; $messages['passwordweak'] = 'Passwort muss mindestens eine Zahl und ein Sonderzeichen enthalten.'; $messages['passwordforbidden'] = 'Passwort enthält unzulässige Zeichen.'; + ?> diff --git a/plugins/password/localization/de_DE.inc b/plugins/password/localization/de_DE.inc index fab78fce9..2190fd39a 100644 --- a/plugins/password/localization/de_DE.inc +++ b/plugins/password/localization/de_DE.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Kennwort ändern'; $labels['curpasswd'] = 'Aktuelles Kennwort:'; $labels['newpasswd'] = 'Neues Kennwort:'; $labels['confpasswd'] = 'Neues Kennwort bestätigen:'; + +$messages = array(); $messages['nopassword'] = 'Bitte geben Sie ein neues Kennwort ein.'; $messages['nocurpassword'] = 'Bitte geben Sie ihr aktuelles Kennwort ein.'; $messages['passwordincorrect'] = 'Das aktuelle Kennwort ist falsch.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Neues Passwort nicht gespeichert'; $messages['passwordshort'] = 'Passwort muss mindestens $length Zeichen lang sein.'; $messages['passwordweak'] = 'Passwort muss mindestens eine Zahl und ein Sonderzeichen enthalten.'; $messages['passwordforbidden'] = 'Passwort enthält unzulässige Zeichen.'; + ?> diff --git a/plugins/password/localization/en_GB.inc b/plugins/password/localization/en_GB.inc index 1f1b4e286..d7d192280 100644 --- a/plugins/password/localization/en_GB.inc +++ b/plugins/password/localization/en_GB.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Change Password'; $labels['curpasswd'] = 'Current Password:'; $labels['newpasswd'] = 'New Password:'; $labels['confpasswd'] = 'Confirm New Password:'; + +$messages = array(); $messages['nopassword'] = 'Please enter a new password.'; $messages['nocurpassword'] = 'Please enter the current password.'; $messages['passwordincorrect'] = 'Current password is incorrect.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'New password could not be saved.'; $messages['passwordshort'] = 'Password must be at least $length characters long.'; $messages['passwordweak'] = 'Password must include at least one number and one symbol.'; $messages['passwordforbidden'] = 'Password contains forbidden characters.'; + ?> diff --git a/plugins/password/localization/en_US.inc b/plugins/password/localization/en_US.inc index a4c077fe5..dd57c1318 100644 --- a/plugins/password/localization/en_US.inc +++ b/plugins/password/localization/en_US.inc @@ -5,7 +5,7 @@ | plugins/password/localization/.inc | | | | Localization file of the Roundcube Webmail Password plugin | - | Copyright (C) 2012-2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | diff --git a/plugins/password/localization/eo.inc b/plugins/password/localization/eo.inc index d985c18e6..f99004c63 100644 --- a/plugins/password/localization/eo.inc +++ b/plugins/password/localization/eo.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Ŝanĝi pasvorton'; $labels['curpasswd'] = 'Nuna pasvorto:'; $labels['newpasswd'] = 'Nova pasvorto:'; $labels['confpasswd'] = 'Konfirmi novan pasvorton:'; + +$messages = array(); $messages['nopassword'] = 'Bonvole tajpu novan pasvorton.'; $messages['nocurpassword'] = 'Bonvole tajpu nunan pasvorton.'; $messages['passwordincorrect'] = 'Nuna pasvorto nekorekta.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Nova pasvorto ne konserveblas.'; $messages['passwordshort'] = 'Pasvorto longu almenaŭ $length signojn.'; $messages['passwordweak'] = 'La pasvorto enhavu almenaŭ unu ciferon kaj unu interpunktan signon.'; $messages['passwordforbidden'] = 'La pasvorto enhavas malpermesitajn signojn.'; + ?> diff --git a/plugins/password/localization/es_AR.inc b/plugins/password/localization/es_AR.inc index 47589cfc7..8edc8feae 100644 --- a/plugins/password/localization/es_AR.inc +++ b/plugins/password/localization/es_AR.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Cambiar Contraseña'; $labels['curpasswd'] = 'Contraseña Actual:'; $labels['newpasswd'] = 'Contraseña Nueva:'; $labels['confpasswd'] = 'Confirmar Contraseña:'; + +$messages = array(); $messages['nopassword'] = 'Por favor introduce una nueva contraseña.'; $messages['nocurpassword'] = 'Por favor introduce la contraseña actual.'; $messages['passwordincorrect'] = 'Contraseña actual incorrecta.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'No se pudo guardar la contraseña nueva.'; $messages['passwordshort'] = 'Tu contraseña debe tener una longitud mínima de $length.'; $messages['passwordweak'] = 'Tu nueva contraseña debe incluir al menos un número y un signo de puntuación.'; $messages['passwordforbidden'] = 'La contraseña contiene caracteres inválidos.'; + ?> diff --git a/plugins/password/localization/es_ES.inc b/plugins/password/localization/es_ES.inc index 80ee2e9a1..336666eb5 100644 --- a/plugins/password/localization/es_ES.inc +++ b/plugins/password/localization/es_ES.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Cambiar contraseña'; $labels['curpasswd'] = 'Contraseña actual:'; $labels['newpasswd'] = 'Contraseña nueva:'; $labels['confpasswd'] = 'Confirmar contraseña:'; + +$messages = array(); $messages['nopassword'] = 'Por favor introduzca una contraseña nueva.'; $messages['nocurpassword'] = 'Por favor introduzca la contraseña actual.'; $messages['passwordincorrect'] = 'La contraseña actual es incorrecta.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'No se pudo guardar la contraseña nueva.'; $messages['passwordshort'] = 'La contraseña debe tener por lo menos $length caracteres.'; $messages['passwordweak'] = 'La contraseña debe incluir al menos un número y un signo de puntuación.'; $messages['passwordforbidden'] = 'La contraseña introducida contiene caracteres no permitidos.'; + ?> diff --git a/plugins/password/localization/et_EE.inc b/plugins/password/localization/et_EE.inc index e1c524dcf..b93d32540 100644 --- a/plugins/password/localization/et_EE.inc +++ b/plugins/password/localization/et_EE.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Muuda parooli'; $labels['curpasswd'] = 'Vana parool:'; $labels['newpasswd'] = 'Uus parool:'; $labels['confpasswd'] = 'Uus parool uuesti:'; + +$messages = array(); $messages['nopassword'] = 'Palun sisesta uus parool.'; $messages['nocurpassword'] = 'Palun sisesta vana parool.'; $messages['passwordincorrect'] = 'Vana parool on vale.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Uue parooli andmebaasi salvestamine nurjus.'; $messages['passwordshort'] = 'Parool peab olema vähemalt $length märki pikk.'; $messages['passwordweak'] = 'Parool peab sisaldama vähemalt üht numbrit ja märki.'; $messages['passwordforbidden'] = 'Parool sisaldab keelatud märki.'; + ?> diff --git a/plugins/password/localization/fa_IR.inc b/plugins/password/localization/fa_IR.inc index 5f9285770..2cf126689 100644 --- a/plugins/password/localization/fa_IR.inc +++ b/plugins/password/localization/fa_IR.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'تغییر گذرواژه'; $labels['curpasswd'] = 'گذرواژه فعلی'; $labels['newpasswd'] = 'گذرواژه جدید'; $labels['confpasswd'] = 'تایید گذرواژه جدید'; + +$messages = array(); $messages['nopassword'] = 'گذرواژه جدید را وارد نمایید'; $messages['nocurpassword'] = 'گذرواژه فعلی را وارد نمایید'; $messages['passwordincorrect'] = 'گذرواژه فعلی اشتباه است'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'گذرواژه جدید ذخیره نشد'; $messages['passwordshort'] = 'گذرواژه باید حداقل $length کاراکتر طول داشته باشد.'; $messages['passwordweak'] = 'گذرواژه باید شامل حداقل یک عدد و یک کاراکتر نشانه‌ای باشد.'; $messages['passwordforbidden'] = 'گذرواژه شما کاراکترهای غیرمجاز است.'; + ?> diff --git a/plugins/password/localization/fi_FI.inc b/plugins/password/localization/fi_FI.inc index 3b6735bec..2098cf6c3 100644 --- a/plugins/password/localization/fi_FI.inc +++ b/plugins/password/localization/fi_FI.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Vaihda salasana'; $labels['curpasswd'] = 'Nykyinen salasana:'; $labels['newpasswd'] = 'Uusi salasana:'; $labels['confpasswd'] = 'Vahvista uusi salasana:'; + +$messages = array(); $messages['nopassword'] = 'Syötä uusi salasana.'; $messages['nocurpassword'] = 'Syötä nykyinen salasana.'; $messages['passwordincorrect'] = 'Nykyinen salasana on väärin.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Uuden salasanan tallennus epäonnistui.'; $messages['passwordshort'] = 'Salasanassa täytyy olla vähintään $length merkkiä.'; $messages['passwordweak'] = 'Salasanan täytyy sisältää vähintään yksi numero ja yksi välimerkki.'; $messages['passwordforbidden'] = 'Salasana sisältää virheellisiä merkkejä.'; + ?> diff --git a/plugins/password/localization/fr_FR.inc b/plugins/password/localization/fr_FR.inc index c38abc558..66b43784e 100644 --- a/plugins/password/localization/fr_FR.inc +++ b/plugins/password/localization/fr_FR.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Changer le mot de passe'; $labels['curpasswd'] = 'Mot de passe actuel:'; $labels['newpasswd'] = 'Nouveau mot de passe:'; $labels['confpasswd'] = 'Confirmez le nouveau mot de passe:'; + +$messages = array(); $messages['nopassword'] = 'Veuillez saisir le nouveau mot de passe.'; $messages['nocurpassword'] = 'Veuillez saisir le mot de passe actuel.'; $messages['passwordincorrect'] = 'Mot de passe actuel incorrect.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Impossible d\'enregistrer le nouveau mot de passe. $messages['passwordshort'] = 'Le mot de passe doit être composé d\'au moins $length caractères.'; $messages['passwordweak'] = 'Le mot de passe doit contenir au moins un chiffre et un signe de ponctuation.'; $messages['passwordforbidden'] = 'Le mot de passe contient des caractères interdits.'; + ?> diff --git a/plugins/password/localization/gl_ES.inc b/plugins/password/localization/gl_ES.inc index f738c62a0..245d1c634 100644 --- a/plugins/password/localization/gl_ES.inc +++ b/plugins/password/localization/gl_ES.inc @@ -15,18 +15,23 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Cambiar contrasinal'; $labels['curpasswd'] = 'Contrasinal actual:'; $labels['newpasswd'] = 'Contrasinal novo:'; $labels['confpasswd'] = 'Confirmar contrasinal:'; + +$messages = array(); $messages['nopassword'] = 'Por favor, introduza un contrasinal novo.'; $messages['nocurpassword'] = 'Por favor, introduza o contrasinal actual.'; $messages['passwordincorrect'] = 'O contrasinal actual é incorrecto.'; -$messages['passwordinconsistency'] = 'Os contrasinais non cadran. Por favor, inténteo outra vez.'; +$messages['passwordinconsistency'] = 'Os contrasinals non coinciden. Por favor, inténteo de novo.'; $messages['crypterror'] = 'Non foi posible gardar o contrasinal novo. Falta a función de cifrado.'; $messages['connecterror'] = 'Non foi posible gardar o contrasinal novo. Erro de conexión'; $messages['internalerror'] = 'Non foi posible gardar o contrasinal novo.'; $messages['passwordshort'] = 'O contrasinal debe ter polo menos $length caracteres.'; $messages['passwordweak'] = 'O contrasinal debe incluir polo menos un número e un signo de puntuación.'; $messages['passwordforbidden'] = 'O contrasinal contén caracteres non permitidos.'; + ?> diff --git a/plugins/password/localization/he_IL.inc b/plugins/password/localization/he_IL.inc index ce05ea59c..005a8e9d8 100644 --- a/plugins/password/localization/he_IL.inc +++ b/plugins/password/localization/he_IL.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'שינוי סיסמה'; $labels['curpasswd'] = 'סיסמה נוכחית:'; $labels['newpasswd'] = 'סיסמה חדשה:'; $labels['confpasswd'] = 'אימות הסיסמה החדשה:'; + +$messages = array(); $messages['nopassword'] = 'נא להקליד סיסמה חדשה'; $messages['nocurpassword'] = 'נא להקיש הסיסמה הנוכחית'; $messages['passwordincorrect'] = 'הוקשה סיסמה נוכחית שגויה'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'לא ניתן לשמור על הסיסמה החד $messages['passwordshort'] = 'הסיסמה צריכה להיות לפחות בעלת $length תווים'; $messages['passwordweak'] = 'הסיסמה חייבת לכלול לפחות סיפרה אחת ולפחות סימן פיסוק אחד.'; $messages['passwordforbidden'] = 'הסיסמה מכילה תווים אסורים.'; + ?> diff --git a/plugins/password/localization/hr_HR.inc b/plugins/password/localization/hr_HR.inc index 44b62b2af..f97f5a44c 100644 --- a/plugins/password/localization/hr_HR.inc +++ b/plugins/password/localization/hr_HR.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Promijeni zaporku'; $labels['curpasswd'] = 'Važeća zaporka:'; $labels['newpasswd'] = 'Nova zaporka:'; $labels['confpasswd'] = 'Potvrda nove zaporke:'; + +$messages = array(); $messages['nopassword'] = 'Molimo unesite novu zaporku.'; $messages['nocurpassword'] = 'Molimo unesite trenutnu zaporku.'; $messages['passwordincorrect'] = 'Trenutna zaporka je nevažeća.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Nemoguće promijeniti zaporku.'; $messages['passwordshort'] = 'Zaporka mora sadržavati barem $length znakova.'; $messages['passwordweak'] = 'Zaporka mora sadržavati barem jedanu znamenku i jedan interpunkcijski znak.'; $messages['passwordforbidden'] = 'Zaporka sadrži nedozvoljene znakove.'; + ?> diff --git a/plugins/password/localization/hu_HU.inc b/plugins/password/localization/hu_HU.inc index e9167b0c9..6b6077115 100644 --- a/plugins/password/localization/hu_HU.inc +++ b/plugins/password/localization/hu_HU.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Jelszó módosítás'; $labels['curpasswd'] = 'Jelenlegi jelszó:'; $labels['newpasswd'] = 'Új jelszó:'; $labels['confpasswd'] = 'Új jelszó mégegyszer:'; + +$messages = array(); $messages['nopassword'] = 'Kérjük adja meg az új jelszót.'; $messages['nocurpassword'] = 'Kérjük adja meg a jelenlegi jelszót.'; $messages['passwordincorrect'] = 'Érvénytelen a jelenlegi jelszó.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Hiba történt a kérés feldolgozása során.'; $messages['passwordshort'] = 'A jelszónak legalább $length karakter hosszunak kell lennie.'; $messages['passwordweak'] = 'A jelszónak mindenképpen kell tartalmaznia egy számot és egy írásjelet.'; $messages['passwordforbidden'] = 'A jelszó tiltott karaktert is tartalmaz.'; + ?> diff --git a/plugins/password/localization/hy_AM.inc b/plugins/password/localization/hy_AM.inc index ebca6cd85..b30f31894 100644 --- a/plugins/password/localization/hy_AM.inc +++ b/plugins/password/localization/hy_AM.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Գաղտնաբառի փոփոխում'; $labels['curpasswd'] = 'Առկա գաղտնաբառը`'; $labels['newpasswd'] = 'Նոր գաղտնաբառը`'; $labels['confpasswd'] = 'Կրկնեք նոր գաղտնաբառը`'; + +$messages = array(); $messages['nopassword'] = 'Ներմուցեք նոր գաղտնաբառը։'; $messages['nocurpassword'] = 'Ներմուցեք առկա գաղտնաբառը։'; $messages['passwordincorrect'] = 'Առկա գաղտնաբառը սխալ է։'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Նոր գաղտնաբառի պահպանումը $messages['passwordshort'] = 'Գաղտնաբառերը պետք է լինեն առնվազն $length նիշ երկարությամբ։'; $messages['passwordweak'] = 'Գաղտնաբառերը պետք է պարունակեն առնվազն մեկ թիվ և մեկ կետադրական նիշ։'; $messages['passwordforbidden'] = 'Գաղտնաբառը պարունակում է արգելված նիշ։'; + ?> diff --git a/plugins/password/localization/id_ID.inc b/plugins/password/localization/id_ID.inc index b7b0cde8c..5026de259 100644 --- a/plugins/password/localization/id_ID.inc +++ b/plugins/password/localization/id_ID.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Ubah Sandi'; $labels['curpasswd'] = 'Sandi saat ini:'; $labels['newpasswd'] = 'Sandi Baru:'; $labels['confpasswd'] = 'Konfirmasi Sandi Baru:'; + +$messages = array(); $messages['nopassword'] = 'Masukkan sandi baru.'; $messages['nocurpassword'] = 'Masukkan sandi saat ini.'; $messages['passwordincorrect'] = 'Sandi saat ini salah.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Tidak dapat menyimpan sandi baru.'; $messages['passwordshort'] = 'Panjang password minimal $length karakter'; $messages['passwordweak'] = 'Sandi harus menyertakan setidaknya satu angka dan satu tanda baca.'; $messages['passwordforbidden'] = 'Sandi mengandung karakter terlarang.'; + ?> diff --git a/plugins/password/localization/it_IT.inc b/plugins/password/localization/it_IT.inc index ddb83ca82..6ce2f7499 100644 --- a/plugins/password/localization/it_IT.inc +++ b/plugins/password/localization/it_IT.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Modifica la Password'; $labels['curpasswd'] = 'Password corrente:'; $labels['newpasswd'] = 'Nuova password:'; $labels['confpasswd'] = 'Conferma la nuova Password:'; + +$messages = array(); $messages['nopassword'] = 'Per favore inserire la nuova password.'; $messages['nocurpassword'] = 'Per favore inserire la password corrente.'; $messages['passwordincorrect'] = 'La password corrente non è corretta.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Impossibile salvare la nuova password.'; $messages['passwordshort'] = 'La password deve essere lunga almeno $length caratteri.'; $messages['passwordweak'] = 'La password deve includere almeno una cifra decimale e un simbolo di punteggiatura.'; $messages['passwordforbidden'] = 'La password contiene caratteri proibiti.'; + ?> diff --git a/plugins/password/localization/ja_JP.inc b/plugins/password/localization/ja_JP.inc index cc5a1173d..6abea5348 100644 --- a/plugins/password/localization/ja_JP.inc +++ b/plugins/password/localization/ja_JP.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'パスワードの変更'; $labels['curpasswd'] = '現在のパスワード:'; $labels['newpasswd'] = '新しいパスワード:'; $labels['confpasswd'] = '新しいパスワード (確認):'; + +$messages = array(); $messages['nopassword'] = '新しいパスワードを入力してください。'; $messages['nocurpassword'] = '現在のパスワードを入力してください。'; $messages['passwordincorrect'] = '現在のパスワードが間違っています。'; @@ -29,4 +33,5 @@ $messages['internalerror'] = '新しいパスワードを保存できません $messages['passwordshort'] = 'パスワードは少なくとも $length 文字の長さが必要です。'; $messages['passwordweak'] = 'パスワードは少なくとも数字の 1 文字と記号の 1 文字を含んでいなければなりません。'; $messages['passwordforbidden'] = 'パスワードに禁止された文字が含まれています。'; + ?> diff --git a/plugins/password/localization/ko_KR.inc b/plugins/password/localization/ko_KR.inc index 21e2dbbf8..ec346ee00 100644 --- a/plugins/password/localization/ko_KR.inc +++ b/plugins/password/localization/ko_KR.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = '암호 변경'; $labels['curpasswd'] = '현재 암호:'; $labels['newpasswd'] = '새 암호:'; $labels['confpasswd'] = '새로운 비밀번호 확인 :'; + +$messages = array(); $messages['nopassword'] = '새 암호를 입력하시오.'; $messages['nocurpassword'] = '현재 사용중인 암호를 입력하세요.'; $messages['passwordincorrect'] = '현재 사용중인 암호가 올바르지 않습니다.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = '새로운 암호를 저장할 수 없습니다.'; $messages['passwordshort'] = '암호는 적어도 $length 글자 이상이어야 합니다.'; $messages['passwordweak'] = '암호는 적어도 숫자 하나와 특수 문자 하나를 포함하여야 합니다.'; $messages['passwordforbidden'] = '암호가 허락되지 않은 문자들을 포함하고 있습니다.'; + ?> diff --git a/plugins/password/localization/ku.inc b/plugins/password/localization/ku.inc index 544626846..3bee221b6 100644 --- a/plugins/password/localization/ku.inc +++ b/plugins/password/localization/ku.inc @@ -15,5 +15,23 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'گۆڕینی ووشەی نهێنی'; +$labels['curpasswd'] = 'Current Password:'; +$labels['newpasswd'] = 'New Password:'; +$labels['confpasswd'] = 'Confirm New Password:'; + +$messages = array(); +$messages['nopassword'] = 'Please input new password.'; +$messages['nocurpassword'] = 'Please input current password.'; +$messages['passwordincorrect'] = 'Current password incorrect.'; +$messages['passwordinconsistency'] = 'Passwords do not match, please try again.'; +$messages['crypterror'] = 'Could not save new password. Encryption function missing.'; +$messages['connecterror'] = 'Could not save new password. Connection error.'; +$messages['internalerror'] = 'Could not save new password.'; +$messages['passwordshort'] = 'Password must be at least $length characters long.'; +$messages['passwordweak'] = 'Password must include at least one number and one punctuation character.'; +$messages['passwordforbidden'] = 'Password contains forbidden characters.'; + ?> diff --git a/plugins/password/localization/lt_LT.inc b/plugins/password/localization/lt_LT.inc index 4425d63e0..fe512960a 100644 --- a/plugins/password/localization/lt_LT.inc +++ b/plugins/password/localization/lt_LT.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Slaptažodžio keitimas'; $labels['curpasswd'] = 'Dabartinis slaptažodis:'; $labels['newpasswd'] = 'Naujasis slaptažodis:'; $labels['confpasswd'] = 'Pakartokite naująjį slaptažodį:'; + +$messages = array(); $messages['nopassword'] = 'Prašom įvesti naująjį slaptažodį.'; $messages['nocurpassword'] = 'Prašom įvesti dabartinį slaptažodį.'; $messages['passwordincorrect'] = 'Dabartinis slaptažodis neteisingas.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Nepavyko įrašyti naujojo slaptažodžio.'; $messages['passwordshort'] = 'Slaptažodis turi būti sudarytas bent iš $length simbolių.'; $messages['passwordweak'] = 'Slaptažodyje turi būti bent vienas skaitmuo ir vienas skyrybos ženklas.'; $messages['passwordforbidden'] = 'Slaptažodyje rasta neleistinų simbolių.'; + ?> diff --git a/plugins/password/localization/lv_LV.inc b/plugins/password/localization/lv_LV.inc index c45bc8314..650d31b2c 100644 --- a/plugins/password/localization/lv_LV.inc +++ b/plugins/password/localization/lv_LV.inc @@ -15,18 +15,23 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Nomainīt paroli'; $labels['curpasswd'] = 'Pašreizējā parole:'; $labels['newpasswd'] = 'Jaunā parole:'; -$labels['confpasswd'] = 'Apstiprināt jauno paroli:'; -$messages['nopassword'] = 'Lūdzu ievadiet jauno paroli.'; -$messages['nocurpassword'] = 'Lūdzu ievadiet pašreizējo paroli.'; -$messages['passwordincorrect'] = 'Pašreizējā parole nav pareiza.'; +$labels['confpasswd'] = 'Vēlreiz jauno paroli:'; + +$messages = array(); +$messages['nopassword'] = 'Lūdzu, ievadiet jauno paroli.'; +$messages['nocurpassword'] = 'Lūdzu, ievadiet pašreizējo paroli.'; +$messages['passwordincorrect'] = 'Pašreizējā parole nepareiza.'; $messages['passwordinconsistency'] = 'Paroles nesakrīt. Lūdzu, ievadiet vēlreiz.'; -$messages['crypterror'] = 'Nevarēja saglabāt jauno paroli. Trūkst kriptēšanas funkcijas.'; +$messages['crypterror'] = 'Nevarēja saglabāt jauno paroli. Trūkst kriptēšanas funkcija.'; $messages['connecterror'] = 'Nevarēja saglabāt jauno paroli. Savienojuma kļūda.'; $messages['internalerror'] = 'Nevarēja saglabāt jauno paroli.'; -$messages['passwordshort'] = 'Jaunajai parolei jābūt vismaz $length simbolu garai.'; -$messages['passwordweak'] = 'Jaunajai parolei jāsatur vismaz viens cipars un speciālais simbols.'; -$messages['passwordforbidden'] = 'Parole satur neatļautus simbolus.'; +$messages['passwordshort'] = 'Jaunajai parolei jābūt vismaz $length simbola garai.'; +$messages['passwordweak'] = 'Jaunajai parolei jāsatur vismaz viens cipars un punktuācijas simbols.'; +$messages['passwordforbidden'] = 'Password contains forbidden characters.'; + ?> diff --git a/plugins/password/localization/nb_NO.inc b/plugins/password/localization/nb_NO.inc index 9901303d2..6d8440bf3 100644 --- a/plugins/password/localization/nb_NO.inc +++ b/plugins/password/localization/nb_NO.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Bytt passord'; $labels['curpasswd'] = 'Nåværende passord:'; $labels['newpasswd'] = 'Nytt passord:'; $labels['confpasswd'] = 'Bekreft nytt passord'; + +$messages = array(); $messages['nopassword'] = 'Vennligst skriv inn nytt passord'; $messages['nocurpassword'] = 'Vennligst skriv inn nåværende passord'; $messages['passwordincorrect'] = 'Nåværende passord er feil.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Kunne ikke lagre nytt passord'; $messages['passwordshort'] = 'Passordet må minimum inneholde $length tegn.'; $messages['passwordweak'] = 'Passordet må inneholde minst ett tall og ett tegnsettingssymbol.'; $messages['passwordforbidden'] = 'Passordet inneholder forbudte tegn.'; + ?> diff --git a/plugins/password/localization/nl_NL.inc b/plugins/password/localization/nl_NL.inc index 1b5f0b15b..e5b634602 100644 --- a/plugins/password/localization/nl_NL.inc +++ b/plugins/password/localization/nl_NL.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Wachtwoord wijzigen'; $labels['curpasswd'] = 'Huidig wachtwoord:'; $labels['newpasswd'] = 'Nieuw wachtwoord:'; $labels['confpasswd'] = 'Bevestig nieuw wachtwoord:'; + +$messages = array(); $messages['nopassword'] = 'Vul uw nieuwe wachtwoord in.'; $messages['nocurpassword'] = 'Vul uw huidige wachtwoord in.'; $messages['passwordincorrect'] = 'Huidig wachtwoord is onjuist.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Uw nieuwe wachtwoord kan niet worden opgeslagen.'; $messages['passwordshort'] = 'Het wachtwoord moet minimaal $length tekens lang zijn.'; $messages['passwordweak'] = 'Het wachtwoord moet minimaal één cijfer en één leesteken bevatten.'; $messages['passwordforbidden'] = 'Het wachtwoord bevat tekens die niet toegestaan zijn.'; + ?> diff --git a/plugins/password/localization/nn_NO.inc b/plugins/password/localization/nn_NO.inc index 89d0ad1c1..dc7c8f390 100644 --- a/plugins/password/localization/nn_NO.inc +++ b/plugins/password/localization/nn_NO.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Bytt passord'; $labels['curpasswd'] = 'Noverande passord:'; $labels['newpasswd'] = 'Nytt passord:'; $labels['confpasswd'] = 'Bekreft nytt passord'; + +$messages = array(); $messages['nopassword'] = 'Venlegast skriv inn nytt passord.'; $messages['nocurpassword'] = 'Venlegast skriv inn noverande passord.'; $messages['passwordincorrect'] = 'Noverande passord er feil.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Kunne ikkje lagre nytt passord.'; $messages['passwordshort'] = 'Passordet må minimum innehalde $length teikn.'; $messages['passwordweak'] = 'Passordet må innehalde minst eitt tal og eitt skilleteikn.'; $messages['passwordforbidden'] = 'Passordet inneheld forbodne teikn.'; + ?> diff --git a/plugins/password/localization/pl_PL.inc b/plugins/password/localization/pl_PL.inc index b3ce3726f..f4bce1792 100644 --- a/plugins/password/localization/pl_PL.inc +++ b/plugins/password/localization/pl_PL.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Zmiana hasła'; $labels['curpasswd'] = 'Aktualne hasło:'; $labels['newpasswd'] = 'Nowe hasło:'; $labels['confpasswd'] = 'Potwierdź hasło:'; + +$messages = array(); $messages['nopassword'] = 'Wprowadź nowe hasło.'; $messages['nocurpassword'] = 'Wprowadź aktualne hasło.'; $messages['passwordincorrect'] = 'Błędne aktualne hasło, spróbuj ponownie.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Nie udało się zapisać nowego hasła.'; $messages['passwordshort'] = 'Hasło musi posiadać co najmniej $length znaków.'; $messages['passwordweak'] = 'Hasło musi zawierać co najmniej jedną cyfrę i znak interpunkcyjny.'; $messages['passwordforbidden'] = 'Hasło zawiera niedozwolone znaki.'; + ?> diff --git a/plugins/password/localization/pt_BR.inc b/plugins/password/localization/pt_BR.inc index ac714764f..f6f6ced01 100644 --- a/plugins/password/localization/pt_BR.inc +++ b/plugins/password/localization/pt_BR.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Alterar senha'; $labels['curpasswd'] = 'Senha atual:'; $labels['newpasswd'] = 'Nova senha:'; $labels['confpasswd'] = 'Confirmar nova senha:'; + +$messages = array(); $messages['nopassword'] = 'Por favor, informe a nova senha.'; $messages['nocurpassword'] = 'Por favor, informe a senha atual.'; $messages['passwordincorrect'] = 'Senha atual incorreta.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Não foi possível gravar a nova senha.'; $messages['passwordshort'] = 'A senha precisa ter ao menos $length caracteres.'; $messages['passwordweak'] = 'A senha precisa conter ao menos um número e um caractere de pontuação.'; $messages['passwordforbidden'] = 'A senha contém caracteres proibidos.'; + ?> diff --git a/plugins/password/localization/pt_PT.inc b/plugins/password/localization/pt_PT.inc index fc5b28899..faad112ea 100644 --- a/plugins/password/localization/pt_PT.inc +++ b/plugins/password/localization/pt_PT.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Alterar password'; $labels['curpasswd'] = 'Password atual:'; $labels['newpasswd'] = 'Nova password:'; $labels['confpasswd'] = 'Confirmar password:'; + +$messages = array(); $messages['nopassword'] = 'Introduza a nova password.'; $messages['nocurpassword'] = 'Introduza a password actual.'; $messages['passwordincorrect'] = 'Password actual errada.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Não foi possível gravar a nova password.'; $messages['passwordshort'] = 'A palavra-passe deve ter pelo menos $length caracteres'; $messages['passwordweak'] = 'A palavra-passe deve incluir pelo menos um numero e um sinal de pontuação.'; $messages['passwordforbidden'] = 'A palavra-passe contém caracteres não suportados.'; + ?> diff --git a/plugins/password/localization/ro_RO.inc b/plugins/password/localization/ro_RO.inc index 004254382..17ec31c6b 100644 --- a/plugins/password/localization/ro_RO.inc +++ b/plugins/password/localization/ro_RO.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Schimbați parola'; $labels['curpasswd'] = 'Parola curentă:'; $labels['newpasswd'] = 'Parola nouă:'; $labels['confpasswd'] = 'Confirmare parola nouă:'; + +$messages = array(); $messages['nopassword'] = 'Te rog să introduci noua parolă.'; $messages['nocurpassword'] = 'Te rog să introduci parola curentă'; $messages['passwordincorrect'] = 'Parola curentă este incorectă.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Nu am reușit să salvez noua parolă.'; $messages['passwordshort'] = 'Parola trebuie să aibă minim $length caractere.'; $messages['passwordweak'] = 'Parola trebuie să conțina cel puțin un număr si un semn de punctuație.'; $messages['passwordforbidden'] = 'Parola conține caractere nepermise.'; + ?> diff --git a/plugins/password/localization/ru_RU.inc b/plugins/password/localization/ru_RU.inc index 85b7bf2c4..79fbfedf6 100644 --- a/plugins/password/localization/ru_RU.inc +++ b/plugins/password/localization/ru_RU.inc @@ -15,18 +15,23 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Изменить пароль'; $labels['curpasswd'] = 'Текущий пароль:'; $labels['newpasswd'] = 'Новый пароль:'; $labels['confpasswd'] = 'Подтвердите новый пароль:'; + +$messages = array(); $messages['nopassword'] = 'Пожалуйста, введите новый пароль.'; $messages['nocurpassword'] = 'Пожалуйста, введите текущий пароль.'; $messages['passwordincorrect'] = 'Текущий пароль неверен.'; -$messages['passwordinconsistency'] = 'Пароли не совпадают, попробуйте ещё раз, пожалуйста.'; +$messages['passwordinconsistency'] = 'Пароли не совпадают, попробуйте, пожалуйста, ещё.'; $messages['crypterror'] = 'Не могу сохранить новый пароль. Отсутствует криптографическая функция.'; $messages['connecterror'] = 'Не могу сохранить новый пароль. Ошибка соединения.'; $messages['internalerror'] = 'Не могу сохранить новый пароль.'; -$messages['passwordshort'] = 'Длина пароля должна быть как минимум $length символов.'; +$messages['passwordshort'] = 'Пароль должен быть длиной как минимум $length символов.'; $messages['passwordweak'] = 'Пароль должен включать в себя как минимум одну цифру и один знак пунктуации.'; $messages['passwordforbidden'] = 'Пароль содержит недопустимые символы.'; + ?> diff --git a/plugins/password/localization/sk_SK.inc b/plugins/password/localization/sk_SK.inc index fd0210285..4098cb685 100644 --- a/plugins/password/localization/sk_SK.inc +++ b/plugins/password/localization/sk_SK.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Zmeniť heslo'; $labels['curpasswd'] = 'Súčasné heslo:'; $labels['newpasswd'] = 'Nové heslo:'; $labels['confpasswd'] = 'Potvrď nové heslo:'; + +$messages = array(); $messages['nopassword'] = 'Prosím zadaj nové heslo.'; $messages['nocurpassword'] = 'Prosím zadaj súčasné heslo.'; $messages['passwordincorrect'] = 'Súčasné heslo je nesprávne.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Nemôžem uložiť nové heslo.'; $messages['passwordshort'] = 'Heslo musí mať najmenej $length znakov.'; $messages['passwordweak'] = 'Heslo musí obsahovať aspoň jedno číslo a jedno interpunkčné znamienko.'; $messages['passwordforbidden'] = 'Heslo obsahuje nepovolené znaky.'; + ?> diff --git a/plugins/password/localization/sl_SI.inc b/plugins/password/localization/sl_SI.inc index 99af3c9f5..27a094219 100644 --- a/plugins/password/localization/sl_SI.inc +++ b/plugins/password/localization/sl_SI.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Spremeni geslo'; $labels['curpasswd'] = 'Obstoječe geslo:'; $labels['newpasswd'] = 'Novo geslo:'; $labels['confpasswd'] = 'Potrdi novo geslo:'; + +$messages = array(); $messages['nopassword'] = 'Vnesite novo geslo.'; $messages['nocurpassword'] = 'Vnesite obstoječe geslo.'; $messages['passwordincorrect'] = 'Obstoječe geslo ni veljavno.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Novega gesla ni bilo mogoče shraniti.'; $messages['passwordshort'] = 'Geslo mora vsebovati vsaj $length znakov'; $messages['passwordweak'] = 'Geslo mora vključevati vsaj eno številko in ločilo.'; $messages['passwordforbidden'] = 'Geslo vsebuje neveljavne znake.'; + ?> diff --git a/plugins/password/localization/sr_CS.inc b/plugins/password/localization/sr_CS.inc index 0900b3112..18361032d 100644 --- a/plugins/password/localization/sr_CS.inc +++ b/plugins/password/localization/sr_CS.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Промијени лозинку'; $labels['curpasswd'] = 'Тренутна лозинка:'; $labels['newpasswd'] = 'Нова лозинка:'; $labels['confpasswd'] = 'Поновите лозинку:'; + +$messages = array(); $messages['nopassword'] = 'Молимо унесите нову лозинку.'; $messages['nocurpassword'] = 'Молимо унесите тренутну лозинку.'; $messages['passwordincorrect'] = 'Тренутна лозинка је нетачна.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Није могуће сачувати нову л $messages['passwordshort'] = 'Лозинка мора имати најмање $lenght знакова.'; $messages['passwordweak'] = 'Лозинка мора да садржи најмање један број и један интерпункцијски знак.'; $messages['passwordforbidden'] = 'Лозинка садржи недозвољене знакове.'; + ?> diff --git a/plugins/password/localization/sv_SE.inc b/plugins/password/localization/sv_SE.inc index 0aee9da81..90f7b9f58 100644 --- a/plugins/password/localization/sv_SE.inc +++ b/plugins/password/localization/sv_SE.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Ändra lösenord'; $labels['curpasswd'] = 'Nuvarande lösenord:'; $labels['newpasswd'] = 'Nytt lösenord:'; $labels['confpasswd'] = 'Bekräfta nytt lösenord:'; + +$messages = array(); $messages['nopassword'] = 'Ange nytt lösenord.'; $messages['nocurpassword'] = 'Ange nuvarande lösenord.'; $messages['passwordincorrect'] = 'Felaktigt nuvarande lösenord.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Lösenordet kunde inte ändras.'; $messages['passwordshort'] = 'Lösenordet måste vara minst $length tecken långt.'; $messages['passwordweak'] = 'Lösenordet måste innehålla minst en siffra och ett specialtecken.'; $messages['passwordforbidden'] = 'Lösenordet innehåller otillåtna tecken.'; + ?> diff --git a/plugins/password/localization/tr_TR.inc b/plugins/password/localization/tr_TR.inc index 75ee30f6d..99133a158 100644 --- a/plugins/password/localization/tr_TR.inc +++ b/plugins/password/localization/tr_TR.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Parolayı Değiştir'; $labels['curpasswd'] = 'Şimdiki Parola:'; $labels['newpasswd'] = 'Yeni Parola:'; $labels['confpasswd'] = 'Yeni Parolayı Onaylayın:'; + +$messages = array(); $messages['nopassword'] = 'Lütfen yeni parolayı girin.'; $messages['nocurpassword'] = 'Lütfen şimdiki parolayı girin.'; $messages['passwordincorrect'] = 'Şimdiki parolayı yanlış girdiniz.'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Yeni parola kaydedilemedi.'; $messages['passwordshort'] = 'Parola en az $length karakterden oluşmalı.'; $messages['passwordweak'] = 'Parola en az bir sayı ve bir noktalama işareti içermeli.'; $messages['passwordforbidden'] = 'Parola uygunsuz karakter(ler) içeriyor.'; + ?> diff --git a/plugins/password/localization/vi_VN.inc b/plugins/password/localization/vi_VN.inc index 3e5745f4d..f21d65156 100644 --- a/plugins/password/localization/vi_VN.inc +++ b/plugins/password/localization/vi_VN.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = 'Thay đổi mật khẩu'; $labels['curpasswd'] = 'Mật khẩu hiện tại'; $labels['newpasswd'] = 'Mật khẩu mới:'; $labels['confpasswd'] = 'Xác nhận mật khẩu mới'; + +$messages = array(); $messages['nopassword'] = 'Mời nhập mật khẩu mới'; $messages['nocurpassword'] = 'Mời nhập mật khẩu hiện tại'; $messages['passwordincorrect'] = 'Mật khẩu hiện thời không đúng'; @@ -29,4 +33,5 @@ $messages['internalerror'] = 'Không thể lưu mật khẩu mới'; $messages['passwordshort'] = 'Mật khẩu phải dài ít nhất $ ký tự'; $messages['passwordweak'] = 'Mật khẩu phải bao gồm ít nhất 1 con số và 1 ký tự dấu câu'; $messages['passwordforbidden'] = 'Mật khẩu bao gồm ký tự không hợp lệ'; + ?> diff --git a/plugins/password/localization/zh_CN.inc b/plugins/password/localization/zh_CN.inc index 02db6e83e..5d14926f2 100644 --- a/plugins/password/localization/zh_CN.inc +++ b/plugins/password/localization/zh_CN.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = '修改密码'; $labels['curpasswd'] = '当前密码:'; $labels['newpasswd'] = '新密码:'; $labels['confpasswd'] = '确认新密码:'; + +$messages = array(); $messages['nopassword'] = '请输入新密码。'; $messages['nocurpassword'] = '请输入当前的密码。'; $messages['passwordincorrect'] = '当前密码不正确。'; @@ -29,4 +33,5 @@ $messages['internalerror'] = '无法保存新密码。'; $messages['passwordshort'] = '密码至少为 $length 位。'; $messages['passwordweak'] = '密码必须至少包含一个数字和一个标点符号。'; $messages['passwordforbidden'] = '密码包含禁止使用的字符。'; + ?> diff --git a/plugins/password/localization/zh_TW.inc b/plugins/password/localization/zh_TW.inc index e5e2414f2..b61e113c8 100644 --- a/plugins/password/localization/zh_TW.inc +++ b/plugins/password/localization/zh_TW.inc @@ -15,10 +15,14 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-password/ */ + +$labels = array(); $labels['changepasswd'] = '更改密碼'; $labels['curpasswd'] = '目前的密碼'; $labels['newpasswd'] = '新密碼'; $labels['confpasswd'] = '確認新密碼'; + +$messages = array(); $messages['nopassword'] = '請輸入新密碼'; $messages['nocurpassword'] = '請輸入目前的密碼'; $messages['passwordincorrect'] = '目前的密碼錯誤'; @@ -29,4 +33,5 @@ $messages['internalerror'] = '無法更新密碼'; $messages['passwordshort'] = '您的密碼至少需 $length 個字元長'; $messages['passwordweak'] = '您的新密碼至少需含有一個數字與一個標點符號'; $messages['passwordforbidden'] = '您的密碼含有禁用字元'; + ?> diff --git a/plugins/password/package.xml b/plugins/password/package.xml index 16eda1ad0..9a056dec6 100644 --- a/plugins/password/package.xml +++ b/plugins/password/package.xml @@ -15,18 +15,19 @@ alec@alec.pl yes - 2013-04-28 + 2012-11-15 - 3.4 + 3.2 2.0 stable stable - GNU GPLv3+ + GNU GPLv2 -Added password_force_save option +- Fix wrong (non-specific) error message on crypt or connection error (#1488808) +- Added option to define IMAP hosts that support password changes - password_hosts @@ -346,36 +347,5 @@ Added password_force_save option - Added Samba password (#1488364) - - 2012-11-15 - - 3.2 - 2.0 - - - stable - stable - - GNU GPLv2 - -- Fix wrong (non-specific) error message on crypt or connection error (#1488808) -- Added option to define IMAP hosts that support password changes - password_hosts - - - - 2013-03-30 - - 3.3 - 2.0 - - - stable - stable - - GNU GPLv2 - -Added new cPanel driver - fixes localization related issues (#1487015) - - diff --git a/plugins/password/password.js b/plugins/password/password.js index 12c9074ff..a060fc334 100644 --- a/plugins/password/password.js +++ b/plugins/password/password.js @@ -5,8 +5,13 @@ if (window.rcmail) { rcmail.addEventListener('init', function(evt) { + // + var tab = $('').attr('id', 'settingstabpluginpassword').addClass('tablink password'); + var button = $('').attr('href', rcmail.env.comm_path+'&_action=plugin.password') + .html(rcmail.gettext('password')).appendTo(tab); - // register command handler + // add button and register commands + rcmail.add_element(tab, 'tabs'); rcmail.register_command('plugin.password-save', function() { var input_curpasswd = rcube_find_object('_curpasswd'); var input_newpasswd = rcube_find_object('_newpasswd'); diff --git a/plugins/password/password.php b/plugins/password/password.php index e31613ab1..806db0586 100644 --- a/plugins/password/password.php +++ b/plugins/password/password.php @@ -1,26 +1,32 @@ - * - * Copyright (C) 2005-2013, The Roundcube Dev Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/. - */ +/* + +-------------------------------------------------------------------------+ + | Password Plugin for Roundcube | + | @version @package_version@ | + | | + | Copyright (C) 2009-2010, Roundcube Dev. | + | | + | This program is free software; you can redistribute it and/or modify | + | it under the terms of the GNU General Public License version 2 | + | as published by the Free Software Foundation. | + | | + | This program is distributed in the hope that it will be useful, | + | but WITHOUT ANY WARRANTY; without even the implied warranty of | + | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | + | GNU General Public License for more details. | + | | + | You should have received a copy of the GNU General Public License along | + | with this program; if not, write to the Free Software Foundation, Inc., | + | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | + | | + +-------------------------------------------------------------------------+ + | Author: Aleksander Machniak | + +-------------------------------------------------------------------------+ + + $Id: index.php 2645 2009-06-15 07:01:36Z alec $ + +*/ define('PASSWORD_CRYPT_ERROR', 1); define('PASSWORD_ERROR', 2); @@ -69,19 +75,13 @@ class password extends rcube_plugin } } - $this->add_hook('settings_actions', array($this, 'settings_actions')); + // add Tab label + $rcmail->output->add_label('password'); $this->register_action('plugin.password', array($this, 'password_init')); $this->register_action('plugin.password-save', array($this, 'password_save')); $this->include_script('password.js'); } - function settings_actions($args) - { - // register as settings action - $args['actions'][] = array('action' => 'plugin.password', 'class' => 'password', 'label' => 'password', 'domain' => 'password'); - return $args; - } - function password_init() { $this->add_texts('localization/'); @@ -112,22 +112,22 @@ class password extends rcube_plugin $rc_charset = strtoupper($rcmail->output->get_charset()); $sespwd = $rcmail->decrypt($_SESSION['password']); - $curpwd = $confirm ? rcube_utils::get_input_value('_curpasswd', rcube_utils::INPUT_POST, true, $charset) : $sespwd; - $newpwd = rcube_utils::get_input_value('_newpasswd', rcube_utils::INPUT_POST, true); - $conpwd = rcube_utils::get_input_value('_confpasswd', rcube_utils::INPUT_POST, true); + $curpwd = $confirm ? get_input_value('_curpasswd', RCUBE_INPUT_POST, true, $charset) : $sespwd; + $newpwd = get_input_value('_newpasswd', RCUBE_INPUT_POST, true); + $conpwd = get_input_value('_confpasswd', RCUBE_INPUT_POST, true); // check allowed characters according to the configured 'password_charset' option // by converting the password entered by the user to this charset and back to UTF-8 $orig_pwd = $newpwd; - $chk_pwd = rcube_charset::convert($orig_pwd, $rc_charset, $charset); - $chk_pwd = rcube_charset::convert($chk_pwd, $charset, $rc_charset); + $chk_pwd = rcube_charset_convert($orig_pwd, $rc_charset, $charset); + $chk_pwd = rcube_charset_convert($chk_pwd, $charset, $rc_charset); // WARNING: Default password_charset is ISO-8859-1, so conversion will // change national characters. This may disable possibility of using // the same password in other MUA's. // We're doing this for consistence with Roundcube core - $newpwd = rcube_charset::convert($newpwd, $rc_charset, $charset); - $conpwd = rcube_charset::convert($conpwd, $rc_charset, $charset); + $newpwd = rcube_charset_convert($newpwd, $rc_charset, $charset); + $conpwd = rcube_charset_convert($conpwd, $rc_charset, $charset); if ($chk_pwd != $orig_pwd) { $rcmail->output->command('display_message', $this->gettext('passwordforbidden'), 'error'); @@ -141,13 +141,13 @@ class password extends rcube_plugin } else if ($required_length && strlen($newpwd) < $required_length) { $rcmail->output->command('display_message', $this->gettext( - array('name' => 'passwordshort', 'vars' => array('length' => $required_length))), 'error'); + array('name' => 'passwordshort', 'vars' => array('length' => $required_length))), 'error'); } else if ($check_strength && (!preg_match("/[0-9]/", $newpwd) || !preg_match("/[^A-Za-z0-9]/", $newpwd))) { $rcmail->output->command('display_message', $this->gettext('passwordweak'), 'error'); } // password is the same as the old one, do nothing, return success - else if ($sespwd == $newpwd && !$rcmail->config->get('password_force_save')) { + else if ($sespwd == $newpwd) { $rcmail->output->command('display_message', $this->gettext('successfullysaved'), 'confirmation'); } // try to save the password @@ -163,8 +163,8 @@ class password extends rcube_plugin // Log password change if ($rcmail->config->get('password_log')) { - rcube::write_log('password', sprintf('Password changed for user %s (ID: %d) from %s', - $rcmail->get_user_name(), $rcmail->user->ID, rcube_utils::remote_ip())); + write_log('password', sprintf('Password changed for user %s (ID: %d) from %s', + $rcmail->get_user_name(), $rcmail->user->ID, rcmail_remote_ip())); } } else { @@ -172,7 +172,7 @@ class password extends rcube_plugin } } - $rcmail->overwrite_action('plugin.password'); + rcmail_overwrite_action('plugin.password'); $rcmail->output->send('plugin'); } @@ -197,7 +197,7 @@ class password extends rcube_plugin $input_curpasswd = new html_passwordfield(array('name' => '_curpasswd', 'id' => $field_id, 'size' => 20, 'autocomplete' => 'off')); - $table->add('title', html::label($field_id, rcube::Q($this->gettext('curpasswd')))); + $table->add('title', html::label($field_id, Q($this->gettext('curpasswd')))); $table->add(null, $input_curpasswd->show()); } @@ -206,7 +206,7 @@ class password extends rcube_plugin $input_newpasswd = new html_passwordfield(array('name' => '_newpasswd', 'id' => $field_id, 'size' => 20, 'autocomplete' => 'off')); - $table->add('title', html::label($field_id, rcube::Q($this->gettext('newpasswd')))); + $table->add('title', html::label($field_id, Q($this->gettext('newpasswd')))); $table->add(null, $input_newpasswd->show()); // show confirm password selection @@ -214,7 +214,7 @@ class password extends rcube_plugin $input_confpasswd = new html_passwordfield(array('name' => '_confpasswd', 'id' => $field_id, 'size' => 20, 'autocomplete' => 'off')); - $table->add('title', html::label($field_id, rcube::Q($this->gettext('confpasswd')))); + $table->add('title', html::label($field_id, Q($this->gettext('confpasswd')))); $table->add(null, $input_confpasswd->show()); $out = html::div(array('class' => 'box'), @@ -246,7 +246,7 @@ class password extends rcube_plugin $file = $this->home . "/drivers/$driver.php"; if (!file_exists($file)) { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, @@ -258,7 +258,7 @@ class password extends rcube_plugin include_once $file; if (!class_exists($class, false) || !method_exists($class, 'save')) { - rcube::raise_error(array( + raise_error(array( 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, diff --git a/plugins/show_additional_headers/package.xml b/plugins/show_additional_headers/package.xml index 9ca60baa9..7297916c3 100644 --- a/plugins/show_additional_headers/package.xml +++ b/plugins/show_additional_headers/package.xml @@ -24,7 +24,7 @@ stable stable - GNU GPLv3+ + GNU GPLv2 - diff --git a/plugins/show_additional_headers/show_additional_headers.php b/plugins/show_additional_headers/show_additional_headers.php index b7f01104c..1375348c2 100644 --- a/plugins/show_additional_headers/show_additional_headers.php +++ b/plugins/show_additional_headers/show_additional_headers.php @@ -6,12 +6,12 @@ * Proof-of-concept plugin which will fetch additional headers * and display them in the message view. * - * Enable the plugin in config.inc.php and add your desired headers: - * $config['show_additional_headers'] = array('User-Agent'); + * Enable the plugin in config/main.inc.php and add your desired headers: + * $rcmail_config['show_additional_headers'] = array('User-Agent'); * * @version @package_version@ * @author Thomas Bruederli - * @license GNU GPLv3+ + * @website http://roundcube.net */ class show_additional_headers extends rcube_plugin { diff --git a/plugins/squirrelmail_usercopy/config.inc.php.dist b/plugins/squirrelmail_usercopy/config.inc.php.dist index 03ec1cb86..cb62b1b86 100644 --- a/plugins/squirrelmail_usercopy/config.inc.php.dist +++ b/plugins/squirrelmail_usercopy/config.inc.php.dist @@ -1,25 +1,25 @@ prefs['___sig'.$i.'___']) $ident_data['signature'] = $this->prefs['___sig'.$i.'___']; // insert identity - $rcmail->user->insert_identity($ident_data); + $identid = $rcmail->user->insert_identity($ident_data); } } @@ -73,8 +73,8 @@ class squirrelmail_usercopy extends rcube_plugin foreach ($this->abook as $rec) { // #1487096 handle multi-address and/or too long items $rec['email'] = array_shift(explode(';', $rec['email'])); - if (rcube_utils::check_email(rcube_utils::idn_to_ascii($rec['email']))) { - $rec['email'] = rcube_utils::idn_to_utf8($rec['email']); + if (check_email(rcube_idn_to_ascii($rec['email']))) { + $rec['email'] = rcube_idn_to_utf8($rec['email']); $contacts->insert($rec, true); } } @@ -167,7 +167,7 @@ class squirrelmail_usercopy extends rcube_plugin $sql_result = $db->query('SELECT * FROM '.$userprefs_table.' WHERE user=?', $uname); // ? is replaced with emailaddress while ($sql_array = $db->fetch_assoc($sql_result) ) { // fetch one row from result - $this->prefs[$sql_array['prefkey']] = rcube_charset::convert(rtrim($sql_array['prefval']), $db_charset); + $this->prefs[$sql_array['prefkey']] = rcube_charset_convert(rtrim($sql_array['prefval']), $db_charset); } /* retrieve address table data */ @@ -175,11 +175,11 @@ class squirrelmail_usercopy extends rcube_plugin // parse addres book while ($sql_array = $db->fetch_assoc($sql_result) ) { // fetch one row from result - $rec['name'] = rcube_charset::convert(rtrim($sql_array['nickname']), $db_charset); - $rec['firstname'] = rcube_charset::convert(rtrim($sql_array['firstname']), $db_charset); - $rec['surname'] = rcube_charset::convert(rtrim($sql_array['lastname']), $db_charset); - $rec['email'] = rcube_charset::convert(rtrim($sql_array['email']), $db_charset); - $rec['notes'] = rcube_charset::convert(rtrim($sql_array['label']), $db_charset); + $rec['name'] = rcube_charset_convert(rtrim($sql_array['nickname']), $db_charset); + $rec['firstname'] = rcube_charset_convert(rtrim($sql_array['firstname']), $db_charset); + $rec['surname'] = rcube_charset_convert(rtrim($sql_array['lastname']), $db_charset); + $rec['email'] = rcube_charset_convert(rtrim($sql_array['email']), $db_charset); + $rec['notes'] = rcube_charset_convert(rtrim($sql_array['label']), $db_charset); if ($rec['name'] && $rec['email']) $this->abook[] = $rec; diff --git a/plugins/subscriptions_option/localization/bs_BA.inc b/plugins/subscriptions_option/localization/bs_BA.inc index 6900cf568..404dd1dd2 100644 --- a/plugins/subscriptions_option/localization/bs_BA.inc +++ b/plugins/subscriptions_option/localization/bs_BA.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Koristi IMAP pretplate'; + ?> diff --git a/plugins/subscriptions_option/localization/ca_ES.inc b/plugins/subscriptions_option/localization/ca_ES.inc index 3a723968b..959134270 100644 --- a/plugins/subscriptions_option/localization/ca_ES.inc +++ b/plugins/subscriptions_option/localization/ca_ES.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Fes servir subscripcions IMAP'; + ?> diff --git a/plugins/subscriptions_option/localization/cs_CZ.inc b/plugins/subscriptions_option/localization/cs_CZ.inc index 60dafa75c..052255fef 100644 --- a/plugins/subscriptions_option/localization/cs_CZ.inc +++ b/plugins/subscriptions_option/localization/cs_CZ.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Používat odebírání IMAP složek'; + ?> diff --git a/plugins/subscriptions_option/localization/cy_GB.inc b/plugins/subscriptions_option/localization/cy_GB.inc index 229524f17..2c317de96 100644 --- a/plugins/subscriptions_option/localization/cy_GB.inc +++ b/plugins/subscriptions_option/localization/cy_GB.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Defnyddio tanysgrifiadau IMAP'; + ?> diff --git a/plugins/subscriptions_option/localization/da_DK.inc b/plugins/subscriptions_option/localization/da_DK.inc index 06ed8f7a3..08cfdf45d 100644 --- a/plugins/subscriptions_option/localization/da_DK.inc +++ b/plugins/subscriptions_option/localization/da_DK.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Brug IMAP abonnementer'; + ?> diff --git a/plugins/subscriptions_option/localization/de_CH.inc b/plugins/subscriptions_option/localization/de_CH.inc index 6253f87d2..8d48bb4c8 100644 --- a/plugins/subscriptions_option/localization/de_CH.inc +++ b/plugins/subscriptions_option/localization/de_CH.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Nur abonnierte Ordner anzeigen'; + ?> diff --git a/plugins/subscriptions_option/localization/de_DE.inc b/plugins/subscriptions_option/localization/de_DE.inc index 6253f87d2..8d48bb4c8 100644 --- a/plugins/subscriptions_option/localization/de_DE.inc +++ b/plugins/subscriptions_option/localization/de_DE.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Nur abonnierte Ordner anzeigen'; + ?> diff --git a/plugins/subscriptions_option/localization/en_GB.inc b/plugins/subscriptions_option/localization/en_GB.inc index 4895fdd30..3eb18fc1d 100644 --- a/plugins/subscriptions_option/localization/en_GB.inc +++ b/plugins/subscriptions_option/localization/en_GB.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Use IMAP Subscriptions'; + ?> diff --git a/plugins/subscriptions_option/localization/en_US.inc b/plugins/subscriptions_option/localization/en_US.inc index 3eb18fc1d..19e1b26c7 100644 --- a/plugins/subscriptions_option/localization/en_US.inc +++ b/plugins/subscriptions_option/localization/en_US.inc @@ -5,7 +5,7 @@ | plugins/subscriptions_option/localization/.inc | | | | Localization file of the Roundcube Webmail Subscriptions plugin | - | Copyright (C) 2012-2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | diff --git a/plugins/subscriptions_option/localization/eo.inc b/plugins/subscriptions_option/localization/eo.inc index aefdac830..9cba39b9e 100644 --- a/plugins/subscriptions_option/localization/eo.inc +++ b/plugins/subscriptions_option/localization/eo.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Uzi IMAP-abonojn'; + ?> diff --git a/plugins/subscriptions_option/localization/es_ES.inc b/plugins/subscriptions_option/localization/es_ES.inc index 48a20fe43..699a60ab5 100644 --- a/plugins/subscriptions_option/localization/es_ES.inc +++ b/plugins/subscriptions_option/localization/es_ES.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Usar suscripciones IMAP'; + ?> diff --git a/plugins/subscriptions_option/localization/et_EE.inc b/plugins/subscriptions_option/localization/et_EE.inc index 2d7789dbc..916911bd6 100644 --- a/plugins/subscriptions_option/localization/et_EE.inc +++ b/plugins/subscriptions_option/localization/et_EE.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Kasuta IMAP tellimusi'; + ?> diff --git a/plugins/subscriptions_option/localization/fa_IR.inc b/plugins/subscriptions_option/localization/fa_IR.inc index 8909b2e6f..5c7cbe401 100644 --- a/plugins/subscriptions_option/localization/fa_IR.inc +++ b/plugins/subscriptions_option/localization/fa_IR.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'استفاده از عضویت IMAP'; + ?> diff --git a/plugins/subscriptions_option/localization/fi_FI.inc b/plugins/subscriptions_option/localization/fi_FI.inc index 7e8ee43e8..54128fbcb 100644 --- a/plugins/subscriptions_option/localization/fi_FI.inc +++ b/plugins/subscriptions_option/localization/fi_FI.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Käytä IMAP-tilauksia'; + ?> diff --git a/plugins/subscriptions_option/localization/fr_FR.inc b/plugins/subscriptions_option/localization/fr_FR.inc index 9b06d4614..2290ccfd8 100644 --- a/plugins/subscriptions_option/localization/fr_FR.inc +++ b/plugins/subscriptions_option/localization/fr_FR.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Utiliser les abonnements IMAP'; + ?> diff --git a/plugins/subscriptions_option/localization/gl_ES.inc b/plugins/subscriptions_option/localization/gl_ES.inc index 3b22d8dbe..bbff10c3b 100644 --- a/plugins/subscriptions_option/localization/gl_ES.inc +++ b/plugins/subscriptions_option/localization/gl_ES.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ -$labels['useimapsubscriptions'] = 'Usar subscricións IMAP'; + +$labels = array(); +$labels['useimapsubscriptions'] = 'Usar suscripcións IMAP'; + ?> diff --git a/plugins/subscriptions_option/localization/he_IL.inc b/plugins/subscriptions_option/localization/he_IL.inc index c44a1edb3..3149bb759 100644 --- a/plugins/subscriptions_option/localization/he_IL.inc +++ b/plugins/subscriptions_option/localization/he_IL.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'שימוש ברישום לתיקיות IMAP'; + ?> diff --git a/plugins/subscriptions_option/localization/hu_HU.inc b/plugins/subscriptions_option/localization/hu_HU.inc index 1fee1bb91..9efa24559 100644 --- a/plugins/subscriptions_option/localization/hu_HU.inc +++ b/plugins/subscriptions_option/localization/hu_HU.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'IMAP előfizetések használata.'; + ?> diff --git a/plugins/subscriptions_option/localization/hy_AM.inc b/plugins/subscriptions_option/localization/hy_AM.inc index 844478884..2c3fb5d63 100644 --- a/plugins/subscriptions_option/localization/hy_AM.inc +++ b/plugins/subscriptions_option/localization/hy_AM.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Օգտագործել IMAP-ի բաժանորդագրությունները'; + ?> diff --git a/plugins/subscriptions_option/localization/it_IT.inc b/plugins/subscriptions_option/localization/it_IT.inc index 37a9ab226..38aa6fb5d 100644 --- a/plugins/subscriptions_option/localization/it_IT.inc +++ b/plugins/subscriptions_option/localization/it_IT.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Usa sottoscrizioni IMAP'; + ?> diff --git a/plugins/subscriptions_option/localization/ja_JP.inc b/plugins/subscriptions_option/localization/ja_JP.inc index 4de8a70c8..7daf1c473 100644 --- a/plugins/subscriptions_option/localization/ja_JP.inc +++ b/plugins/subscriptions_option/localization/ja_JP.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'IMAP 購読リストを使う'; + ?> diff --git a/plugins/subscriptions_option/localization/ko_KR.inc b/plugins/subscriptions_option/localization/ko_KR.inc index 09f5634d3..d399915c2 100644 --- a/plugins/subscriptions_option/localization/ko_KR.inc +++ b/plugins/subscriptions_option/localization/ko_KR.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'IMAP 구독 사용'; + ?> diff --git a/plugins/subscriptions_option/localization/lt_LT.inc b/plugins/subscriptions_option/localization/lt_LT.inc index 1ff410fae..0612e4d63 100644 --- a/plugins/subscriptions_option/localization/lt_LT.inc +++ b/plugins/subscriptions_option/localization/lt_LT.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Naudoti IMAP prenumeratas'; + ?> diff --git a/plugins/subscriptions_option/localization/nb_NO.inc b/plugins/subscriptions_option/localization/nb_NO.inc index f27889b7f..c65b5cad7 100644 --- a/plugins/subscriptions_option/localization/nb_NO.inc +++ b/plugins/subscriptions_option/localization/nb_NO.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Bruk IMAP-abonnementer'; + ?> diff --git a/plugins/subscriptions_option/localization/nl_NL.inc b/plugins/subscriptions_option/localization/nl_NL.inc index 00a589967..415d55531 100644 --- a/plugins/subscriptions_option/localization/nl_NL.inc +++ b/plugins/subscriptions_option/localization/nl_NL.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Gebruik IMAP-abonneringen'; + ?> diff --git a/plugins/subscriptions_option/localization/pl_PL.inc b/plugins/subscriptions_option/localization/pl_PL.inc index 8aeed3347..01f377f5b 100644 --- a/plugins/subscriptions_option/localization/pl_PL.inc +++ b/plugins/subscriptions_option/localization/pl_PL.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Używaj subskrypcji IMAP'; + ?> diff --git a/plugins/subscriptions_option/localization/pt_BR.inc b/plugins/subscriptions_option/localization/pt_BR.inc index d5d90a52e..aa148a7fd 100644 --- a/plugins/subscriptions_option/localization/pt_BR.inc +++ b/plugins/subscriptions_option/localization/pt_BR.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Usar função de inscrição em pastas IMAP'; + ?> diff --git a/plugins/subscriptions_option/localization/pt_PT.inc b/plugins/subscriptions_option/localization/pt_PT.inc index 8b46da7dc..d8035200f 100644 --- a/plugins/subscriptions_option/localization/pt_PT.inc +++ b/plugins/subscriptions_option/localization/pt_PT.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Use subscrições IMAP'; + ?> diff --git a/plugins/subscriptions_option/localization/ru_RU.inc b/plugins/subscriptions_option/localization/ru_RU.inc index 5cecfd86c..2b25783f3 100644 --- a/plugins/subscriptions_option/localization/ru_RU.inc +++ b/plugins/subscriptions_option/localization/ru_RU.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ -$labels['useimapsubscriptions'] = 'Использовать IMAP подписки'; + +$labels = array(); +$labels['useimapsubscriptions'] = 'Использовать IMAP подписку'; + ?> diff --git a/plugins/subscriptions_option/localization/sk_SK.inc b/plugins/subscriptions_option/localization/sk_SK.inc index f65a508d4..4507e26e8 100644 --- a/plugins/subscriptions_option/localization/sk_SK.inc +++ b/plugins/subscriptions_option/localization/sk_SK.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Použi IMAP nastavenia'; + ?> diff --git a/plugins/subscriptions_option/localization/sl_SI.inc b/plugins/subscriptions_option/localization/sl_SI.inc index ea53eb297..8ef5f21e0 100644 --- a/plugins/subscriptions_option/localization/sl_SI.inc +++ b/plugins/subscriptions_option/localization/sl_SI.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Uporabi IMAP-naročnino'; + ?> diff --git a/plugins/subscriptions_option/localization/sr_CS.inc b/plugins/subscriptions_option/localization/sr_CS.inc index 3bce30b50..ad84ed0e1 100644 --- a/plugins/subscriptions_option/localization/sr_CS.inc +++ b/plugins/subscriptions_option/localization/sr_CS.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Користите ИМАП Уписивање'; + ?> diff --git a/plugins/subscriptions_option/localization/sv_SE.inc b/plugins/subscriptions_option/localization/sv_SE.inc index 2d03fe48b..1a8eae123 100644 --- a/plugins/subscriptions_option/localization/sv_SE.inc +++ b/plugins/subscriptions_option/localization/sv_SE.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Använd IMAP-prenumerationer'; + ?> diff --git a/plugins/subscriptions_option/localization/tr_TR.inc b/plugins/subscriptions_option/localization/tr_TR.inc index 83bf38453..7d69e9c0c 100644 --- a/plugins/subscriptions_option/localization/tr_TR.inc +++ b/plugins/subscriptions_option/localization/tr_TR.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'IMAP Aboneliklerini kullan'; + ?> diff --git a/plugins/subscriptions_option/localization/vi_VN.inc b/plugins/subscriptions_option/localization/vi_VN.inc index c48a0f771..52e4bd676 100644 --- a/plugins/subscriptions_option/localization/vi_VN.inc +++ b/plugins/subscriptions_option/localization/vi_VN.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = 'Đăng ký dùng cách thức IMAP'; + ?> diff --git a/plugins/subscriptions_option/localization/zh_CN.inc b/plugins/subscriptions_option/localization/zh_CN.inc index efa85b841..3b146d7b1 100644 --- a/plugins/subscriptions_option/localization/zh_CN.inc +++ b/plugins/subscriptions_option/localization/zh_CN.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = '使用 IMAP 订阅'; + ?> diff --git a/plugins/subscriptions_option/localization/zh_TW.inc b/plugins/subscriptions_option/localization/zh_TW.inc index fe8524a51..226be8e07 100644 --- a/plugins/subscriptions_option/localization/zh_TW.inc +++ b/plugins/subscriptions_option/localization/zh_TW.inc @@ -15,5 +15,8 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/ */ + +$labels = array(); $labels['useimapsubscriptions'] = '使用IMAP訂閱'; + ?> diff --git a/plugins/subscriptions_option/package.xml b/plugins/subscriptions_option/package.xml index 04f2c1b3c..79d44f8c2 100644 --- a/plugins/subscriptions_option/package.xml +++ b/plugins/subscriptions_option/package.xml @@ -32,7 +32,7 @@ stable stable - GNU GPLv3+ + GNU GPLv2 - diff --git a/plugins/subscriptions_option/subscriptions_option.php b/plugins/subscriptions_option/subscriptions_option.php index 130f16a8b..b81a5ac8a 100644 --- a/plugins/subscriptions_option/subscriptions_option.php +++ b/plugins/subscriptions_option/subscriptions_option.php @@ -7,12 +7,12 @@ * It includes a toggle on the settings page under "Server Settings". * The preference can also be locked * - * Add it to the plugins list in config.inc.php to enable the user option + * Add it to the plugins list in config/main.inc.php to enable the user option * The user option can be hidden and set globally by adding 'use_subscriptions' * to the 'dont_override' configure line: - * $config['dont_override'] = array('use_subscriptions'); + * $rcmail_config['dont_override'] = array('use_subscriptions'); * and then set the global preference - * $config['use_subscriptions'] = true; // or false + * $rcmail_config['use_subscriptions'] = true; // or false * * Roundcube caches folder lists. When a user changes this option or visits * their folder list, this cache is refreshed. If the option is on the @@ -21,7 +21,6 @@ * * @version @package_version@ * @author Ziba Scott - * @license GNU GPLv3+ */ class subscriptions_option extends rcube_plugin { @@ -47,7 +46,7 @@ class subscriptions_option extends rcube_plugin $checkbox = new html_checkbox(array('name' => '_use_subscriptions', 'id' => $field_id, 'value' => 1)); $args['blocks']['main']['options']['use_subscriptions'] = array( - 'title' => html::label($field_id, rcube::Q($this->gettext('useimapsubscriptions'))), + 'title' => html::label($field_id, Q($this->gettext('useimapsubscriptions'))), 'content' => $checkbox->show($use_subscriptions?1:0), ); } diff --git a/plugins/userinfo/localization/ar_SA.inc b/plugins/userinfo/localization/ar_SA.inc index fbb44c5fa..adfa9a9a6 100644 --- a/plugins/userinfo/localization/ar_SA.inc +++ b/plugins/userinfo/localization/ar_SA.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'معلومات المستخدم'; $labels['created'] = 'أُنشئ في'; $labels['lastlogin'] = 'آخر دخول'; $labels['defaultidentity'] = 'الهوية الافتراضية'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/az_AZ.inc b/plugins/userinfo/localization/az_AZ.inc index f262ea305..bd70cd128 100644 --- a/plugins/userinfo/localization/az_AZ.inc +++ b/plugins/userinfo/localization/az_AZ.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Məlumat'; $labels['created'] = 'Yaradılma tarixi'; $labels['lastlogin'] = 'Sonuncu giriş'; $labels['defaultidentity'] = 'Default profil'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/be_BE.inc b/plugins/userinfo/localization/be_BE.inc index 724e8169d..b4b8a5cba 100644 --- a/plugins/userinfo/localization/be_BE.inc +++ b/plugins/userinfo/localization/be_BE.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Асабістыя звесткі'; $labels['created'] = 'Створаны'; $labels['lastlogin'] = 'Апошні ўваход'; -$labels['defaultidentity'] = 'Стандартная тоеснасць'; +$labels['defaultidentity'] = 'Стандартнае ўвасабленне'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/ber.inc b/plugins/userinfo/localization/ber.inc index 046e45733..12fe4442e 100644 --- a/plugins/userinfo/localization/ber.inc +++ b/plugins/userinfo/localization/ber.inc @@ -13,4 +13,5 @@ +-----------------------------------------------------------------------+ */ +$labels = array(); diff --git a/plugins/userinfo/localization/br.inc b/plugins/userinfo/localization/br.inc index a751bd660..560e61788 100644 --- a/plugins/userinfo/localization/br.inc +++ b/plugins/userinfo/localization/br.inc @@ -15,7 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Titouroù an arveriad'; $labels['created'] = 'Krouet'; $labels['lastlogin'] = 'Kennask diwezhañ'; +$labels['defaultidentity'] = 'Default Identity'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/bs_BA.inc b/plugins/userinfo/localization/bs_BA.inc index 9dd0d258a..e7aff175f 100644 --- a/plugins/userinfo/localization/bs_BA.inc +++ b/plugins/userinfo/localization/bs_BA.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Korisničke informacije'; $labels['created'] = 'Kreirano'; $labels['lastlogin'] = 'Zadnja prijava'; $labels['defaultidentity'] = 'Glavni identitet'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/ca_ES.inc b/plugins/userinfo/localization/ca_ES.inc index 8c82c52a2..8a4837ec3 100644 --- a/plugins/userinfo/localization/ca_ES.inc +++ b/plugins/userinfo/localization/ca_ES.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Informació de l\'usuari/a'; $labels['created'] = 'Creat'; $labels['lastlogin'] = 'Última connexió'; $labels['defaultidentity'] = 'Identitat per defecte'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/cs_CZ.inc b/plugins/userinfo/localization/cs_CZ.inc index 761926ce8..ef8d5b02f 100644 --- a/plugins/userinfo/localization/cs_CZ.inc +++ b/plugins/userinfo/localization/cs_CZ.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Uživatel'; $labels['created'] = 'Vytvořen'; $labels['lastlogin'] = 'Naspoledy přihlášen'; $labels['defaultidentity'] = 'Výchozí identita'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/cy_GB.inc b/plugins/userinfo/localization/cy_GB.inc index 3ce86a65d..032e63462 100644 --- a/plugins/userinfo/localization/cy_GB.inc +++ b/plugins/userinfo/localization/cy_GB.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Gwybodaeth defnyddiwr'; $labels['created'] = 'Crëwyd'; $labels['lastlogin'] = 'Mewngofnodiad diwethaf'; $labels['defaultidentity'] = 'Personoliaeth arferol'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/da_DK.inc b/plugins/userinfo/localization/da_DK.inc index be72a5b26..7bcfebc3d 100644 --- a/plugins/userinfo/localization/da_DK.inc +++ b/plugins/userinfo/localization/da_DK.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Brugerinfo'; $labels['created'] = 'Oprettet'; $labels['lastlogin'] = 'Sidste login'; $labels['defaultidentity'] = 'Standardidentitet'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/de_CH.inc b/plugins/userinfo/localization/de_CH.inc index 695129a38..7c20f52df 100644 --- a/plugins/userinfo/localization/de_CH.inc +++ b/plugins/userinfo/localization/de_CH.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Benutzerinfo'; $labels['created'] = 'Erstellt'; $labels['lastlogin'] = 'Letztes Login'; $labels['defaultidentity'] = 'Standard-Absender'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/de_DE.inc b/plugins/userinfo/localization/de_DE.inc index 8a1ab37a3..542fe49b0 100644 --- a/plugins/userinfo/localization/de_DE.inc +++ b/plugins/userinfo/localization/de_DE.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Benutzer-Information'; $labels['created'] = 'angelegt'; $labels['lastlogin'] = 'letzte Anmeldung'; $labels['defaultidentity'] = 'Standard-Identität'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/en_GB.inc b/plugins/userinfo/localization/en_GB.inc index d2951a984..01230de85 100644 --- a/plugins/userinfo/localization/en_GB.inc +++ b/plugins/userinfo/localization/en_GB.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'User info'; $labels['created'] = 'Created'; $labels['lastlogin'] = 'Last Login'; $labels['defaultidentity'] = 'Default Identity'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/en_US.inc b/plugins/userinfo/localization/en_US.inc index 01230de85..b269dd560 100644 --- a/plugins/userinfo/localization/en_US.inc +++ b/plugins/userinfo/localization/en_US.inc @@ -5,7 +5,7 @@ | plugins/userinfo/localization/.inc | | | | Localization file of the Roundcube Webmail Userinfo plugin | - | Copyright (C) 2012-2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | diff --git a/plugins/userinfo/localization/eo.inc b/plugins/userinfo/localization/eo.inc index c7768552a..db0ac37d3 100644 --- a/plugins/userinfo/localization/eo.inc +++ b/plugins/userinfo/localization/eo.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Informoj pri uzanto'; $labels['created'] = 'Kreita'; $labels['lastlogin'] = 'Lasta ensaluto'; $labels['defaultidentity'] = 'Apriora idento'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/es_ES.inc b/plugins/userinfo/localization/es_ES.inc index 6dde3c59f..a17c23a52 100644 --- a/plugins/userinfo/localization/es_ES.inc +++ b/plugins/userinfo/localization/es_ES.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Información de usuario'; $labels['created'] = 'Creado'; $labels['lastlogin'] = 'Última conexión'; $labels['defaultidentity'] = 'Identidad predeterminada'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/et_EE.inc b/plugins/userinfo/localization/et_EE.inc index 64f53b2fa..878395857 100644 --- a/plugins/userinfo/localization/et_EE.inc +++ b/plugins/userinfo/localization/et_EE.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Kasutaja info'; $labels['created'] = 'Loodud'; $labels['lastlogin'] = 'Viimane logimine'; $labels['defaultidentity'] = 'Vaikeidentiteet'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/fa_IR.inc b/plugins/userinfo/localization/fa_IR.inc index 3f2c3952f..6efc285e5 100644 --- a/plugins/userinfo/localization/fa_IR.inc +++ b/plugins/userinfo/localization/fa_IR.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'اطلاعات کاربر'; $labels['created'] = 'ایجاد شده'; $labels['lastlogin'] = 'آخرین ورود'; $labels['defaultidentity'] = 'شناسه پیش‌فرض'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/fi_FI.inc b/plugins/userinfo/localization/fi_FI.inc index a06855794..f5f538f91 100644 --- a/plugins/userinfo/localization/fi_FI.inc +++ b/plugins/userinfo/localization/fi_FI.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Käyttäjätiedot'; $labels['created'] = 'Luotu'; $labels['lastlogin'] = 'Viimeisin kirjautuminen'; $labels['defaultidentity'] = 'Oletushenkilöys'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/fr_FR.inc b/plugins/userinfo/localization/fr_FR.inc index 828101c69..c830c587d 100644 --- a/plugins/userinfo/localization/fr_FR.inc +++ b/plugins/userinfo/localization/fr_FR.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Info utilisateur'; $labels['created'] = 'Date de création'; $labels['lastlogin'] = 'Dernière connexion'; $labels['defaultidentity'] = 'Identité principale'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/gl_ES.inc b/plugins/userinfo/localization/gl_ES.inc index 860c92673..ba44e689f 100644 --- a/plugins/userinfo/localization/gl_ES.inc +++ b/plugins/userinfo/localization/gl_ES.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Información do usuario'; $labels['created'] = 'Creado'; $labels['lastlogin'] = 'Última conexión'; $labels['defaultidentity'] = 'Identidade predeterminada'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/he_IL.inc b/plugins/userinfo/localization/he_IL.inc index 6e7c3a931..e5b40c65e 100644 --- a/plugins/userinfo/localization/he_IL.inc +++ b/plugins/userinfo/localization/he_IL.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'פרטי המשתמש'; $labels['created'] = 'נוצר'; $labels['lastlogin'] = 'הכמיסה האחרונה למערכת'; $labels['defaultidentity'] = 'זהות ברירת מחדל'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/hr_HR.inc b/plugins/userinfo/localization/hr_HR.inc index 669d85ce0..8f3eb2030 100644 --- a/plugins/userinfo/localization/hr_HR.inc +++ b/plugins/userinfo/localization/hr_HR.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Informacije o korisniku'; $labels['created'] = 'Stvoreno'; $labels['lastlogin'] = 'Zadnja prijava (login)'; $labels['defaultidentity'] = 'Preddefinirani identitet'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/hu_HU.inc b/plugins/userinfo/localization/hu_HU.inc index 0b3334487..f09f42eff 100644 --- a/plugins/userinfo/localization/hu_HU.inc +++ b/plugins/userinfo/localization/hu_HU.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Felhasználói információ'; $labels['created'] = 'Létrehozva'; $labels['lastlogin'] = 'Utolsó bejelentkezés'; $labels['defaultidentity'] = 'Alapértelmezett azonosító'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/hy_AM.inc b/plugins/userinfo/localization/hy_AM.inc index 42add9df9..2293329d8 100644 --- a/plugins/userinfo/localization/hy_AM.inc +++ b/plugins/userinfo/localization/hy_AM.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Օգտվողի տվյալներ'; $labels['created'] = 'Ստեղծված'; $labels['lastlogin'] = 'Վերջին մուտքը`'; $labels['defaultidentity'] = 'Լռելյալ ինքնությունն'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/ia.inc b/plugins/userinfo/localization/ia.inc index 4532d9459..bb53ba870 100644 --- a/plugins/userinfo/localization/ia.inc +++ b/plugins/userinfo/localization/ia.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Information de usator'; $labels['created'] = 'Create'; $labels['lastlogin'] = 'Ultime initio de session'; $labels['defaultidentity'] = 'Identitate predeterminate'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/id_ID.inc b/plugins/userinfo/localization/id_ID.inc index aa3bb661a..59ab0d486 100644 --- a/plugins/userinfo/localization/id_ID.inc +++ b/plugins/userinfo/localization/id_ID.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Informasi pengguna'; $labels['created'] = 'Telah dibuat'; $labels['lastlogin'] = 'Masuk Terakhir'; $labels['defaultidentity'] = 'Identitas Standar'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/it_IT.inc b/plugins/userinfo/localization/it_IT.inc index 76e0e156a..33b72114f 100644 --- a/plugins/userinfo/localization/it_IT.inc +++ b/plugins/userinfo/localization/it_IT.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Informazioni utente'; $labels['created'] = 'Creato'; $labels['lastlogin'] = 'Ultimo Login'; $labels['defaultidentity'] = 'Identità predefinita'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/ja_JP.inc b/plugins/userinfo/localization/ja_JP.inc index c9a79e10d..bf8d0aab8 100644 --- a/plugins/userinfo/localization/ja_JP.inc +++ b/plugins/userinfo/localization/ja_JP.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'ユーザー情報'; $labels['created'] = '作成日時'; $labels['lastlogin'] = '最後のログイン'; $labels['defaultidentity'] = '既定の識別情報'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/km_KH.inc b/plugins/userinfo/localization/km_KH.inc index ce7c0a18c..554fe3773 100644 --- a/plugins/userinfo/localization/km_KH.inc +++ b/plugins/userinfo/localization/km_KH.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'ព័តមានអ្នកប្រើប្រាស់'; $labels['created'] = 'បាន​បង្កើត'; $labels['lastlogin'] = 'ចុះឈ្មោះចូលចុងក្រោយ'; $labels['defaultidentity'] = 'អត្តសញ្ញាណ​លំនាំដើម'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/ko_KR.inc b/plugins/userinfo/localization/ko_KR.inc index 5a95d2e77..ec8651263 100644 --- a/plugins/userinfo/localization/ko_KR.inc +++ b/plugins/userinfo/localization/ko_KR.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = '사용자 정보'; $labels['created'] = '생성됨'; $labels['lastlogin'] = '마지막 로그인'; $labels['defaultidentity'] = '기본 신분증'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/ku.inc b/plugins/userinfo/localization/ku.inc index 7accf51ad..80b436632 100644 --- a/plugins/userinfo/localization/ku.inc +++ b/plugins/userinfo/localization/ku.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'nawnişani bakar henar'; $labels['created'] = 'Hat afirandin'; $labels['lastlogin'] = 'axrin hatna jurawa'; $labels['defaultidentity'] = 'Nasnameya Pêşsalixbûyî'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/lt_LT.inc b/plugins/userinfo/localization/lt_LT.inc index a7a00d076..88ce427c0 100644 --- a/plugins/userinfo/localization/lt_LT.inc +++ b/plugins/userinfo/localization/lt_LT.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Informacija apie naudotoją'; $labels['created'] = 'Sukurtas'; $labels['lastlogin'] = 'Paskutinį kartą prisijungė'; $labels['defaultidentity'] = 'Numatytoji tapatybė'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/lv_LV.inc b/plugins/userinfo/localization/lv_LV.inc index 5bfb4059d..9d2a97cbd 100644 --- a/plugins/userinfo/localization/lv_LV.inc +++ b/plugins/userinfo/localization/lv_LV.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Informācija par lietotāju'; $labels['created'] = 'Izveidots'; $labels['lastlogin'] = 'Pēdējā pieteikšanās'; $labels['defaultidentity'] = 'Noklusētā identitāte'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/ml_IN.inc b/plugins/userinfo/localization/ml_IN.inc index 7968bc7e6..6b16e50ec 100644 --- a/plugins/userinfo/localization/ml_IN.inc +++ b/plugins/userinfo/localization/ml_IN.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'ഉപയോക്താവിന്റെ വിവരം'; $labels['created'] = 'നിര്‍മ്മിച്ചു'; $labels['lastlogin'] = 'അവസാന പ്രവേശനം'; $labels['defaultidentity'] = 'സാധാരണ വ്യക്തിത്വം'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/mr_IN.inc b/plugins/userinfo/localization/mr_IN.inc index 71a06ab58..52bbde652 100644 --- a/plugins/userinfo/localization/mr_IN.inc +++ b/plugins/userinfo/localization/mr_IN.inc @@ -15,6 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'वापरकर्त्याची माहिती'; $labels['created'] = 'निर्माण केलेले'; +$labels['lastlogin'] = 'Last Login'; +$labels['defaultidentity'] = 'Default Identity'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/nb_NO.inc b/plugins/userinfo/localization/nb_NO.inc index b998bb577..f674375ef 100644 --- a/plugins/userinfo/localization/nb_NO.inc +++ b/plugins/userinfo/localization/nb_NO.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Brukerinformasjon'; $labels['created'] = 'Opprettet'; $labels['lastlogin'] = 'Sist logget inn'; $labels['defaultidentity'] = 'Standard identitet'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/nl_NL.inc b/plugins/userinfo/localization/nl_NL.inc index 18ca91688..8c46ca6c4 100644 --- a/plugins/userinfo/localization/nl_NL.inc +++ b/plugins/userinfo/localization/nl_NL.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Gebruikersinformatie'; $labels['created'] = 'Aangemaakt'; $labels['lastlogin'] = 'Laatste aanmelding'; $labels['defaultidentity'] = 'Standaardidentiteit'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/nn_NO.inc b/plugins/userinfo/localization/nn_NO.inc index 61acd192a..749935414 100644 --- a/plugins/userinfo/localization/nn_NO.inc +++ b/plugins/userinfo/localization/nn_NO.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Brukarinfo'; $labels['created'] = 'Laga'; $labels['lastlogin'] = 'Sist logga inn'; $labels['defaultidentity'] = 'Standardidentitet'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/pl_PL.inc b/plugins/userinfo/localization/pl_PL.inc index 0f68ae847..abdb043c7 100644 --- a/plugins/userinfo/localization/pl_PL.inc +++ b/plugins/userinfo/localization/pl_PL.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Informacje'; $labels['created'] = 'Utworzony'; $labels['lastlogin'] = 'Ostatnie logowanie'; $labels['defaultidentity'] = 'Domyślna tożsamość'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/pt_BR.inc b/plugins/userinfo/localization/pt_BR.inc index b261f6718..fad85c18f 100644 --- a/plugins/userinfo/localization/pt_BR.inc +++ b/plugins/userinfo/localization/pt_BR.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Informações do usuário'; $labels['created'] = 'Criado'; $labels['lastlogin'] = 'Último Login'; $labels['defaultidentity'] = 'Identidade Padrão'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/pt_PT.inc b/plugins/userinfo/localization/pt_PT.inc index 85b3e8281..1ea1b5cbf 100644 --- a/plugins/userinfo/localization/pt_PT.inc +++ b/plugins/userinfo/localization/pt_PT.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Informação do utilizador'; $labels['created'] = 'Criado'; $labels['lastlogin'] = 'Último acesso'; $labels['defaultidentity'] = 'Identidade pré-definida'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/ro_RO.inc b/plugins/userinfo/localization/ro_RO.inc index 64e0b3691..2f96f849b 100644 --- a/plugins/userinfo/localization/ro_RO.inc +++ b/plugins/userinfo/localization/ro_RO.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Informații utilizator'; $labels['created'] = 'Data creării'; $labels['lastlogin'] = 'Ultima autentificare'; $labels['defaultidentity'] = 'Identitate principală'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/ru_RU.inc b/plugins/userinfo/localization/ru_RU.inc index ca449d88c..cc9dd5a11 100644 --- a/plugins/userinfo/localization/ru_RU.inc +++ b/plugins/userinfo/localization/ru_RU.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Информация'; $labels['created'] = 'Создан'; $labels['lastlogin'] = 'Последний вход'; $labels['defaultidentity'] = 'Профиль по умолчанию'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/sk_SK.inc b/plugins/userinfo/localization/sk_SK.inc index f6b0c63d2..16339871d 100644 --- a/plugins/userinfo/localization/sk_SK.inc +++ b/plugins/userinfo/localization/sk_SK.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Užívateľské informácie'; $labels['created'] = 'Vytvorené'; $labels['lastlogin'] = 'Posledné prihlásenie'; $labels['defaultidentity'] = 'Štandardná identita'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/sl_SI.inc b/plugins/userinfo/localization/sl_SI.inc index a427a0945..2e384c82c 100644 --- a/plugins/userinfo/localization/sl_SI.inc +++ b/plugins/userinfo/localization/sl_SI.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Podatki o uporabniku'; $labels['created'] = 'Ustvarjen'; $labels['lastlogin'] = 'Zadnja prijava'; $labels['defaultidentity'] = 'Privzeta identiteta'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/sr_CS.inc b/plugins/userinfo/localization/sr_CS.inc index 70271e51c..f4d869098 100644 --- a/plugins/userinfo/localization/sr_CS.inc +++ b/plugins/userinfo/localization/sr_CS.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Подаци о кориснику'; $labels['created'] = 'Направљено'; $labels['lastlogin'] = 'Последњи Логин'; $labels['defaultidentity'] = 'подразумевани идентитет'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/sv_SE.inc b/plugins/userinfo/localization/sv_SE.inc index 5583a4e2c..0b8d5fedd 100644 --- a/plugins/userinfo/localization/sv_SE.inc +++ b/plugins/userinfo/localization/sv_SE.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Användarinfo'; $labels['created'] = 'Skapad'; $labels['lastlogin'] = 'Senast inloggad'; $labels['defaultidentity'] = 'Standardidentitet'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/tr_TR.inc b/plugins/userinfo/localization/tr_TR.inc index 5d876f4d2..3d8a0d2da 100644 --- a/plugins/userinfo/localization/tr_TR.inc +++ b/plugins/userinfo/localization/tr_TR.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Kullanıcı bilgisi'; $labels['created'] = 'Oluşturuldu'; $labels['lastlogin'] = 'Son Giriş'; $labels['defaultidentity'] = 'Öntanımlı kimlik'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/uk_UA.inc b/plugins/userinfo/localization/uk_UA.inc index 91c567047..fe2d54b27 100644 --- a/plugins/userinfo/localization/uk_UA.inc +++ b/plugins/userinfo/localization/uk_UA.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Інформація'; $labels['created'] = 'Створено'; $labels['lastlogin'] = 'Останній захід'; $labels['defaultidentity'] = 'Профіль за замовчуванням'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/vi_VN.inc b/plugins/userinfo/localization/vi_VN.inc index 2a87163be..46553c76a 100644 --- a/plugins/userinfo/localization/vi_VN.inc +++ b/plugins/userinfo/localization/vi_VN.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = 'Thông tin người dùng'; $labels['created'] = 'Được tạo'; $labels['lastlogin'] = 'Lần đăng nhập cuối'; $labels['defaultidentity'] = 'Nhận diện mặc định'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/zh_CN.inc b/plugins/userinfo/localization/zh_CN.inc index b497c10ca..2b06ab218 100644 --- a/plugins/userinfo/localization/zh_CN.inc +++ b/plugins/userinfo/localization/zh_CN.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = '用户信息'; $labels['created'] = '创建于'; $labels['lastlogin'] = '最近登录'; $labels['defaultidentity'] = '默认身份'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/localization/zh_TW.inc b/plugins/userinfo/localization/zh_TW.inc index 811cbb996..05b996629 100644 --- a/plugins/userinfo/localization/zh_TW.inc +++ b/plugins/userinfo/localization/zh_TW.inc @@ -15,8 +15,11 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/ */ + +$labels = array(); $labels['userinfo'] = '使用者資訊'; $labels['created'] = '建立時間'; $labels['lastlogin'] = '上次登入'; $labels['defaultidentity'] = '預設身份'; + ?> \ No newline at end of file diff --git a/plugins/userinfo/userinfo.php b/plugins/userinfo/userinfo.php index a175563ef..efb65f51d 100644 --- a/plugins/userinfo/userinfo.php +++ b/plugins/userinfo/userinfo.php @@ -31,25 +31,25 @@ class userinfo extends rcube_plugin $table = new html_table(array('cols' => 2, 'cellpadding' => 3)); $table->add('title', 'ID'); - $table->add('', rcube::Q($user->ID)); + $table->add('', Q($user->ID)); - $table->add('title', rcube::Q($this->gettext('username'))); - $table->add('', rcube::Q($user->data['username'])); + $table->add('title', Q($this->gettext('username'))); + $table->add('', Q($user->data['username'])); - $table->add('title', rcube::Q($this->gettext('server'))); - $table->add('', rcube::Q($user->data['mail_host'])); + $table->add('title', Q($this->gettext('server'))); + $table->add('', Q($user->data['mail_host'])); - $table->add('title', rcube::Q($this->gettext('created'))); - $table->add('', rcube::Q($user->data['created'])); + $table->add('title', Q($this->gettext('created'))); + $table->add('', Q($user->data['created'])); - $table->add('title', rcube::Q($this->gettext('lastlogin'))); - $table->add('', rcube::Q($user->data['last_login'])); + $table->add('title', Q($this->gettext('lastlogin'))); + $table->add('', Q($user->data['last_login'])); $identity = $user->get_identity(); - $table->add('title', rcube::Q($this->gettext('defaultidentity'))); - $table->add('', rcube::Q($identity['name'] . ' <' . $identity['email'] . '>')); + $table->add('title', Q($this->gettext('defaultidentity'))); + $table->add('', Q($identity['name'] . ' <' . $identity['email'] . '>')); - return html::tag('h4', null, rcube::Q('Infos for ' . $user->get_username())) . $table->show(); + return html::tag('h4', null, Q('Infos for ' . $user->get_username())) . $table->show(); } } diff --git a/plugins/vcard_attachments/localization/az_AZ.inc b/plugins/vcard_attachments/localization/az_AZ.inc index 7329c7f18..85fbf7fa5 100644 --- a/plugins/vcard_attachments/localization/az_AZ.inc +++ b/plugins/vcard_attachments/localization/az_AZ.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'vCard-ı kontakta daxil et'; $labels['vcardsavefailed'] = 'vCard-ı saxlamaq alınmadı'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/be_BE.inc b/plugins/vcard_attachments/localization/be_BE.inc index 57a48e12b..eb8208e74 100644 --- a/plugins/vcard_attachments/localization/be_BE.inc +++ b/plugins/vcard_attachments/localization/be_BE.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Дадаць vCard у адрасную кнігу'; $labels['vcardsavefailed'] = 'Немагчыма захаваць vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/bs_BA.inc b/plugins/vcard_attachments/localization/bs_BA.inc index 32304d60c..e13ccc739 100644 --- a/plugins/vcard_attachments/localization/bs_BA.inc +++ b/plugins/vcard_attachments/localization/bs_BA.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Dodaj vCard u adresar'; $labels['vcardsavefailed'] = 'Nije moguće sačuvati vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/ca_ES.inc b/plugins/vcard_attachments/localization/ca_ES.inc index c09315df3..b0f36d95a 100644 --- a/plugins/vcard_attachments/localization/ca_ES.inc +++ b/plugins/vcard_attachments/localization/ca_ES.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Afegeix la vCard a la llibreta d\'adreces'; $labels['vcardsavefailed'] = 'No s\'ha pogut desar la vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/cs_CZ.inc b/plugins/vcard_attachments/localization/cs_CZ.inc index 372d650d9..dc8e1f84c 100644 --- a/plugins/vcard_attachments/localization/cs_CZ.inc +++ b/plugins/vcard_attachments/localization/cs_CZ.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Přidat vCard do adresáře'; $labels['vcardsavefailed'] = 'Nelze uložit vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/cy_GB.inc b/plugins/vcard_attachments/localization/cy_GB.inc index 814ed0be4..24d32f48e 100644 --- a/plugins/vcard_attachments/localization/cy_GB.inc +++ b/plugins/vcard_attachments/localization/cy_GB.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Ychwanegu vCard i\'r llyfr cyfeiriadau'; $labels['vcardsavefailed'] = 'Methwyd cadw\'r vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/da_DK.inc b/plugins/vcard_attachments/localization/da_DK.inc index 3107246e9..bc9c2bef1 100644 --- a/plugins/vcard_attachments/localization/da_DK.inc +++ b/plugins/vcard_attachments/localization/da_DK.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Tilføj vCard til adressebogen'; $labels['vcardsavefailed'] = 'Kan ikke gemme dette vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/de_CH.inc b/plugins/vcard_attachments/localization/de_CH.inc index edee86fce..577586994 100644 --- a/plugins/vcard_attachments/localization/de_CH.inc +++ b/plugins/vcard_attachments/localization/de_CH.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Kontakt im Adressbuch speichern'; $labels['vcardsavefailed'] = 'Der Kontakt konnte nicht gespeichert werden'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/de_DE.inc b/plugins/vcard_attachments/localization/de_DE.inc index edee86fce..577586994 100644 --- a/plugins/vcard_attachments/localization/de_DE.inc +++ b/plugins/vcard_attachments/localization/de_DE.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Kontakt im Adressbuch speichern'; $labels['vcardsavefailed'] = 'Der Kontakt konnte nicht gespeichert werden'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/en_GB.inc b/plugins/vcard_attachments/localization/en_GB.inc index ac21ef96b..a52a93228 100644 --- a/plugins/vcard_attachments/localization/en_GB.inc +++ b/plugins/vcard_attachments/localization/en_GB.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Add vCard to addressbook'; $labels['vcardsavefailed'] = 'Unable to save vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/en_US.inc b/plugins/vcard_attachments/localization/en_US.inc index a52a93228..02eed29ea 100644 --- a/plugins/vcard_attachments/localization/en_US.inc +++ b/plugins/vcard_attachments/localization/en_US.inc @@ -5,7 +5,7 @@ | plugins/vcard_attachments/localization/.inc | | | | Localization file of the Roundcube Webmail Vcard Attachments plugin | - | Copyright (C) 2012-2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | diff --git a/plugins/vcard_attachments/localization/eo.inc b/plugins/vcard_attachments/localization/eo.inc index bcdfbb0d5..e98ac1971 100644 --- a/plugins/vcard_attachments/localization/eo.inc +++ b/plugins/vcard_attachments/localization/eo.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Aldoni vCard al adresaro'; $labels['vcardsavefailed'] = 'vCard ne konserveblas'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/es_ES.inc b/plugins/vcard_attachments/localization/es_ES.inc index 8c777d2ed..55ab6b6a1 100644 --- a/plugins/vcard_attachments/localization/es_ES.inc +++ b/plugins/vcard_attachments/localization/es_ES.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Añadir la tarjeta a la libreta de direcciones'; $labels['vcardsavefailed'] = 'No ha sido posible guardar la tarjeta'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/et_EE.inc b/plugins/vcard_attachments/localization/et_EE.inc index 73d2070eb..dd74b8f66 100644 --- a/plugins/vcard_attachments/localization/et_EE.inc +++ b/plugins/vcard_attachments/localization/et_EE.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Lisa vCard aadressiraamatusse'; $labels['vcardsavefailed'] = 'vCard salvestamine nurjus'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/fa_IR.inc b/plugins/vcard_attachments/localization/fa_IR.inc index ea93d8c61..5b28d566f 100644 --- a/plugins/vcard_attachments/localization/fa_IR.inc +++ b/plugins/vcard_attachments/localization/fa_IR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'افزودن vCard به دفترچه آدرس'; $labels['vcardsavefailed'] = 'ناتوان در ذخیره vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/fi_FI.inc b/plugins/vcard_attachments/localization/fi_FI.inc index 58aceb18d..254745609 100644 --- a/plugins/vcard_attachments/localization/fi_FI.inc +++ b/plugins/vcard_attachments/localization/fi_FI.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Lisää vCard osoitekirjaan'; $labels['vcardsavefailed'] = 'vCardin tallennus epäonnistui'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/fr_FR.inc b/plugins/vcard_attachments/localization/fr_FR.inc index 243f6aea8..03274e2a9 100644 --- a/plugins/vcard_attachments/localization/fr_FR.inc +++ b/plugins/vcard_attachments/localization/fr_FR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Ajouter la vCard au carnet d\'adresses'; $labels['vcardsavefailed'] = 'Impossible d\'enregistrer la vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/gl_ES.inc b/plugins/vcard_attachments/localization/gl_ES.inc index af6f2842e..b502c85c7 100644 --- a/plugins/vcard_attachments/localization/gl_ES.inc +++ b/plugins/vcard_attachments/localization/gl_ES.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ -$labels['addvcardmsg'] = 'Engadir vCard ao caderno de enderezos'; -$labels['vcardsavefailed'] = 'Non foi posible gardar a vCard'; + +$labels = array(); +$labels['addvcardmsg'] = 'Engadir a tarxeta ao caderno de enderezos'; +$labels['vcardsavefailed'] = 'Non foi posible gardar a tarxeta'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/he_IL.inc b/plugins/vcard_attachments/localization/he_IL.inc index 4a0a4cd4a..2e8716875 100644 --- a/plugins/vcard_attachments/localization/he_IL.inc +++ b/plugins/vcard_attachments/localization/he_IL.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'הוספת כרטיס ביקור בפורמט vCard לספר הכתובות'; $labels['vcardsavefailed'] = 'לא ניתן לשמור את כרטיס הביקור vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/hr_HR.inc b/plugins/vcard_attachments/localization/hr_HR.inc index 93fc17cb0..c22f93b5f 100644 --- a/plugins/vcard_attachments/localization/hr_HR.inc +++ b/plugins/vcard_attachments/localization/hr_HR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Dodaj vCard u imenik'; $labels['vcardsavefailed'] = 'Ne mogu pohraniti vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/hu_HU.inc b/plugins/vcard_attachments/localization/hu_HU.inc index e4d609f01..4f166b025 100644 --- a/plugins/vcard_attachments/localization/hu_HU.inc +++ b/plugins/vcard_attachments/localization/hu_HU.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'vCard hozzáadása a címjegyzékhez'; $labels['vcardsavefailed'] = 'Sikertelen a vCard mentése'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/hy_AM.inc b/plugins/vcard_attachments/localization/hy_AM.inc index d565882ff..7bd99aec3 100644 --- a/plugins/vcard_attachments/localization/hy_AM.inc +++ b/plugins/vcard_attachments/localization/hy_AM.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Ավելացնել vCard-ը հասցեագրքում'; $labels['vcardsavefailed'] = 'vCard-ի պահպանումը ձախողվեց'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/id_ID.inc b/plugins/vcard_attachments/localization/id_ID.inc index ea3a31abf..8766e613d 100644 --- a/plugins/vcard_attachments/localization/id_ID.inc +++ b/plugins/vcard_attachments/localization/id_ID.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Tambahkan vCard ke buku alamat'; $labels['vcardsavefailed'] = 'Tidak dapat menyimpan vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/it_IT.inc b/plugins/vcard_attachments/localization/it_IT.inc index fbe498f88..e91f9414c 100644 --- a/plugins/vcard_attachments/localization/it_IT.inc +++ b/plugins/vcard_attachments/localization/it_IT.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Aggiungi vCard alla Agenda'; $labels['vcardsavefailed'] = 'Abilita a salvare vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/ja_JP.inc b/plugins/vcard_attachments/localization/ja_JP.inc index 4cd738b08..0daf160c4 100644 --- a/plugins/vcard_attachments/localization/ja_JP.inc +++ b/plugins/vcard_attachments/localization/ja_JP.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'vCardをアドレス帳に追加'; $labels['vcardsavefailed'] = 'vCardを保存できませんでした。'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/km_KH.inc b/plugins/vcard_attachments/localization/km_KH.inc index f3909e0b5..5720c0050 100644 --- a/plugins/vcard_attachments/localization/km_KH.inc +++ b/plugins/vcard_attachments/localization/km_KH.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'បន្ថែម vCard ទៅសៀវភៅកត់ត្រា'; $labels['vcardsavefailed'] = 'មិនអាចរក្សាទុក vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/ko_KR.inc b/plugins/vcard_attachments/localization/ko_KR.inc index b9b6906d2..3e787f01b 100644 --- a/plugins/vcard_attachments/localization/ko_KR.inc +++ b/plugins/vcard_attachments/localization/ko_KR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = '주소록에 vCard를 추가'; $labels['vcardsavefailed'] = 'vCard 저장이 불가능함'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/lt_LT.inc b/plugins/vcard_attachments/localization/lt_LT.inc index 468a9da70..ca40c90ec 100644 --- a/plugins/vcard_attachments/localization/lt_LT.inc +++ b/plugins/vcard_attachments/localization/lt_LT.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Įtraukti vizitinę kortelę į adresų knygą'; $labels['vcardsavefailed'] = 'Įrašyti vizitinės kortelės nepavyko'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/lv_LV.inc b/plugins/vcard_attachments/localization/lv_LV.inc index 079e4f86d..b3e36ff15 100644 --- a/plugins/vcard_attachments/localization/lv_LV.inc +++ b/plugins/vcard_attachments/localization/lv_LV.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Pievienot vizītkarti adrešu grāmatai'; $labels['vcardsavefailed'] = 'Nevarēja saglabāt vizītkarti'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/ml_IN.inc b/plugins/vcard_attachments/localization/ml_IN.inc index 0b7786544..3613eab1b 100644 --- a/plugins/vcard_attachments/localization/ml_IN.inc +++ b/plugins/vcard_attachments/localization/ml_IN.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'വിലാസപുസ്തകത്തിലേക്ക് വികാര്‍ഡ് ചേര്‍ക്കുക'; $labels['vcardsavefailed'] = 'വികാര്‍ഡ് ചേര്‍ക്കാന്‍ പറ്റിയില്ല'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/mr_IN.inc b/plugins/vcard_attachments/localization/mr_IN.inc index 8dcf3c471..17d1e3db9 100644 --- a/plugins/vcard_attachments/localization/mr_IN.inc +++ b/plugins/vcard_attachments/localization/mr_IN.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'व्हीकार्ड पत्ते नोंदवहीत समाविष्ट करा'; $labels['vcardsavefailed'] = 'व्हीकार्ड जतन करण्यास असमर्थ'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/nb_NO.inc b/plugins/vcard_attachments/localization/nb_NO.inc index 5f6139267..c6e4fd4cd 100644 --- a/plugins/vcard_attachments/localization/nb_NO.inc +++ b/plugins/vcard_attachments/localization/nb_NO.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Legg til vCard i adresseboken'; $labels['vcardsavefailed'] = 'Ikke i stand til å lagre vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/nl_NL.inc b/plugins/vcard_attachments/localization/nl_NL.inc index 748d6219d..bcba722b0 100644 --- a/plugins/vcard_attachments/localization/nl_NL.inc +++ b/plugins/vcard_attachments/localization/nl_NL.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Voeg vCard toe aan adresboek'; $labels['vcardsavefailed'] = 'Kan vCard niet opslaan'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/nn_NO.inc b/plugins/vcard_attachments/localization/nn_NO.inc index 09803d568..398e08bb4 100644 --- a/plugins/vcard_attachments/localization/nn_NO.inc +++ b/plugins/vcard_attachments/localization/nn_NO.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Legg til vCard i adresseboka'; $labels['vcardsavefailed'] = 'Klarte ikkje lagra vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/pl_PL.inc b/plugins/vcard_attachments/localization/pl_PL.inc index 8da94369e..036dec5a0 100644 --- a/plugins/vcard_attachments/localization/pl_PL.inc +++ b/plugins/vcard_attachments/localization/pl_PL.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Dodaj wizytówkę (vCard) do kontaktów'; $labels['vcardsavefailed'] = 'Nie można zapisać wizytówki (vCard)'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/pt_BR.inc b/plugins/vcard_attachments/localization/pt_BR.inc index 3244bba10..afcc08cbe 100644 --- a/plugins/vcard_attachments/localization/pt_BR.inc +++ b/plugins/vcard_attachments/localization/pt_BR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Adicionar o vCard ao Catálogo de Endereços'; $labels['vcardsavefailed'] = 'Impossível salvar o vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/pt_PT.inc b/plugins/vcard_attachments/localization/pt_PT.inc index 9e5e11027..5758c91df 100644 --- a/plugins/vcard_attachments/localization/pt_PT.inc +++ b/plugins/vcard_attachments/localization/pt_PT.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Adicionar o vCard ao Livro de Endereços'; $labels['vcardsavefailed'] = 'Não foi possível guardar o vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/ro_RO.inc b/plugins/vcard_attachments/localization/ro_RO.inc index 9aa9b0712..98f68a18a 100644 --- a/plugins/vcard_attachments/localization/ro_RO.inc +++ b/plugins/vcard_attachments/localization/ro_RO.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Adaugă vCard la agendă'; $labels['vcardsavefailed'] = 'Nu pot salva vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/ru_RU.inc b/plugins/vcard_attachments/localization/ru_RU.inc index 985cda443..851035b95 100644 --- a/plugins/vcard_attachments/localization/ru_RU.inc +++ b/plugins/vcard_attachments/localization/ru_RU.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Добавить в контакты'; $labels['vcardsavefailed'] = 'Не удалось сохранить vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/si_LK.inc b/plugins/vcard_attachments/localization/si_LK.inc index 87da90e21..5231cc2ec 100644 --- a/plugins/vcard_attachments/localization/si_LK.inc +++ b/plugins/vcard_attachments/localization/si_LK.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'vCard පත ලිපින පොතට එක් කරන්න'; $labels['vcardsavefailed'] = 'vCard පත සුරැකීම අසාර්ථකයි'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/sk_SK.inc b/plugins/vcard_attachments/localization/sk_SK.inc index 17aecb261..937ed3307 100644 --- a/plugins/vcard_attachments/localization/sk_SK.inc +++ b/plugins/vcard_attachments/localization/sk_SK.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Pridať vCard do adresára'; $labels['vcardsavefailed'] = 'Nemôžem uložiť vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/sl_SI.inc b/plugins/vcard_attachments/localization/sl_SI.inc index 3f5053dff..4335040b4 100644 --- a/plugins/vcard_attachments/localization/sl_SI.inc +++ b/plugins/vcard_attachments/localization/sl_SI.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Dodaj vCard med Stike.'; $labels['vcardsavefailed'] = 'Stika vCard ni bilo mogoče shraniti.'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/sr_CS.inc b/plugins/vcard_attachments/localization/sr_CS.inc index d6cc94284..b11a48758 100644 --- a/plugins/vcard_attachments/localization/sr_CS.inc +++ b/plugins/vcard_attachments/localization/sr_CS.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Додај вЦард у Адресар'; $labels['vcardsavefailed'] = 'немоћан сачувати вчард'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/sv_SE.inc b/plugins/vcard_attachments/localization/sv_SE.inc index 2d0d928be..c0e925b8f 100644 --- a/plugins/vcard_attachments/localization/sv_SE.inc +++ b/plugins/vcard_attachments/localization/sv_SE.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Lägg till vCard i adressbok'; $labels['vcardsavefailed'] = 'Kunde inte spara vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/tr_TR.inc b/plugins/vcard_attachments/localization/tr_TR.inc index f52443338..a0e0d44ef 100644 --- a/plugins/vcard_attachments/localization/tr_TR.inc +++ b/plugins/vcard_attachments/localization/tr_TR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Vcard\'ı adres deferine ekle'; $labels['vcardsavefailed'] = 'vCard kaydedilemedi'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/uk_UA.inc b/plugins/vcard_attachments/localization/uk_UA.inc index b61ffc5f6..ed8eab35f 100644 --- a/plugins/vcard_attachments/localization/uk_UA.inc +++ b/plugins/vcard_attachments/localization/uk_UA.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Додати vCard до контактів'; $labels['vcardsavefailed'] = 'Не вдалось зберегти vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/vi_VN.inc b/plugins/vcard_attachments/localization/vi_VN.inc index d63ad9652..247d61eb9 100644 --- a/plugins/vcard_attachments/localization/vi_VN.inc +++ b/plugins/vcard_attachments/localization/vi_VN.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = 'Thêm vCard vào sổ địa chỉ'; $labels['vcardsavefailed'] = 'Không thể lưu vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/zh_CN.inc b/plugins/vcard_attachments/localization/zh_CN.inc index b619210b5..5ff81a806 100644 --- a/plugins/vcard_attachments/localization/zh_CN.inc +++ b/plugins/vcard_attachments/localization/zh_CN.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = '添加 vCard 至地址簿中'; $labels['vcardsavefailed'] = '无法保存 vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/localization/zh_TW.inc b/plugins/vcard_attachments/localization/zh_TW.inc index 639593bcf..4ed21c2a7 100644 --- a/plugins/vcard_attachments/localization/zh_TW.inc +++ b/plugins/vcard_attachments/localization/zh_TW.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/ */ + +$labels = array(); $labels['addvcardmsg'] = '加入 vCard 到通訊錄'; $labels['vcardsavefailed'] = '無法儲存 vCard'; + ?> \ No newline at end of file diff --git a/plugins/vcard_attachments/vcard_attachments.php b/plugins/vcard_attachments/vcard_attachments.php index cf7e22d3a..e7f7d5f1f 100644 --- a/plugins/vcard_attachments/vcard_attachments.php +++ b/plugins/vcard_attachments/vcard_attachments.php @@ -45,7 +45,7 @@ class vcard_attachments extends rcube_plugin } } // the same with message bodies - foreach ((array)$this->message->parts as $part) { + foreach ((array)$this->message->parts as $idx => $part) { if ($this->is_vcard($part)) { $this->vcard_parts[] = $part->mime_id; $this->vcard_bodies[] = $part->mime_id; @@ -63,6 +63,7 @@ class vcard_attachments extends rcube_plugin function html_output($p) { $attach_script = false; + $icon = 'plugins/vcard_attachments/' .$this->local_skin_path(). '/vcard_add_contact.png'; foreach ($this->vcard_parts as $part) { $vcards = rcube_vcard::import($this->message->get_part_content($part, null, true)); @@ -89,10 +90,10 @@ class vcard_attachments extends rcube_plugin $p['content'] .= html::p(array('class' => 'vcardattachment'), html::a(array( 'href' => "#", - 'onclick' => "return plugin_vcard_save_contact('" . rcube::JQ($part.':'.$idx) . "')", + 'onclick' => "return plugin_vcard_save_contact('" . JQ($part.':'.$idx) . "')", 'title' => $this->gettext('addvcardmsg'), ), - html::span(null, rcube::Q($display))) + html::span(null, Q($display))) ); } @@ -114,9 +115,9 @@ class vcard_attachments extends rcube_plugin { $this->add_texts('localization', true); - $uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST); - $mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST); - $mime_id = rcube_utils::get_input_value('_part', rcube_utils::INPUT_POST); + $uid = get_input_value('_uid', RCUBE_INPUT_POST); + $mbox = get_input_value('_mbox', RCUBE_INPUT_POST); + $mime_id = get_input_value('_part', RCUBE_INPUT_POST); $rcmail = rcmail::get_instance(); $storage = $rcmail->get_storage(); @@ -143,7 +144,7 @@ class vcard_attachments extends rcube_plugin } else { // We're using UTF8 internally - $email = rcube_utils::idn_to_utf8($email); + $email = rcube_idn_to_utf8($email); // compare e-mail address $existing = $CONTACTS->search('email', $email, 1, false); diff --git a/plugins/virtuser_file/virtuser_file.php b/plugins/virtuser_file/virtuser_file.php index f2b357aaf..01032616c 100644 --- a/plugins/virtuser_file/virtuser_file.php +++ b/plugins/virtuser_file/virtuser_file.php @@ -3,10 +3,10 @@ /** * File based User-to-Email and Email-to-User lookup * - * Add it to the plugins list in config.inc.php and set + * Add it to the plugins list in config/main.inc.php and set * path to a virtuser table file to resolve user names and e-mail * addresses - * $rcmail['virtuser_file'] = ''; + * $rcmail_config['virtuser_file'] = ''; * * @version @package_version@ * @license GNU GPLv3+ @@ -19,13 +19,13 @@ class virtuser_file extends rcube_plugin function init() { - $this->app = rcmail::get_instance(); - $this->file = $this->app->config->get('virtuser_file'); + $this->app = rcmail::get_instance(); + $this->file = $this->app->config->get('virtuser_file'); - if ($this->file) { - $this->add_hook('user2email', array($this, 'user2email')); - $this->add_hook('email2user', array($this, 'email2user')); - } + if ($this->file) { + $this->add_hook('user2email', array($this, 'user2email')); + $this->add_hook('email2user', array($this, 'email2user')); + } } /** @@ -34,24 +34,25 @@ class virtuser_file extends rcube_plugin function user2email($p) { $r = $this->findinvirtual('/\s' . preg_quote($p['user'], '/') . '\s*$/'); - $result = array(); + $result = array(); - for ($i=0; $i 0 && strpos($arr[0], '@')) { - $result[] = rcube_utils::idn_to_ascii(trim(str_replace('\\@', '@', $arr[0]))); + if (count($arr) > 0 && strpos($arr[0], '@')) { + $result[] = rcube_idn_to_ascii(trim(str_replace('\\@', '@', $arr[0]))); - if ($p['first']) { - $p['email'] = $result[0]; - break; - } - } - } + if ($p['first']) { + $p['email'] = $result[0]; + break; + } + } + } - $p['email'] = empty($result) ? NULL : $result; + $p['email'] = empty($result) ? NULL : $result; - return $p; + return $p; } /** @@ -59,18 +60,18 @@ class virtuser_file extends rcube_plugin */ function email2user($p) { - $r = $this->findinvirtual('/^' . preg_quote($p['email'], '/') . '\s/'); + $r = $this->findinvirtual('/^' . preg_quote($p['email'], '/') . '\s/'); - for ($i=0; $i 0) { - $p['user'] = trim($arr[count($arr)-1]); - break; - } - } + if (count($arr) > 0) { + $p['user'] = trim($arr[count($arr)-1]); + break; + } + } - return $p; + return $p; } /** @@ -81,25 +82,26 @@ class virtuser_file extends rcube_plugin */ private function findinvirtual($pattern) { - $result = array(); - $virtual = null; + $result = array(); + $virtual = null; - if ($this->file) - $virtual = file($this->file); + if ($this->file) + $virtual = file($this->file); - if (empty($virtual)) - return $result; + if (empty($virtual)) + return $result; - // check each line for matches - foreach ($virtual as $line) { - $line = trim($line); - if (empty($line) || $line[0]=='#') - continue; + // check each line for matches + foreach ($virtual as $line) { + $line = trim($line); + if (empty($line) || $line[0]=='#') + continue; - if (preg_match($pattern, $line)) - $result[] = $line; - } + if (preg_match($pattern, $line)) + $result[] = $line; + } - return $result; + return $result; } + } diff --git a/plugins/virtuser_query/package.xml b/plugins/virtuser_query/package.xml index 9430bf69d..58f697019 100644 --- a/plugins/virtuser_query/package.xml +++ b/plugins/virtuser_query/package.xml @@ -13,16 +13,16 @@ alec@alec.pl yes - 2012-02-17 + 2011-11-21 - 2.0 - 2.0 + 1.1 + 1.1 stable stable - GNU GPLv3+ + GNU GPLv2 - diff --git a/plugins/virtuser_query/virtuser_query.php b/plugins/virtuser_query/virtuser_query.php index a0b748288..a4c83265e 100644 --- a/plugins/virtuser_query/virtuser_query.php +++ b/plugins/virtuser_query/virtuser_query.php @@ -3,7 +3,7 @@ /** * DB based User-to-Email and Email-to-User lookup * - * Add it to the plugins list in config.inc.php and set + * Add it to the plugins list in config/main.inc.php and set * SQL queries to resolve usernames, e-mail addresses and hostnames from the database * %u will be replaced with the current username for login. * %m will be replaced with the current e-mail address for login. @@ -12,29 +12,23 @@ * The email query could optionally select identity data columns in specified order: * name, organization, reply-to, bcc, signature, html_signature * - * $config['virtuser_query'] = array('email' => '', 'user' => '', 'host' => '', 'alias' => ''); + * $rcmail_config['virtuser_query'] = array('email' => '', 'user' => '', 'host' => ''); * * The email query can return more than one record to create more identities. * This requires identities_level option to be set to value less than 2. * - * By default Roundcube database is used. To use different database (or host) - * you can specify DSN string in $config['virtuser_query_dsn'] option. - * * @version @package_version@ * @author Aleksander Machniak * @author Steffen Vogel - * @author Tim Gerundt - * @license GNU GPLv3+ */ class virtuser_query extends rcube_plugin { private $config; private $app; - private $db; function init() { - $this->app = rcmail::get_instance(); + $this->app = rcmail::get_instance(); $this->config = $this->app->config->get('virtuser_query'); if (!empty($this->config)) { @@ -51,9 +45,6 @@ class virtuser_query extends rcube_plugin if ($this->config['host']) { $this->add_hook('authenticate', array($this, 'user2host')); } - if ($this->config['alias']) { - $this->add_hook('authenticate', array($this, 'alias2user')); - } } } @@ -62,7 +53,7 @@ class virtuser_query extends rcube_plugin */ function user2email($p) { - $dbh = $this->get_dbh(); + $dbh = $this->app->get_dbh(); $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escape($p['user']), $this->config['email'])); @@ -70,11 +61,11 @@ class virtuser_query extends rcube_plugin if (strpos($sql_arr[0], '@')) { if ($p['extended'] && count($sql_arr) > 1) { $result[] = array( - 'email' => rcube_utils::idn_to_ascii($sql_arr[0]), + 'email' => rcube_idn_to_ascii($sql_arr[0]), 'name' => $sql_arr[1], 'organization' => $sql_arr[2], - 'reply-to' => rcube_utils::idn_to_ascii($sql_arr[3]), - 'bcc' => rcube_utils::idn_to_ascii($sql_arr[4]), + 'reply-to' => rcube_idn_to_ascii($sql_arr[3]), + 'bcc' => rcube_idn_to_ascii($sql_arr[4]), 'signature' => $sql_arr[5], 'html_signature' => (int)$sql_arr[6], ); @@ -99,7 +90,7 @@ class virtuser_query extends rcube_plugin */ function email2user($p) { - $dbh = $this->get_dbh(); + $dbh = $this->app->get_dbh(); $sql_result = $dbh->query(preg_replace('/%m/', $dbh->escape($p['email']), $this->config['user'])); @@ -115,7 +106,7 @@ class virtuser_query extends rcube_plugin */ function user2host($p) { - $dbh = $this->get_dbh(); + $dbh = $this->app->get_dbh(); $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escape($p['user']), $this->config['host'])); @@ -126,40 +117,5 @@ class virtuser_query extends rcube_plugin return $p; } - /** - * Alias > User - */ - function alias2user($p) - { - $dbh = $this->get_dbh(); - - $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escape($p['user']), $this->config['alias'])); - - if ($sql_arr = $dbh->fetch_array($sql_result)) { - $p['user'] = $sql_arr[0]; - } - - return $p; - } - - /** - * Initialize database handler - */ - function get_dbh() - { - if (!$this->db) { - if ($dsn = $this->app->config->get('virtuser_query_dsn')) { - // connect to the virtuser database - $this->db = rcube_db::factory($dsn); - $this->db->set_debug((bool)$this->app->config->get('sql_debug')); - $this->db->db_connect('r'); // connect in read mode - } - else { - $this->db = $this->app->get_dbh(); - } - } - - return $this->db; - } - } + diff --git a/plugins/zipdownload/README b/plugins/zipdownload/README index f253d63ee..4fa3c17b6 100644 --- a/plugins/zipdownload/README +++ b/plugins/zipdownload/README @@ -23,7 +23,7 @@ folder for details on the skin license. Install ======= * Place this plugin folder into plugins directory of Roundcube -* Add zipdownload to $config['plugins'] in your Roundcube config +* Add zipdownload to $rcmail_config['plugins'] in your Roundcube config NB: When downloading the plugin from GitHub you will need to create a directory called zipdownload and place the files in there, ignoring the diff --git a/plugins/zipdownload/config.inc.php.dist b/plugins/zipdownload/config.inc.php.dist index 0b2d14b60..5c7489a15 100644 --- a/plugins/zipdownload/config.inc.php.dist +++ b/plugins/zipdownload/config.inc.php.dist @@ -7,15 +7,15 @@ // Zip attachments // Only show the link when there are more than this many attachments // -1 to prevent downloading of attachments as zip -$config['zipdownload_attachments'] = 1; +$rcmail_config['zipdownload_attachments'] = 1; // Zip entire folders -$config['zipdownload_folder'] = false; +$rcmail_config['zipdownload_folder'] = false; // Zip selection of messages -$config['zipdownload_selection'] = false; +$rcmail_config['zipdownload_selection'] = false; // Charset to use for filenames inside the zip -$config['zipdownload_charset'] = 'ISO-8859-1'; +$rcmail_config['zipdownload_charset'] = 'ISO-8859-1'; ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/az_AZ.inc b/plugins/zipdownload/localization/az_AZ.inc index af785b48d..e23eaa1f6 100644 --- a/plugins/zipdownload/localization/az_AZ.inc +++ b/plugins/zipdownload/localization/az_AZ.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Bütün qoşmaları endir'; $labels['downloadfolder'] = 'Qovluğu endir'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/br.inc b/plugins/zipdownload/localization/br.inc index 0d7da382b..6e6cdb342 100644 --- a/plugins/zipdownload/localization/br.inc +++ b/plugins/zipdownload/localization/br.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Pellgargañ an holl stagadennoù'; $labels['downloadfolder'] = 'Pellgargañ an teuliad'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/bs_BA.inc b/plugins/zipdownload/localization/bs_BA.inc index ea72831af..8c727987d 100644 --- a/plugins/zipdownload/localization/bs_BA.inc +++ b/plugins/zipdownload/localization/bs_BA.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Preuzmi sve priloge'; $labels['downloadfolder'] = 'Preuzmi folder'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/ca_ES.inc b/plugins/zipdownload/localization/ca_ES.inc index 665c53ad8..423dae2fd 100644 --- a/plugins/zipdownload/localization/ca_ES.inc +++ b/plugins/zipdownload/localization/ca_ES.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Descarregar tots els adjunts'; $labels['downloadfolder'] = 'Descarregar carpeta'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/cs_CZ.inc b/plugins/zipdownload/localization/cs_CZ.inc index d96b1f570..07f9676ac 100644 --- a/plugins/zipdownload/localization/cs_CZ.inc +++ b/plugins/zipdownload/localization/cs_CZ.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Stáhnout všechny přílohy'; $labels['downloadfolder'] = 'Stáhnout složku'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/cy_GB.inc b/plugins/zipdownload/localization/cy_GB.inc index 3c9fc7580..412fd2261 100644 --- a/plugins/zipdownload/localization/cy_GB.inc +++ b/plugins/zipdownload/localization/cy_GB.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Llwytho lawr holl atodiadau'; $labels['downloadfolder'] = 'Ffolder llwytho lawr'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/da_DK.inc b/plugins/zipdownload/localization/da_DK.inc index 9e29018d5..ced645ab2 100644 --- a/plugins/zipdownload/localization/da_DK.inc +++ b/plugins/zipdownload/localization/da_DK.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Download alle som .zip-fil'; $labels['downloadfolder'] = 'Download folder som .zip-fil'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/de_CH.inc b/plugins/zipdownload/localization/de_CH.inc index 978c221b0..6106c2c72 100644 --- a/plugins/zipdownload/localization/de_CH.inc +++ b/plugins/zipdownload/localization/de_CH.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Alle Anhänge herunterladen'; $labels['downloadfolder'] = 'Ordner herunterladen'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/de_DE.inc b/plugins/zipdownload/localization/de_DE.inc index 978c221b0..6106c2c72 100644 --- a/plugins/zipdownload/localization/de_DE.inc +++ b/plugins/zipdownload/localization/de_DE.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Alle Anhänge herunterladen'; $labels['downloadfolder'] = 'Ordner herunterladen'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/en_GB.inc b/plugins/zipdownload/localization/en_GB.inc index 48a8d9bcb..aee8a5e15 100644 --- a/plugins/zipdownload/localization/en_GB.inc +++ b/plugins/zipdownload/localization/en_GB.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Download all attachments'; $labels['downloadfolder'] = 'Download folder'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/en_US.inc b/plugins/zipdownload/localization/en_US.inc index aee8a5e15..8823d3b8d 100644 --- a/plugins/zipdownload/localization/en_US.inc +++ b/plugins/zipdownload/localization/en_US.inc @@ -5,7 +5,7 @@ | plugins/zipdownload/localization/.inc | | | | Localization file of the Roundcube Webmail Zipdownload plugin | - | Copyright (C) 2012-2013, The Roundcube Dev Team | + | Copyright (C) 2012, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | diff --git a/plugins/zipdownload/localization/es_AR.inc b/plugins/zipdownload/localization/es_AR.inc index 9f20f5561..6240e3bce 100644 --- a/plugins/zipdownload/localization/es_AR.inc +++ b/plugins/zipdownload/localization/es_AR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Descargar Todo'; $labels['downloadfolder'] = 'Descargar carpeta'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/es_ES.inc b/plugins/zipdownload/localization/es_ES.inc index 22db2cda9..315362f1c 100644 --- a/plugins/zipdownload/localization/es_ES.inc +++ b/plugins/zipdownload/localization/es_ES.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Descargar todos los adjuntos'; $labels['downloadfolder'] = 'Descargar carpeta'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/et_EE.inc b/plugins/zipdownload/localization/et_EE.inc index 969658bc2..6f03e33c0 100644 --- a/plugins/zipdownload/localization/et_EE.inc +++ b/plugins/zipdownload/localization/et_EE.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Laadi alla kõik manused'; $labels['downloadfolder'] = 'Allalaadimiste kaust'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/fa_IR.inc b/plugins/zipdownload/localization/fa_IR.inc index 46007a0fb..41585688e 100644 --- a/plugins/zipdownload/localization/fa_IR.inc +++ b/plugins/zipdownload/localization/fa_IR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'بارگیری همه پیوست‌ها'; $labels['downloadfolder'] = 'بارگیری پوشه'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/fr_FR.inc b/plugins/zipdownload/localization/fr_FR.inc index 993e1421b..307f0b2f6 100644 --- a/plugins/zipdownload/localization/fr_FR.inc +++ b/plugins/zipdownload/localization/fr_FR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Télécharger toutes les pièces jointes'; $labels['downloadfolder'] = 'Télécharger le répertoire'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/gl_ES.inc b/plugins/zipdownload/localization/gl_ES.inc index 599c8ffcb..3925fca5b 100644 --- a/plugins/zipdownload/localization/gl_ES.inc +++ b/plugins/zipdownload/localization/gl_ES.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Descargar tódolos adxuntos'; $labels['downloadfolder'] = 'Descargar o cartafol'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/he_IL.inc b/plugins/zipdownload/localization/he_IL.inc index 0df6191fa..0ba0fcff8 100644 --- a/plugins/zipdownload/localization/he_IL.inc +++ b/plugins/zipdownload/localization/he_IL.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'להוריד את כל הצרופות'; $labels['downloadfolder'] = 'תיקיית צרופות'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/hu_HU.inc b/plugins/zipdownload/localization/hu_HU.inc index 85179e5a6..7b8ce85dc 100644 --- a/plugins/zipdownload/localization/hu_HU.inc +++ b/plugins/zipdownload/localization/hu_HU.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Összes csatolmány letöltése'; $labels['downloadfolder'] = 'Könyvtár letöltése'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/it_IT.inc b/plugins/zipdownload/localization/it_IT.inc index 882e354d9..4ea8a543d 100644 --- a/plugins/zipdownload/localization/it_IT.inc +++ b/plugins/zipdownload/localization/it_IT.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Scarica tutti gli allegati'; $labels['downloadfolder'] = 'Scarica cartella'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/ja_JP.inc b/plugins/zipdownload/localization/ja_JP.inc index a0388808d..c606658b4 100644 --- a/plugins/zipdownload/localization/ja_JP.inc +++ b/plugins/zipdownload/localization/ja_JP.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'すべての添付ファイルをダウンロード'; $labels['downloadfolder'] = 'ダウンロード先のフォルダー'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/km_KH.inc b/plugins/zipdownload/localization/km_KH.inc index 9a4593e18..722e0c8ce 100644 --- a/plugins/zipdownload/localization/km_KH.inc +++ b/plugins/zipdownload/localization/km_KH.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'ទាញយក ឯកសារភ្ជាប់ទាំងអស់'; $labels['downloadfolder'] = 'ទាញយក ថតឯកសារ'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/lt_LT.inc b/plugins/zipdownload/localization/lt_LT.inc index 9b4a13310..08a5818cd 100644 --- a/plugins/zipdownload/localization/lt_LT.inc +++ b/plugins/zipdownload/localization/lt_LT.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Atsisiųsti visus priedus'; $labels['downloadfolder'] = 'Atsisiųsti aplanką'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/nb_NO.inc b/plugins/zipdownload/localization/nb_NO.inc index a0b076bf4..637df9063 100644 --- a/plugins/zipdownload/localization/nb_NO.inc +++ b/plugins/zipdownload/localization/nb_NO.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Last ned alle vedlegg'; $labels['downloadfolder'] = 'Nedlastningsmappe'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/nl_NL.inc b/plugins/zipdownload/localization/nl_NL.inc index 43aa442f3..174dd0f8d 100644 --- a/plugins/zipdownload/localization/nl_NL.inc +++ b/plugins/zipdownload/localization/nl_NL.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Alle bijlagen downloaden'; $labels['downloadfolder'] = 'Map downloaden'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/nn_NO.inc b/plugins/zipdownload/localization/nn_NO.inc index a0b076bf4..637df9063 100644 --- a/plugins/zipdownload/localization/nn_NO.inc +++ b/plugins/zipdownload/localization/nn_NO.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Last ned alle vedlegg'; $labels['downloadfolder'] = 'Nedlastningsmappe'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/pl_PL.inc b/plugins/zipdownload/localization/pl_PL.inc index 7cf192e1d..b0880c062 100644 --- a/plugins/zipdownload/localization/pl_PL.inc +++ b/plugins/zipdownload/localization/pl_PL.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Pobierz wszystkie jako ZIP'; $labels['downloadfolder'] = 'Pobierz folder'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/pt_BR.inc b/plugins/zipdownload/localization/pt_BR.inc index 86dee11f2..7f80777b4 100644 --- a/plugins/zipdownload/localization/pt_BR.inc +++ b/plugins/zipdownload/localization/pt_BR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Baixar todos os anexos'; $labels['downloadfolder'] = 'Pasta de baixar arquivos'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/pt_PT.inc b/plugins/zipdownload/localization/pt_PT.inc index 4b7441927..8a5afeb06 100644 --- a/plugins/zipdownload/localization/pt_PT.inc +++ b/plugins/zipdownload/localization/pt_PT.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Guardar todos os anexos'; $labels['downloadfolder'] = 'Guardar pasta'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/ro_RO.inc b/plugins/zipdownload/localization/ro_RO.inc index a676799d5..ac4a983d6 100644 --- a/plugins/zipdownload/localization/ro_RO.inc +++ b/plugins/zipdownload/localization/ro_RO.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Descarcă toate atașamentele'; $labels['downloadfolder'] = 'Descarcă dosar'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/ru_RU.inc b/plugins/zipdownload/localization/ru_RU.inc index b6286a177..014b2001e 100644 --- a/plugins/zipdownload/localization/ru_RU.inc +++ b/plugins/zipdownload/localization/ru_RU.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Загрузить все вложения'; -$labels['downloadfolder'] = 'Загрузить папку'; +$labels['downloadfolder'] = 'Загрузить каталог'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/sk_SK.inc b/plugins/zipdownload/localization/sk_SK.inc index 86c2b9a5f..b26059cb9 100644 --- a/plugins/zipdownload/localization/sk_SK.inc +++ b/plugins/zipdownload/localization/sk_SK.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Stiahnuť všetky prílohy'; $labels['downloadfolder'] = 'Priečinok na sťahovanie'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/sr_CS.inc b/plugins/zipdownload/localization/sr_CS.inc index 55d64b91f..b8d63b3f5 100644 --- a/plugins/zipdownload/localization/sr_CS.inc +++ b/plugins/zipdownload/localization/sr_CS.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Преузми све прилоге'; $labels['downloadfolder'] = 'Фасцикла за преузимање'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/sv_SE.inc b/plugins/zipdownload/localization/sv_SE.inc index d9c4f5da6..db8a1a368 100644 --- a/plugins/zipdownload/localization/sv_SE.inc +++ b/plugins/zipdownload/localization/sv_SE.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Hämta alla bifogade filer'; $labels['downloadfolder'] = 'Hämta katalog'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/tr_TR.inc b/plugins/zipdownload/localization/tr_TR.inc index a4dbec57b..bfdf98a6c 100644 --- a/plugins/zipdownload/localization/tr_TR.inc +++ b/plugins/zipdownload/localization/tr_TR.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Tüm ek dosyaları indir'; $labels['downloadfolder'] = 'klasörü indir'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/vi_VN.inc b/plugins/zipdownload/localization/vi_VN.inc index b9fdd3e43..a91b32010 100644 --- a/plugins/zipdownload/localization/vi_VN.inc +++ b/plugins/zipdownload/localization/vi_VN.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = 'Tải tất cả đính kèm về'; $labels['downloadfolder'] = 'Tải giữ liệu về'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/localization/zh_TW.inc b/plugins/zipdownload/localization/zh_TW.inc index 44107c634..cc8d673a1 100644 --- a/plugins/zipdownload/localization/zh_TW.inc +++ b/plugins/zipdownload/localization/zh_TW.inc @@ -15,6 +15,9 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/ */ + +$labels = array(); $labels['downloadall'] = '下載所有附件'; $labels['downloadfolder'] = '下載資料夾'; + ?> \ No newline at end of file diff --git a/plugins/zipdownload/skins/larry/zipdownload.css b/plugins/zipdownload/skins/larry/zipdownload.css index bb92631b1..d719ac677 100644 --- a/plugins/zipdownload/skins/larry/zipdownload.css +++ b/plugins/zipdownload/skins/larry/zipdownload.css @@ -2,6 +2,6 @@ a.zipdownload { display: inline-block; - margin-top: .5em; + margin-top: 1.5em; padding: 3px 5px 4px 5px; -} +} \ No newline at end of file diff --git a/plugins/zipdownload/zipdownload.php b/plugins/zipdownload/zipdownload.php index 59431267d..443fef728 100644 --- a/plugins/zipdownload/zipdownload.php +++ b/plugins/zipdownload/zipdownload.php @@ -62,14 +62,11 @@ class zipdownload extends rcube_plugin // only show the link if there is more than the configured number of attachments if (substr_count($p['content'], ' $rcmail->config->get('zipdownload_attachments', 1)) { - $href = $rcmail->url(array( - '_action' => 'plugin.zipdownload.zip_attachments', - '_mbox' => $rcmail->output->env['mailbox'], - '_uid' => $rcmail->output->env['uid'], - )); - - $link = html::a(array('href' => $href, 'class' => 'button zipdownload'), - rcube::Q($this->gettext('downloadall')) + $link = html::a(array( + 'href' => rcmail_url('plugin.zipdownload.zip_attachments', array('_mbox' => $rcmail->output->env['mailbox'], '_uid' => $rcmail->output->env['uid'])), + 'class' => 'button zipdownload', + ), + Q($this->gettext('downloadall')) ); // append link to attachments list, slightly different in some skins @@ -99,7 +96,7 @@ class zipdownload extends rcube_plugin $temp_dir = $rcmail->config->get('temp_dir'); $tmpfname = tempnam($temp_dir, 'zipdownload'); $tempfiles = array($tmpfname); - $message = new rcube_message(rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GET)); + $message = new rcube_message(get_input_value('_uid', RCUBE_INPUT_GET)); // open zip file $zip = new ZipArchive(); @@ -143,7 +140,7 @@ class zipdownload extends rcube_plugin public function download_selection() { if (isset($_REQUEST['_uid'])) { - $uids = explode(",", rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GPC)); + $uids = explode(",", get_input_value('_uid', RCUBE_INPUT_GPC)); if (sizeof($uids) > 0) $this->_download_messages($uids); @@ -160,7 +157,7 @@ class zipdownload extends rcube_plugin // initialize searching result if search_filter is used if ($_SESSION['search_filter'] && $_SESSION['search_filter'] != 'ALL') { - $imap->search($mbox_name, $_SESSION['search_filter'], RCUBE_CHARSET); + $imap->search($mbox_name, $_SESSION['search_filter'], RCMAIL_CHARSET); } // fetch message headers for all pages @@ -169,7 +166,7 @@ class zipdownload extends rcube_plugin for ($i = 0; ($i * $imap->get_pagesize()) <= $count; $i++) { $a_headers = $imap->list_messages($mbox_name, ($i + 1)); - foreach ($a_headers as $header) { + foreach ($a_headers as $n => $header) { if (empty($header)) continue; @@ -199,7 +196,7 @@ class zipdownload extends rcube_plugin $zip = new ZipArchive(); $zip->open($tmpfname, ZIPARCHIVE::OVERWRITE); - foreach ($uids as $uid){ + foreach ($uids as $key => $uid){ $headers = $imap->get_message_headers($uid); $subject = rcube_mime::decode_mime_string((string)$headers->subject); $subject = $this->_convert_filename($subject); @@ -237,9 +234,7 @@ class zipdownload extends rcube_plugin private function _deliver_zipfile($tmpfname, $filename) { $browser = new rcube_browser; - $rcmail = rcmail::get_instance(); - - $rcmail->output->nocacheing_headers(); + send_nocacheing_headers(); if ($browser->ie && $browser->ver < 7) $filename = rawurlencode(abbreviate_string($filename, 55)); diff --git a/program/include/bc.php b/program/include/bc.php index a7d7b5ac1..af2e51210 100644 --- a/program/include/bc.php +++ b/program/include/bc.php @@ -62,7 +62,7 @@ function rcmail_url($action, $p=array(), $task=null) function rcmail_temp_gc() { - rcmail::get_instance()->gc_temp(); + $rcmail = rcmail::get_instance()->temp_gc(); } function rcube_charset_convert($str, $from, $to=NULL) @@ -205,9 +205,9 @@ function rcmail_quota_content($attrib = null) return rcmail::get_instance()->quota_content($attrib); } -function rcmail_display_server_error($fallback=null, $fallback_args=null, $suffix='') +function rcmail_display_server_error($fallback=null, $fallback_args=null) { - rcmail::get_instance()->display_server_error($fallback, $fallback_args, $suffix); + rcmail::get_instance()->display_server_error($fallback, $fallback_args); } function rcmail_filetype2classname($mimetype, $filename) @@ -405,16 +405,6 @@ function enriched_to_html($data) return rcube_enriched::to_html($data); } -function strip_quotes($str) -{ - return str_replace(array("'", '"'), '', $str); -} - -function strip_newlines($str) -{ - return preg_replace('/[\r\n]/', '', $str); -} - class rcube_html_page extends rcmail_html_page { } diff --git a/program/include/iniset.php b/program/include/iniset.php index 919cc7682..e4fa956ef 100644 --- a/program/include/iniset.php +++ b/program/include/iniset.php @@ -21,11 +21,11 @@ */ // application constants -define('RCMAIL_VERSION', '1.0-git'); +define('RCMAIL_VERSION', '0.9.5'); define('RCMAIL_START', microtime(true)); if (!defined('INSTALL_PATH')) { - define('INSTALL_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/'); + define('INSTALL_PATH', '/var/lib/roundcube/'); } if (!defined('RCMAIL_CONFIG_DIR')) { @@ -60,11 +60,6 @@ require_once 'Roundcube/bootstrap.php'; // register autoloader for rcmail app classes spl_autoload_register('rcmail_autoload'); -// include composer autoloader (if available) -if (file_exists('vendor/autoload.php')) { - require 'vendor/autoload.php'; -} - // backward compatybility (to be removed) require_once INSTALL_PATH . 'program/include/bc.php'; diff --git a/program/include/rcmail.php b/program/include/rcmail.php index 4b3f13760..c9350bdd9 100644 --- a/program/include/rcmail.php +++ b/program/include/rcmail.php @@ -51,7 +51,6 @@ class rcmail extends rcube */ public $action = ''; public $comm_path = './'; - public $filename = ''; private $address_books = array(); private $action_map = array(); @@ -66,13 +65,12 @@ class rcmail extends rcube /** * This implements the 'singleton' design pattern * - * @param string Environment name to run (e.g. live, dev, test) * @return rcmail The one and only instance */ - static function get_instance($env = '') + static function get_instance() { if (!self::$instance || !is_a(self::$instance, 'rcmail')) { - self::$instance = new rcmail($env); + self::$instance = new rcmail(); self::$instance->startup(); // init AFTER object was linked with self::$instance } @@ -88,10 +86,6 @@ class rcmail extends rcube { $this->init(self::INIT_WITH_DB | self::INIT_WITH_PLUGINS); - // set filename if not index.php - if (($basename = basename($_SERVER['SCRIPT_FILENAME'])) && $basename != 'index.php') - $this->filename = $basename; - // start session $this->session_init(); @@ -132,7 +126,7 @@ class rcmail extends rcube */ public function set_task($task) { - $task = asciiwords($task, true); + $task = asciiwords($task); if ($this->user && $this->user->ID) $task = !$task ? 'mail' : $task; @@ -168,7 +162,7 @@ class rcmail extends rcube setlocale(LC_ALL, $lang . '.utf8', $lang . '.UTF-8', 'en_US.utf8', 'en_US.UTF-8'); // workaround for http://bugs.php.net/bug.php?id=18556 - if (version_compare(PHP_VERSION, '5.5.0', '<') && in_array($lang, array('tr_TR', 'ku', 'az_AZ'))) { + if (in_array($lang, array('tr_TR', 'ku', 'az_AZ'))) { setlocale(LC_CTYPE, 'en_US.utf8', 'en_US.UTF-8'); } } @@ -289,13 +283,13 @@ class rcmail extends rcube */ public function get_address_sources($writeable = false, $skip_hidden = false) { - $abook_type = (string) $this->config->get('address_book_type'); - $ldap_config = (array) $this->config->get('ldap_public'); + $abook_type = strtolower($this->config->get('address_book_type')); + $ldap_config = $this->config->get('ldap_public'); $autocomplete = (array) $this->config->get('autocomplete_addressbooks'); - $list = array(); + $list = array(); // We are using the DB address book or a plugin address book - if (!empty($abook_type) && strtolower($abook_type) != 'ldap') { + if ($abook_type != 'ldap' && $abook_type != '') { if (!isset($this->address_books['0'])) $this->address_books['0'] = new rcube_contacts($this->db, $this->get_user_id()); $list['0'] = array( @@ -308,7 +302,8 @@ class rcmail extends rcube ); } - if (!empty($ldap_config)) { + if ($ldap_config) { + $ldap_config = (array) $ldap_config; foreach ($ldap_config as $id => $prop) { // handle misconfiguration if (empty($prop) || !is_array($prop)) { @@ -317,7 +312,7 @@ class rcmail extends rcube $list[$id] = array( 'id' => $id, 'name' => html::quote($prop['name']), - 'groups' => !empty($prop['groups']) || !empty($prop['group_filters']), + 'groups' => is_array($prop['groups']), 'readonly' => !$prop['writable'], 'hidden' => $prop['hidden'], 'autocomplete' => in_array($id, $autocomplete) @@ -346,44 +341,6 @@ class rcmail extends rcube return $list; } - /** - * Getter for compose responses. - * These are stored in local config and user preferences. - * - * @param boolean True to sort the list alphabetically - * @param boolean True if only this user's responses shall be listed - * @return array List of the current user's stored responses - */ - public function get_compose_responses($sorted = false, $user_only = false) - { - $responses = array(); - - if (!$user_only) { - foreach ($this->config->get('compose_responses_static', array()) as $response) { - if (empty($response['key'])) - $response['key'] = substr(md5($response['name']), 0, 16); - $response['static'] = true; - $response['class'] = 'readonly'; - $k = $sorted ? '0000-' . strtolower($response['name']) : $response['key']; - $responses[$k] = $response; - } - } - - foreach ($this->config->get('compose_responses', array()) as $response) { - if (empty($response['key'])) - $response['key'] = substr(md5($response['name']), 0, 16); - $k = $sorted ? strtolower($response['name']) : $response['key']; - $responses[$k] = $response; - } - - // sort list by name - if ($sorted) { - ksort($responses, SORT_LOCALE_STRING); - } - - return array_values($responses); - } - /** * Init output object for GUI and add common scripts. @@ -519,22 +476,15 @@ class rcmail extends rcube $port = $config['default_port']; } - // Check if we need to add/force domain to username - if (!empty($config['username_domain'])) { - $domain = is_array($config['username_domain']) ? $config['username_domain'][$host] : $config['username_domain']; - - if ($domain = rcube_utils::parse_host((string)$domain, $host)) { - $pos = strpos($username, '@'); - - // force configured domains - if (!empty($config['username_domain_forced']) && $pos !== false) { - $username = substr($username, 0, $pos) . '@' . $domain; - } - // just add domain if not specified - else if ($pos === false) { - $username .= '@' . $domain; - } - } + /* Modify username with domain if required + Inspired by Marco + */ + // Check if we need to add domain + if (!empty($config['username_domain']) && strpos($username, '@') === false) { + if (is_array($config['username_domain']) && isset($config['username_domain'][$host])) + $username .= '@'.rcube_utils::parse_host($config['username_domain'][$host], $host); + else if (is_string($config['username_domain'])) + $username .= '@'.rcube_utils::parse_host($config['username_domain'], $host); } if (!isset($config['login_lc'])) { @@ -669,7 +619,7 @@ class rcmail extends rcube $post_host = rcube_utils::get_input_value('_host', rcube_utils::INPUT_POST); $post_user = rcube_utils::get_input_value('_user', rcube_utils::INPUT_POST); - list(, $domain) = explode('@', $post_user); + list($user, $domain) = explode('@', $post_user); // direct match in default_host array if ($default_host[$post_host] || in_array($post_host, array_values($default_host))) { @@ -772,6 +722,28 @@ class rcmail extends rcube } + /** + * Create unique authorization hash + * + * @param string Session ID + * @param int Timestamp + * @return string The generated auth hash + */ + private function get_auth_hash($sess_id, $ts) + { + $auth_string = sprintf('rcmail*sess%sR%s*Chk:%s;%s', + $sess_id, + $ts, + $this->config->get('ip_check') ? $_SERVER['REMOTE_ADDR'] : '***.***.***.***', + $_SERVER['HTTP_USER_AGENT']); + + if (function_exists('sha1')) + return sha1($auth_string); + else + return md5($auth_string); + } + + /** * Build a valid URL to this instance of Roundcube * @@ -792,7 +764,7 @@ class rcmail extends rcube $p['_task'] = $task; unset($p['task']); - $url = './' . $this->filename; + $url = './'; $delm = '?'; foreach (array_reverse($p) as $key => $val) { if ($val !== '' && $val !== null) { @@ -817,6 +789,11 @@ class rcmail extends rcube $book->close(); } + // before closing the database connection, write session data + if ($_SERVER['REMOTE_ADDR'] && is_object($this->session)) { + session_write_close(); + } + // write performance stats to logs/console if ($this->config->get('devel_mode')) { if (function_exists('memory_get_usage')) @@ -976,6 +953,193 @@ class rcmail extends rcube } + /** + * Send the given message using the configured method. + * + * @param object $message Reference to Mail_MIME object + * @param string $from Sender address string + * @param array $mailto Array of recipient address strings + * @param array $error SMTP error array (reference) + * @param string $body_file Location of file with saved message body (reference), + * used when delay_file_io is enabled + * @param array $options SMTP options (e.g. DSN request) + * + * @return boolean Send status. + */ + public function deliver_message(&$message, $from, $mailto, &$error, &$body_file = null, $options = null) + { + $plugin = $this->plugins->exec_hook('message_before_send', array( + 'message' => $message, + 'from' => $from, + 'mailto' => $mailto, + 'options' => $options, + )); + + if ($plugin['abort']) { + return isset($plugin['result']) ? $plugin['result'] : false; + } + + $from = $plugin['from']; + $mailto = $plugin['mailto']; + $options = $plugin['options']; + $message = $plugin['message']; + $headers = $message->headers(); + + // send thru SMTP server using custom SMTP library + if ($this->config->get('smtp_server')) { + // generate list of recipients + $a_recipients = array($mailto); + + if (strlen($headers['Cc'])) + $a_recipients[] = $headers['Cc']; + if (strlen($headers['Bcc'])) + $a_recipients[] = $headers['Bcc']; + + // clean Bcc from header for recipients + $send_headers = $headers; + unset($send_headers['Bcc']); + // here too, it because txtHeaders() below use $message->_headers not only $send_headers + unset($message->_headers['Bcc']); + + $smtp_headers = $message->txtHeaders($send_headers, true); + + if ($message->getParam('delay_file_io')) { + // use common temp dir + $temp_dir = $this->config->get('temp_dir'); + $body_file = tempnam($temp_dir, 'rcmMsg'); + if (PEAR::isError($mime_result = $message->saveMessageBody($body_file))) { + self::raise_error(array('code' => 650, 'type' => 'php', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => "Could not create message: ".$mime_result->getMessage()), + TRUE, FALSE); + return false; + } + $msg_body = fopen($body_file, 'r'); + } + else { + $msg_body = $message->get(); + } + + // send message + if (!is_object($this->smtp)) { + $this->smtp_init(true); + } + + $sent = $this->smtp->send_mail($from, $a_recipients, $smtp_headers, $msg_body, $options); + $response = $this->smtp->get_response(); + $error = $this->smtp->get_error(); + + // log error + if (!$sent) { + self::raise_error(array('code' => 800, 'type' => 'smtp', + 'line' => __LINE__, 'file' => __FILE__, + 'message' => "SMTP error: ".join("\n", $response)), TRUE, FALSE); + } + } + // send mail using PHP's mail() function + else { + // unset some headers because they will be added by the mail() function + $headers_enc = $message->headers($headers); + $headers_php = $message->_headers; + unset($headers_php['To'], $headers_php['Subject']); + + // reset stored headers and overwrite + $message->_headers = array(); + $header_str = $message->txtHeaders($headers_php); + + // #1485779 + if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { + if (preg_match_all('/<([^@]+@[^>]+)>/', $headers_enc['To'], $m)) { + $headers_enc['To'] = implode(', ', $m[1]); + } + } + + $msg_body = $message->get(); + + if (PEAR::isError($msg_body)) { + self::raise_error(array('code' => 650, 'type' => 'php', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => "Could not create message: ".$msg_body->getMessage()), + TRUE, FALSE); + } + else { + $delim = $this->config->header_delimiter(); + $to = $headers_enc['To']; + $subject = $headers_enc['Subject']; + $header_str = rtrim($header_str); + + if ($delim != "\r\n") { + $header_str = str_replace("\r\n", $delim, $header_str); + $msg_body = str_replace("\r\n", $delim, $msg_body); + $to = str_replace("\r\n", $delim, $to); + $subject = str_replace("\r\n", $delim, $subject); + } + + if (filter_var(ini_get('safe_mode'), FILTER_VALIDATE_BOOLEAN)) + $sent = mail($to, $subject, $msg_body, $header_str); + else + $sent = mail($to, $subject, $msg_body, $header_str, "-f$from"); + } + } + + if ($sent) { + $this->plugins->exec_hook('message_sent', array('headers' => $headers, 'body' => $msg_body)); + + // remove MDN headers after sending + unset($headers['Return-Receipt-To'], $headers['Disposition-Notification-To']); + + // get all recipients + if ($headers['Cc']) + $mailto .= $headers['Cc']; + if ($headers['Bcc']) + $mailto .= $headers['Bcc']; + if (preg_match_all('/<([^@]+@[^>]+)>/', $mailto, $m)) + $mailto = implode(', ', array_unique($m[1])); + + if ($this->config->get('smtp_log')) { + self::write_log('sendmail', sprintf("User %s [%s]; Message for %s; %s", + $this->user->get_username(), + $_SERVER['REMOTE_ADDR'], + $mailto, + !empty($response) ? join('; ', $response) : '')); + } + } + + if (is_resource($msg_body)) { + fclose($msg_body); + } + + $message->_headers = array(); + $message->headers($headers); + + return $sent; + } + + + /** + * Unique Message-ID generator. + * + * @return string Message-ID + */ + public function gen_message_id() + { + $local_part = md5(uniqid('rcmail'.mt_rand(),true)); + $domain_part = $this->user->get_username('domain'); + + // Try to find FQDN, some spamfilters doesn't like 'localhost' (#1486924) + if (!preg_match('/\.[a-z]+$/i', $domain_part)) { + foreach (array($_SERVER['HTTP_HOST'], $_SERVER['SERVER_NAME']) as $host) { + $host = preg_replace('/:[0-9]+$/', '', $host); + if ($host && preg_match('/\.[a-z]+$/i', $host)) { + $domain_part = $host; + } + } + } + + return sprintf('<%s@%s>', $local_part, $domain_part); + } + + /** * Returns RFC2822 formatted current date in user's timezone * @@ -999,32 +1163,22 @@ class rcmail extends rcube /** * Write login data (name, ID, IP address) to the 'userlogins' log file. */ - public function log_login($user = null, $failed_login = false, $error_code = 0) + public function log_login() { if (!$this->config->get('log_logins')) { return; } - // failed login - if ($failed_login) { - $message = sprintf('Failed login for %s from %s in session %s (error: %d)', - $user, rcube_utils::remote_ip(), session_id(), $error_code); - } - // successful login - else { - $user_name = $this->get_user_name(); - $user_id = $this->get_user_id(); - - if (!$user_id) { - return; - } + $user_name = $this->get_user_name(); + $user_id = $this->get_user_id(); - $message = sprintf('Successful login for %s (ID: %d) from %s in session %s', - $user_name, $user_id, rcube_utils::remote_ip(), session_id()); + if (!$user_id) { + return; } - // log login - self::write_log('userlogins', $message); + self::write_log('userlogins', + sprintf('Successful login for %s (ID: %d) from %s in session %s', + $user_name, $user_id, rcube_utils::remote_ip(), session_id())); } @@ -1040,7 +1194,7 @@ class rcmail extends rcube */ public function table_output($attrib, $table_data, $a_show_cols, $id_col) { - $table = new html_table($attrib); + $table = new html_table(/*array('cols' => count($a_show_cols))*/); // add table header if (!$attrib['noheader']) { @@ -1281,7 +1435,6 @@ class rcmail extends rcube $js_mailboxlist = array(); $out = html::tag('ul', $attrib, $rcmail->render_folder_tree_html($a_mailboxes, $mbox_name, $js_mailboxlist, $attrib), html::$common_attrib); - $rcmail->output->include_script('treelist.js'); $rcmail->output->add_gui_object('mailboxlist', $attrib['id']); $rcmail->output->set_env('mailboxes', $js_mailboxlist); $rcmail->output->set_env('unreadwrap', $attrib['unreadwrap']); @@ -1403,10 +1556,9 @@ class rcmail extends rcube $realnames = (bool)$attrib['realnames']; $msgcounts = $this->storage->get_cache('messagecount'); $collapsed = $this->config->get('collapsed_folders'); - $realnames = $this->config->get('show_real_foldernames'); $out = ''; - foreach ($arrFolders as $folder) { + foreach ($arrFolders as $key => $folder) { $title = null; $folder_class = $this->folder_classname($folder['id']); $is_collapsed = strpos($collapsed, '&'.rawurlencode($folder['id']).'&') !== false; @@ -1461,13 +1613,14 @@ class rcmail extends rcube 'id' => "rcmli".$folder_id, 'class' => join(' ', $classes), 'noclose' => true), - html::a($link_attrib, $html_name)); - - if (!empty($folder['folders'])) { - $out .= html::div('treetoggle ' . ($is_collapsed ? 'collapsed' : 'expanded'), ' '); - } - - $jslist[$folder['id']] = array( + html::a($link_attrib, $html_name) . + (!empty($folder['folders']) ? html::div(array( + 'class' => ($is_collapsed ? 'collapsed' : 'expanded'), + 'style' => "position:absolute", + 'onclick' => sprintf("%s.command('collapse-folder', '%s')", rcmail_output::JS_OBJECT_NAME, $js_name) + ), ' ') : '')); + + $jslist[$folder_id] = array( 'id' => $folder['id'], 'name' => $foldername, 'virtual' => $folder['virtual'] @@ -1492,7 +1645,7 @@ class rcmail extends rcube { $out = ''; - foreach ($arrFolders as $folder) { + foreach ($arrFolders as $key => $folder) { // skip exceptions (and its subfolders) if (!empty($opts['exceptions']) && in_array($folder['id'], $opts['exceptions'])) { continue; @@ -1553,38 +1706,18 @@ class rcmail extends rcube * Try to localize the given IMAP folder name. * UTF-7 decode it in case no localized text was found * - * @param string $name Folder name - * @param bool $with_path Enable path localization + * @param string $name Folder name * * @return string Localized folder name in UTF-8 encoding */ - public function localize_foldername($name, $with_path = true) + public function localize_foldername($name) { - $realnames = $this->config->get('show_real_foldernames'); - - // try to localize path of the folder - if ($with_path && !$realnames) { - $storage = $this->get_storage(); - $delimiter = $storage->get_hierarchy_delimiter(); - $path = explode($delimiter, $name); - $count = count($path); - - if ($count > 1) { - for ($i = 0; $i < $count; $i++) { - $folder = implode($delimiter, array_slice($path, 0, -$i)); - if ($folder_class = $this->folder_classname($folder)) { - $name = implode($delimiter, array_slice($path, $count - $i)); - return $this->gettext($folder_class) . $delimiter . rcube_charset::convert($name, 'UTF7-IMAP'); - } - } - } - } - - if (!$realnames && ($folder_class = $this->folder_classname($name))) { + if ($folder_class = $this->folder_classname($name)) { return $this->gettext($folder_class); } - - return rcube_charset::convert($name, 'UTF7-IMAP'); + else { + return rcube_charset::convert($name, 'UTF7-IMAP'); + } } @@ -1639,7 +1772,11 @@ class rcmail extends rcube $quota_result = (array) $quota; $quota_result['type'] = isset($_SESSION['quota_display']) ? $_SESSION['quota_display'] : ''; - if ($quota['total'] > 0) { + if (!$quota['total'] && $this->config->get('quota_zero_as_unlimited')) { + $quota_result['title'] = $this->gettext('unlimited'); + $quota_result['percent'] = 0; + } + else if ($quota['total']) { if (!isset($quota['percent'])) { $quota_result['percent'] = min(100, round(($quota['used']/max(1,$quota['total']))*100)); } @@ -1658,8 +1795,7 @@ class rcmail extends rcube } } else { - $unlimited = $this->config->get('quota_zero_as_unlimited'); - $quota_result['title'] = $this->gettext($unlimited ? 'unlimited' : 'unknown'); + $quota_result['title'] = $this->gettext('unknown'); $quota_result['percent'] = 0; } @@ -1672,51 +1808,32 @@ class rcmail extends rcube * * @param string $fallback Fallback message label * @param array $fallback_args Fallback message label arguments - * @param string $suffix Message label suffix */ - public function display_server_error($fallback = null, $fallback_args = null, $suffix = '') + public function display_server_error($fallback = null, $fallback_args = null) { $err_code = $this->storage->get_error_code(); $res_code = $this->storage->get_response_code(); - $args = array(); if ($res_code == rcube_storage::NOPERM) { - $error = 'errornoperm'; + $this->output->show_message('errornoperm', 'error'); } else if ($res_code == rcube_storage::READONLY) { - $error = 'errorreadonly'; - } - else if ($res_code == rcube_storage::OVERQUOTA) { - $error = 'errorroverquota'; + $this->output->show_message('errorreadonly', 'error'); } else if ($err_code && ($err_str = $this->storage->get_error_str())) { // try to detect access rights problem and display appropriate message if (stripos($err_str, 'Permission denied') !== false) { - $error = 'errornoperm'; - } - // try to detect full mailbox problem and display appropriate message - // there can be e.g. "Quota exceeded" or "quotum would exceed" - else if (stripos($err_str, 'quot') !== false && stripos($err_str, 'exceed') !== false) { - $error = 'erroroverquota'; + $this->output->show_message('errornoperm', 'error'); } else { - $error = 'servererrormsg'; - $args = array('msg' => $err_str); + $this->output->show_message('servererrormsg', 'error', array('msg' => $err_str)); } } else if ($err_code < 0) { - $error = 'storageerror'; + $this->output->show_message('storageerror', 'error'); } else if ($fallback) { - $error = $fallback; - $args = $fallback_args; - } - - if ($error) { - if ($suffix && $this->text_exists($error . $suffix)) { - $error .= $suffix; - } - $this->output->show_message($error, 'error', $args); + $this->output->show_message($fallback, 'error', $fallback_args); } } diff --git a/program/include/rcmail_output_html.php b/program/include/rcmail_output_html.php index 8a960673d..465d92f83 100644 --- a/program/include/rcmail_output_html.php +++ b/program/include/rcmail_output_html.php @@ -67,7 +67,6 @@ class rcmail_output_html extends rcmail_output //$this->framed = $framed; $this->set_env('task', $task); $this->set_env('x_frame_options', $this->config->get('x_frame_options', 'sameorigin')); - $this->set_env('standard_windows', (bool) $this->config->get('standard_windows')); // add cookie info $this->set_env('cookie_domain', ini_get('session.cookie_domain')); @@ -106,6 +105,7 @@ class rcmail_output_html extends rcmail_output )); } + /** * Set environment variable * @@ -121,6 +121,7 @@ class rcmail_output_html extends rcmail_output } } + /** * Getter for the current page title * @@ -144,17 +145,17 @@ class rcmail_output_html extends rcmail_output return $title; } + /** * Set skin */ public function set_skin($skin) { $valid = false; - $path = RCUBE_INSTALL_PATH . 'skins/'; - if (!empty($skin) && is_dir($path . $skin) && is_readable($path . $skin)) { - $skin_path = 'skins/' . $skin; - $valid = true; + if (!empty($skin) && is_dir('skins/'.$skin) && is_readable('skins/'.$skin)) { + $skin_path = 'skins/'.$skin; + $valid = true; } else { $skin_path = $this->config->get('skin_path'); @@ -182,16 +183,13 @@ class rcmail_output_html extends rcmail_output $this->skin_paths[] = $skin_path; // read meta file and check for dependecies - $meta = @file_get_contents(RCUBE_INSTALL_PATH . $skin_path . '/meta.json'); - $meta = @json_decode($meta, true); - if ($meta['extends']) { - $path = RCUBE_INSTALL_PATH . 'skins/'; - if (is_dir($path . $meta['extends']) && is_readable($path . $meta['extends'])) { - $this->load_skin('skins/' . $meta['extends']); - } + $meta = @json_decode(@file_get_contents($skin_path.'/meta.json'), true); + if ($meta['extends'] && is_dir('skins/' . $meta['extends'])) { + $this->load_skin('skins/' . $meta['extends']); } } + /** * Check if a specific template exists * @@ -200,18 +198,17 @@ class rcmail_output_html extends rcmail_output */ public function template_exists($name) { + $found = false; foreach ($this->skin_paths as $skin_path) { - $filename = RCUBE_INSTALL_PATH . $skin_path . '/templates/' . $name . '.html'; - if ((is_file($filename) && is_readable($filename)) - || ($this->deprecated_templates[$name] && $this->template_exists($this->deprecated_templates[$name])) - ) { - return true; - } + $filename = $skin_path . '/templates/' . $name . '.html'; + $found = (is_file($filename) && is_readable($filename)) || ($this->deprecated_templates[$name] && $this->template_exists($this->deprecated_templates[$name])); + if ($found) + break; } - - return false; + return $found; } + /** * Find the given file in the current skin path stack * @@ -236,6 +233,7 @@ class rcmail_output_html extends rcmail_output return false; } + /** * Register a GUI object to the client script * @@ -248,6 +246,7 @@ class rcmail_output_html extends rcmail_output $this->add_script(self::JS_OBJECT_NAME.".gui_object('$obj', '$id');"); } + /** * Call a client method * @@ -263,6 +262,7 @@ class rcmail_output_html extends rcmail_output $this->js_commands[] = $cmd; } + /** * Add a localized label to the client environment */ @@ -277,6 +277,7 @@ class rcmail_output_html extends rcmail_output } } + /** * Invoke display_message command * @@ -303,6 +304,7 @@ class rcmail_output_html extends rcmail_output } } + /** * Delete all stored env variables and commands * @@ -325,6 +327,7 @@ class rcmail_output_html extends rcmail_output $this->body = ''; } + /** * Redirect to a certain url * @@ -340,6 +343,7 @@ class rcmail_output_html extends rcmail_output exit; } + /** * Send the request output to the client. * This will either parse a skin tempalte or send an AJAX response @@ -373,6 +377,7 @@ class rcmail_output_html extends rcmail_output } } + /** * Process template and write to stdOut * @@ -408,6 +413,7 @@ class rcmail_output_html extends rcmail_output $this->_write($template, $this->config->get('skin_path')); } + /** * Parse a specific skin template and deliver to stdout (or return) * @@ -532,6 +538,7 @@ class rcmail_output_html extends rcmail_output } } + /** * Return executable javascript code for all registered commands * @@ -563,6 +570,7 @@ class rcmail_output_html extends rcmail_output return $out; } + /** * Make URLs starting with a slash point to skin directory * @@ -582,6 +590,7 @@ class rcmail_output_html extends rcmail_output return $str; } + /** * Show error page and terminate script execution * @@ -616,6 +625,7 @@ class rcmail_output_html extends rcmail_output array($this, 'globals_callback'), $input); } + /** * Callback funtion for preg_replace_callback() in parse_with_globals() */ @@ -624,6 +634,7 @@ class rcmail_output_html extends rcmail_output return $GLOBALS[$matches[1]]; } + /** * Correct absolute paths in images and other tags * add timestamp to .js and .css filename @@ -635,6 +646,7 @@ class rcmail_output_html extends rcmail_output array($this, 'file_callback'), $output); } + /** * Callback function for preg_replace_callback in write() * @@ -643,7 +655,7 @@ class rcmail_output_html extends rcmail_output protected function file_callback($matches) { $file = $matches[3]; - $file = preg_replace('!^/this/!', '/', $file); + $file[0] = preg_replace('!^/this/!', '/', $file[0]); // correct absolute paths if ($file[0] == '/') { @@ -660,6 +672,7 @@ class rcmail_output_html extends rcmail_output return $matches[1] . '=' . $matches[2] . $file . $matches[4]; } + /** * Public wrapper to dipp into template parsing. * @@ -676,6 +689,7 @@ class rcmail_output_html extends rcmail_output return $input; } + /** * Parse for conditional tags * @@ -713,18 +727,21 @@ class rcmail_output_html extends rcmail_output return $input; } + /** * Determines if a given condition is met * + * @todo Get rid off eval() once I understand what this does. * @todo Extend this to allow real conditions, not just "set" * @param string Condition statement * @return boolean True if condition is met, False if not */ protected function check_condition($condition) { - return $this->eval_expression($condition); + return eval("return (".$this->parse_expression($condition).");"); } + /** * Inserts hidden field with CSRF-prevention-token into POST forms */ @@ -741,16 +758,16 @@ class rcmail_output_html extends rcmail_output return $out; } + /** - * Parse & evaluate a given expression and return its result. - * - * @param string Expression statement + * Parses expression and replaces variables * - * @return mixed Expression result + * @param string Expression statement + * @return string Expression value */ - protected function eval_expression ($expression) + protected function parse_expression($expression) { - $expression = preg_replace( + return preg_replace( array( '/session:([a-z0-9_]+)/i', '/config:([a-z0-9_]+)(:([a-z0-9_]+))?/i', @@ -762,31 +779,17 @@ class rcmail_output_html extends rcmail_output ), array( "\$_SESSION['\\1']", - "\$app->config->get('\\1',rcube_utils::get_boolean('\\3'))", - "\$env['\\1']", + "\$this->app->config->get('\\1',rcube_utils::get_boolean('\\3'))", + "\$this->env['\\1']", "rcube_utils::get_input_value('\\1', rcube_utils::INPUT_GPC)", "\$_COOKIE['\\1']", - "\$browser->{'\\1'}", + "\$this->browser->{'\\1'}", $this->template_name, ), - $expression - ); - - $fn = create_function('$app,$browser,$env', "return ($expression);"); - if (!$fn) { - rcube::raise_error(array( - 'code' => 505, - 'type' => 'php', - 'file' => __FILE__, - 'line' => __LINE__, - 'message' => "Expression parse error on: ($expression)"), true, false); - - return null; - } - - return $fn($this->app, $this->browser, $this->env); + $expression); } + /** * Search for special tags in input and replace them * with the appropriate content @@ -801,6 +804,7 @@ class rcmail_output_html extends rcmail_output return preg_replace_callback('/]|\\\\>)+)(?/Ui', array($this, 'xml_command'), $input); } + /** * Callback function for parsing an xml command tag * and turn it into real html content @@ -835,7 +839,7 @@ class rcmail_output_html extends rcmail_output // show a label case 'label': if ($attrib['expression']) - $attrib['name'] = $this->eval_expression($attrib['expression']); + $attrib['name'] = eval("return " . $this->parse_expression($attrib['expression']) .";"); if ($attrib['name'] || $attrib['command']) { // @FIXME: 'noshow' is useless, remove? @@ -924,21 +928,8 @@ class rcmail_output_html extends rcmail_output } else if ($object == 'logo') { $attrib += array('alt' => $this->xml_command(array('', 'object', 'name="productname"'))); - - if ($logo = $this->config->get('skin_logo')) { - if (is_array($logo)) { - if ($template_logo = $logo[$this->template_name]) { - $attrib['src'] = $template_logo; - } - elseif ($template_logo = $logo['*']) { - $attrib['src'] = $template_logo; - } - } - else { - $attrib['src'] = $logo; - } - } - + if ($logo = $this->config->get('skin_logo')) + $attrib['src'] = $logo; $content = html::img($attrib); } else if ($object == 'productname') { @@ -980,7 +971,8 @@ class rcmail_output_html extends rcmail_output // return code for a specified eval expression case 'exp': - return html::quote($this->eval_expression($attrib['expression'])); + $value = $this->parse_expression($attrib['expression']); + return eval("return html::quote($value);"); // return variable case 'var': @@ -1017,13 +1009,12 @@ class rcmail_output_html extends rcmail_output } return html::quote($value); - - case 'form': - return $this->form_tag($attrib); + break; } return ''; } + /** * Include a specific file and return it's contents * @@ -1040,6 +1031,7 @@ class rcmail_output_html extends rcmail_output return $out; } + /** * Create and register a button * @@ -1055,7 +1047,7 @@ class rcmail_output_html extends rcmail_output // these commands can be called directly via url $a_static_commands = array('compose', 'list', 'preferences', 'folders', 'identities'); - if (!($attrib['command'] || $attrib['name'] || $attrib['href'])) { + if (!($attrib['command'] || $attrib['name'])) { return ''; } @@ -1165,7 +1157,7 @@ class rcmail_output_html extends rcmail_output } else if ($attrib['type'] == 'link') { $btn_content = isset($attrib['content']) ? $attrib['content'] : ($attrib['label'] ? $attrib['label'] : $attrib['command']); - $link_attrib = array_merge(html::$common_attrib, array('href', 'onclick', 'tabindex', 'target')); + $link_attrib = array('href', 'onclick', 'title', 'id', 'class', 'style', 'tabindex', 'target'); if ($attrib['innerclass']) $btn_content = html::span($attrib['innerclass'], $btn_content); } @@ -1188,13 +1180,10 @@ class rcmail_output_html extends rcmail_output $out = sprintf('%s', $attrib_str, $btn_content); } - if ($attrib['wrapper']) { - $out = html::tag($attrib['wrapper'], null, $out); - } - return $out; } + /** * Link an external script file * @@ -1225,6 +1214,7 @@ class rcmail_output_html extends rcmail_output $this->script_files[$position][] = $file; } + /** * Add inline javascript code * @@ -1241,6 +1231,7 @@ class rcmail_output_html extends rcmail_output } } + /** * Link an external css file * @@ -1251,6 +1242,7 @@ class rcmail_output_html extends rcmail_output $this->css_files[] = $file; } + /** * Add HTML code to the page header * @@ -1261,6 +1253,7 @@ class rcmail_output_html extends rcmail_output $this->header .= "\n" . $str; } + /** * Add HTML code to the page footer * To be added right befor @@ -1272,6 +1265,7 @@ class rcmail_output_html extends rcmail_output $this->footer .= "\n" . $str; } + /** * Process template and write to stdOut * @@ -1401,6 +1395,7 @@ class rcmail_output_html extends rcmail_output } } + /** * Returns iframe object, registers some related env variables * @@ -1431,6 +1426,7 @@ class rcmail_output_html extends rcmail_output /* ************* common functions delivering gui objects ************** */ + /** * Create a form tag with the necessary hidden fields * @@ -1452,11 +1448,12 @@ class rcmail_output_html extends rcmail_output $attrib['noclose'] = true; return html::tag('form', - $attrib + array('action' => $this->app->comm_path, 'method' => "get"), + $attrib + array('action' => "./", 'method' => "get"), $hidden . $content, array('id','class','style','name','method','action','enctype','onsubmit')); } + /** * Build a form tag with a unique request token * @@ -1487,6 +1484,7 @@ class rcmail_output_html extends rcmail_output return $this->form_tag($attrib, $hidden->show() . $content); } + /** * GUI object 'username' * Showing IMAP username of the current session @@ -1518,6 +1516,7 @@ class rcmail_output_html extends rcmail_output return rcube_utils::idn_to_utf8($username); } + /** * GUI object 'loginform' * Returns code for the webmail login form @@ -1549,9 +1548,9 @@ class rcmail_output_html extends rcmail_output $input_action = new html_hiddenfield(array('name' => '_action', 'value' => 'login')); $input_tzone = new html_hiddenfield(array('name' => '_timezone', 'id' => 'rcmlogintz', 'value' => '_default_')); $input_url = new html_hiddenfield(array('name' => '_url', 'id' => 'rcmloginurl', 'value' => $url)); - $input_user = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser', 'required' => 'required') + $input_user = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser') + $attrib + $user_attrib); - $input_pass = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd', 'required' => 'required') + $input_pass = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd') + $attrib + $pass_attrib); $input_host = null; @@ -1617,6 +1616,7 @@ class rcmail_output_html extends rcmail_output return $out; } + /** * GUI object 'preloader' * Loads javascript code for images preloading @@ -1639,6 +1639,7 @@ class rcmail_output_html extends rcmail_output }', 'docready'); } + /** * GUI object 'searchform' * Returns code for search function @@ -1677,6 +1678,7 @@ class rcmail_output_html extends rcmail_output return $out; } + /** * Builder for GUI object 'message' * @@ -1694,6 +1696,7 @@ class rcmail_output_html extends rcmail_output return html::div($attrib, ''); } + /** * GUI object 'charsetselector' * diff --git a/program/include/rcmail_output_json.php b/program/include/rcmail_output_json.php index d0e1eec64..def6ee42c 100644 --- a/program/include/rcmail_output_json.php +++ b/program/include/rcmail_output_json.php @@ -227,13 +227,6 @@ class rcmail_output_json extends rcmail_output if (!empty($this->callbacks)) $response['callbacks'] = $this->callbacks; - // trigger generic hook where plugins can put additional content to the response - $hook = $this->app->plugins->exec_hook("render_response", array('response' => $response)); - - // save some memory - $response = $hook['response']; - unset($hook['response']); - echo self::json_serialize($response); } diff --git a/program/js/app.js b/program/js/app.js index f7fd7cea0..efefd3a64 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -1,7270 +1 @@ -/* - +-----------------------------------------------------------------------+ - | Roundcube Webmail Client Script | - | | - | This file is part of the Roundcube Webmail client | - | Copyright (C) 2005-2013, The Roundcube Dev Team | - | Copyright (C) 2011-2013, Kolab Systems AG | - | | - | 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. | - | | - +-----------------------------------------------------------------------+ - | Authors: Thomas Bruederli | - | Aleksander 'A.L.E.C' Machniak | - | Charles McNulty | - +-----------------------------------------------------------------------+ - | Requires: jquery.js, common.js, list.js | - +-----------------------------------------------------------------------+ -*/ - -function rcube_webmail() -{ - this.labels = {}; - this.buttons = {}; - this.buttons_sel = {}; - this.gui_objects = {}; - this.gui_containers = {}; - this.commands = {}; - this.command_handlers = {}; - this.onloads = []; - this.messages = {}; - this.group2expand = {}; - - // webmail client settings - this.dblclick_time = 500; - this.message_time = 4000; - this.identifier_expr = new RegExp('[^0-9a-z\-_]', 'gi'); - - // environment defaults - this.env = { - request_timeout: 180, // seconds - draft_autosave: 0, // seconds - comm_path: './', - blankpage: 'program/resources/blank.gif', - recipients_separator: ',', - recipients_delimiter: ', ', - popup_width: 1150, - popup_width_small: 900 - }; - - // create protected reference to myself - this.ref = 'rcmail'; - var ref = this; - - // set jQuery ajax options - $.ajaxSetup({ - cache: false, - timeout: this.env.request_timeout * 1000, - error: function(request, status, err){ ref.http_error(request, status, err); }, - beforeSend: function(xmlhttp){ xmlhttp.setRequestHeader('X-Roundcube-Request', ref.env.request_token); } - }); - - // unload fix - $(window).bind('beforeunload', function() { rcmail.unload = true; }); - - // set environment variable(s) - this.set_env = function(p, value) - { - if (p != null && typeof p === 'object' && !value) - for (var n in p) - this.env[n] = p[n]; - else - this.env[p] = value; - }; - - // add a localized label to the client environment - this.add_label = function(p, value) - { - if (typeof p == 'string') - this.labels[p] = value; - else if (typeof p == 'object') - $.extend(this.labels, p); - }; - - // add a button to the button list - this.register_button = function(command, id, type, act, sel, over) - { - var button_prop = {id:id, type:type}; - - if (act) button_prop.act = act; - if (sel) button_prop.sel = sel; - if (over) button_prop.over = over; - - if (!this.buttons[command]) - this.buttons[command] = []; - - this.buttons[command].push(button_prop); - - if (this.loaded) - init_button(command, button_prop); - }; - - // register a specific gui object - this.gui_object = function(name, id) - { - this.gui_objects[name] = this.loaded ? rcube_find_object(id) : id; - }; - - // register a container object - this.gui_container = function(name, id) - { - this.gui_containers[name] = id; - }; - - // add a GUI element (html node) to a specified container - this.add_element = function(elm, container) - { - if (this.gui_containers[container] && this.gui_containers[container].jquery) - this.gui_containers[container].append(elm); - }; - - // register an external handler for a certain command - this.register_command = function(command, callback, enable) - { - this.command_handlers[command] = callback; - - if (enable) - this.enable_command(command, true); - }; - - // execute the given script on load - this.add_onload = function(f) - { - this.onloads.push(f); - }; - - // initialize webmail client - this.init = function() - { - var n, p = this; - this.task = this.env.task; - - // check browser - if (!bw.dom || !bw.xmlhttp_test() || (bw.mz && bw.vendver < 1.9)) { - this.goto_url('error', '_code=0x199'); - return; - } - - // find all registered gui containers - for (n in this.gui_containers) - this.gui_containers[n] = $('#'+this.gui_containers[n]); - - // find all registered gui objects - for (n in this.gui_objects) - this.gui_objects[n] = rcube_find_object(this.gui_objects[n]); - - // clickjacking protection - if (this.env.x_frame_options) { - try { - // bust frame if not allowed - if (this.env.x_frame_options == 'deny' && top.location.href != self.location.href) - top.location.href = self.location.href; - else if (top.location.hostname != self.location.hostname) - throw 1; - } catch (e) { - // possible clickjacking attack: disable all form elements - $('form').each(function(){ ref.lock_form(this, true); }); - this.display_message("Blocked: possible clickjacking attack!", 'error'); - return; - } - } - - // init registered buttons - this.init_buttons(); - - // tell parent window that this frame is loaded - if (this.is_framed()) { - parent.rcmail.set_busy(false, null, parent.rcmail.env.frame_lock); - parent.rcmail.env.frame_lock = null; - } - - // enable general commands - this.enable_command('close', 'logout', 'mail', 'addressbook', 'settings', 'save-pref', - 'compose', 'undo', 'about', 'switch-task', 'menu-open', 'menu-save', true); - - if (this.env.permaurl) - this.enable_command('permaurl', 'extwin', true); - - switch (this.task) { - - case 'mail': - // enable mail commands - this.enable_command('list', 'checkmail', 'add-contact', 'search', 'reset-search', 'collapse-folder', 'import-messages', true); - - if (this.gui_objects.messagelist) { - this.message_list = new rcube_list_widget(this.gui_objects.messagelist, { - multiselect:true, multiexpand:true, draggable:true, keyboard:true, - column_movable:this.env.col_movable, dblclick_time:this.dblclick_time - }); - this.message_list.row_init = function(o){ p.init_message_row(o); }; - this.message_list.addEventListener('dblclick', function(o){ p.msglist_dbl_click(o); }); - this.message_list.addEventListener('click', function(o){ p.msglist_click(o); }); - this.message_list.addEventListener('keypress', function(o){ p.msglist_keypress(o); }); - this.message_list.addEventListener('select', function(o){ p.msglist_select(o); }); - this.message_list.addEventListener('dragstart', function(o){ p.drag_start(o); }); - this.message_list.addEventListener('dragmove', function(e){ p.drag_move(e); }); - this.message_list.addEventListener('dragend', function(e){ p.drag_end(e); }); - this.message_list.addEventListener('expandcollapse', function(e){ p.msglist_expand(e); }); - this.message_list.addEventListener('column_replace', function(e){ p.msglist_set_coltypes(e); }); - this.message_list.addEventListener('listupdate', function(e){ p.triggerEvent('listupdate', e); }); - - document.onmouseup = function(e){ return p.doc_mouse_up(e); }; - this.gui_objects.messagelist.parentNode.onmousedown = function(e){ return p.click_on_list(e); }; - - this.message_list.init(); - this.enable_command('toggle_status', 'toggle_flag', 'sort', true); - - // load messages - this.command('list'); - - $(this.gui_objects.qsearchbox).val(this.env.search_text).focusin(function() { rcmail.message_list.blur(); }); - } - - this.set_button_titles(); - - this.env.message_commands = ['show', 'reply', 'reply-all', 'reply-list', - 'move', 'copy', 'delete', 'open', 'mark', 'edit', 'viewsource', - 'print', 'load-attachment', 'download-attachment', 'show-headers', 'hide-headers', 'download', - 'forward', 'forward-inline', 'forward-attachment', 'change-format']; - - if (this.env.action == 'show' || this.env.action == 'preview') { - this.enable_command(this.env.message_commands, this.env.uid); - this.enable_command('reply-list', this.env.list_post); - - if (this.env.action == 'show') { - this.http_request('pagenav', {_uid: this.env.uid, _mbox: this.env.mailbox, _search: this.env.search_request}, - this.display_message('', 'loading')); - } - - if (this.env.blockedobjects) { - if (this.gui_objects.remoteobjectsmsg) - this.gui_objects.remoteobjectsmsg.style.display = 'block'; - this.enable_command('load-images', 'always-load', true); - } - - // make preview/message frame visible - if (this.env.action == 'preview' && this.is_framed()) { - this.enable_command('compose', 'add-contact', false); - parent.rcmail.show_contentframe(true); - } - } - else if (this.env.action == 'compose') { - this.env.address_group_stack = []; - this.env.compose_commands = ['send-attachment', 'remove-attachment', 'send', 'cancel', - 'toggle-editor', 'list-adresses', 'pushgroup', 'search', 'reset-search', 'extwin', - 'insert-response', 'save-response']; - - if (this.env.drafts_mailbox) - this.env.compose_commands.push('savedraft') - - this.enable_command(this.env.compose_commands, 'identities', 'responses', true); - - // add more commands (not enabled) - $.merge(this.env.compose_commands, ['add-recipient', 'firstpage', 'previouspage', 'nextpage', 'lastpage']); - - if (this.env.spellcheck) { - this.env.spellcheck.spelling_state_observer = function(s) { ref.spellcheck_state(); }; - this.env.compose_commands.push('spellcheck') - this.enable_command('spellcheck', true); - } - - // init canned response functions - if (this.gui_objects.responseslist) { - $('a.insertresponse', this.gui_objects.responseslist) - .attr('unselectable', 'on') - .mousedown(function(e){ return rcube_event.cancel(e); }) - .mouseup(function(e){ - ref.command('insert-response', $(this).attr('rel')); - $(document.body).trigger('mouseup'); // hides the menu - return rcube_event.cancel(e); - }); - - // avoid textarea loosing focus when hitting the save-response button/link - for (var i=0; this.buttons['save-response'] && i < this.buttons['save-response'].length; i++) { - $('#'+this.buttons['save-response'][i].id).mousedown(function(e){ return rcube_event.cancel(e); }) - } - } - - document.onmouseup = function(e){ return p.doc_mouse_up(e); }; - - // init message compose form - this.init_messageform(); - } - else if (this.env.action == 'get') - this.enable_command('download', 'print', true); - // show printing dialog - else if (this.env.action == 'print' && this.env.uid) { - if (bw.safari) - setTimeout('window.print()', 10); - else - window.print(); - } - - // get unread count for each mailbox - if (this.gui_objects.mailboxlist) { - this.env.unread_counts = {}; - this.gui_objects.folderlist = this.gui_objects.mailboxlist; - this.http_request('getunread'); - } - - // init address book widget - if (this.gui_objects.contactslist) { - this.contact_list = new rcube_list_widget(this.gui_objects.contactslist, - { multiselect:true, draggable:false, keyboard:false }); - this.contact_list.addEventListener('select', function(o){ ref.compose_recipient_select(o); }); - this.contact_list.addEventListener('dblclick', function(o){ ref.compose_add_recipient('to'); }); - this.contact_list.init(); - } - - if (this.gui_objects.addressbookslist) { - this.gui_objects.folderlist = this.gui_objects.addressbookslist; - this.enable_command('list-adresses', true); - } - - // ask user to send MDN - if (this.env.mdn_request && this.env.uid) { - var postact = 'sendmdn', - postdata = {_uid: this.env.uid, _mbox: this.env.mailbox}; - if (!confirm(this.get_label('mdnrequest'))) { - postdata._flag = 'mdnsent'; - postact = 'mark'; - } - this.http_post(postact, postdata); - } - - // detect browser capabilities - if (!this.is_framed() && !this.env.extwin) - this.browser_capabilities_check(); - - break; - - case 'addressbook': - this.env.address_group_stack = []; - - if (this.gui_objects.folderlist) - this.env.contactfolders = $.extend($.extend({}, this.env.address_sources), this.env.contactgroups); - - this.enable_command('add', 'import', this.env.writable_source); - this.enable_command('list', 'listgroup', 'pushgroup', 'popgroup', 'listsearch', 'search', 'reset-search', 'advanced-search', true); - - if (this.gui_objects.contactslist) { - this.contact_list = new rcube_list_widget(this.gui_objects.contactslist, - {multiselect:true, draggable:this.gui_objects.folderlist?true:false, keyboard:true}); - this.contact_list.row_init = function(row){ p.triggerEvent('insertrow', { cid:row.uid, row:row }); }; - this.contact_list.addEventListener('keypress', function(o){ p.contactlist_keypress(o); }); - this.contact_list.addEventListener('select', function(o){ p.contactlist_select(o); }); - this.contact_list.addEventListener('dragstart', function(o){ p.drag_start(o); }); - this.contact_list.addEventListener('dragmove', function(e){ p.drag_move(e); }); - this.contact_list.addEventListener('dragend', function(e){ p.drag_end(e); }); - this.contact_list.init(); - - if (this.env.cid) - this.contact_list.highlight_row(this.env.cid); - - this.gui_objects.contactslist.parentNode.onmousedown = function(e){ return p.click_on_list(e); }; - document.onmouseup = function(e){ return p.doc_mouse_up(e); }; - - $(this.gui_objects.qsearchbox).focusin(function() { rcmail.contact_list.blur(); }); - - this.update_group_commands(); - this.command('list'); - } - - this.set_page_buttons(); - - if (this.env.cid) { - this.enable_command('show', 'edit', true); - // register handlers for group assignment via checkboxes - if (this.gui_objects.editform) { - $('input.groupmember').change(function() { - ref.group_member_change(this.checked ? 'add' : 'del', ref.env.cid, ref.env.source, this.value); - }); - } - } - - if (this.gui_objects.editform) { - this.enable_command('save', true); - if (this.env.action == 'add' || this.env.action == 'edit' || this.env.action == 'search') - this.init_contact_form(); - } - - break; - - case 'settings': - this.enable_command('preferences', 'identities', 'responses', 'save', 'folders', true); - - if (this.env.action == 'identities') { - this.enable_command('add', this.env.identities_level < 2); - } - else if (this.env.action == 'edit-identity' || this.env.action == 'add-identity') { - this.enable_command('save', 'edit', 'toggle-editor', true); - this.enable_command('delete', this.env.identities_level < 2); - } - else if (this.env.action == 'folders') { - this.enable_command('subscribe', 'unsubscribe', 'create-folder', 'rename-folder', true); - } - else if (this.env.action == 'edit-folder' && this.gui_objects.editform) { - this.enable_command('save', 'folder-size', true); - parent.rcmail.env.exists = this.env.messagecount; - parent.rcmail.enable_command('purge', this.env.messagecount); - } - else if (this.env.action == 'responses') { - this.enable_command('add', true); - } - - if (this.gui_objects.identitieslist) { - this.identity_list = new rcube_list_widget(this.gui_objects.identitieslist, {multiselect:false, draggable:false, keyboard:false}); - this.identity_list.addEventListener('select', function(o){ p.identity_select(o); }); - this.identity_list.init(); - this.identity_list.focus(); - - if (this.env.iid) - this.identity_list.highlight_row(this.env.iid); - } - else if (this.gui_objects.sectionslist) { - this.sections_list = new rcube_list_widget(this.gui_objects.sectionslist, {multiselect:false, draggable:false, keyboard:false}); - this.sections_list.addEventListener('select', function(o){ p.section_select(o); }); - this.sections_list.init(); - this.sections_list.focus(); - } - else if (this.gui_objects.subscriptionlist) { - this.init_subscription_list(); - } - else if (this.gui_objects.responseslist) { - this.responses_list = new rcube_list_widget(this.gui_objects.responseslist, {multiselect:false, draggable:false, keyboard:false}); - this.responses_list.addEventListener('select', function(list) { - var win, id = list.get_single_selection(); - p.enable_command('delete', !!id && $.inArray(id, p.env.readonly_responses) < 0); - if (id && (win = p.get_frame_window(p.env.contentframe))) { - p.set_busy(true); - p.location_href({ _action:'edit-response', _key:id, _framed:1 }, win); - } - }); - this.responses_list.init(); - this.responses_list.focus(); - } - - break; - - case 'login': - var input_user = $('#rcmloginuser'); - input_user.bind('keyup', function(e){ return rcmail.login_user_keyup(e); }); - - if (input_user.val() == '') - input_user.focus(); - else - $('#rcmloginpwd').focus(); - - // detect client timezone - if (window.jstz && !bw.ie6) { - var timezone = jstz.determine(); - if (timezone.name()) - $('#rcmlogintz').val(timezone.name()); - } - else { - $('#rcmlogintz').val(new Date().getStdTimezoneOffset() / -60); - } - - // display 'loading' message on form submit, lock submit button - $('form').submit(function () { - $('input[type=submit]', this).prop('disabled', true); - rcmail.clear_messages(); - rcmail.display_message('', 'loading'); - }); - - this.enable_command('login', true); - break; - } - - // select first input field in an edit form - if (this.gui_objects.editform) - $("input,select,textarea", this.gui_objects.editform) - .not(':hidden').not(':disabled').first().select(); - - // unset contentframe variable if preview_pane is enabled - if (this.env.contentframe && !$('#' + this.env.contentframe).is(':visible')) - this.env.contentframe = null; - - // prevent from form submit with Enter key in file input fields - if (bw.ie) - $('input[type=file]').keydown(function(e) { if (e.keyCode == '13') e.preventDefault(); }); - - // flag object as complete - this.loaded = true; - this.env.lastrefresh = new Date(); - - // show message - if (this.pending_message) - this.display_message(this.pending_message[0], this.pending_message[1], this.pending_message[2]); - - // map implicit containers - if (this.gui_objects.folderlist) { - this.gui_containers.foldertray = $(this.gui_objects.folderlist); - - // init treelist widget - if (window.rcube_treelist_widget) { - this.treelist = new rcube_treelist_widget(this.gui_objects.folderlist, { - id_prefix: 'rcmli', - id_encode: this.html_identifier_encode, - id_decode: this.html_identifier_decode, - check_droptarget: function(node){ return !node.virtual && ref.check_droptarget(node.id) } - }); - this.treelist.addEventListener('collapse', function(node){ ref.folder_collapsed(node) }); - this.treelist.addEventListener('expand', function(node){ ref.folder_collapsed(node) }); - this.treelist.addEventListener('select', function(node){ ref.triggerEvent('selectfolder', { folder:node.id, prefix:'rcmli' }) }); - } - } - - // activate html5 file drop feature (if browser supports it and if configured) - if (this.gui_objects.filedrop && this.env.filedrop && ((window.XMLHttpRequest && XMLHttpRequest.prototype && XMLHttpRequest.prototype.sendAsBinary) || window.FormData)) { - $(document.body).bind('dragover dragleave drop', function(e){ return ref.document_drag_hover(e, e.type == 'dragover'); }); - $(this.gui_objects.filedrop).addClass('droptarget') - .bind('dragover dragleave', function(e){ return ref.file_drag_hover(e, e.type == 'dragover'); }) - .get(0).addEventListener('drop', function(e){ return ref.file_dropped(e); }, false); - } - - // trigger init event hook - this.triggerEvent('init', { task:this.task, action:this.env.action }); - - // execute all foreign onload scripts - // @deprecated - for (var i in this.onloads) { - if (typeof this.onloads[i] === 'string') - eval(this.onloads[i]); - else if (typeof this.onloads[i] === 'function') - this.onloads[i](); - } - - // start keep-alive and refresh intervals - this.start_refresh(); - this.start_keepalive(); - }; - - this.log = function(msg) - { - if (window.console && console.log) - console.log(msg); - }; - - /*********************************************************/ - /********* client command interface *********/ - /*********************************************************/ - - // execute a specific command on the web client - this.command = function(command, props, obj, event) - { - var ret, uid, cid, url, flag; - - if (obj && obj.blur) - obj.blur(); - - if (this.busy) - return false; - - // let the browser handle this click (shift/ctrl usually opens the link in a new window/tab) - if ((obj && obj.href && String(obj.href).indexOf('#') < 0) && rcube_event.get_modifier(event)) { - return true; - } - - // command not supported or allowed - if (!this.commands[command]) { - // pass command to parent window - if (this.is_framed()) - parent.rcmail.command(command, props); - - return false; - } - - // check input before leaving compose step - if (this.task == 'mail' && this.env.action == 'compose' && $.inArray(command, this.env.compose_commands)<0) { - if (this.cmp_hash != this.compose_field_hash() && !confirm(this.get_label('notsentwarning'))) - return false; - } - - // process external commands - if (typeof this.command_handlers[command] === 'function') { - ret = this.command_handlers[command](props, obj); - return ret !== undefined ? ret : (obj ? false : true); - } - else if (typeof this.command_handlers[command] === 'string') { - ret = window[this.command_handlers[command]](props, obj); - return ret !== undefined ? ret : (obj ? false : true); - } - - // trigger plugin hooks - this.triggerEvent('actionbefore', {props:props, action:command}); - ret = this.triggerEvent('before'+command, props); - if (ret !== undefined) { - // abort if one of the handlers returned false - if (ret === false) - return false; - else - props = ret; - } - - ret = undefined; - - // process internal command - switch (command) { - - case 'login': - if (this.gui_objects.loginform) - this.gui_objects.loginform.submit(); - break; - - // commands to switch task - case 'mail': - case 'addressbook': - case 'settings': - case 'logout': - this.switch_task(command); - break; - - case 'about': - this.redirect('?_task=settings&_action=about', false); - break; - - case 'permaurl': - if (obj && obj.href && obj.target) - return true; - else if (this.env.permaurl) - parent.location.href = this.env.permaurl; - break; - - case 'extwin': - if (this.env.action == 'compose') { - var form = this.gui_objects.messageform, - win = this.open_window(''); - - $("input[name='_action']", form).val('compose'); - form.action = this.url('mail/compose', { _id: this.env.compose_id, _extwin: 1 }); - form.target = win.name; - form.submit(); - } - else { - this.open_window(this.env.permaurl, true); - } - break; - - case 'change-format': - url = this.env.permaurl + '&_format=' + props; - - if (this.env.action == 'preview') - url = url.replace(/_action=show/, '_action=preview') + '&_framed=1'; - if (this.env.extwin) - url += '&_extwin=1'; - - location.href = url; - break; - - case 'menu-open': - if (props && props.menu == 'attachmentmenu') { - var mimetype = this.env.attachments[props.id]; - this.enable_command('open-attachment', mimetype && this.env.mimetypes && $.inArray(mimetype, this.env.mimetypes) >= 0); - } - - case 'menu-save': - this.triggerEvent(command, {props:props}); - return false; - - case 'open': - if (uid = this.get_single_uid()) { - obj.href = this.url('show', {_mbox: this.env.mailbox, _uid: uid}); - return true; - } - break; - - case 'close': - if (this.env.extwin) - window.close(); - break; - - case 'list': - if (props && props != '') - this.reset_qsearch(); - if (this.env.action == 'compose' && this.env.extwin) - window.close(); - else if (this.task == 'mail') { - this.list_mailbox(props); - this.set_button_titles(); - } - else if (this.task == 'addressbook') - this.list_contacts(props); - break; - - case 'sort': - var sort_order = this.env.sort_order, - sort_col = !this.env.disabled_sort_col ? props : this.env.sort_col; - - if (!this.env.disabled_sort_order) - sort_order = this.env.sort_col == sort_col && sort_order == 'ASC' ? 'DESC' : 'ASC'; - - // set table header and update env - this.set_list_sorting(sort_col, sort_order); - - // reload message list - this.list_mailbox('', '', sort_col+'_'+sort_order); - break; - - case 'nextpage': - this.list_page('next'); - break; - - case 'lastpage': - this.list_page('last'); - break; - - case 'previouspage': - this.list_page('prev'); - break; - - case 'firstpage': - this.list_page('first'); - break; - - case 'expunge': - if (this.env.exists) - this.expunge_mailbox(this.env.mailbox); - break; - - case 'purge': - case 'empty-mailbox': - if (this.env.exists) - this.purge_mailbox(this.env.mailbox); - break; - - // common commands used in multiple tasks - case 'show': - if (this.task == 'mail') { - uid = this.get_single_uid(); - if (uid && (!this.env.uid || uid != this.env.uid)) { - if (this.env.mailbox == this.env.drafts_mailbox) - this.open_compose_step({ _draft_uid: uid, _mbox: this.env.mailbox }); - else - this.show_message(uid); - } - } - else if (this.task == 'addressbook') { - cid = props ? props : this.get_single_cid(); - if (cid && !(this.env.action == 'show' && cid == this.env.cid)) - this.load_contact(cid, 'show'); - } - break; - - case 'add': - if (this.task == 'addressbook') - this.load_contact(0, 'add'); - else if (this.task == 'settings' && this.env.action == 'responses') { - var frame; - if ((frame = this.get_frame_window(this.env.contentframe))) { - this.set_busy(true); - this.location_href({ _action:'add-response', _framed:1 }, frame); - } - } - else if (this.task == 'settings') { - this.identity_list.clear_selection(); - this.load_identity(0, 'add-identity'); - } - break; - - case 'edit': - if (this.task == 'addressbook' && (cid = this.get_single_cid())) - this.load_contact(cid, 'edit'); - else if (this.task == 'settings' && props) - this.load_identity(props, 'edit-identity'); - else if (this.task == 'mail' && (cid = this.get_single_uid())) { - url = { _mbox: this.env.mailbox }; - url[this.env.mailbox == this.env.drafts_mailbox && props != 'new' ? '_draft_uid' : '_uid'] = cid; - this.open_compose_step(url); - } - break; - - case 'save': - var input, form = this.gui_objects.editform; - if (form) { - // adv. search - if (this.env.action == 'search') { - } - // user prefs - else if ((input = $("input[name='_pagesize']", form)) && input.length && isNaN(parseInt(input.val()))) { - alert(this.get_label('nopagesizewarning')); - input.focus(); - break; - } - // contacts/identities - else { - // reload form - if (props == 'reload') { - form.action += '?_reload=1'; - } - else if (this.task == 'settings' && (this.env.identities_level % 2) == 0 && - (input = $("input[name='_email']", form)) && input.length && !rcube_check_email(input.val()) - ) { - alert(this.get_label('noemailwarning')); - input.focus(); - break; - } - - // clear empty input fields - $('input.placeholder').each(function(){ if (this.value == this._placeholder) this.value = ''; }); - } - - // add selected source (on the list) - if (parent.rcmail && parent.rcmail.env.source) - form.action = this.add_url(form.action, '_orig_source', parent.rcmail.env.source); - - form.submit(); - } - break; - - case 'delete': - // mail task - if (this.task == 'mail') - this.delete_messages(event); - // addressbook task - else if (this.task == 'addressbook') - this.delete_contacts(); - // settings: canned response - else if (this.task == 'settings' && this.env.action == 'responses') - this.delete_response(); - // settings: user identities - else if (this.task == 'settings') - this.delete_identity(); - break; - - // mail task commands - case 'move': - case 'moveto': // deprecated - if (this.task == 'mail') - this.move_messages(props); - else if (this.task == 'addressbook') - this.move_contacts(props); - break; - - case 'copy': - if (this.task == 'mail') - this.copy_messages(props); - else if (this.task == 'addressbook') - this.copy_contacts(props); - break; - - case 'mark': - if (props) - this.mark_message(props); - break; - - case 'toggle_status': - case 'toggle_flag': - flag = command == 'toggle_flag' ? 'flagged' : 'read'; - - if (uid = props) { - // toggle flagged/unflagged - if (flag == 'flagged') { - if (this.message_list.rows[uid].flagged) - flag = 'unflagged'; - } - // toggle read/unread - else if (this.message_list.rows[uid].deleted) - flag = 'undelete'; - else if (!this.message_list.rows[uid].unread) - flag = 'unread'; - - this.mark_message(flag, uid); - } - - break; - - case 'always-load': - if (this.env.uid && this.env.sender) { - this.add_contact(this.env.sender); - setTimeout(function(){ ref.command('load-images'); }, 300); - break; - } - - case 'load-images': - if (this.env.uid) - this.show_message(this.env.uid, true, this.env.action=='preview'); - break; - - case 'load-attachment': - case 'open-attachment': - case 'download-attachment': - var qstring = '_mbox='+urlencode(this.env.mailbox)+'&_uid='+this.env.uid+'&_part='+props, - mimetype = this.env.attachments[props]; - - // open attachment in frame if it's of a supported mimetype - if (command != 'download-attachment' && mimetype && this.env.mimetypes && $.inArray(mimetype, this.env.mimetypes) >= 0) { - if (this.open_window(this.env.comm_path+'&_action=get&'+qstring+'&_frame=1')) - break; - } - - this.goto_url('get', qstring+'&_download=1', false); - break; - - case 'select-all': - this.select_all_mode = props ? false : true; - this.dummy_select = true; // prevent msg opening if there's only one msg on the list - if (props == 'invert') - this.message_list.invert_selection(); - else - this.message_list.select_all(props == 'page' ? '' : props); - this.dummy_select = null; - break; - - case 'select-none': - this.select_all_mode = false; - this.message_list.clear_selection(); - break; - - case 'expand-all': - this.env.autoexpand_threads = 1; - this.message_list.expand_all(); - break; - - case 'expand-unread': - this.env.autoexpand_threads = 2; - this.message_list.collapse_all(); - this.expand_unread(); - break; - - case 'collapse-all': - this.env.autoexpand_threads = 0; - this.message_list.collapse_all(); - break; - - case 'nextmessage': - if (this.env.next_uid) - this.show_message(this.env.next_uid, false, this.env.action == 'preview'); - break; - - case 'lastmessage': - if (this.env.last_uid) - this.show_message(this.env.last_uid); - break; - - case 'previousmessage': - if (this.env.prev_uid) - this.show_message(this.env.prev_uid, false, this.env.action == 'preview'); - break; - - case 'firstmessage': - if (this.env.first_uid) - this.show_message(this.env.first_uid); - break; - - case 'compose': - url = {}; - - if (this.task == 'mail') { - url._mbox = this.env.mailbox; - if (props) - url._to = props; - // also send search request so we can go back to search result after message is sent - if (this.env.search_request) - url._search = this.env.search_request; - } - // modify url if we're in addressbook - else if (this.task == 'addressbook') { - // switch to mail compose step directly - if (props && props.indexOf('@') > 0) { - url._to = props; - } - else { - var a_cids = []; - // use contact id passed as command parameter - if (props) - a_cids.push(props); - // get selected contacts - else if (this.contact_list) - a_cids = this.contact_list.get_selection(); - - if (a_cids.length) - this.http_post('mailto', { _cid: a_cids.join(','), _source: this.env.source }, true); - else if (this.env.group) - this.http_post('mailto', { _gid: this.env.group, _source: this.env.source }, true); - - break; - } - } - else if (props) - url._to = props; - - this.open_compose_step(url); - break; - - case 'spellcheck': - if (this.spellcheck_state()) { - this.stop_spellchecking(); - } - else { - if (window.tinyMCE && tinyMCE.get(this.env.composebody)) { - tinyMCE.execCommand('mceSpellCheck', true); - } - else if (this.env.spellcheck && this.env.spellcheck.spellCheck) { - this.env.spellcheck.spellCheck(); - } - } - this.spellcheck_state(); - break; - - case 'savedraft': - // Reset the auto-save timer - clearTimeout(this.save_timer); - - // compose form did not change (and draft wasn't saved already) - if (this.env.draft_id && this.cmp_hash == this.compose_field_hash()) { - this.auto_save_start(); - break; - } - - this.submit_messageform(true); - break; - - case 'send': - if (!props.nocheck && !this.check_compose_input(command)) - break; - - // Reset the auto-save timer - clearTimeout(this.save_timer); - - this.submit_messageform(); - break; - - case 'send-attachment': - // Reset the auto-save timer - clearTimeout(this.save_timer); - - this.upload_file(props || this.gui_objects.uploadform, 'upload'); - break; - - case 'insert-sig': - this.change_identity($("[name='_from']")[0], true); - break; - - case 'list-adresses': - this.list_contacts(props); - this.enable_command('add-recipient', false); - break; - - case 'add-recipient': - this.compose_add_recipient(props); - break; - - case 'reply-all': - case 'reply-list': - case 'reply': - if (uid = this.get_single_uid()) { - url = {_reply_uid: uid, _mbox: this.env.mailbox}; - if (command == 'reply-all') - // do reply-list, when list is detected and popup menu wasn't used - url._all = (!props && this.env.reply_all_mode == 1 && this.commands['reply-list'] ? 'list' : 'all'); - else if (command == 'reply-list') - url._all = 'list'; - - this.open_compose_step(url); - } - break; - - case 'forward-attachment': - case 'forward-inline': - case 'forward': - var uids = this.env.uid ? [this.env.uid] : (this.message_list ? this.message_list.get_selection() : []); - if (uids.length) { - url = { _forward_uid: this.uids_to_list(uids), _mbox: this.env.mailbox }; - if (command == 'forward-attachment' || (!props && this.env.forward_attachment) || uids.length > 1) - url._attachment = 1; - this.open_compose_step(url); - } - break; - - case 'print': - if (this.env.action == 'get') { - this.gui_objects.messagepartframe.contentWindow.print(); - } - else if (uid = this.get_single_uid()) { - ref.printwin = this.open_window(this.env.comm_path+'&_action=print&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+(this.env.safemode ? '&_safe=1' : ''), true, true); - if (this.printwin) { - if (this.env.action != 'show') - this.mark_message('read', uid); - } - } - break; - - case 'viewsource': - if (uid = this.get_single_uid()) - this.open_window(this.env.comm_path+'&_action=viewsource&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox), true, true); - break; - - case 'download': - if (this.env.action == 'get') { - location.href = location.href.replace(/_frame=/, '_download='); - } - else if (uid = this.get_single_uid()) - this.goto_url('viewsource', { _uid: uid, _mbox: this.env.mailbox, _save: 1 }); - break; - - // quicksearch - case 'search': - if (!props && this.gui_objects.qsearchbox) - props = this.gui_objects.qsearchbox.value; - if (props) { - this.qsearch(props); - break; - } - - // reset quicksearch - case 'reset-search': - var n, s = this.env.search_request || this.env.qsearch; - - this.reset_qsearch(); - this.select_all_mode = false; - - if (s && this.env.action == 'compose') { - if (this.contact_list) - this.list_contacts_clear(); - } - else if (s && this.env.mailbox) { - this.list_mailbox(this.env.mailbox, 1); - } - else if (s && this.task == 'addressbook') { - if (this.env.source == '') { - for (n in this.env.address_sources) break; - this.env.source = n; - this.env.group = ''; - } - this.list_contacts(this.env.source, this.env.group, 1); - } - break; - - case 'pushgroup': - // add group ID to stack - this.env.address_group_stack.push(props.id); - if (obj && event) - rcube_event.cancel(event); - - case 'listgroup': - this.reset_qsearch(); - this.list_contacts(props.source, props.id); - break; - - case 'popgroup': - if (this.env.address_group_stack.length > 1) { - this.env.address_group_stack.pop(); - this.reset_qsearch(); - this.list_contacts(props.source, this.env.address_group_stack[this.env.address_group_stack.length-1]); - } - break; - - case 'import-messages': - var form = props || this.gui_objects.importform; - $('input[name="_unlock"]', form).val(this.set_busy(true, 'importwait')); - this.upload_file(form, 'import'); - break; - - case 'import': - if (this.env.action == 'import' && this.gui_objects.importform) { - var file = document.getElementById('rcmimportfile'); - if (file && !file.value) { - alert(this.get_label('selectimportfile')); - break; - } - this.gui_objects.importform.submit(); - this.set_busy(true, 'importwait'); - this.lock_form(this.gui_objects.importform, true); - } - else - this.goto_url('import', (this.env.source ? '_target='+urlencode(this.env.source)+'&' : '')); - break; - - case 'export': - if (this.contact_list.rowcount > 0) { - this.goto_url('export', { _source: this.env.source, _gid: this.env.group, _search: this.env.search_request }); - } - break; - - case 'export-selected': - if (this.contact_list.rowcount > 0) { - this.goto_url('export', { _source: this.env.source, _gid: this.env.group, _cid: this.contact_list.get_selection().join(',') }); - } - break; - - case 'upload-photo': - this.upload_contact_photo(props || this.gui_objects.uploadform); - break; - - case 'delete-photo': - this.replace_contact_photo('-del-'); - break; - - // user settings commands - case 'preferences': - case 'identities': - case 'responses': - case 'folders': - this.goto_url('settings/' + command); - break; - - case 'undo': - this.http_request('undo', '', this.display_message('', 'loading')); - break; - - // unified command call (command name == function name) - default: - var func = command.replace(/-/g, '_'); - if (this[func] && typeof this[func] === 'function') { - ret = this[func](props, obj); - } - break; - } - - if (this.triggerEvent('after'+command, props) === false) - ret = false; - this.triggerEvent('actionafter', {props:props, action:command}); - - return ret === false ? false : obj ? false : true; - }; - - // set command(s) enabled or disabled - this.enable_command = function() - { - var i, n, args = Array.prototype.slice.call(arguments), - enable = args.pop(), cmd; - - for (n=0; n 1 ? 'copy' : 'normal'); - } - else { - // Clear target, otherwise drag end will trigger move into last valid droptarget - this.env.last_folder_target = null; - } - - if (layerclass != oldclass && this.contact_list && this.contact_list.draglayer) - this.contact_list.draglayer.attr('class', layerclass); - } - }; - - this.collapse_folder = function(name) - { - if (this.treelist) - this.treelist.toggle(name); - }; - - this.folder_collapsed = function(node) - { - var prefname = this.env.task == 'addressbook' ? 'collapsed_abooks' : 'collapsed_folders'; - - if (node.collapsed) { - this.env[prefname] = this.env[prefname] + '&'+urlencode(node.id)+'&'; - - // select the folder if one of its childs is currently selected - // don't select if it's virtual (#1488346) - if (this.env.mailbox && this.env.mailbox.startsWith(name + this.env.delimiter) && !node.virtual) - this.command('list', name); - } - else { - var reg = new RegExp('&'+urlencode(node.id)+'&'); - this.env[prefname] = this.env[prefname].replace(reg, ''); - } - - if (!this.drag_active) { - this.command('save-pref', { name: prefname, value: this.env[prefname] }); - - if (this.env.unread_counts) - this.set_unread_count_display(node.id, false); - } - }; - - this.doc_mouse_up = function(e) - { - var model, list, id; - - // ignore event if jquery UI dialog is open - if ($(rcube_event.get_target(e)).closest('.ui-dialog, .ui-widget-overlay').length) - return; - - if (list = this.message_list) - model = this.env.mailboxes; - else if (list = this.contact_list) - model = this.env.contactfolders; - else if (this.ksearch_value) - this.ksearch_blur(); - - if (list && !rcube_mouse_is_over(e, list.list.parentNode)) - list.blur(); - - // handle mouse release when dragging - if (this.drag_active && model && this.env.last_folder_target) { - var target = model[this.env.last_folder_target]; - - this.env.last_folder_target = null; - list.draglayer.hide(); - this.drag_end(e); - - if (this.contact_list) { - if (!this.contacts_drag_menu(e, target)) - this.command('move', target); - } - else if (!this.drag_menu(e, target)) - this.command('move', target); - } - - // reset 'pressed' buttons - if (this.buttons_sel) { - for (id in this.buttons_sel) - if (typeof id !== 'function') - this.button_out(this.buttons_sel[id], id); - this.buttons_sel = {}; - } - }; - - this.click_on_list = function(e) - { - if (this.gui_objects.qsearchbox) - this.gui_objects.qsearchbox.blur(); - - if (this.message_list) - this.message_list.focus(); - else if (this.contact_list) - this.contact_list.focus(); - - return true; - }; - - this.msglist_select = function(list) - { - if (this.preview_timer) - clearTimeout(this.preview_timer); - if (this.preview_read_timer) - clearTimeout(this.preview_read_timer); - - var selected = list.get_single_selection(); - - this.enable_command(this.env.message_commands, selected != null); - if (selected) { - // Hide certain command buttons when Drafts folder is selected - if (this.env.mailbox == this.env.drafts_mailbox) - this.enable_command('reply', 'reply-all', 'reply-list', 'forward', 'forward-attachment', 'forward-inline', false); - // Disable reply-list when List-Post header is not set - else { - var msg = this.env.messages[selected]; - if (!msg.ml) - this.enable_command('reply-list', false); - } - } - // Multi-message commands - this.enable_command('delete', 'move', 'copy', 'mark', 'forward', 'forward-attachment', list.selection.length > 0); - - // reset all-pages-selection - if (selected || (list.selection.length && list.selection.length != list.rowcount)) - this.select_all_mode = false; - - // start timer for message preview (wait for double click) - if (selected && this.env.contentframe && !list.multi_selecting && !this.dummy_select) - this.preview_timer = setTimeout(function() { ref.msglist_get_preview(); }, this.dblclick_time); - else if (this.env.contentframe) - this.show_contentframe(false); - }; - - // This allow as to re-select selected message and display it in preview frame - this.msglist_click = function(list) - { - if (list.multi_selecting || !this.env.contentframe) - return; - - if (list.get_single_selection()) - return; - - var win = this.get_frame_window(this.env.contentframe); - - if (win && win.location.href.indexOf(this.env.blankpage) >= 0) { - if (this.preview_timer) - clearTimeout(this.preview_timer); - if (this.preview_read_timer) - clearTimeout(this.preview_read_timer); - - this.preview_timer = setTimeout(function() { ref.msglist_get_preview(); }, this.dblclick_time); - } - }; - - this.msglist_dbl_click = function(list) - { - if (this.preview_timer) - clearTimeout(this.preview_timer); - if (this.preview_read_timer) - clearTimeout(this.preview_read_timer); - - var uid = list.get_single_selection(); - - if (uid && this.env.mailbox == this.env.drafts_mailbox) - this.open_compose_step({ _draft_uid: uid, _mbox: this.env.mailbox }); - else if (uid) - this.show_message(uid, false, false); - }; - - this.msglist_keypress = function(list) - { - if (list.modkey == CONTROL_KEY) - return; - - if (list.key_pressed == list.ENTER_KEY) - this.command('show'); - else if (list.key_pressed == list.DELETE_KEY || list.key_pressed == list.BACKSPACE_KEY) - this.command('delete'); - else if (list.key_pressed == 33) - this.command('previouspage'); - else if (list.key_pressed == 34) - this.command('nextpage'); - }; - - this.msglist_get_preview = function() - { - var uid = this.get_single_uid(); - if (uid && this.env.contentframe && !this.drag_active) - this.show_message(uid, false, true); - else if (this.env.contentframe) - this.show_contentframe(false); - }; - - this.msglist_expand = function(row) - { - if (this.env.messages[row.uid]) - this.env.messages[row.uid].expanded = row.expanded; - $(row.obj)[row.expanded?'addClass':'removeClass']('expanded'); - }; - - this.msglist_set_coltypes = function(list) - { - var i, found, name, cols = list.thead.rows[0].cells; - - this.env.coltypes = []; - - for (i=0; i= 0) - this.env.flagged_col = found; - - if ((found = $.inArray('subject', this.env.coltypes)) >= 0) - this.env.subject_col = found; - - this.command('save-pref', { name: 'list_cols', value: this.env.coltypes, session: 'list_attrib/columns' }); - }; - - this.check_droptarget = function(id) - { - switch (this.task) { - case 'mail': - return (this.env.mailboxes[id] && this.env.mailboxes[id].id != this.env.mailbox && !this.env.mailboxes[id].virtual) ? 1 : 0; - - case 'settings': - return id != this.env.mailbox ? 1 : 0; - - case 'addressbook': - var target; - if (id != this.env.source && (target = this.env.contactfolders[id])) { - // droptarget is a group - if (target.type == 'group') { - if (target.id != this.env.group && !this.env.contactfolders[target.source].readonly) { - var is_other = this.env.selection_sources.length > 1 || $.inArray(target.source, this.env.selection_sources) == -1; - return !is_other || this.commands.move ? 1 : 2; - } - } - // droptarget is a (writable) addressbook and it's not the source - else if (!target.readonly && (this.env.selection_sources.length > 1 || $.inArray(id, this.env.selection_sources) == -1)) { - return this.commands.move ? 1 : 2; - } - } - } - - return 0; - }; - - // open popup window - this.open_window = function(url, small, toolbar) - { - var wname = 'rcmextwin' + new Date().getTime(); - - url += (url.match(/\?/) ? '&' : '?') + '_extwin=1'; - - if (this.env.standard_windows) - extwin = window.open(url, wname); - else { - var win = this.is_framed() ? parent.window : window, - page = $(win), - page_width = page.width(), - page_height = bw.mz ? $('body', win).height() : page.height(), - w = Math.min(small ? this.env.popup_width_small : this.env.popup_width, page_width), - h = page_height, // always use same height - l = (win.screenLeft || win.screenX) + 20, - t = (win.screenTop || win.screenY) + 20, - extwin = window.open(url, wname, - 'width='+w+',height='+h+',top='+t+',left='+l+',resizable=yes,location=no,scrollbars=yes' - +(toolbar ? ',toolbar=yes,menubar=yes,status=yes' : ',toolbar=no,menubar=no,status=no')); - } - - // write loading... message to empty windows - if (!url && extwin.document) { - extwin.document.write('' + this.get_label('loading') + ''); - } - - // focus window, delayed to bring to front - window.setTimeout(function() { extwin.focus(); }, 10); - - return extwin; - }; - - - /*********************************************************/ - /********* (message) list functionality *********/ - /*********************************************************/ - - this.init_message_row = function(row) - { - var i, fn = {}, self = this, uid = row.uid, - status_icon = (this.env.status_col != null ? 'status' : 'msg') + 'icn' + row.uid; - - if (uid && this.env.messages[uid]) - $.extend(row, this.env.messages[uid]); - - // set eventhandler to status icon - if (row.icon = document.getElementById(status_icon)) { - fn.icon = function(e) { self.command('toggle_status', uid); }; - } - - // save message icon position too - if (this.env.status_col != null) - row.msgicon = document.getElementById('msgicn'+row.uid); - else - row.msgicon = row.icon; - - // set eventhandler to flag icon - if (this.env.flagged_col != null && (row.flagicon = document.getElementById('flagicn'+row.uid))) { - fn.flagicon = function(e) { self.command('toggle_flag', uid); }; - } - - // set event handler to thread expand/collapse icon - if (!row.depth && row.has_children && (row.expando = document.getElementById('rcmexpando'+row.uid))) { - fn.expando = function(e) { self.expand_message_row(e, uid); }; - } - - // attach events - $.each(fn, function(i, f) { - row[i].onclick = function(e) { f(e); return rcube_event.cancel(e); }; - if (bw.touch) { - row[i].addEventListener('touchend', function(e) { - if (e.changedTouches.length == 1) { - f(e); - return rcube_event.cancel(e); - } - }, false); - } - }); - - this.triggerEvent('insertrow', { uid:uid, row:row }); - }; - - // create a table row in the message list - this.add_message_row = function(uid, cols, flags, attop) - { - if (!this.gui_objects.messagelist || !this.message_list) - return false; - - // Prevent from adding messages from different folder (#1487752) - if (flags.mbox != this.env.mailbox && !flags.skip_mbox_check) - return false; - - if (!this.env.messages[uid]) - this.env.messages[uid] = {}; - - // merge flags over local message object - $.extend(this.env.messages[uid], { - deleted: flags.deleted?1:0, - replied: flags.answered?1:0, - unread: !flags.seen?1:0, - forwarded: flags.forwarded?1:0, - flagged: flags.flagged?1:0, - has_children: flags.has_children?1:0, - depth: flags.depth?flags.depth:0, - unread_children: flags.unread_children?flags.unread_children:0, - parent_uid: flags.parent_uid?flags.parent_uid:0, - selected: this.select_all_mode || this.message_list.in_selection(uid), - ml: flags.ml?1:0, - ctype: flags.ctype, - // flags from plugins - flags: flags.extra_flags - }); - - var c, n, col, html, css_class, - tree = '', expando = '', - list = this.message_list, - rows = list.rows, - message = this.env.messages[uid], - row_class = 'message' - + (!flags.seen ? ' unread' : '') - + (flags.deleted ? ' deleted' : '') - + (flags.flagged ? ' flagged' : '') - + (message.selected ? ' selected' : ''), - row = { cols:[], style:{}, id:'rcmrow'+uid }; - - // message status icons - css_class = 'msgicon'; - if (this.env.status_col === null) { - css_class += ' status'; - if (flags.deleted) - css_class += ' deleted'; - else if (!flags.seen) - css_class += ' unread'; - else if (flags.unread_children > 0) - css_class += ' unreadchildren'; - } - if (flags.answered) - css_class += ' replied'; - if (flags.forwarded) - css_class += ' forwarded'; - - // update selection - if (message.selected && !list.in_selection(uid)) - list.selection.push(uid); - - // threads - if (this.env.threading) { - if (message.depth) { - // This assumes that div width is hardcoded to 15px, - tree += '  '; - - if ((rows[message.parent_uid] && rows[message.parent_uid].expanded === false) - || ((this.env.autoexpand_threads == 0 || this.env.autoexpand_threads == 2) && - (!rows[message.parent_uid] || !rows[message.parent_uid].expanded)) - ) { - row.style.display = 'none'; - message.expanded = false; - } - else - message.expanded = true; - - row_class += ' thread expanded'; - } - else if (message.has_children) { - if (message.expanded === undefined && (this.env.autoexpand_threads == 1 || (this.env.autoexpand_threads == 2 && message.unread_children))) { - message.expanded = true; - } - - expando = '
  
'; - row_class += ' thread' + (message.expanded? ' expanded' : ''); - } - - if (flags.unread_children && flags.seen && !message.expanded) - row_class += ' unroot'; - } - - tree += ' '; - row.className = row_class; - - // build subject link - if (!bw.ie && cols.subject) { - var action = flags.mbox == this.env.drafts_mailbox ? 'compose' : 'show'; - var uid_param = flags.mbox == this.env.drafts_mailbox ? '_draft_uid' : '_uid'; - cols.subject = ''+cols.subject+''; - } - - // add each submitted col - for (n in this.env.coltypes) { - c = this.env.coltypes[n]; - col = { className: String(c).toLowerCase() }; - - if (c == 'flag') { - css_class = (flags.flagged ? 'flagged' : 'unflagged'); - html = ' '; - } - else if (c == 'attachment') { - if (/application\/|multipart\/(m|signed)/.test(flags.ctype)) - html = ' '; - else if (/multipart\/report/.test(flags.ctype)) - html = ' '; - else - html = ' '; - } - else if (c == 'status') { - if (flags.deleted) - css_class = 'deleted'; - else if (!flags.seen) - css_class = 'unread'; - else if (flags.unread_children > 0) - css_class = 'unreadchildren'; - else - css_class = 'msgicon'; - html = ' '; - } - else if (c == 'threads') - html = expando; - else if (c == 'subject') { - if (bw.ie) { - col.onmouseover = function() { rcube_webmail.long_subject_title_ex(this, message.depth+1); }; - if (bw.ie8) - tree = '' + tree; // #1487821 - } - html = tree + cols[c]; - } - else if (c == 'priority') { - if (flags.prio > 0 && flags.prio < 6) - html = ' '; - else - html = ' '; - } - else - html = cols[c]; - - col.innerHTML = html; - row.cols.push(col); - } - - list.insert_row(row, attop); - - // remove 'old' row - if (attop && this.env.pagesize && list.rowcount > this.env.pagesize) { - var uid = list.get_last_row(); - list.remove_row(uid); - list.clear_selection(uid); - } - }; - - this.set_list_sorting = function(sort_col, sort_order) - { - // set table header class - $('#rcm'+this.env.sort_col).removeClass('sorted'+(this.env.sort_order.toUpperCase())); - if (sort_col) - $('#rcm'+sort_col).addClass('sorted'+sort_order); - - this.env.sort_col = sort_col; - this.env.sort_order = sort_order; - }; - - this.set_list_options = function(cols, sort_col, sort_order, threads) - { - var update, post_data = {}; - - if (sort_col === undefined) - sort_col = this.env.sort_col; - if (!sort_order) - sort_order = this.env.sort_order; - - if (this.env.sort_col != sort_col || this.env.sort_order != sort_order) { - update = 1; - this.set_list_sorting(sort_col, sort_order); - } - - if (this.env.threading != threads) { - update = 1; - post_data._threads = threads; - } - - if (cols && cols.length) { - // make sure new columns are added at the end of the list - var i, idx, name, newcols = [], oldcols = this.env.coltypes; - for (i=0; i= 0) { - this.show_contentframe(true); - } - else { - if (!preview && this.env.message_extwin && !this.env.extwin) - this.open_window(this.env.comm_path+url, true); - else - this.location_href(this.env.comm_path+url, target, true); - - // mark as read and change mbox unread counter - if (preview && this.message_list && this.message_list.rows[id] && this.message_list.rows[id].unread && this.env.preview_pane_mark_read >= 0) { - this.preview_read_timer = setTimeout(function() { - ref.set_message(id, 'unread', false); - ref.update_thread_root(id, 'read'); - if (ref.env.unread_counts[ref.env.mailbox]) { - ref.env.unread_counts[ref.env.mailbox] -= 1; - ref.set_unread_count(ref.env.mailbox, ref.env.unread_counts[ref.env.mailbox], ref.env.mailbox == 'INBOX'); - } - if (ref.env.preview_pane_mark_read > 0) - ref.http_post('mark', {_uid: id, _flag: 'read', _quiet: 1}); - }, this.env.preview_pane_mark_read * 1000); - } - } - }; - - this.show_contentframe = function(show) - { - var frame, win, name = this.env.contentframe; - - if (name && (frame = this.get_frame_element(name))) { - if (!show && (win = this.get_frame_window(name))) { - if (win.location.href.indexOf(this.env.blankpage) < 0) { - if (win.stop) - win.stop(); - else // IE - win.document.execCommand('Stop'); - - win.location.href = this.env.blankpage; - } - } - else if (!bw.safari && !bw.konq) - $(frame)[show ? 'show' : 'hide'](); - } - - if (!show && this.env.frame_lock) - this.set_busy(false, null, this.env.frame_lock); - }; - - this.get_frame_element = function(id) - { - var frame; - - if (id && (frame = document.getElementById(id))) - return frame; - }; - - this.get_frame_window = function(id) - { - var frame = this.get_frame_element(id); - - if (frame && frame.name && window.frames) - return window.frames[frame.name]; - }; - - this.lock_frame = function() - { - if (!this.env.frame_lock) - (this.is_framed() ? parent.rcmail : this).env.frame_lock = this.set_busy(true, 'loading'); - }; - - // list a specific page - this.list_page = function(page) - { - if (page == 'next') - page = this.env.current_page+1; - else if (page == 'last') - page = this.env.pagecount; - else if (page == 'prev' && this.env.current_page > 1) - page = this.env.current_page-1; - else if (page == 'first' && this.env.current_page > 1) - page = 1; - - if (page > 0 && page <= this.env.pagecount) { - this.env.current_page = page; - - if (this.task == 'addressbook' || this.contact_list) - this.list_contacts(this.env.source, this.env.group, page); - else if (this.task == 'mail') - this.list_mailbox(this.env.mailbox, page); - } - }; - - // sends request to check for recent messages - this.checkmail = function() - { - var lock = this.set_busy(true, 'checkingmail'), - params = this.check_recent_params(); - - this.http_request('check-recent', params, lock); - }; - - // list messages of a specific mailbox using filter - this.filter_mailbox = function(filter) - { - var lock = this.set_busy(true, 'searching'); - - this.clear_message_list(); - - // reset vars - this.env.current_page = 1; - this.http_request('search', this.search_params(false, filter), lock); - }; - - // list messages of a specific mailbox - this.list_mailbox = function(mbox, page, sort, url) - { - var win, target = window; - - if (typeof url != 'object') - url = {}; - - if (!mbox) - mbox = this.env.mailbox ? this.env.mailbox : 'INBOX'; - - // add sort to url if set - if (sort) - url._sort = sort; - - // also send search request to get the right messages - if (this.env.search_request) - url._search = this.env.search_request; - - // set page=1 if changeing to another mailbox - if (this.env.mailbox != mbox) { - page = 1; - this.env.current_page = page; - this.select_all_mode = false; - } - - // unselect selected messages and clear the list and message data - this.clear_message_list(); - - if (mbox != this.env.mailbox || (mbox == this.env.mailbox && !page && !sort)) - url._refresh = 1; - - this.select_folder(mbox, '', true); - this.unmark_folder(mbox, 'recent', '', true); - this.env.mailbox = mbox; - - // load message list remotely - if (this.gui_objects.messagelist) { - this.list_mailbox_remote(mbox, page, url); - return; - } - - if (win = this.get_frame_window(this.env.contentframe)) { - target = win; - url._framed = 1; - } - - // load message list to target frame/window - if (mbox) { - this.set_busy(true, 'loading'); - url._mbox = mbox; - if (page) - url._page = page; - this.location_href(url, target); - } - }; - - this.clear_message_list = function() - { - this.env.messages = {}; - this.last_selected = 0; - - this.show_contentframe(false); - if (this.message_list) - this.message_list.clear(true); - }; - - // send remote request to load message list - this.list_mailbox_remote = function(mbox, page, post_data) - { - // clear message list first - this.message_list.clear(); - - var lock = this.set_busy(true, 'loading'); - - if (typeof post_data != 'object') - post_data = {}; - post_data._mbox = mbox; - if (page) - post_data._page = page; - - this.http_request('list', post_data, lock); - }; - - // removes messages that doesn't exists from list selection array - this.update_selection = function() - { - var selected = this.message_list.selection, - rows = this.message_list.rows, - i, selection = []; - - for (i in selected) - if (rows[selected[i]]) - selection.push(selected[i]); - - this.message_list.selection = selection; - } - - // expand all threads with unread children - this.expand_unread = function() - { - var r, tbody = this.gui_objects.messagelist.tBodies[0], - new_row = tbody.firstChild; - - while (new_row) { - if (new_row.nodeType == 1 && (r = this.message_list.rows[new_row.uid]) && r.unread_children) { - this.message_list.expand_all(r); - this.set_unread_children(r.uid); - } - new_row = new_row.nextSibling; - } - return false; - }; - - // thread expanding/collapsing handler - this.expand_message_row = function(e, uid) - { - var row = this.message_list.rows[uid]; - - // handle unread_children mark - row.expanded = !row.expanded; - this.set_unread_children(uid); - row.expanded = !row.expanded; - - this.message_list.expand_row(e, uid); - }; - - // message list expanding - this.expand_threads = function() - { - if (!this.env.threading || !this.env.autoexpand_threads || !this.message_list) - return; - - switch (this.env.autoexpand_threads) { - case 2: this.expand_unread(); break; - case 1: this.message_list.expand_all(); break; - } - }; - - // Initializes threads indicators/expanders after list update - this.init_threads = function(roots, mbox) - { - // #1487752 - if (mbox && mbox != this.env.mailbox) - return false; - - for (var n=0, len=roots.length; n=0; i--) { - len = tmp[i].length; - if (len > r.depth) { - pos = len - r.depth; - if (!(tmp[i][pos] & 2)) - tmp[i][pos] = tmp[i][pos] ? tmp[i][pos]+2 : 2; - } - else if (len == r.depth) { - if (!(tmp[i][0] & 2)) - tmp[i][0] += 2; - } - if (r.depth > len) - break; - } - - tmp.push(new Array(r.depth)); - tmp[tmp.length-1][0] = 1; - uid.push(r.uid); - } - else { - if (tmp.length) { - for (i in tmp) { - this.set_tree_icons(uid[i], tmp[i]); - } - tmp = []; - uid = []; - } - if (root && row != rows[root].obj) - break; - } - } - row = row.nextSibling; - } - - if (tmp.length) { - for (i in tmp) { - this.set_tree_icons(uid[i], tmp[i]); - } - } - }; - - // adds tree icons to specified message row - this.set_tree_icons = function(uid, tree) - { - var i, divs = [], html = '', len = tree.length; - - for (i=0; i 2) - divs.push({'class': 'l3', width: 15}); - else if (tree[i] > 1) - divs.push({'class': 'l2', width: 15}); - else if (tree[i] > 0) - divs.push({'class': 'l1', width: 15}); - // separator div - else if (divs.length && !divs[divs.length-1]['class']) - divs[divs.length-1].width += 15; - else - divs.push({'class': null, width: 15}); - } - - for (i=divs.length-1; i>=0; i--) { - if (divs[i]['class']) - html += '
'; - else - html += '
'; - } - - if (html) - $('#rcmtab'+uid).html(html); - }; - - // update parent in a thread - this.update_thread_root = function(uid, flag) - { - if (!this.env.threading) - return; - - var root = this.message_list.find_root(uid); - - if (uid == root) - return; - - var p = this.message_list.rows[root]; - - if (flag == 'read' && p.unread_children) { - p.unread_children--; - } - else if (flag == 'unread' && p.has_children) { - // unread_children may be undefined - p.unread_children = p.unread_children ? p.unread_children + 1 : 1; - } - else { - return; - } - - this.set_message_icon(root); - this.set_unread_children(root); - }; - - // update thread indicators for all messages in a thread below the specified message - // return number of removed/added root level messages - this.update_thread = function (uid) - { - if (!this.env.threading) - return 0; - - var r, parent, count = 0, - rows = this.message_list.rows, - row = rows[uid], - depth = rows[uid].depth, - roots = []; - - if (!row.depth) // root message: decrease roots count - count--; - else if (row.unread) { - // update unread_children for thread root - parent = this.message_list.find_root(uid); - rows[parent].unread_children--; - this.set_unread_children(parent); - } - - parent = row.parent_uid; - - // childrens - row = row.obj.nextSibling; - while (row) { - if (row.nodeType == 1 && (r = rows[row.uid])) { - if (!r.depth || r.depth <= depth) - break; - - r.depth--; // move left - // reset width and clear the content of a tab, icons will be added later - $('#rcmtab'+r.uid).width(r.depth * 15).html(''); - if (!r.depth) { // a new root - count++; // increase roots count - r.parent_uid = 0; - if (r.has_children) { - // replace 'leaf' with 'collapsed' - $('#rcmrow'+r.uid+' '+'.leaf:first') - .attr('id', 'rcmexpando' + r.uid) - .attr('class', (r.obj.style.display != 'none' ? 'expanded' : 'collapsed')) - .bind('mousedown', {uid:r.uid, p:this}, - function(e) { return e.data.p.expand_message_row(e, e.data.uid); }); - - r.unread_children = 0; - roots.push(r); - } - // show if it was hidden - if (r.obj.style.display == 'none') - $(r.obj).show(); - } - else { - if (r.depth == depth) - r.parent_uid = parent; - if (r.unread && roots.length) - roots[roots.length-1].unread_children++; - } - } - row = row.nextSibling; - } - - // update unread_children for roots - for (var i=0; i 0) - this.delete_excessive_thread_rows(); - - if (!lock) { - msg = action == 'move' ? 'movingmessage' : 'deletingmessage'; - lock = this.display_message(this.get_label(msg), 'loading'); - } - - // send request to server - this.http_post(action, post_data, lock); - }; - - // build post data for message delete/move/copy/flag requests - this.selection_post_data = function(data) - { - if (typeof(data) != 'object') - data = {}; - - data._mbox = this.env.mailbox; - - if (!data._uid) { - var uids = this.env.uid ? [this.env.uid] : this.message_list.get_selection(); - data._uid = this.uids_to_list(uids); - } - - if (this.env.action) - data._from = this.env.action; - - // also send search request to get the right messages - if (this.env.search_request) - data._search = this.env.search_request; - - if (this.env.display_next && this.env.next_uid) - data._next_uid = this.env.next_uid; - - return data; - }; - - // set a specific flag to one or more messages - this.mark_message = function(flag, uid) - { - var a_uids = [], r_uids = [], len, n, id, - list = this.message_list; - - if (uid) - a_uids[0] = uid; - else if (this.env.uid) - a_uids[0] = this.env.uid; - else if (list) - a_uids = list.get_selection(); - - if (!list) - r_uids = a_uids; - else { - list.focus(); - for (n=0, len=a_uids.length; n 0) - // remove threads from the end of the list - this.delete_excessive_thread_rows(); - } - - // ?? - if (r_uids.length) - post_data._ruid = this.uids_to_list(r_uids); - - if (this.env.skip_deleted && this.env.display_next && this.env.next_uid) - post_data._next_uid = this.env.next_uid; - - this.http_post('mark', post_data, lock); - }; - - // flag as read without mark request (called from backend) - // argument should be a coma-separated list of uids - this.flag_deleted_as_read = function(uids) - { - var icn_src, uid, i, len, - rows = this.message_list ? this.message_list.rows : {}; - - uids = String(uids).split(','); - - for (i=0, len=uids.length; i 0) { - ac_props = { - threads: this.env.autocomplete_threads, - sources: this.env.autocomplete_sources - }; - } - - // init live search events - this.init_address_input_events(input_to, ac_props); - for (var i in ac_fields) { - this.init_address_input_events($("[name='_"+ac_fields[i]+"']"), ac_props); - } - - if (!html_mode) { - this.set_caret_pos(input_message, this.env.top_posting ? 0 : $(input_message).val().length); - // add signature according to selected identity - // if we have HTML editor, signature is added in callback - if (input_from.prop('type') == 'select-one') { - this.change_identity(input_from[0]); - } - } - - if (input_to.val() == '') - input_to.focus(); - else if (input_subject.val() == '') - input_subject.focus(); - else if (input_message) - input_message.focus(); - - this.env.compose_focus_elem = document.activeElement; - - // get summary of all field values - this.compose_field_hash(true); - - // start the auto-save timer - this.auto_save_start(); - }; - - this.init_address_input_events = function(obj, props) - { - this.env.recipients_delimiter = this.env.recipients_separator + ' '; - - obj[bw.ie || bw.safari || bw.chrome ? 'keydown' : 'keypress'](function(e) { return ref.ksearch_keydown(e, this, props); }) - .attr('autocomplete', 'off'); - }; - - this.submit_messageform = function(draft) - { - var form = this.gui_objects.messageform; - - if (!form) - return; - - // all checks passed, send message - var msgid = this.set_busy(true, draft ? 'savingmessage' : 'sendingmessage'), - lang = this.spellcheck_lang(), - files = []; - - // send files list - $('li', this.gui_objects.attachmentlist).each(function() { files.push(this.id.replace(/^rcmfile/, '')); }); - $('input[name="_attachments"]', form).val(files.join()); - - form.target = 'savetarget'; - form._draft.value = draft ? '1' : ''; - form.action = this.add_url(form.action, '_unlock', msgid); - form.action = this.add_url(form.action, '_lang', lang); - - // register timer to notify about connection timeout - this.submit_timer = setTimeout(function(){ - ref.set_busy(false, null, msgid); - ref.display_message(ref.get_label('requesttimedout'), 'error'); - }, this.env.request_timeout * 1000); - - form.submit(); - }; - - this.compose_recipient_select = function(list) - { - var id, n, recipients = 0; - for (n=0; n < list.selection.length; n++) { - id = list.selection[n]; - if (this.env.contactdata[id]) - recipients++; - } - this.enable_command('add-recipient', recipients); - }; - - this.compose_add_recipient = function(field) - { - var recipients = [], input = $('#_'+field), delim = this.env.recipients_delimiter; - - if (this.contact_list && this.contact_list.selection.length) { - for (var id, n=0; n < this.contact_list.selection.length; n++) { - id = this.contact_list.selection[n]; - if (id && this.env.contactdata[id]) { - recipients.push(this.env.contactdata[id]); - - // group is added, expand it - if (id.charAt(0) == 'E' && this.env.contactdata[id].indexOf('@') < 0 && input.length) { - var gid = id.substr(1); - this.group2expand[gid] = { name:this.env.contactdata[id], input:input.get(0) }; - this.http_request('group-expand', {_source: this.env.source, _gid: gid}, false); - } - } - } - } - - if (recipients.length && input.length) { - var oldval = input.val(), rx = new RegExp(RegExp.escape(delim) + '\\s*$'); - if (oldval && !rx.test(oldval)) - oldval += delim + ' '; - input.val(oldval + recipients.join(delim + ' ') + delim + ' '); - this.triggerEvent('add-recipient', { field:field, recipients:recipients }); - } - }; - - // checks the input fields before sending a message - this.check_compose_input = function(cmd) - { - // check input fields - var ed, input_to = $("[name='_to']"), - input_cc = $("[name='_cc']"), - input_bcc = $("[name='_bcc']"), - input_from = $("[name='_from']"), - input_subject = $("[name='_subject']"), - input_message = $("[name='_message']"); - - // check sender (if have no identities) - if (input_from.prop('type') == 'text' && !rcube_check_email(input_from.val(), true)) { - alert(this.get_label('nosenderwarning')); - input_from.focus(); - return false; - } - - // check for empty recipient - var recipients = input_to.val() ? input_to.val() : (input_cc.val() ? input_cc.val() : input_bcc.val()); - if (!rcube_check_email(recipients.replace(/^\s+/, '').replace(/[\s,;]+$/, ''), true)) { - alert(this.get_label('norecipientwarning')); - input_to.focus(); - return false; - } - - // check if all files has been uploaded - for (var key in this.env.attachments) { - if (typeof this.env.attachments[key] === 'object' && !this.env.attachments[key].complete) { - alert(this.get_label('notuploadedwarning')); - return false; - } - } - - // display localized warning for missing subject - if (input_subject.val() == '') { - var myprompt = $('
').html('
' + this.get_label('nosubjectwarning') + '
').appendTo(document.body); - var prompt_value = $('').attr('type', 'text').attr('size', 30).appendTo(myprompt).val(this.get_label('nosubject')); - - var buttons = {}; - buttons[this.get_label('cancel')] = function(){ - input_subject.focus(); - $(this).dialog('close'); - }; - buttons[this.get_label('sendmessage')] = function(){ - input_subject.val(prompt_value.val()); - $(this).dialog('close'); - ref.command(cmd, { nocheck:true }); // repeat command which triggered this - }; - - myprompt.dialog({ - modal: true, - resizable: false, - buttons: buttons, - close: function(event, ui) { $(this).remove() } - }); - prompt_value.select(); - return false; - } - - // Apply spellcheck changes if spell checker is active - this.stop_spellchecking(); - - if (window.tinyMCE) - ed = tinyMCE.get(this.env.composebody); - - // check for empty body - if (!ed && input_message.val() == '' && !confirm(this.get_label('nobodywarning'))) { - input_message.focus(); - return false; - } - else if (ed) { - if (!ed.getContent() && !confirm(this.get_label('nobodywarning'))) { - ed.focus(); - return false; - } - // move body from html editor to textarea (just to be sure, #1485860) - tinyMCE.triggerSave(); - } - - return true; - }; - - this.toggle_editor = function(props) - { - this.stop_spellchecking(); - - if (props.mode == 'html') { - this.plain2html($('#'+props.id).val(), props.id); - tinyMCE.execCommand('mceAddControl', false, props.id); - - if (this.env.default_font) - setTimeout(function() { - $(tinyMCE.get(props.id).getBody()).css('font-family', rcmail.env.default_font); - }, 500); - } - else { - var thisMCE = tinyMCE.get(props.id), existingHtml; - - if (existingHtml = thisMCE.getContent()) { - if (!confirm(this.get_label('editorwarning'))) { - return false; - } - this.html2plain(existingHtml, props.id); - } - tinyMCE.execCommand('mceRemoveControl', false, props.id); - } - - return true; - }; - - this.insert_response = function(key) - { - var insert = this.env.textresponses[key] ? this.env.textresponses[key].text : null; - if (!insert) - return false; - - // insert into tinyMCE editor - if ($("input[name='_is_html']").val() == '1') { - var editor = tinyMCE.get(this.env.composebody); - editor.getWin().focus(); // correct focus in IE & Chrome - editor.selection.setContent(insert, { format:'text' }); - } - // replace selection in compose textarea - else { - var textarea = rcube_find_object(this.env.composebody), - selection = $(textarea).is(':focus') ? this.get_input_selection(textarea) : { start:0, end:0 }, - inp_value = textarea.value; - pre = inp_value.substring(0, selection.start), - end = inp_value.substring(selection.end, inp_value.length); - - // insert response text - textarea.value = pre + insert + end; - - // set caret after inserted text - this.set_caret_pos(textarea, selection.start + insert.length); - textarea.focus(); - } - }; - - /** - * Open the dialog to save a new canned response - */ - this.save_response = function() - { - var sigstart, text = '', strip = false; - - // get selected text from tinyMCE editor - if ($("input[name='_is_html']").val() == '1') { - var editor = tinyMCE.get(this.env.composebody); - editor.getWin().focus(); // correct focus in IE & Chrome - text = editor.selection.getContent({ format:'text' }); - - if (!text) { - text = editor.getContent({ format:'text' }); - strip = true; - } - } - // get selected text from compose textarea - else { - var textarea = rcube_find_object(this.env.composebody), sigstart; - if (textarea && $(textarea).is(':focus')) { - text = this.get_input_selection(textarea).text; - } - - if (!text && textarea) { - text = textarea.value; - strip = true; - } - } - - // strip off signature - if (strip) { - sigstart = text.indexOf('-- \n'); - if (sigstart > 0) { - text = text.substring(0, sigstart); - } - } - - // show dialog to enter a name and to modify the text to be saved - var buttons = {}, - html = '' + - '
' + - '
' + - '
' + - '
' + - ''; - - buttons[this.gettext('save')] = function(e) { - var name = $('#ffresponsename').val(), - text = $('#ffresponsetext').val(); - - if (!text) { - $('#ffresponsetext').select(); - return false; - } - if (!name) - name = text.substring(0,40); - - var lock = ref.display_message(ref.get_label('savingresponse'), 'loading'); - ref.http_post('settings/responses', { _insert:1, _name:name, _text:text }, lock); - $(this).dialog('close'); - }; - - buttons[this.gettext('cancel')] = function() { - $(this).dialog('close'); - }; - - this.show_popup_dialog(html, this.gettext('savenewresponse'), buttons); - - $('#ffresponsetext').val(text); - $('#ffresponsename').select(); - }; - - this.add_response_item = function(response) - { - var key = response.key; - this.env.textresponses[key] = response; - - // append to responses list - if (this.gui_objects.responseslist) { - var li = $('
  • ').appendTo(this.gui_objects.responseslist); - $('').addClass('insertresponse active') - .attr('href', '#') - .attr('rel', key) - .html(this.quote_html(response.name)) - .appendTo(li) - .mousedown(function(e){ - return rcube_event.cancel(e); - }) - .mouseup(function(e){ - ref.command('insert-response', key); - $(document.body).trigger('mouseup'); // hides the menu - return rcube_event.cancel(e); - }); - } - }; - - this.edit_responses = function() - { - // TODO: implement inline editing of responses - }; - - this.delete_response = function(key) - { - if (!key && this.responses_list) { - var selection = this.responses_list.get_selection(); - key = selection[0]; - } - - // submit delete request - if (key && confirm(this.get_label('deleteresponseconfirm'))) { - this.http_post('settings/delete-response', { _key: key }, false); - return true; - } - - return false; - }; - - this.stop_spellchecking = function() - { - var ed; - - if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody))) { - if (ed.plugins && ed.plugins.spellchecker && ed.plugins.spellchecker.active) - ed.execCommand('mceSpellCheck'); - } - else if (ed = this.env.spellcheck) { - if (ed.state && ed.state != 'ready' && ed.state != 'no_error_found') - $(ed.spell_span).trigger('click'); - } - - this.spellcheck_state(); - }; - - this.spellcheck_state = function() - { - var ed, active; - - if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody)) && ed.plugins && ed.plugins.spellchecker) - active = ed.plugins.spellchecker.active; - else if ((ed = this.env.spellcheck) && ed.state) - active = ed.state != 'ready' && ed.state != 'no_error_found'; - - if (rcmail.buttons.spellcheck) - $('#'+rcmail.buttons.spellcheck[0].id)[active ? 'addClass' : 'removeClass']('selected'); - - return active; - }; - - // get selected language - this.spellcheck_lang = function() - { - var ed; - - if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody)) && ed.plugins && ed.plugins.spellchecker) - return ed.plugins.spellchecker.selectedLang; - else if (this.env.spellcheck) - return GOOGIE_CUR_LANG; - }; - - this.spellcheck_lang_set = function(lang) - { - var ed; - - if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody)) && ed.plugins) - ed.plugins.spellchecker.selectedLang = lang; - else if (this.env.spellcheck) - this.env.spellcheck.setCurrentLanguage(lang); - }; - - // resume spellchecking, highlight provided mispellings without new ajax request - this.spellcheck_resume = function(ishtml, data) - { - if (ishtml) { - var ed = tinyMCE.get(this.env.composebody); - sp = ed.plugins.spellchecker; - - sp.active = 1; - sp._markWords(data); - ed.nodeChanged(); - } - else { - var sp = this.env.spellcheck; - sp.prepare(false, true); - sp.processData(data); - } - - this.spellcheck_state(); - } - - this.set_draft_id = function(id) - { - var rc; - - if (!this.env.draft_id && id && (rc = this.opener())) { - // refresh the drafts folder in opener window - if (rc.env.task == 'mail' && rc.env.action == '' && rc.env.mailbox == this.env.drafts_mailbox) - rc.command('checkmail'); - } - - this.env.draft_id = id; - $("input[name='_draft_saveid']").val(id); - }; - - this.auto_save_start = function() - { - if (this.env.draft_autosave) - this.save_timer = setTimeout(function(){ ref.command("savedraft"); }, this.env.draft_autosave * 1000); - - // Unlock interface now that saving is complete - this.busy = false; - }; - - this.compose_field_hash = function(save) - { - // check input fields - var ed, i, val, str = '', hash_fields = ['to', 'cc', 'bcc', 'subject']; - - for (i=0; i= 0) - message = message.substring(0, p) + message.substring(p+sig.length, message.length); - } - // add the new signature string - if (show_sig && this.env.signatures && this.env.signatures[id]) { - sig = this.env.signatures[id].text; - sig = sig.replace(/\r\n/g, '\n'); - - if (this.env.top_posting) { - if (p >= 0) { // in place of removed signature - message = message.substring(0, p) + sig + message.substring(p, message.length); - cursor_pos = p - 1; - } - else if (!message) { // empty message - cursor_pos = 0; - message = '\n\n' + sig; - } - else if (pos = this.get_caret_pos(input_message.get(0))) { // at cursor position - message = message.substring(0, pos) + '\n' + sig + '\n\n' + message.substring(pos, message.length); - cursor_pos = pos; - } - else { // on top - cursor_pos = 0; - message = '\n\n' + sig + '\n\n' + message.replace(/^[\r\n]+/, ''); - } - } - else { - message = message.replace(/[\r\n]+$/, ''); - cursor_pos = !this.env.top_posting && message.length ? message.length+1 : 0; - message += '\n\n' + sig; - } - } - else - cursor_pos = this.env.top_posting ? 0 : message.length; - - input_message.val(message); - - // move cursor before the signature - this.set_caret_pos(input_message.get(0), cursor_pos); - } - else if (show_sig && this.env.signatures) { // html - var editor = tinyMCE.get(this.env.composebody), - sigElem = editor.dom.get('_rc_sig'); - - // Append the signature as a div within the body - if (!sigElem) { - var body = editor.getBody(), - doc = editor.getDoc(); - - sigElem = doc.createElement('div'); - sigElem.setAttribute('id', '_rc_sig'); - - if (this.env.top_posting) { - // if no existing sig and top posting then insert at caret pos - editor.getWin().focus(); // correct focus in IE & Chrome - - var node = editor.selection.getNode(); - if (node.nodeName == 'BODY') { - // no real focus, insert at start - body.insertBefore(sigElem, body.firstChild); - body.insertBefore(doc.createElement('br'), body.firstChild); - } - else { - body.insertBefore(sigElem, node.nextSibling); - body.insertBefore(doc.createElement('br'), node.nextSibling); - } - } - else { - if (bw.ie) // add empty line before signature on IE - body.appendChild(doc.createElement('br')); - - body.appendChild(sigElem); - } - } - - if (this.env.signatures[id]) - sigElem.innerHTML = this.env.signatures[id].html; - } - - this.env.identity = id; - this.triggerEvent('change_identity'); - return true; - }; - - // upload (attachment) file - this.upload_file = function(form, action) - { - if (!form) - return false; - - // count files and size on capable browser - var size = 0, numfiles = 0; - - $('input[type=file]', form).each(function(i, field) { - var files = field.files ? field.files.length : (field.value ? 1 : 0); - - // check file size - if (field.files) { - for (var i=0; i < files; i++) - size += field.files[i].size; - } - - numfiles += files; - }); - - // create hidden iframe and post upload form - if (numfiles) { - if (this.env.max_filesize && this.env.filesizeerror && size > this.env.max_filesize) { - this.display_message(this.env.filesizeerror, 'error'); - return; - } - - var frame_name = this.async_upload_form(form, action || 'upload', function(e) { - var d, content = ''; - try { - if (this.contentDocument) { - d = this.contentDocument; - } else if (this.contentWindow) { - d = this.contentWindow.document; - } - content = d.childNodes[0].innerHTML; - } catch (err) {} - - if (!content.match(/add2attachment/) && (!bw.opera || (rcmail.env.uploadframe && rcmail.env.uploadframe == e.data.ts))) { - if (!content.match(/display_message/)) - rcmail.display_message(rcmail.get_label('fileuploaderror'), 'error'); - rcmail.remove_from_attachment_list(e.data.ts); - } - // Opera hack: handle double onload - if (bw.opera) - rcmail.env.uploadframe = e.data.ts; - }); - - // display upload indicator and cancel button - var content = '' + this.get_label('uploading' + (numfiles > 1 ? 'many' : '')) + '', - ts = frame_name.replace(/^rcmupload/, ''); - - this.add2attachment_list(ts, { name:'', html:content, classname:'uploading', frame:frame_name, complete:false }); - - // upload progress support - if (this.env.upload_progress_time) { - this.upload_progress_start('upload', ts); - } - } - - // set reference to the form object - this.gui_objects.attachmentform = form; - return true; - }; - - // add file name to attachment list - // called from upload page - this.add2attachment_list = function(name, att, upload_id) - { - if (!this.gui_objects.attachmentlist) - return false; - - if (!att.complete && ref.env.loadingicon) - att.html = '' + att.html; - - if (!att.complete && att.frame) - att.html = '' - + (this.env.cancelicon ? '' : this.get_label('cancel')) + '' + att.html; - - var indicator, li = $('
  • '); - - li.attr('id', name) - .addClass(att.classname) - .html(att.html) - .on('mouseover', function() { rcube_webmail.long_subject_title_ex(this, 0); }); - - // replace indicator's li - if (upload_id && (indicator = document.getElementById(upload_id))) { - li.replaceAll(indicator); - } - else { // add new li - li.appendTo(this.gui_objects.attachmentlist); - } - - if (upload_id && this.env.attachments[upload_id]) - delete this.env.attachments[upload_id]; - - this.env.attachments[name] = att; - - return true; - }; - - this.remove_from_attachment_list = function(name) - { - delete this.env.attachments[name]; - $('#'+name).remove(); - }; - - this.remove_attachment = function(name) - { - if (name && this.env.attachments[name]) - this.http_post('remove-attachment', { _id:this.env.compose_id, _file:name }); - - return true; - }; - - this.cancel_attachment_upload = function(name, frame_name) - { - if (!name || !frame_name) - return false; - - this.remove_from_attachment_list(name); - $("iframe[name='"+frame_name+"']").remove(); - return false; - }; - - this.upload_progress_start = function(action, name) - { - setTimeout(function() { rcmail.http_request(action, {_progress: name}); }, - this.env.upload_progress_time * 1000); - }; - - this.upload_progress_update = function(param) - { - var elem = $('#'+param.name + '> span'); - - if (!elem.length || !param.text) - return; - - elem.text(param.text); - - if (!param.done) - this.upload_progress_start(param.action, param.name); - }; - - // send remote request to add a new contact - this.add_contact = function(value) - { - if (value) - this.http_post('addcontact', {_address: value}); - - return true; - }; - - // send remote request to search mail or contacts - this.qsearch = function(value) - { - if (value != '') { - var r, lock = this.set_busy(true, 'searching'), - url = this.search_params(value); - - if (this.message_list) - this.clear_message_list(); - else if (this.contact_list) - this.list_contacts_clear(); - - if (this.env.source) - url._source = this.env.source; - if (this.env.group) - url._gid = this.env.group; - - // reset vars - this.env.current_page = 1; - - var action = this.env.action == 'compose' && this.contact_list ? 'search-contacts' : 'search'; - r = this.http_request(action, url, lock); - - this.env.qsearch = {lock: lock, request: r}; - } - }; - - // build URL params for search - this.search_params = function(search, filter) - { - var n, url = {}, mods_arr = [], - mods = this.env.search_mods, - mbox = this.env.mailbox; - - if (!filter && this.gui_objects.search_filter) - filter = this.gui_objects.search_filter.value; - - if (!search && this.gui_objects.qsearchbox) - search = this.gui_objects.qsearchbox.value; - - if (filter) - url._filter = filter; - - if (search) { - url._q = search; - - if (mods && this.message_list) - mods = mods[mbox] ? mods[mbox] : mods['*']; - - if (mods) { - for (n in mods) - mods_arr.push(n); - url._headers = mods_arr.join(','); - } - } - - if (mbox) - url._mbox = mbox; - - return url; - }; - - // reset quick-search form - this.reset_qsearch = function() - { - if (this.gui_objects.qsearchbox) - this.gui_objects.qsearchbox.value = ''; - - if (this.env.qsearch) - this.abort_request(this.env.qsearch); - - this.env.qsearch = null; - this.env.search_request = null; - this.env.search_id = null; - }; - - this.sent_successfully = function(type, msg, folders) - { - this.display_message(msg, type); - - if (this.env.extwin) { - var rc = this.opener(); - this.lock_form(this.gui_objects.messageform); - if (rc) { - rc.display_message(msg, type); - // refresh the folder where sent message was saved or replied message comes from - if (folders && rc.env.task == 'mail' && rc.env.action == '' && $.inArray(rc.env.mailbox, folders) >= 0) { - // @TODO: try with 'checkmail' here when #1485186 is fixed. See also #1489249. - rc.command('list'); - } - } - setTimeout(function(){ window.close() }, 1000); - } - else { - // before redirect we need to wait some time for Chrome (#1486177) - setTimeout(function(){ ref.list_mailbox(); }, 500); - } - }; - - - /*********************************************************/ - /********* keyboard live-search methods *********/ - /*********************************************************/ - - // handler for keyboard events on address-fields - this.ksearch_keydown = function(e, obj, props) - { - if (this.ksearch_timer) - clearTimeout(this.ksearch_timer); - - var highlight, - key = rcube_event.get_keycode(e), - mod = rcube_event.get_modifier(e); - - switch (key) { - case 38: // arrow up - case 40: // arrow down - if (!this.ksearch_visible()) - break; - - var dir = key==38 ? 1 : 0; - - highlight = document.getElementById('rcmksearchSelected'); - if (!highlight) - highlight = this.ksearch_pane.__ul.firstChild; - - if (highlight) - this.ksearch_select(dir ? highlight.previousSibling : highlight.nextSibling); - - return rcube_event.cancel(e); - - case 9: // tab - if (mod == SHIFT_KEY || !this.ksearch_visible()) { - this.ksearch_hide(); - return; - } - - case 13: // enter - if (!this.ksearch_visible()) - return false; - - // insert selected address and hide ksearch pane - this.insert_recipient(this.ksearch_selected); - this.ksearch_hide(); - - return rcube_event.cancel(e); - - case 27: // escape - this.ksearch_hide(); - return; - - case 37: // left - case 39: // right - if (mod != SHIFT_KEY) - return; - } - - // start timer - this.ksearch_timer = setTimeout(function(){ ref.ksearch_get_results(props); }, 200); - this.ksearch_input = obj; - - return true; - }; - - this.ksearch_visible = function() - { - return (this.ksearch_selected !== null && this.ksearch_selected !== undefined && this.ksearch_value); - }; - - this.ksearch_select = function(node) - { - var current = $('#rcmksearchSelected'); - if (current[0] && node) { - current.removeAttr('id').removeClass('selected'); - } - - if (node) { - $(node).attr('id', 'rcmksearchSelected').addClass('selected'); - this.ksearch_selected = node._rcm_id; - } - }; - - this.insert_recipient = function(id) - { - if (id === null || !this.env.contacts[id] || !this.ksearch_input) - return; - - // get cursor pos - var inp_value = this.ksearch_input.value, - cpos = this.get_caret_pos(this.ksearch_input), - p = inp_value.lastIndexOf(this.ksearch_value, cpos), - trigger = false, - insert = '', - // replace search string with full address - pre = inp_value.substring(0, p), - end = inp_value.substring(p+this.ksearch_value.length, inp_value.length); - - this.ksearch_destroy(); - - // insert all members of a group - if (typeof this.env.contacts[id] === 'object' && this.env.contacts[id].id) { - insert += this.env.contacts[id].name + this.env.recipients_delimiter; - this.group2expand[this.env.contacts[id].id] = $.extend({ input: this.ksearch_input }, this.env.contacts[id]); - this.http_request('mail/group-expand', {_source: this.env.contacts[id].source, _gid: this.env.contacts[id].id}, false); - } - else if (typeof this.env.contacts[id] === 'string') { - insert = this.env.contacts[id] + this.env.recipients_delimiter; - trigger = true; - } - - this.ksearch_input.value = pre + insert + end; - - // set caret to insert pos - cpos = p+insert.length; - if (this.ksearch_input.setSelectionRange) - this.ksearch_input.setSelectionRange(cpos, cpos); - - if (trigger) - this.triggerEvent('autocomplete_insert', { field:this.ksearch_input, insert:insert }); - }; - - this.replace_group_recipients = function(id, recipients) - { - if (this.group2expand[id]) { - this.group2expand[id].input.value = this.group2expand[id].input.value.replace(this.group2expand[id].name, recipients); - this.triggerEvent('autocomplete_insert', { field:this.group2expand[id].input, insert:recipients }); - this.group2expand[id] = null; - } - }; - - // address search processor - this.ksearch_get_results = function(props) - { - var inp_value = this.ksearch_input ? this.ksearch_input.value : null; - - if (inp_value === null) - return; - - if (this.ksearch_pane && this.ksearch_pane.is(":visible")) - this.ksearch_pane.hide(); - - // get string from current cursor pos to last comma - var cpos = this.get_caret_pos(this.ksearch_input), - p = inp_value.lastIndexOf(this.env.recipients_separator, cpos-1), - q = inp_value.substring(p+1, cpos), - min = this.env.autocomplete_min_length, - ac = this.ksearch_data; - - // trim query string - q = $.trim(q); - - // Don't (re-)search if the last results are still active - if (q == this.ksearch_value) - return; - - this.ksearch_destroy(); - - if (q.length && q.length < min) { - if (!this.ksearch_info) { - this.ksearch_info = this.display_message( - this.get_label('autocompletechars').replace('$min', min)); - } - return; - } - - var old_value = this.ksearch_value; - this.ksearch_value = q; - - // ...string is empty - if (!q.length) - return; - - // ...new search value contains old one and previous search was not finished or its result was empty - if (old_value && old_value.length && q.startsWith(old_value) && (!ac || ac.num <= 0) && this.env.contacts && !this.env.contacts.length) - return; - - var i, lock, source, xhr, reqid = new Date().getTime(), - post_data = {_search: q, _id: reqid}, - threads = props && props.threads ? props.threads : 1, - sources = props && props.sources ? props.sources : [], - action = props && props.action ? props.action : 'mail/autocomplete'; - - this.ksearch_data = {id: reqid, sources: sources.slice(), action: action, - locks: [], requests: [], num: sources.length}; - - for (i=0; i 1 && source === undefined) - break; - - post_data._source = source ? source : ''; - lock = this.display_message(this.get_label('searching'), 'loading'); - xhr = this.http_post(action, post_data, lock); - - this.ksearch_data.locks.push(lock); - this.ksearch_data.requests.push(xhr); - } - }; - - this.ksearch_query_results = function(results, search, reqid) - { - // search stopped in meantime? - if (!this.ksearch_value) - return; - - // ignore this outdated search response - if (this.ksearch_input && search != this.ksearch_value) - return; - - // display search results - var i, len, ul, li, text, init, - value = this.ksearch_value, - data = this.ksearch_data, - maxlen = this.env.autocomplete_max ? this.env.autocomplete_max : 15; - - // create results pane if not present - if (!this.ksearch_pane) { - ul = $('